Semantic Minimization of 3-Valued Propositional Formulas

Semantic Minimization
of 3-Valued Propositional Formulas
Thomas Reps
Alexey Loginov
University of Wisconsin
Mooly Sagiv
Tel-Aviv University
Semantic Minimization
• p  p = 1, right?
• (A): Value of formula  under assignment A
• In 3-valued logic, (A) may equal ?
p  p([p  0]) = 1
p  p([p  ?]) = ?
p  p([p  1]) = 1
• However,
1([p  0]) = 1
= p  p([p  0])
1([p  ?]) = 1  ? = p  p([p  ?])
1([p  1]) = 1
= p  p([p  1])
Motivation
• Dataflow analysis
• Hardware verification
– Symbolic trajectory evaluation
• Shape analysis
Questions
• What does “best” mean?
• Can one find a best formula?
• How?
Two- vs. Three-Valued Logic
Two-valued logic
0
1
Three-valued logic
{0,1}
{0}
{1}
{0}  {0,1}
{1}  {0,1}
Two- vs. Three-Valued Logic
Two-valued logic
1 0
1 1 0
0 0 0
1 0
1 1 1
0 1 0
1
0
Three-valued logic

{1}
{0,1}
{0}

{1}
{0,1}
{0}
{1} {0,1} {0}
{1} {0,1} {0}
{0,1} {0,1} {0}
{0} {0} {0}
{1}
1
{0,1} ½
{1}
{1}
{1}
{1}
{0,1}
{1}
{0,1}
{0,1}
{0}
{1}
{0,1}
{0}
{0}
0
Two- vs. Three-Valued Logic
Two-valued logic
0
1
Three-valued logic
{0,1}
{0}
{1}
Two- vs. Three-Valued Logic
Two-valued logic
0
Three-valued logic
1
½
0
1
0 3½
1 3½
Boolean Connectives [Kleene]

0
1/2
1
0
0
0
0
1/2
0
1/2
1/2
1
0
1/2
1

0
1/2
1
0
0
1/2
1
1/2
1/2
1/2
1
1
1
1
1
Three-Valued Logic
•
•
•
•
1: True
0: False
1/2: Unknown
A join semi-lattice: 0  1 = 1/2
½
Information
order
0
1
0½
1½
Semantic Minimization
1([p  0]) = 1
= p  p([p
 0]) 1([p  ½]) = 1  ½ = p 
p([p  ½]) 1([p  1]) = 1
=
p  p([p  1])
2-valued logic: 1 is equivalent to p  p
3-valued logic: 1 is better than p  p
For a given , is there a best formula?
Yes!
Minimal?
x + x’
x  x’
xy + x’z
xy + x’y’
xy + x’z+ yz
xy’+ x’z’+ yz
No!
Yes!
No!
Yes!
Yes!
No!
Rewrite Rules?
    1
    0
2-Valued Propositional Meaning
0(a) = 0
1(a) = 1
xi(a) = a(xi)
(a) = 1 – (a)
1  2(a) = min(1(a), 2(a))
1  2(a) = max(1(a), 2(a))
3-Valued Propositional Meaning
½(a) = ½
0(a) = 0
1(a) = 1
xi(a) = a(xi)
(a) = 1 – (a)
1  2(a) = min(1(a), 2(a))
1  2(a) = max(1(a), 2(a))
3-Valued Propositional Meaning
½(A) = ½
0(A) = 0
1(A) = 1
xi(A) = A(xi)
(A) = 1 – (A)
1  2(A) = min(1(A), 2(A))
1  2(A) = max(1(A), 2(A))
A = [ p  ½, q  0, r  1, s  ½ ]
[ p  0, q  0,[ p  ½, q  0,[ p  ½, q  0,[ p  1, q  0,
r  1, s  ½ ] r  1, s  1 ] r  1, s  0 ] r  1, s  ½ ]
[ p  0, q  0,[ p  0, q  0,[ p  1, q  0,[ p  1, q  0,
r  1, s  0 ] r  1, s  1 ] r  1, s  0 ] r  1, s  1 ]
Represented by A
The Right Definition of “Best”?
Observation
If for all A,
(A)  (A),
 is better than 
½
0
1
The Right Definition of “Best”?
Observation
If for all A,
(A)  (A),
 is better than 
0(A) = 0
1(A) = 1
½
½
=  ½ (A)
=  ½ (A)
1 is better than ½
0 is better than ½
Acceptance Device
A   iff (A)  1
1
½
½
0
1
0
“Potentially accepts ”
Acceptance Device
A   iff (A)  0
1
½
½
0
1
0
“Potentially rejects ”
Acceptance Device
3-valued
2-valued




