Efficient MUS Extraction with Resolution Minimal Unsatisfiable Set Efficient MUS Extraction with Resolution Alexander Nadel Intel, Haifa Vadim Ryvchin Intel + Technion, Haifa Ofer Strichman Technion, Haifa
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]) Assumptions-based: all clauses are guarded by clause selectors which are given as assumptions. Removing a clause = assuming the selector is true. Resolution-based: analyzing the proof
Deletion-based minimization Initially Roots are unmarked = Roots Return Roots All marked Choose unmarked clause c 2 Roots Remove(, c); SAT() ? yes no Incremental setting. Remove(\phi, c) means we remove it incrementally. We will focus from hereon on resolution-based. We want the core to use as little as possible ‘unmarked clauses’ mark c Roots := core Works for both ‘assumptions-based’ and ‘resolution-based’
Derived clauses are also marked Optimization 1 ? m Maintain partial resolution proofs Only part of proof emanating from unmarked clauses
Derived clauses are also marked Optimization 2 ? m m m m m m Postpone propagation of unmarked clauses These pull unmarked clauses into the proof
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]
Choose unmarked clause c 2 Roots Model Rotation* * Belov, A., Marques-Silva, J.: Accelerating MUS extraction with recursive model rotation. In: FMCAD’11. (2011) = Roots Return Roots All marked Choose unmarked clause c 2 Roots Remove(, c); Rotation: mark more clauses SAT() ? yes no mark c Roots := core
Searching for other clauses that can be marked 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’, ®’); } Note that \varphi \ c’ is SAT The difference is: we are starting with a different assignment; hence we w \begin{tabular}{|lll|}\hline & E-rotation & Rotation \\ %Run-time & 23726 & 26449 \\ MUS size & 2540139 & 2528620 \\ Added clauses & 2261115 & 2021554 \\ Initial calls & 259244 & 506908 \\ Iterations & 310680 & 556493 \\ Iterations/calls & 1.19 & 1.09 \\ Clauses/iterations & 7.27 & 3.63 \\ Clauses/calls & 8.72 & 3.98 \\ \hline \end{tabular} \caption{Statistics comparing E-rotation and Rotation. Since the corresponding functions \alg{ERMR} and \alg{RMR} are recursive, we make the distinction between Initial calls (calls from line~\ref{step-call} in \alg{MUS}) and Iterations, which is the total number of calls to these functions.}\label{fig:erot}ant to keep developing that clause. Searching for other clauses that can be marked
New assignment ) new starting point for the search Model Rotation, eager Optimization 5 is unsat, but ® ² /c ®’ = ®[l à :l] for some l 2 c if (UnsatSet(, ®’) = {c’} Æ c’ is unmarked) then Mark c’; Apply recursively with (, c’, ®’); } in the current call Note that \varphi \ c’ is SAT The difference is: we are starting with a different assignment; hence we w \begin{tabular}{|lll|}\hline & E-rotation & Rotation \\ %Run-time & 23726 & 26449 \\ MUS size & 2540139 & 2528620 \\ Added clauses & 2261115 & 2021554 \\ Initial calls & 259244 & 506908 \\ Iterations & 310680 & 556493 \\ Iterations/calls & 1.19 & 1.09 \\ Clauses/iterations & 7.27 & 3.63 \\ Clauses/calls & 8.72 & 3.98 \\ \hline \end{tabular} \caption{Statistics comparing E-rotation and Rotation. Since the corresponding functions \alg{ERMR} and \alg{RMR} are recursive, we make the distinction between Initial calls (calls from line~\ref{step-call} in \alg{MUS}) and Iterations, which is the total number of calls to these functions.}\label{fig:erot}ant to keep developing that clause. New assignment ) new starting point for the search
The impact of E-rotation Optimization 5
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. c = (1 2 3) c1 = (-1 4) c2 = (-4)
Path falsification Vertex cut: separates ? from the roots Optimization 6 Vertex cut: separates ? from the roots Implies what’s on its left ) must be unsat ? c
Path falsification Consider ®, ® ² Roots / c ® cannot satisfy a cut ) SAT(C/c) Optimization 6 Consider ®, ® ² Roots / c ® cannot satisfy a cut ) ® ² (:c Æ :c1 Æ :c2) Ç (:c Æ :c1 Æ :c3) ) ® ² :c Æ :c1 ? c2 c1 c c3
Results 295 benchmarks of the 2011 MUS competition Base – HaifaMUC with deletion-based + clause-set refinement. MUSer 2 – Belov & Marques-Silva, which includes rotation Minisatbb – Lagniez & Biere – “Factoring-out assumptions to speed-up MUS extraction” HaifaMUC (erot_AB…) – this article 295 benchmarks of the 2011 MUS competition
HaifaMUC vs. Minisatbb* * Lagniez, Biere, SAT’13