Title: Satisfiability Checking of Nonclausal Formulas using General Matings
1Satisfiability Checking of Non-clausal Formulas
using General Matings
- Himanshu Jain
- Constantinos Bartzis
- Edmund Clarke
Carnegie Mellon University
2Boolean Satisfiability
- The first problem to be proven NP-complete
- Applications in verification
- equivalence checking
- bounded model checking
- predicate abstraction
- theorem proving
- test generation
- Applications in AI
- planning
3Current state of SAT solving
- State-of-the-art complete SAT solvers
- Davis-Putnam-Logemann-Loveland (DPLL) algorithm
- Require the input formula to be in clausal form
(CNF) - MiniSat, BerkMin, Siege, zChaff, Limmat, GRASP,
SATO - Conversion to CNF by adding new variables
- Linear size but exponential state-space
- In practice does not seem to hurt
4Non-Clausal (non-cnf) SAT solving
- DPLL on circuit representation of formula
- Ganai et al. (DAC 2002)
- Lu et al. (CSAT, DAC 2003)
- Thiffault et al. (NoClause, SAT 2004)
This work Non-clausal SAT-solver based on
DPLL
General Matings
5Outline
- Introduction
- General Matings
- Search space pruning
- Learning
- Non-chronological backtracking
- Experimental results
6General Matings example
Formula F (((p ? q) ? ?r ? ?q) ? (?p ? (r ? ?s)
? q))
Vertical path
?
?
?
Vertical path form (vpgraph) of F
Each vertical path corresponds to a term in the
DNF form of F
F is satisfiable iff there exists a vertical path
without opposite literals
7Basic search
vpgraph
c
a
Partial solution
-c
b
-a
b
a
-a
-c
partial assignment
Satisfiable!
8Basic Idea
- Given negation normal formula (NNF) F
- Obtain vpgraph of F (O(k2), k F)
- Find vertical path without opposite literals
- Due to P. Andrews , W. Bibel 1981
- Focus on higher order theorem proving
- Quantifier instantiation is the main problem
9Main problem exponentially many vertical paths
in the vpgraph of F
Sample vpgraph
10Our contributions
- Preventing enumeration of vertical paths
- Search space pruning
- Learning
- Non-chronological backtracking
11Outline
- Introduction
- General Matings
- Search space pruning
- Learning
- Non-chronological backtracking
- Experimental results
12Search space pruning on vpgraph
Avoids enumeration of exponentially many paths
13Conflict when pruning vpgraph
Local conflict
14Local learning
Locally learned clause
(?a ? ?b)
15Non-chronological backtracking
a
b
x
16Non-chronological backtracking
a
b
x
17Limitations of local learning
- Learned clause is useful at a particular node
- Can learn same clause multiple times
Need an equivalent of learning in CNF SAT solvers
18Dual of vpgraph hpgraph
Formula F (((p ? q) ? ?r ? ?q) ? (?p ? (r ? ?s)
? q))
horizontal path
p q
p q
?p
?p
r ?s
r ?s
?r
?r
?q
q
?q
q
hpgraph of F
vpgraph of F
Each horizontal path corresponds to a clause in
the CNF representation of F
19Conflicts and implications in hpgraph
Conflict clause ?r ? ?p
Global conflict
Unit clause p ? q ? r ? ?s Implied literal
r
20Conflicts and implications in hpgraph
- Detecting conflict and implications
- Can be done in linear time
- Why use hpgraph
- Globally learned clauses
- Obtain implications efficiently
21Putting vpgraph and hpgraph together
Formula F (((p ? q) ? ?r ? ?q) ? (?p ? (r ? ?s)
? q))
p, ?r
Global Conflict
Unit clauses (implications)
Local conflict ?
Aim to find a vertical path in vpgraph without
opposite literals
22Outline
- Introduction
- General Matings
- Search space pruning
- Learning
- Non-chronological backtracking
- Experimental results
23Experimental results
Bench mark
Prob- lems
Classification theorems for quasigroups Sorge et
al. SAT 2005
Timeout of 10 minutes per problem per solver
24Performance on individual benchmarks
25Conclusion
- SAT solver based on General Matings
- Graphical representations vpgraph, hpgraph
- Preventing enumeration of vertical paths
- Experiments show promise of this technique
26Questions?
27Conversion to CNF
- Results in more complex formula. Either
- Same variables but exponential size
- Linear size but exponential state-space
- Doesnt seem to hurt in practice
- Original formula
- (a ? b) ? (?c ? d) ? (e ? ?f)
- CNF using expansion
- (a ? ?c ? e) ? (a ? ?c ? ?f) ? (a ? d ? e) ? (a ?
d ? ?f) ? - (b ? ?c ? e) ? (b ? ?c ? ?f) ? (b ? d ? e) ? (b ?
d ? ?f) - CNF using new variables
- (x1 ? x2 ? x3) ?
- (x1 ? ?a ? ?b) ? (?x1 ? a) ? (?x1 ? b) ?
- (x2 ? a ? ?d) ? (?x2 ? ?c) ? (?x2 ? d) ?
- (x3 ? f ? ?e) ? (?x3 ? ?f ) ? (?x3 ? e)
28Using hpgraph for conflict detection
Partial truth assignment rtrue, ptrue
Conflict clause ?r ? ?p
Global conflict
29Using hpgraph to produce implications
Unit clause p ? q ? r ? ?s
Partial truth assignment pfalse, qfalse,
strue
30Obtaining vpgraph
- Constructed directly from a NNF formula
- Time/Space required O(k2)
- k is the size of given formula
- Recently improved to O(k)
- Directed acyclic graph