Professional Documents
Culture Documents
F SAT Solver
CNF
f = ( a + c ) ( b + c ) (¬a + ¬b + ¬c )
Consider an inverter: y = x
yx
= (y x ) ( x y)
=( y x ) (x y)
c = ab
c ab
= (c ab ) (ab c)
=(c ab ) (a b c)
=(c a) (c b ) (a b c)
e = abcd
e abcd
= (e abcd ) (abcd e)
=(e abcd ) ((abcd) e)
= (e ab ) (e cd) ((abcd) e)
= (e a ) (e b) (e c ) (e d) (abcde)
F(A,B, C) A B C A B C A B C A B C
M0 M1 M2 M4 (0,1,2,4)
9
Example: 4-Input AND Gate
a b c d e N
a b c d e
0 0 0 0 0 1
0 0 0 0 0
0 0 0 1 0 1
0 0 0 1 0
0 0 1 0 0 1
0 0 1 0 0
0 0 1 1 0 1
0 0 1 1 0
0 1 0 0 0 1
0 1 0 0 0
0 1 0 1 0 1
0 1 0 1 0
0 1 1 0 0 1
0 1 1 0 0
0 1 1 1 0 1
0 1 1 1 0
1 0 0 0 0 1
1 0 0 0 0
1 0 0 1 0 1
1 0 0 1 0
1 0 1 0 0 1
1 0 1 0 0
1 0 1 1 0 1
1 0 1 1 0
1 1 0 0 0 1
1 1 0 0 0
1 1 0 1 0 1
1 1 0 1 0
1 1 1 0 0 1
1 1 1 0 0
1 1 1 1 1 1
1 1 1 1 1
0
C1=C2 means
for all values for inputs of C1 and C2, we have o1=o2.
The equivalence problem is a validity problem:
I. C1=C2
=0
Unsatisfiable !
Conclusion: a. c1=c2
(I. C1=C2)
I. C1=C2 I. (C1 C2)
Negation
Negation
I. C1C2
( I. (C1 C2) )
I. C1=C2
2 Negations
Method 1:
CNF_CR(C1)CNF_CR(C2) CNF [(o1=o2)]
=CNF_CR(C1)CNF_CR(C2) (o1+o2) (o1+o2)
CNF_CR(…) =Characteristic function in CNF (…)
c2
CR(C1)=a’c1+ac1’
CR(C2)=a’c2+ac2’
CR(XOR)=c1’c2’y’+c1’c2y+c1c2’y+c1c2y’
P=CR(C1)CR(C2)CR(XOR)=a’c1c2y’+ac1’c2’y’
c1≠c2: y
P y = 0 (unsatisfiable)
c2
CR(C1)=a’c1+ac1’
CR(C2)=a’c2’+ac2
CR(XOR)=c1’c2’y’+c1’c2y+c1c2’y+c1c2y’
P=CR(C1)CR(C2)CR(XOR)=a’c1c2’y+ac1’c2y
c1≠c2: y
P y = a’c1c2’y+ac1’c2y (satisfiable)
XOR(a,b,c)=a’b’c’+a’bc+ab’c+abc’
a ≠ b= a’b+ab’ =c
XOR(a,b,c)c=a’b+ab’