90 likes | 200 Vues
Learn about decision procedures in first-order logic including equality logic, uninterpreted functions, framework, solving equalities, and more. Understand the algorithmic point of view for solving conjunctions of equalities and disequalities.
E N D
Decision Procedures in First Order Logic Decision Procedures forEquality Logic Daniel Kroening and Ofer Strichman
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 Decision Procedures An algorithmic point of view
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
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 uv if u is in the same equivalence class as v return 'UNSAT'. • Return 'SAT'. Decision Procedures An algorithmic point of view
x4,x5 Example • x1 = x2Æx2 = x3Æx4=x5Æx5x1 x1,x2,x3 Equivalence class Equivalence class Is there a disequality between members of the same class ? Decision Procedures An algorithmic point of view
x4,x5 Next: add Uninterpreted Functions • x1 = x2Æx2 = x3Æx4=x5Æx5x1 ÆF(x1)F(x2) F(x1) x1,x2,x3 Equivalence class F(x2) Equivalence class Equivalence class Equivalence class Decision Procedures An algorithmic point of view
x4,x5 Next: Compute the Congruence Closure • x1 = x2Æx2 = x3Æx4=x5Æx5x1 ÆF(x1)F(x2) x1,x2,x3 F(x1),F(x2) Equivalence class Equivalence class Now - is there a disequality between members of the same class ? This is called theCongruence Closure Decision Procedures An algorithmic point of view
And now: consider a Boolean structure • x1 = x2Ç (x2 = x3Æx4=x5Æx5x1 ÆF(x1) F(x2)) x1,x2 F(x1) F(x2) x4,x5 x2,x3 Equivalence class Equivalence classes case 1 case 2 Syntactic case splitting: this is what we want to avoid! Decision Procedures An algorithmic point of view
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'. Decision Procedures An algorithmic point of view