Deriving small unsatisfiable cores with dominators Ofer Strichman

  • Slides: 27
Download presentation
Deriving small unsatisfiable cores with dominators Ofer Strichman Joint work with Maya Koifman and

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

Unsatisfiable cores n Problem: given an unsatisfiable CNF, find a ‘small’ subset of clauses

Unsatisfiable cores n Problem: given an unsatisfiable CNF, find a ‘small’ subset of clauses that is still unsatisfiable. n Hard problems: ¨ Minimum Unsatisfiable core ( 2 -complete) [G 05] ¨ Minimal Unsatisfiable core (Dp-complete) [LS 04, OMASM 04, H 05, NDH 06] 2

Goal n Typically part of a larger system (e. g. , proof-based abstraction/refinement) n

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

A fixpoint approach [ZM 03] run-till-fix(φ) { Repeat forever: 1. U : = unsatcore(φ)

A fixpoint approach [ZM 03] run-till-fix(φ) { Repeat forever: 1. U : = unsatcore(φ) 2. if U = φ return U; 3. φ = U } 4

SAT solvers are complete resolution engines n Specifically, if the formula is unsatisfiable: ¨…

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

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

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

Dominators n n A vertex d dominates another vertex m ≠ d, if every

Dominators n n 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 7

Transforming the resolution graph n Observation: If d is derivable without its minions M,

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

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

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

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

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

Then we can. . . n n Embed the new proof, and re-iterate. But:

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

Transforming the resolution graph n Q: How do we find a resolution proof L’(d)

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

Proof transformation d = (z 1 z 2) L’(d) ^ !(z 1 z 2)

Proof transformation d = (z 1 z 2) L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 13

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

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

Proof transformation d = (z 1 z 2) L’(d) ^ !(z 1 z 2)

Proof transformation d = (z 1 z 2) L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 15

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 16

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 17

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 18

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) !d 19

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1

Proof transformation L’(d) ^ !(z 1 z 2) ` () L’(d) ` (z 1 z 2) Result is a ‘Clause Implication Graph’ L’(d) !d 20

Create resolution graph R Create priority queue of R’s dominators Select next dominator d

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

Using Incremental SAT n Reuse all clauses not on a path from the minions

Using Incremental SAT n 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

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

Trim-till-fix run-till-fix 25

Trim-till-fix run-till-fix 25

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

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

Conclusions n Trim-till-fix ¨ More continues ¨ Removes more clauses n Room for further

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

Acceleration 29

Acceleration 29