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 = 11 = 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]) =11 = = 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(
© Copyright 2025 Paperzz