Presentation is loading. Please wait.

Presentation is loading. Please wait.

Decision Procedures in First Order Logic

Similar presentations


Presentation on theme: "Decision Procedures in First Order Logic"— Presentation transcript:

1 Decision Procedures in First Order Logic
Decision Procedures for Equality Logic Daniel Kroening and Ofer Strichman

2 Decision Procedures An algorithmic point of view
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 Decision Procedures An algorithmic point of view

3 Basic assumptions and notations
Input formulas are in NNF Input formulas are checked for satisfiability Formula with Uninterpreted Functions: UF Equality formula: E Decision Procedures An algorithmic point of view

4 First: conjunction of equalities
Input: A conjunction of equalities and disequalities Define an equivalence class for each variable. For each equality x = y unite the equivalence classes of x and y. Repeat until convergence. For each disequality u  v if u is in the same equivalence class as v return 'UNSAT'. Return 'SAT'. student’s project: implement it with set-union. See page 448 in the algorithms book (CLR) Decision Procedures An algorithmic point of view

5 Decision Procedures An algorithmic point of view
Example x1 = x2 Æ x2 = x3 Æ x4=x5 Æ x5  x1 x1,x2,x3 x4,x5 This is SAT – the only disequality is between different classes Equivalence class Equivalence class Is there a disequality between members of the same class ? Decision Procedures An algorithmic point of view

6 Next: add Uninterpreted Functions
x1 = x2 Æ x2 = x3 Æ x4=x5 Æ x5  x1 Æ F(x1) F(x2) F(x1) x4,x5 x1,x2,x3 Equivalence class Yes! F(x2) Equivalence class Equivalence class Equivalence class Decision Procedures An algorithmic point of view

7 Next: Compute the Congruence Closure
x1 = x2 Æ x2 = x3 Æ x4=x5 Æ x5  x1 Æ F(x1) F(x2) x1,x2,x3 F(x1),F(x2) x4,x5 Yes! Equivalence class Equivalence class Now - is there a disequality between members of the same class ? This is called the Congruence Closure Decision Procedures An algorithmic point of view

8 And now: consider a Boolean structure
x1 = x2 Ç (x2 = x3 Æ x4=x5 Æ x5  x1 Æ F(x1)  F(x2)) x1,x2 x2,x3 x4,x5 F(x1) F(x2) Equivalence class Equivalence classes Yes! case 1 case 2 Syntactic case splitting: this is what we want to avoid! Decision Procedures An algorithmic point of view

9 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'. Note that we ignore constants here for the time being. if there are constants then the presence of two constants in the same class makes it unsat Decision Procedures An algorithmic point of view


Download ppt "Decision Procedures in First Order Logic"

Similar presentations


Ads by Google