1 linear-time reductions of resolution proofs omer bar-ilan oded fuhrmann shlomo hoory ohad shacham...
Post on 20-Dec-2015
218 views
TRANSCRIPT
1
Linear-time Reductions of Resolution Proofs
Omer Bar-Ilan Oded Fuhrmann
Shlomo Hoory Ohad Shacham
Ofer StrichmanTechnion
2
Resolution
Binary resolution:
…or, more generally:
3
SAT and resolution proofs
Resolution is sound and complete for CNF formulas There exists a decision procedure that deduces the empty
clause if and only if the input formula is unsatisfiable.
Modern SAT solvers are implicit resolution engines Learn new clauses through resolution. Upon request, they produce a resolution proof.
4
Uses of the resolution graphs
Extraction of unsatisfiable core The subset of original clauses that were used in the proof
Incremental satisfiability Which learned clauses can be reused in the next instance
Computing Interpolants For unbounded SAT-based model checking
5
Resolution graph / unsat core
)(
unsatisfiable core
6
The smaller the better
Many techniques for shrinking the proof / core All exponential Most popular: run-till-fix
Smaller proofs shorter verification time As a result – short time outs.
A good criterion:
By how much can you shrink the core in the first T sec?
?
7
In this work we investigate...
Linear-time Reductions of Resolution Proofs
)linear in the size of the proof graph(
We propose two techniques:
1. Recycle – units
1. Recycle – pivots
8
1. Recycle-units / observation
When learning )resolving( a new clause in SAT, The resolving clauses are not satisfied Hence, the resolution-variable is unassigned
l l1 :l l2
l1 l2
9
1. Recycle-units
Suppose that the pivot’s constant value is learned later on. We will use it to simplify the resolution proof.
10
1. Recycle-units / easy case
1 3 -1 2 5
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
11
1. Recycle-units / easy case
1 3 -1 2 5
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
12
1. Recycle-units
1 3
3 1 -2
1 3 5
-1 4 -1 -4
-1
3 5
3
3
13
1. Recycle-units
1 3
3
-1 4 -1 -4
-1
Reduced proof by 4 clauses Reduced core by 1 clause
14
1. Recycle-units / beware of cycles
1 3
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
By making this connection we created cyclic
reasoning
15
1. Recycle-units / beware of cycles
Solution: mark antecedents of units apply only to marked nodes
1 3
2 3 5 1 -2
1 3 5
-1 4 -1 -4
-1
-1 2 5
3 5
16
1. Recycle-units / beware of cycles
A little tricky to make efficient. The graph changes all the time. Inefficient to update antecedents relations.
Solution Maintain a DAG G)E,U( U = units )u1,u2( 2 E if u1 is an antecedent of u2
Do not connect a unit if it creates a cycle in G. Otherwise update G.
19
2. Recycle-pivots / Example (tree)
3 4 5 6
2 6
-1 -2 51 3 4
1 2 3 -2 4
-2 3 4 5
20
2. Recycle-pivots / Example (tree)
3 4 5 6
2 6
-1 -2 51 3 4
1 2 3 -2 4
{2}-{2}
{2,1}{2-,1}
{2-,1-,2} {2-,1}
-2 4
-2 3 4 5-2 4
4 6
21
2. Recycle-pivots / Example (tree)
2 6 -2 4
4 6
22
2. Recycle-pivots / DAGs
Resolution graphs are DAGs So, a node is on more than one path to the empty clause
3 4 5 6
2 6
-1 -2 51 3 4
1 2 3 -2 4
-2 3 4 5
23
2. Recycle-pivots / DAGs
Resolution graphs are DAGs So, a node is on more than one path to the empty clause
2 6
-1 -2 5
1 2 3 -2 4
-2 4
-2 4
4 6
24
2. Recycle-pivots / DAGs
2 6
-1 -2 5
1 2 3 -2 4
-2 4
-2 4
4 6
25
2. Recycle-pivots / DAGs
2 6
-1 -2 5
1 2 3 -2 4
-2 4
-2 4
4 6
Does A dominate B ?
Dominance relation can be found in O(|E| log |V|)
A
B
e
Problem: need to be updated each time.
26
2. Recycle-pivots / DAGs
Our current implementation: Stop propagating information across nodes with more than
one child.
3 4 5 6
2 6
-1 -2 51 3 4
1 2 3 -2 4
{2}-{2}
{2,1}{2-,1}
{2-,1-,2} {2-,1}
-2 3 4 5
27
Experiments / Core-size
67 unsat instances from the public IBM benchmarks that tool run-till-fix more than 10 sec.
28
Experiments / Proof-size
67 unsat instances from the public IBM benchmarks that tool run-till-fix more than 10 sec.
29
Thank you