Partial-Cone
Abstraction and Refinement Algorithm
Description
In this project, we would like to devise a ¡§Partial-Cone Abstraction and Refinement (PCAR)¡¨ algorithm in which a partial-cone SAT problem is first solved and then its corresponding assignment is used to guide the abstraction and refinement of the concrete (complete) SAT problem.
Let¡¦s first suppose the SAT target is an n-output combinational circuit as shown below, where { y1, y2¡K yn } and { x1, x2¡K, xm } are the output and input signals, respectively.
Our SAT target is to find an input assignment such that the outputs y1 = 1, y2 = 1,¡K and yn = 1 are satisfied at the same time. However, suppose it is very hard to satisfy the above targets together. Therefore, we would like to develop the following PCAR algorithm:
(a) Pick
one of the output, say ¡§y
(b) Include
one or more outputs to the SAT target. Extend the partial assignment A1
to this new problem. If the problem becomes UNSAT, then we can extract the
UNSAT core which is sufficient to refute the partial assignment A1.
Or alternatively, we can identify a subset of the assignments A
(c) Go
back to (a) to find another assignment that is disjunctive to A
The above algorithm is still pre-mature. You should elaborate it and conduct experiments to make it a practical and useful SAT algorithm. You can also implement your algorithm on a CNF-based SAT solver.
Problem inputs
Ø Circuit-based SAT testcases (e.g. AIGER).
What you should do
1. Implement the above idea on an existing SAT solver, be it a CNF or circuit-based one.
2. Compare with the state-of-the-art SAT solvers.