Presentation is loading. Please wait.

Presentation is loading. Please wait.

Deriving small unsatisfiable cores with dominators

Similar presentations


Presentation on theme: "Deriving small unsatisfiable cores with dominators"— Presentation transcript:

1 Deriving small unsatisfiable cores with dominators
Ofer Strichman Joint work with Maya Koifman and Roman Gershman

2 Unsatisfiable cores Problem: given an unsatisfiable CNF, find a ‘small’ subset of clauses that is still unsatisfiable. Hard problems: Minimum Unsatisfiable core (2-complete) [G05] Minimal Unsatisfiable core (Dp-complete) [LS04, OMASM04, H05, NDH06]

3 Goal Typically part of a larger system (e.g., proof-based abstraction/refinement) Our Goal: a cost-effective algorithm for reducing the core size Reduction size `Velocity’ = clauses / sec.

4 A fixpoint approach [ZM03]
run-till-fix(φ) { Repeat forever: U := unsatcore(φ) if U = φ return U; φ = U }

5 SAT solvers are complete resolution engines
Specifically, if the formula is unsatisfiable: … they can output a resolution proof ending with the empty clause. Our approach is based on analyzing this graph.

6 Resolution graph L : Empty clause Inferred clauses Original clauses
learning Original clauses L : Unsatisfiable core

7 Dominators A vertex d dominates another vertex m ≠ d, if every path from m to the sink-node contains d. m is called a minion of d ( ) d 12 Finding dominance relation: Lengauer – Tarjan: O(|E|log|V|) m m

8 Transforming the resolution graph
Observation: If d is derivable without its minions M, then M can be removed from the core. d 12 L : L’(d)

9 Transforming the resolution graph
Is there a proof of node d from L’(d)? d 12 L : L’(d)

10 An alternative proof. Suppose we have an alternative proof of d from L’(d): d 12 L : L’(d)

11 Then we can... Embed the new proof, and re-iterate.
But: how do we find a resolution proof of d? 12 L : L’(d)

12 Transforming the resolution graph
Q: How do we find a resolution proof L’(d) ` d? Recall: SAT can only generate a proof of unsatisfiability (the empty clause). A: Rely on the equivalence L’(d) ` d , L’(d) ^ !d ` () Problem: proof transformation

13 Proof transformation !d d = (z1 z2) L’(d) ^ !(z1 z2) ` ()

14 Rewriting the proof For every assumption (:z): For every addition of z
rewrite rewrite

15 Proof transformation !d d = (z1 z2) L’(d) ^ !(z1 z2) ` ()

16 Proof transformation L’(d) ^ !(z1 z2) ` () L’(d) ` (z1 z2) L’ (d) !d

17 Proof transformation L’(d) ^ !(z1 z2) ` () L’(d) ` (z1 z2) L’ (d) !d

18 Proof transformation L’(d) ^ !(z1 z2) ` () L’(d) ` (z1 z2) L’ (d) !d

19 Proof transformation L’(d) ^ !(z1 z2) ` () L’(d) ` (z1 z2) L’ (d) !d

20 Proof transformation !d L’(d) ^ !(z1 z2) ` () L’(d) ` (z1 z2)
Result is a ‘Clause Implication Graph’ L’ (d) !d

21  L’ (d) ^ !d ` () L’ (d) ` d Create resolution graph R
Create priority queue of R’s dominators None Select next dominator d Embed new proof in R Output: current leaves of R SAT (L’(d) ^ !d) yes Remove old proof from R No L’ (d) ^ !d ` () Transform proof into L’ (d) ` d

22 Using Incremental SAT Reuse all clauses not on a path from the minions to the sink node. 14 d

23 Results – Accumulated # removed clauses
71 industrial benchmarks (timeout – 1 hour)

24 Trim-till-fix run-till-fix

25 71 industrial benchmarks (timeout – 1 hour)
Core reduction: Trim-till-fix Run-till-fix

26 Conclusions Trim-till-fix Room for further research More continues
Removes more clauses Room for further research Various combinations with Run-till-fix Different orderings of the dominators Removing variables, not clauses

27 Acceleration


Download ppt "Deriving small unsatisfiable cores with dominators"

Similar presentations


Ads by Google