NAIL094Decision procedures and verification

Petr Kučera, KTIML MFF UK

Making a CNF Prime and Irredundant

Primality and Irredundancy

Assume a CNF \(\varphi\) and a clause \(C\).

Note that if \(C\) is an implicate of \(\varphi\) which is not prime, we can replace it with a prime subimplicate \(C'\) without changing the function represented by \(\varphi\). This way, we can turn \(\varphi\) into a prime CNF.

The Task

Write a program which given a CNF outputs an equivalent CNF which is prime and irredundant (make any of these optional).

Input and output

Both input and output are expected in DIMACS format which was also described in the first task.

Experimental evaluation

Evaluate your program on several SATLIB Benchmark Problems and write a report on the results