Suppose that A represents a, and
a  2-valued assignments. We want:
1. If a  , then A  
2. If a  , then A  
Acceptance Device
2-valued
3-valued
½
Suppose that A represents a, and
a  2-valued assignments. We want:
 1. If a  ½, then A  0 Violated!
2. If a  ½, then A  0
Acceptance Device
2-valued
3-valued
½
Suppose that A represents a, and
a  2-valued assignments. We want:
1. If a  ½, then A  1
 2. If a  ½, then A  1 Violated!
The Right Definition of “Best”?
Observation
If for all A,
(A)  (A),
 is better than 
Not all “better” formulas preserve
potential acceptance of 2-valued assignments
What Does “Best” Mean?
Supervaluational meaning
(A) =

(a)
a rep. by A
Semantic Minimization
(A) = (A)
Truth-functional
semantics
Non-truth-functional
semantics
Minimization
Example
p  p([p  ½]) =

p  p(
a{[p  0],
[p  1]}
p  p([p  0
 p  p([p 
= 11
= 1
= 1([p  ½])
=
Example
½([p  ½]) =
½(a)

a{[p  0],
[p  1]}
=
½([p 
0])
 ½([p
 1])
Semantic Minimization
(A) = (A)
Truth-functional
semantics
Non-truth-functional
semantics
Minimization
 For all A, (A)  (A)
“ is better than ”
Realization of a
Monotonic Boolean Function
[Blamey 1980]
f  Formula[ f ]
b

0
½
1
0
0
½
1
a ½
½
½
1
1
1
1
1
 a’b + 1b + ab + a1 + ab’
 (a’b’)’
Realization of a
Monotonic Boolean Function
[Blamey 1980]
f  Formula[ f ]
b
0
½
1
0
0
½
1
a ½
½
½
0
1
1
1
1
 a’b + ab + a1 + ab’
 (a’b’ + 1b)’
Our Problem
  Formula[]
b
0
½
1

([½, 1]) =
(a)
a{[0,1], [1,1]}
0
0
½
1
a ½
½
½
½
1
1
1
1
([0,0])
 ([1,1])
=11
=
= 1
Special Case:
 contains no occurrences of ½ or 
  contains no occurrences of ½ in corners
b

0
½
1
0
0
½
1
a ½
½
½
1
 a’b + 1b + ab + a1 + ab’
1
1
1
1
 (a’b’)’
 a’b + 1b + ab + a1 + ab’
 (a’b’)’
Special Case:
 contains no occurrences of ½ or 
  contains no occurrences of ½ in corners
b
b
½
0
½
1

0
½
1
0
½
½
½
0
0
½
½
a ½
½
½
½
a ½
½
½
½
1
½
½
½
1
½
½
1
How Do We Obtain ?
Represent  with a pair
  
½
ceiling:   
½
floor:
=0
=1
How Do We Obtain (, )?
0  (a.0, a.0)
1  (a.1, a.1)
½  (a.0, a.1)
xi  (a.a(xi), a.a(xi))
( f ,  f )  ( f ,  f )
( f 1,  f1 )  ( f2 ,  f2 )  ( f 1   f2 ,  f1   
f2 )
( f 1,  f1 )  ( f2 ,  f2 )  ( f 1   f2 ,  f1   
Semantically Minimal Formula
• General case
 primes(  )
 ( primes( 
 ))
• When  contains no occurrences of ½ and

Example
Original formula ()
xy’+ x’z’+ yz
Minimal formula ()
x’y + x’z’+ yz + xy’+ xz + y’z’
A
[x  ½, y  0, z  0]
[x  0, y  1, z  ½]
[x  1, y  ½, z  1]
(A)
1
1
1
(A
½
½
½
Example
Original formula ( = if x then y else z)
xy + x’z
Minimal formula ()
xy+ x’z+ yz
A
[x  ½, y  1, z  1]
(A)
1
(A
½
Demo
Related Work
• [Blamey 1980, 1986]
– Realization of a monotonic Boolean function
• [Godefroid & Bruns 2000]
– Supervaluational (“thorough”) semantics for
model checking partial Kripke structures
– For propositional formulas
Deciding “(A)  1?” is NP-complete
Our Questions
• What does “best” mean?
For all A, (A) = (A)
• Can one find a best formula?
Yes
• How?
Create (, )
Return  primes(  )
 ( primes( 