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 Shape analysis Symbolic trajectory evaluation Shape analysis Change example to xy + x’z vs xy + x’z + yz?
Questions What does “best” mean? Can one find a best formula? How? Quote Minato for Floor and ceiling? Generating minimal formulas is simpler and cleaner than it might seem.
Two- vs. Three-Valued Logic 1 Two-valued logic {0,1} {0} {1} Three-valued logic {0} {0,1} {1} {0,1}
Two- vs. Three-Valued Logic Two-valued logic Three-valued logic {1} {0,1} {0} 1 ½ 1
Two- vs. Three-Valued Logic 1 Two-valued logic {0} {1} Three-valued logic {0,1}
Two- vs. Three-Valued Logic 1 Two-valued logic ½ 1 Three-valued logic 0 3½ 1 3½
Boolean Connectives [Kleene]
Three-Valued Logic 1 ½ 0 ½ 1 ½ 1: True 0: False 1/2: Unknown A join semi-lattice: 0 1 = 1/2 ½ 1 Information order 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’ No! x x’ Yes! xy + x’z xy + x’y’ xy + x’z+ yz
Rewrite Rules? 1 0 Change example to xy + x’z vs xy + x’z + yz?
2-Valued Propositional Meaning xi(a) = a(xi) (a) = 1 – (a) 1 2(a) = min(1(a), 2(a)) 1 2(a) = max(1(a), 2(a)) Change example to xy + x’z vs xy + x’z + yz?
3-Valued Propositional Meaning xi(a) = a(xi) (a) = 1 – (a) 1 2(a) = min(1(a), 2(a)) 1 2(a) = max(1(a), 2(a)) Change example to xy + x’z vs xy + x’z + yz?
3-Valued Propositional Meaning xi(A) = A(xi) (A) = 1 – (A) 1 2(A) = min(1(A), 2(A)) 1 2(A) = max(1(A), 2(A)) Change example to xy + x’z vs xy + x’z + yz?
Represented by A A = [ p ½, q 0, r 1, s ½ ] [ p 0, q 0, Change example to xy + x’z vs xy + x’z + yz? Represented by A
The Right Definition of “Best”? Observation If for all A, (A) (A), is better than ½ 1 Change example to xy + x’z vs xy + x’z + yz?
The Right Definition of “Best”? Observation If for all A, (A) (A), is better than 0(A) = 0 ½ = ½ (A) 0 is better than ½ 1(A) = 1 ½ = ½ (A) 1 is better than ½ Change example to xy + x’z vs xy + x’z + yz?
“Potentially accepts ” Acceptance Device A iff (A) 1 1 ½ ½ 1 Change example to xy + x’z vs xy + x’z + yz? “Potentially accepts ”
“Potentially rejects ” Acceptance Device A iff (A) 0 1 ½ ½ 1 Change example to xy + x’z vs xy + x’z + yz? “Potentially rejects ”
Acceptance Device Suppose that A represents a, and 3-valued 2-valued Change example to xy + x’z vs xy + x’z + yz? Suppose that A represents a, and a 2-valued assignments. We want: If a , then A If a , then A
Acceptance Device ½ Suppose that A represents a, and 3-valued 2-valued ½ Change example to xy + x’z vs xy + x’z + yz? Suppose that A represents a, and a 2-valued assignments. We want: If a ½, then A 0 If a ½, then A 0 Violated!
Acceptance Device ½ Suppose that A represents a, and 3-valued 2-valued ½ Change example to xy + x’z vs xy + x’z + yz? Suppose that A represents a, and a 2-valued assignments. We want: If a ½, then A 1 If a ½, then A 1 Violated!
The Right Definition of “Best”? Observation If for all A, (A) (A), is better than Change example to xy + x’z vs xy + x’z + yz? Not all “better” formulas preserve potential acceptance of 2-valued assignments
Supervaluational meaning What Does “Best” Mean? Supervaluational meaning (A) = (a) a rep. by A Change example to xy + x’z vs xy + x’z + yz?
Semantic Minimization (A) = (A) Non-truth-functional semantics Truth-functional Minimization Change example to xy + x’z vs xy + x’z + yz?
Example p p([p ½]) = p p(a) = p p([p 0]) = 1 1 = 1 = 1([p ½]) Change example to xy + x’z vs xy + x’z + yz?
Example ½([p ½]) = ½(a) = ½([p 0]) ½([p 1]) = ½ ½ = ½ = ½([p ½]) Change example to xy + x’z vs xy + x’z + yz?
Semantic Minimization (A) = (A) Non-truth-functional semantics Truth-functional Minimization Change example to xy + x’z vs xy + x’z + yz? For all A, (A) (A) “ is better than ”
Realization of a Monotonic Boolean Function [Blamey 1980] f Formula[ f ] b ½ 1 Change example to xy + x’z vs xy + x’z + yz? a a’b + 1b + ab + a1 + ab’ (a’b’)’
Realization of a Monotonic Boolean Function [Blamey 1980] f Formula[ f ] b ½ 1 Change example to xy + x’z vs xy + x’z + yz? a a’b + ab + a1 + ab’ (a’b’ + 1b)’
Formula[] Our Problem Formula[] b ([½, 1]) = (a) a{[0,1], [1,1]} = ([0,0]) ([1,1]) = 1 1 = 1 ½ 1 Change example to xy + x’z vs xy + x’z + yz? a
Special Case: contains no occurrences of ½ or contains no occurrences of ½ in corners b ½ 1 a’b + 1b + ab + a1 + ab’ (a’b’)’ Change example to xy + x’z vs xy + x’z + yz? a a’b + 1b + ab + a1 + ab’ (a’b’)’
Special Case: contains no occurrences of ½ or contains no occurrences of ½ in corners b b ½ 1 ½ 1 Change example to xy + x’z vs xy + x’z + yz? a a
How Do We Obtain ? Represent with a pair floor: ½ = 0 ceiling: ½ = 1 Change example to xy + x’z vs xy + x’z + yz?
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 f2 ) BDD operations Change example to xy + x’z vs xy + x’z + yz?
Semantically Minimal Formula General case primes( ) ( primes( )) When contains no occurrences of ½ and primes( ) Quote Minato for Floor and ceiling? Generating minimal formulas is simpler and cleaner than it might seem.
Example Original formula () xy’+ x’z’+ yz Minimal formula () x’y + x’z’+ yz + xy’+ xz + y’z’ A (A) (A) [x ½, y 0, z 0] 1 ½ [x 0, y 1, z ½] 1 ½ [x 1, y ½, z 1] 1 ½ Change example to xy + x’z vs xy + x’z + yz?
Example Original formula ( = if x then y else z) xy + x’z Minimal formula () xy+ x’z+ yz A (A) (A) [x ½, y 1, z 1] 1 ½ Change example to xy + x’z vs xy + x’z + yz?
Demo Change example to xy + x’z vs xy + x’z + yz?
Related Work [Blamey 1980, 1986] [Godefroid & Bruns 2000] 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 Quote Minato for Floor and ceiling? Generating minimal formulas is simpler and cleaner than it might seem.
Our Questions What does “best” mean? Can one find a best formula? How? For all A, (A) = (A) Can one find a best formula? Yes How? Create (, ) Return primes( ) ( primes( )) Quote Minato for Floor and ceiling? Generating minimal formulas is simpler and cleaner than it might seem.
Change example to xy + x’z vs xy + x’z + yz?