Title: Efficient MUS Extraction with Resolution
1Efficient MUS Extraction with Resolution
Minimal Unsatisfiable Set
- Alexander Nadel Intel, Haifa
- Vadim Ryvchin Intel Technion, Haifa
- Ofer Strichman Technion, Haifa
2Minimal 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)
3Deletion-based minimization
Initially Roots are unmarked
? Roots
Return Roots
All marked
Choose unmarked clause c 2 Roots
Remove(?, c)
SAT(?) ?
no
yes
mark c
Roots core
Works for both assumptions-based and
resolution-based
4Derived clauses are also marked
Optimization 1
?
- Maintain partial resolution proofs
- Only part of proof emanating from unmarked clauses
5Derived clauses are also marked
Optimization 2
?
m
m
m
m
m
m
- Postpone propagation of unmarked clauses
- These pull unmarked clauses into the proof
6Derived clauses are also marked
Optimizations 3,4
?
m
m
m
m
m
m
and two other optimizations we used for group
MUS RS12
7Model Rotation
- Belov, A., Marques-Silva, J. Accelerating MUS
extraction with recursive model rotation. In
FMCAD11. (2011)
? Roots
Return Roots
All marked
Choose unmarked clause c 2 Roots
Remove(?, c)
Rotation mark more clauses
SAT(?) ?
no
yes
mark c
Roots core
8Model 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
9Model 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
New assignment ) new starting point for the search
10The impact of E-rotation
Optimization 5
11Redundancy removal BS11
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 BS11.
- Our improvement (path falsification)
- Add c, c1, cn literals as assumptions.
12Path falsification
Optimization 6
- Vertex cut separates ? from the roots
- Implies whats on its left
- ) must be unsat
?
c
13Path falsification
SAT(C/c)
Optimization 6
- Consider , ² Roots / c
- cannot satisfy a cut )
- ² (c Æ c1 Æ c2) Ç (c Æ c1 Æ c3)
- ) ² c Æ c1
?
c2
c1
c
c3
14Results
295 benchmarks of the 2011 MUS competition
15HaifaMUC vs. Minisatbb
Minisatbb
HaifaMUC
Lagniez, Biere, SAT13
16Heuristics, Heuristics,
- Other heuristics
- Selective Clause minimization
- Refrain from marking derived clauses
- Reclassify derived unmarked clauses
- Based on similar techniques for the Group MUS
problem in RS - SAT11.
17Model Rotation BS11
- Precondition ? is unsat, ² ?/c
- Rotate(formula S, clause c, assignment )
- for all x 2 Var(c) do
- x à x // swap assignment of x
- if (UnsatSet(S, ) c Æ c is unmarked)
then - Mark c
- Rotate (S, c, )
18Two main schools of finding cores
- Assumptions-based
- Assumptions clause selectors
- Resolution-based
- Recreate the resolution proof
- Core roots