Minimal Unsatisfiable Set Efficient MUS Extraction with Resolution Alexander Nadel Vadim Ryvchin Ofer Strichman Intel, Haifa Intel + Technion, Haifa Technion, Haifa 1 Minimal Unsatisfiable Set (MUS) Given an unsatisfiable CNF , find a minimal (irreducible) set of clauses à µ such that à is unsatisfiable. Two main ‘schools’ of finding cores: Assumptions-based (Een & Sorensson, [2003]) Resolution-based (Zhang et al. [2003]) 2 Deletion-based minimization Initially Roots are unmarked = Roots Return Roots Choose unmarked clause c 2 Roots Remove(, c); SAT() ? yes mark c no Roots := core Works for both ‘assumptions-based’ and ‘resolution-based’ 3 Derived clauses are also marked Optimization 1 ? m m m m m A. m Maintain partial resolution proofs Only part of proof emanating from unmarked clauses 4 Derived clauses are also marked Optimization 2 ? m m m m m C. m Postpone propagation of unmarked clauses These pull unmarked clauses into the proof 5 Derived clauses are also marked Optimizations 3,4 ? m m m m m m … and two other optimizations we used for group MUS [RS’12] 6 Model Rotation* = Roots Return Roots Choose unmarked clause c 2 Roots Remove(, c); Rotation: mark more clauses SAT() ? yes mark c no Roots := core * Belov, A., Marques-Silva, J.: Accelerating MUS extraction with recursive model rotation. In: FMCAD’11. (2011) 7 Model Rotation is unsat, but ® ² /c ®’ = ®[l à :l] for some l 2 c if (UnsatSet(, ®’) = {c’} Æ c’ is unmarked) then Mark c’; Apply recursively with (, c’, ®’); } Searching for other clauses that can be marked 8 Model Rotation, eager Optimization 5 is unsat, but ® ² /c ®’ = ®[l à :l] for some l 2 c in the current call if (UnsatSet(, ®’) = {c’} Æ c’ is unmarked) then Mark c’; Apply recursively with (, c’, ®’); } New assignment ) new starting point for the search 9 The impact of E-rotation Optimization 5 10 Redundancy removal [BS’11] Optimization 6 S is unsat ) (SAT(S / c) , SAT((S / c) Æ :c) Hence, add :c literals as assumptions. This is implemented already in MUSer-2 [BS’11]. Our improvement (“path falsification”): Add :c, :c1…, :cn literals as assumptions. 11 Path falsification Optimization 6 Vertex cut: separates ? from the roots Implies what’s on its left ) must be unsat ? c 12 SAT(C/c) Path falsification Optimization 6 Consider ®, ® ² Roots / c ® cannot satisfy a cut ) ® ² (:c Æ :c1 Æ :c2) Ç (:c Æ :c1 Æ :c3) ? ) ® ² :c Æ :c1 c2 c1 c c3 13 Results 295 benchmarks of the 2011 MUS competition 14 Minisatbb HaifaMUC vs. Minisatbb* HaifaMUC * Lagniez, Biere, SAT’13 15