Download presentation
Presentation is loading. Please wait.
Published byAmie Daniela James Modified over 9 years ago
1
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic
2
Decision Procedures An algorithmic point of view2 Outline Introduction Definition, complexity Reducing Uninterpreted Functions to Equality Logic Using Uninterpreted Functions in proofs Simplifications Introduction to the decision procedures The framework: assumptions and Normal Forms General terms and notions Solving a conjunction of equalities Simplifications
3
Decision Procedures An algorithmic point of view3 Basic assumptions and notations Input formulas are in NNF Input formulas are checked for satisfiability Formula with Uninterpreted Functions: UF Equality formula: E
4
Decision Procedures An algorithmic point of view4 First: conjunction of equalities Input: A conjunction of equalities and disequalities 1. Define an equivalence class for each variable. For each equality x = y unite the equivalence classes of x and y. Repeat until convergence. 2. For each disequality u v if u is in the same equivalence class as v return 'UNSAT'. 3. Return 'SAT'.
5
Decision Procedures An algorithmic point of view5 Example x 1 = x 2 Æ x 2 = x 3 Æ x 4 = x 5 Æ x 5 x 1 x1,x2,x3x1,x2,x3 x4,x5x4,x5 Equivalence class Is there a disequality between members of the same class ?
6
Decision Procedures An algorithmic point of view6 Next: add Uninterpreted Functions x 1 = x 2 Æ x 2 = x 3 Æ x 4 = x 5 Æ x 5 x 1 Æ F ( x 1 ) F ( x 2 ) x1,x2,x3x1,x2,x3 x4,x5x4,x5 Equivalence class F(x1)F(x1) F(x2)F(x2)
7
Decision Procedures An algorithmic point of view7 Next: Compute the Congruence Closure x 1 = x 2 Æ x 2 = x 3 Æ x 4 = x 5 Æ x 5 x 1 Æ F ( x 1 ) F ( x 2 ) x1,x2,x3x1,x2,x3 x4,x5x4,x5 Equivalence class Now - is there a disequality between members of the same class ? This is called the Congruence Closure F ( x 1 ), F ( x 2 )
8
Decision Procedures An algorithmic point of view8 And now: consider a Boolean structure x 1 = x 2 Ç ( x 2 = x 3 Æ x 4 = x 5 Æ x 5 x 1 Æ F ( x 1 ) F ( x 2 )) x4,x5x4,x5 x2,x3x2,x3 case 1case 2 Syntactic case splitting: this is what we want to avoid! x1,x2x1,x2 Equivalence class Equivalence classes F(x1)F(x1) F(x2)F(x2)
9
Decision Procedures An algorithmic point of view9 Deciding Equality Logic with UFs Input: Equality Logic formula UF Convert UF to DNF For each clause: Define an equivalence class for each variable and each function instance. For each equality x = y unite the equivalence classes of x and y. For each function symbol F, unite the classes of F ( x ) and F ( y ). Repeat until convergence. If all disequalities are between terms from different equivalence classes, return 'SAT'. Return 'UNSAT'.
10
Decision Procedures An algorithmic point of view10 Basic notions E : x = y Æ y = z Æ z x The Equality predicates: { x = y, y = z, z x } which we can break to two sets: E = ={ x = y, y = z }, E = { z x } The Equality Graph G E ( E ) = h V, E =, E i (a.k.a “E-graph”) x y z
11
Decision Procedures An algorithmic point of view11 Basic notions E : x = y Æ y = z Æ z x unsatisfiable 2 E : x = y Æ y = z Ç z x satisfiable The graph G E ( E ) represents an abstraction of E It ignores the Boolean structure of E x y z
12
Decision Procedures An algorithmic point of view12 Basic notions Dfn: a path made of E = edges is an Equality Path. we write x =* z. Dfn: a path made of E = edges + exactly one edge from E is a Disequality Path. We write x * y. x y z
13
Decision Procedures An algorithmic point of view13 Basic notions Dfn. A cycle with one disequality edge is a Contradictory Cycle. In a Contradictory Cycle, for every two nodes x, y it holds that x =* y and x * y. x y z
14
Decision Procedures An algorithmic point of view14 Basic notions Dfn: A subgraph is called satisfiable iff the conjunction of the predicates represented by its edges is satisfiable. Thm: A subgraph is unsatisfiable iff it contains a Contradictory cycle x y z
15
Decision Procedures An algorithmic point of view15 Basic notions Thm: Every Contradictory Cycle is either simple or contains a simple contradictory cycle
16
Decision Procedures An algorithmic point of view16 Simplifications, again Let S be the set of edges that are not part of any Contradictory Cycle Thm: replacing all solid edges in S with False, and all dashed edges in S with True, preserves satisfiability
17
Decision Procedures An algorithmic point of view17 Simplification: example x1x1 x2x2 x3x3 x4x4 ( x 1 = x 2 Ç x 1 x 4 ) Æ ( x 1 x 3 Ç x 2 = x 3 ) ( x 1 = x 2 Ç True) Æ ( x 1 x 3 Ç x 2 = x 3 ) ( : False Ç True) = True Satisfiable! True False
18
Decision Procedures An algorithmic point of view18 Syntactic vs. Semantic splits So far we saw how to handle disjunctions through syntactic case-splitting. There are much better ways to do it than simply transforming it to DNF: Semantic Tableaux, SAT-based splitting, others… We will investigate some of these methods later in the course.
19
Decision Procedures An algorithmic point of view19 Now we start looking at methods that split the search space instead. This is called semantic splitting. SAT is a very good engine for performing semantic splitting, due to its ability to guide the search, prune the search-space etc. Syntactic vs. Semantic splits
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.