Equality Logic and Uninterpreted Functions
Transcription
Equality Logic and Uninterpreted Functions
Generating minimum transitivity constraints in P-time for deciding Equality Logic Ofer Strichman and Mirron Rozanov Technion, Haifa, Israel Technion 1 Deciding Equality Logic (TE) The eager approach: TE ! Pr Bryant & Velev [BV-CAV’00] – Boolean satisfiability with transitivity constraints. Meir and Strichman [MS-CAV’05] – Yet another decision procedure for equality logic. This work: a ‘closure’ on [MS-CAV’05] Technion 2 Basic notions E: x = y Æ y = z Æ z x (non-polar) Equality Graph: y x z Technion 3 From Equality to Propositional Logic E : x1 = x2 Æ x2 = x3 Æ x1 x3 sk : e1,2 Æ e2,3 Æ :e1,3 x1 e1,3 [BV-CAV'00] – the Sparse method x2 x3 Encode all edges with Boolean variables Add transitivity constraints Technion 4 From Equality to Propositional Logic E : x1 = x2 Æ x2 = x3 Æ x1 x3 sk : e1,2 Æ e2,3 Æ :e1,3 x1 e1,3 [BV-CAV'00] – the Sparse method x2 x3 Transitivity Constraints: For each cycle of size n, forbid a true assignment to n-1 edges T S = (e1,2 Æ e2,3 ! e1,3) Æ (e1,2 Æ e1,3 ! e2,3) Æ (e1,3 Æ e2,3 ! e1,2) Check: sk Æ T S Technion 5 From Equality to Propositional Logic [BV-CAV'00] – the Sparse method Thm-1: It is sufficient to constrain chord-free simple cycles e2 e1 e5 e3 e4 There can be an exponential number of chord-free simple cycles… Technion 6 From Equality to Propositional Logic [BV-CAV'00] – the Sparse method Make the graph ‘chordal’. In a chordal graph, it is sufficient to constrain only triangles. Polynomial # of edges and constraints. # constraints = 3 £ #triangles Technion 7 An improvement [MS-CAV’05] – the RTC method So far we did not consider the polarity of the edges. E: x = y Æ y = z Æ z x Assuming E is in Negation Normal Form y (polar) Equality Graph: x Technion z 8 An improvement Reduced Transitivity Constraints (RTC) Here, T R = e3 Æ e2 ! e1 is sufficient z T Allowing e.g. :x = z, x = y, z y T e3 e1 x F e2 ’:x = z, x = y, z = y = y T This is only true because of monotonicity of NNF Technion 9 Definitions Dfn-1: A contradictory cycle is a cycle with exactly one disequality edge. T T C= T T F Dfn-2: A contradictory Cycle C is constrained under T if T does not allow such an assignment. Technion 10 Main theorem [MS-CAV’05] Let T R be a conjunction of transitivity constraints. If T R constrains all simple contradictory cycles then E is satisfiable iff sk Æ T R is satisfiable The Equality Formula Technion 11 Transitivity: 5 constraints RTC: 0 constraints T T T Transitivity: 5 constraints RTC: 1 constraint T F Technion 12 Applying RTC How can we use the theorem without enumerating contradictory cycles ? Answer: Consider the chordal graph. Still – which triangles ? which constraints? Technion 14 The RTC solution [MS-CAV’05] x2 x0 x4 cache: e0,2 Æ e1,2 e0,1 Æ e e e 1,3 2,3 1,2 e2,4 Æ e3,4 e2,3 e0,2 Æ e0,4 e2,4 x1 x3 1) Exp # cycles to traverse 2) Not all cycles are simple. Solution to 1): Stop before adding an existing constraint Solution to 2): Explore only simple cycles These solutions cannot be combined. Technion 15 Constraining simple contradictory cycles x7 1. Focus on each solid edge es separately - (find its dashed Bi-connected component) 2. Make the graph chordal x0 x2 x4 x3 x5 es x1 Dowe weneed: need: Do Technion x6 Æee3,6! !ee3,5 ?? 5,6Æ ee3,5 3,6 5,6 18 Constraining simple contradictory cycles 3. Remove a vertex xk that leans on an edge (xi,xj) 4. Is (xi,xj) on a simple cycle with es? O(|E|) 5. If yes, add (ek,i Æ ek,j ! ei,j) x0 e5,6 Æ e3,6 e3,5 x2 x4 x3 x5 es x1 Technion x6 19 Constraining simple contradictory cycles 3. Remove a vertex vk that leans on an edge (vi,vj) 4. Does (vi,vj) on the same simple cycle with es? 5. If yes, add (ek,i Æ ek,j ! ei,j) x0 e5,6 Æ e3,6 e3,5 x2 x4 es x1 x5 x3 Technion x6 20 Correctness The set of generated constraints is sufficient. The set of generated constraints is necessary. Technion 21 Random graphs (Satisfiable) [MS-CAV’05] Technion 22 Results – random graphs 400000 350000 Constraints 300000 250000 RTC RTCS 200000 150000 100000 50000 0 10 30 50 70 % dashed V=200, E=800, 16 random topologies # constraints: Run time: reduction of 17% reduction of 32% Technion 23 Results – random graphs 450 400 run-time 350 300 250 RTC RTCS 200 150 100 50 0 10 30 50 70 % dashed V=200, E=800, 16 random topologies # constraints: Run time: reduction of 17% reduction of 32% Technion 24 SMT benchmarks Never really finished the implementation… Our 4-5 experiments with them showed that We still have a small advantage comparing to the Sparse method. Yet Yices is much better…. A result of the Uninterpreted functions. Are there formulas for which the eager approach still wins? Generating meaningful equality formulas is hard… Technion 25 A crafted example 2n assignments satisfy sk. None satisfy the theory. Technion 26 Thank you Technion 27 Results Uclid benchmarks* (all unsat) * Results strongly depend on the reduction method of Uninterpreted Functions. Technion 28 Possible refutations of CNF’s generated by Sparse Boolean Encoding Æ B Transitivity constraints TS TR B P3 P2 P0 P4 TS–TR P1 P2 ofaccording the formtoe1the Æmain e2 ! theorem. e3 AConstraints P3 proof exists Hypothesis: (T S – T R) clauses hardly participate in the proof Thm: B is satisfiable ! B Æ (T S – T R) is satisfiable Technion 32 T R CNF B T S- T R TR Average on: 10 graphs, ~890K clauses All Unsat Sparse: ~ 22 sec. RTC: ~ 12 Sec. B Core B – Boolean encoding T R – RTC constraints T S – Sparse constraints T S- T R Technion 33 Summary The RTC method is ~dominant over the Sparse method. Open issue: find a P-time algorithm that exploits the full power of the main theorem. Technion 34 Example: Circuit Transformations Stage 1 Stage 2 A pipeline processes data in stages Data is processed in parallel – as in an assembly line Formal Model: Stage 3 Technion 40 Example: Circuit Transformations The maximum clock frequency depends on the longest path between two latches Note that the output of g is used as input to k We want to speed up the design by postponing k to the third stage Technion 41 Validating Circuit Transformations ? = Technion 42 Validating a compilation process Target program u1 = x1 + y1; u2 = x2 + y2; z = u1 u2 ; Compilation Source program z = (x1 + y1) (x2 + y2); Need to prove that: (u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2) Source Target Technion 43 Validating a compilation process Target program u1 = x1 + y1; u2 = x2 + y2; z = u1 u2 ; Compilation Source program z = (x1 + y1) (x2 + y2); Need to prove that: (u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2) f1 f2 g1 f1 f2 g2 Technion 44 Validating a compilation process Instead, prove: under functional consistency: for every uninterpreted function f x = y ! f(x) = f(y) Need to prove that: (u1 = x1 + y1 u2 = x2 + y2 z = u1 u2) $ z = (x1 + y1) (x2 + y2) Which translates to (via Ackermann’s reduction): g f1 f2 1 f1 f2 g2 Technion 45 Definitions for the proof… A Violating cycle under an assignment R: F eF eT1 T Either dashed or solid T eT2 This assignment violates T S but not necessarily T R Technion 47 More definitions for the proof… An edge e = (vi,vj) is equal under an assignment iff there is an equality path between vi and vj all assigned T under . Denote: v3 F T T v1 T Technion T v2 48 More definitions for the proof… An edge e = (vi,vj) is disequal under an assignment iff there is a disequality path between vi and vj in which the solid edge is the only one assigned false by . Denote: v3 F T T v1 T Technion T v2 49 Proof… Observation 1: The combination is impossible if = R (recall: R ² T R) v3 F T T v1 v2 Observation 2: if (v1,v3) is solid, then Technion 50 ReConstructing S Type 1: Type 2: It is not the case that Otherwise it is not the case that v3 v3 F F T T F T T v1 T v1 v2 Assign S (e23) = F v2 Assign (e13) = T In all other cases S = R Technion 51 ReConstructing S Starting from R, repeat until convergence: (eT) := F in all Type 1 cycles (eF) := T in all Type 2 cycles All Type 1 and Type 2 triangles now satisfy T S B is still satisfied (monotonicity of NNF) Left to prove: all contradictory cycles are still satisfied Technion 52 Proof… Invariant: contradictory cycles are not violating throughout the reconstruction. T v3 F T F T T v1 v2 contradicts the precondition to make this assignment… Technion 53 Proof… Invariant: contradictory cycles are not violating throughout the reconstruction. v3 F T T T T F v1 v2 contradicts the precondition to make this assignment… Technion 54 Constraining simple contradictory cycles The constraint e3,6 Æ e3,5 e5,6 is not added x0 x1 x2 cache: … e5,6 Æ e4,6 e4,5 x4 x5 x3 x6 Open problem: constrain simple contradictory cycles in P time Technion 55 Constraining simple contradictory cycles the constraint e3,6graph Æ e3,5has e35,6 is not added, though needed Suppose the more edges Here we will stop, although … cache: x0 x1 … e5,6 Æ e4,6 e4,5 x2 x4 x5 x3 x6 Open problem: constrain simple contradictory cycles in P time Technion 56