fmcad13_mus

advertisement
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
Download