fdpll a first order davis putnam logemann loveland
play

FDPLL A First-Order Davis-Putnam-Logemann-Loveland Procedure - PowerPoint PPT Presentation

FDPLL A First-Order Davis-Putnam-Logemann-Loveland Procedure Peter Baumgartner Institut f ur Informatik Universit at Koblenz-Landau Germany http://www.uni-koblenz.de/~peter/ FDPLL A First-Order Davis-Putnam-Logemann-Loveland


  1. Propositional DPLL as a Semantic Tree Method (1) A ∨ B (2) C ∨ ¬ A (3) D ∨ ¬ C ∨ ¬ A (4) ¬ D ∨ ¬ B { B } | = A ∨ B A ¬ A { B } | = C ∨ ¬ A { B } | = D ∨ ¬ C ∨ ¬ A C ¬ C B ¬ B ⋆ ⋆ { B } | = ¬ D ∨ ¬ B D ¬ D ⋆ Model { B } found. A Branch stands for an interpretation Purpose of splitting: Satisfy a clause that is currently “false” Close branch if some clause plainly contradicts it ( ⋆ ) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.8

  2. Propositional DPLL as a Semantic Tree Method (1) A ∨ B (2) C ∨ ¬ A (3) D ∨ ¬ C ∨ ¬ A (4) ¬ D ∨ ¬ B { B } | = A ∨ B A ¬ A { B } | = C ∨ ¬ A { B } | = D ∨ ¬ C ∨ ¬ A C ¬ C B ¬ B ⋆ ⋆ { B } | = ¬ D ∨ ¬ B D ¬ D ⋆ Model { B } found. A Branch stands for an interpretation Purpose of splitting: Satisfy a clause that is currently “false” Close branch if some clause plainly contradicts it ( ⋆ ) Sound and complete, also for (minimal) model reasoning FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.8

  3. DP vs. DPLL Two versions of the main inference rule: Davis, Putnam 1960: “Rule for eliminating atomic formulas”: 1. Select an atom A 2. Resolve (!) on all clauses A ∨ . . . and ¬ A ∨ . . . 3. Delete all clauses A ∨ . . . and ¬ A ∨ . . . FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.9

  4. DP vs. DPLL Two versions of the main inference rule: Davis, Putnam 1960: “Rule for eliminating atomic formulas”: 1. Select an atom A 2. Resolve (!) on all clauses A ∨ . . . and ¬ A ∨ . . . 3. Delete all clauses A ∨ . . . and ¬ A ∨ . . . Problem: Step 2 involves multiplying out � � -formula to � � -formula FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.9

  5. DP vs. DPLL Two versions of the main inference rule: Davis, Putnam 1960: “Rule for eliminating atomic formulas”: 1. Select an atom A 2. Resolve (!) on all clauses A ∨ . . . and ¬ A ∨ . . . 3. Delete all clauses A ∨ . . . and ¬ A ∨ . . . Problem: Step 2 involves multiplying out � � -formula to � � -formula Solution: Davis, Logemann, Loveland 1962: “Splitting Rule”: 1. Select an atom A 2. Split into cases A and ¬ A . 3. In each case, simplify according to new information. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.9

  6. DP vs. DPLL Two versions of the main inference rule: Davis, Putnam 1960: “Rule for eliminating atomic formulas”: 1. Select an atom A 2. Resolve (!) on all clauses A ∨ . . . and ¬ A ∨ . . . 3. Delete all clauses A ∨ . . . and ¬ A ∨ . . . Problem: Step 2 involves multiplying out � � -formula to � � -formula Solution: Davis, Logemann, Loveland 1962: “Splitting Rule”: 1. Select an atom A 2. Split into cases A and ¬ A . 3. In each case, simplify according to new information. Davis 1963; Chinlund, Davis, Hinman, McIlroy 1964: Improvement of first-order case. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.9

  7. Overview Propositional DPLL as a semantic tree method ✔ First-Order DPLL so far FDPLL Relation to other calculi FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.10

  8. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) Outer loop: Grounding Inner loop: Propositional DPLL FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  9. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) P(f(a), a) Outer loop: Grounding ¬ P(a, a) Inner loop: Propositional DPLL FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  10. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) P(f(a), a) Outer loop: Grounding ¬ P(a, a) Inner loop: Sat? Propositional No Yes DPLL STOP: Continue Proof found Outer Loop FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  11. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) P(f(a), a) P(f(a), a) Outer loop: Grounding ¬ P(a, a) ¬ P(a, a) ¬ P(f(a), a) Inner loop: Propositional DPLL FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  12. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) P(f(a), a) P(f(a), a) Outer loop: Grounding ¬ P(a, a) ¬ P(a, a) ¬ P(f(a), a) Inner loop: Sat? Propositional No Yes DPLL STOP: Continue Proof found Outer Loop FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  13. DPLL - The First-Order Case (1962) Given Formula Clause Form ∀ x ∃ y P(y, x) P(f(x), x) Preprocessing: → ∃ y P(y, a) ¬ P(y, a) P(f(a), a) P(f(a), a) Outer loop: Grounding ¬ P(a, a) ¬ P(a, a) ¬ P(f(a), a) Inner loop: Sat? Propositional No Yes DPLL STOP: Continue Proof found Outer Loop Problems/Issues: Controlling the grounding process in outer loop (irrelevant clauses) Repeat work across inner loops Weak redundancy criterion within inner loop FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.11

  14. Controlling the Grounding Process Davis 1963; Chinlund, Davis, Hinman, McIlroy 1964: “Linked Conjunct Method”: Admissible clause set: Non-admissible clause set: P(a) ∨ Q(a) P(b) ∨ Q(a) ¬ P(a) ∨ Q(a) ¬ P(a) ∨ Q(a) ¬ Q(a) ∨ P(a) ¬ Q(a) ∨ P(a) Every literal has a mate The literal P(b) is pure Anticipates unification! Note: Robinson paper on Resolution 1965 FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.12

  15. Controlling the Grounding Process Davis 1963; Chinlund, Davis, Hinman, McIlroy 1964: “Linked Conjunct Method”: Admissible clause set: Non-admissible clause set: P(a) ∨ Q(a) P(b) ∨ Q(a) ¬ P(a) ∨ Q(a) ¬ P(a) ∨ Q(a) ¬ Q(a) ∨ P(a) ¬ Q(a) ∨ P(a) Every literal has a mate The literal P(b) is pure Anticipates unification! Note: Robinson paper on Resolution 1965 Some more recent work in this tradition: Lee&Plaisted 1992, Chu&Plaisted 1994, Plaisted & Zhu 1997: (O)(S)HL Billon 1996: Disconnection Method Baumgartner 1998: Hyper Tableaux Next Generation Parkes 1999: Lifted Search Engines for Satisfiability May show very good performance! FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.12

  16. Summary / Further Plan FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.13

  17. Summary / Further Plan Instance based methods reduce first-order to propositional logic FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.13

  18. Summary / Further Plan Instance based methods reduce first-order to propositional logic E.g. Resolution performs intrinsic first-order reasoning Advantages: Representation: Infinitely many inferences finitely represented: ¬ P(y, z) ∨ Q(y, z) P(f(x), x) Q(f(x), x) Infinitely many inferences in instance based methods FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.13

  19. Summary / Further Plan Instance based methods reduce first-order to propositional logic E.g. Resolution performs intrinsic first-order reasoning Advantages: Representation: Infinitely many inferences finitely represented: ¬ P(y, z) ∨ Q(y, z) P(f(x), x) Q(f(x), x) Infinitely many inferences in instance based methods Redundancy testing: E.g. by subsumption: ¬ P(y, z) subsumes ¬ P(y, y) ∨ Q(y, y) Lack of redundancy testing in instance based methods FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.13

  20. Overview Propositional DPLL as a semantic tree method ✔ First-Order DPLL so far ✔ FDPLL Relation to other calculi FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.14

  21. Meta-Level Strategy Lifted data structures: Propositional First-Order Reasoning Reasoning Resolution A ∨ ¬ B ∨ C P(x, y) ∨ ¬ Q(x, z) ∨ R(y, z) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.15

  22. Meta-Level Strategy Lifted data structures: Propositional First-Order Reasoning Reasoning Resolution A ∨ ¬ B ∨ C P(x, y) ∨ ¬ Q(x, z) ∨ R(y, z) DPLL A ¬ A P(x, y) ¬ P(x, y) ¬ B B ¬ P(x, a) P(x, a) ¬ C ¬ Q(x, y) C Q(x, y) ⋆ ⋆ FDPLL: First-Order Semantic Trees FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.15

  23. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.16

  24. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.16

  25. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.16

  26. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? When is a branch closed? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.16

  27. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? When is a branch closed? How to construct such trees (calculus)? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.16

  28. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? When is a branch closed? How to construct such trees (calculus)? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.17

  29. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  30. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) P(a, a) P(b, a) P(a, b) P(b, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  31. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) P(a, a) P(b, a) P(a, b) P(b, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  32. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) ¬ P(a, a) P(b, a) ¬ P(a, b) P(b, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  33. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) ¬ P(a, a) P(b, a) ¬ P(b, b) ¬ P(a, b) P(b, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  34. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) ¬ P(a, a) P(b, a) ¬ P(b, b) ¬ P(a, b) ¬ P(b, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  35. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) ¬ P(a, a) P(b, a) ¬ P(b, b) ¬ P(a, b) ¬ P(b, b) P(a, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  36. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { ... } : P(x, y) ¬ P(a, y) ¬ P(a, a) P(b, a) ¬ P(b, b) P(a, b) ¬ P(b, b) P(a, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  37. Extracting an Interpretation from a Branch Branch B : Interpretation [ [ B ] ] = { . . . } : P(x, y) ¬ P(a, y) { ¬ P(a, a) , P(b, a) , ¬ P(b, b) P(a, b) , ¬ P(b, b) } P(a, b) A branch literal specifies the truth values for all its ground instances, unless there is a more specific literal specifying opposite truth values. The order of literals does not matter. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18

  38. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: One-branch-at-a-time approach desired How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? ✔ When is a branch closed? How to construct such trees (calculus)? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.19

  39. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. Propositional case: ¬ A A ¬ B B ¬ C closed by B ∨ C C ⋆ FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  40. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. FDPLL case: ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) closed by P(x, y) ∨ Q(x, x) ? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  41. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. FDPLL case: P( $ , $ ) ¬ P( $ , $ ) ¬ P( $ , a) P( $ , a) Q( $ , $ ) ¬ Q( $ , $ ) P(x, y) ∨ Q(x, x) 1. Replace all variables in tree by a constant $ . Gives propositional tree 2. 3. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  42. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. FDPLL case: P( $ , $ ) ¬ P( $ , $ ) P(x, y) ∨ Q(x, x) ¬ P( $ , a) P( $ , a) γ = { x / $ , y / a } Q( $ , $ ) ¬ Q( $ , $ ) P( $ , a) ∨ Q( $ , $ ) 1. Replace all variables in tree by a constant $ . Gives propositional tree 2. Compute matcher γ to propositionally close branch 3. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  43. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. FDPLL case: ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) closed by P(x, y) ∨ Q(x, x) ⋆ 1. Replace all variables in tree by a constant $ . Gives propositional tree 2. Compute matcher γ to propositionally close branch 3. Mark branch as closed ( ⋆ ) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  44. Calculus: Branch Closure Purpose: Determine if branch elementary contradicts an input clause. FDPLL case: ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) closed by P(x, y) ∨ Q(x, x) ⋆ 1. Replace all variables in tree by a constant $ . Gives propositional tree 2. Compute matcher γ to propositionally close branch 3. Mark branch as closed ( ⋆ ) Theorem: FDPLL is sound (because propositional DPLL is sound), and splitting can be done with arbitrary literal. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.20

  45. First-Order Semantic Trees ¬ P(x, y) P(x, y) ¬ P(x, a) P(x, a) Q(x, y) ¬ Q(x, y) ⋆ Issues: How are variables treated? (a) Universal, as in Resolution?, (b) Rigid, as in Tableaux? (c) Schema! How to extract an interpretation from a branch? ✔ When is a branch closed? ✔ How to construct such trees (calculus)? FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.21

  46. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: Init � empty tree � FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  47. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  48. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? No Yes FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  49. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? No Yes STOP: unsatisfiable FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  50. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? No Yes Select open STOP: branch B unsatisfiable B ⋆ ⋆ FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  51. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? No Yes Select open STOP: branch B unsatisfiable No ? [ [ B ] ] | = S B ⋆ ⋆ Yes FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  52. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? No Yes Select open STOP: branch B unsatisfiable No ? [ [ B ] ] | = S ⋆ ⋆ Yes STOP: satisfiable FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  53. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? L ¬ L No Yes Select literal L Select open STOP: and split B branch B unsatisfiable with L and ¬ L No ? [ [ B ] ] | = S ⋆ ⋆ Yes STOP: satisfiable FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  54. FDPLL Calculus Input: a clause set S Output: “unsatisfiable” or “satisfiable” (if terminates) Note: Strategy much like in inner loop of propositional DPLL: ⋆ ⋆ Closed? L ¬ L No Yes Select literal L Select open STOP: and split B branch B unsatisfiable with L and ¬ L No ? [ [ B ] ] | = S ⋆ ⋆ Yes STOP: satisfiable Next: Testing [ [ B ] ] | = S and splitting FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22

  55. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) ¬ P(a, y ′ ) Some clause from S ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) ¬ P(y, a) P(y, a) 1. 2. 3. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  56. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) σ P(a, y) ∨ ¬ P(y, a) ¬ P(y, a) P(y, a) 1. Compute simultaneous most general unifier σ 2. 3. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  57. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) P(a, y) ∨ ¬ P(y, a) litsel 1. Compute simultaneous most general unifier σ 2. Select from clause instance a literal not on branch 3. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  58. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) P(a, y) ∨ ¬ P(y, a) ¬ P(y, a) P(y, a) 1. Compute simultaneous most general unifier σ 2. Select from clause instance a literal not on branch 3. Split with this literal FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  59. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) ¬ P(y, a) P(y, a) {¬ P(a, c), P(c, a), . . . } �| = P(a, c) ∨ ¬ P(c, a) 1. Compute simultaneous most general unifier σ 2. Select from clause instance a literal not on branch 3. Split with this literal This split was really necessary! FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  60. Calculus: The Splitting Rule Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(y, x) ¬ P(y, a) P(y, a) {¬ P(a, c), P(c, a), . . . } �| = P(a, c) ∨ ¬ P(c, a) 1. Compute simultaneous most general unifier σ 2. Select from clause instance a literal not on branch 3. Split with this literal This split was really necessary! Proposition: If [ [ B ] ] �| = S , then split is applicable to some clause from S FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23

  61. Calculus: The Splitting Rule – Another Example Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) ¬ P(a, y ′ ) Some clause from S ¬ P(a, b) P(x, y) ∨ ¬ P(a, x) ¬ P(y, a) P(y, a) 1. 2. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.24

  62. Calculus: The Splitting Rule – Another Example Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(a, x) σ P(a, y) ∨ ¬ P(a, a) ¬ P(y, a) P(y, a) 1. Compute MGU σ of clause against branch literals 2. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.24

  63. Calculus: The Splitting Rule – Another Example Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(a, x) P(a, y) ∨ ¬ P(a, a) 1. Compute MGU σ of clause against branch literals 2. If clause contains “true” literal, then split is not applicable FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.24

  64. Calculus: The Splitting Rule – Another Example Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(a, x) P(a, y) ∨ ¬ P(a, a) 1. Compute MGU σ of clause against branch literals 2. If clause contains “true” literal, then split is not applicable Non-applicability is a redundancy test FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.24

  65. Calculus: The Splitting Rule – Another Example Purpose: Satisfy a clause that is currently “false” P(y ′′ , x ′′ ) σ = { x / a, . . . } ¬ P(a, y ′ ) ¬ P(a, b) P(x, y) ∨ ¬ P(a, x) P(a, y) ∨ ¬ P(a, a) 1. Compute MGU σ of clause against branch literals 2. If clause contains “true” literal, then split is not applicable Non-applicability is a redundancy test Proposition: If for no clause split is applicable, [ [ B ] ] | = S holds FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.24

  66. Calculus: The Commit Rule Purpose: Achieve consistency of interpretation associated to branch P(x, y) P(a, y) ¬ P(x, b) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25

  67. Calculus: The Commit Rule Purpose: Achieve consistency of interpretation associated to branch P(x, y) P(a, y) ¬ P(x, b) Problem: { P(a, b), ¬ P(a, b) } is inconsistent! FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25

  68. Calculus: The Commit Rule Purpose: Achieve consistency of interpretation associated to branch P(x, y) P(a, y) σ = { x / a, y / b } ¬ P(x, b) P(a, b) 1. Compute a MGU σ of branch literals with opposite sign 2. FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25

  69. Calculus: The Commit Rule Purpose: Achieve consistency of interpretation associated to branch P(x, y) P(a, y) σ = { x / a, y / b } ¬ P(x, b) P(a, b) P(a, b) ¬ P(a, b) 1. Compute a MGU σ of branch literals with opposite sign 2. Split with instance, if not on branch FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25

  70. Calculus: The Commit Rule Purpose: Achieve consistency of interpretation associated to branch P(x, y) P(a, y) σ = { x / a, y / b } ¬ P(x, b) P(a, b) P(a, b) ¬ P(a, b) 1. Compute a MGU σ of branch literals with opposite sign 2. Split with instance, if not on branch Now have removed the inconsistency FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25

  71. FDPLL Complete Example train(X,Y) ; flight(X,Y). %% train from X to Y or flight from X to Y. (1) -flight(koblenz,X). %% no flight from koblenz to anywhere. (2) flight(X,Y) :- flight(Y,X). %% flight is symmetric. (3) connect(X,Y) :- flight(X,Y). %% a flight is a connection. (4) connect(X,Y) :- train(X,Y). %% a train is a connection. (5) connect(X,Z) :- connect(X,Y), %% connection is a transitive relation. (6) connect(Y,Z). FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.26

  72. FDPLL Complete Example train(X,Y) ; flight(X,Y). %% train from X to Y or flight from X to Y. (1) -flight(koblenz,X). %% no flight from koblenz to anywhere. (2) flight(X,Y) :- flight(Y,X). %% flight is symmetric. (3) connect(X,Y) :- flight(X,Y). %% a flight is a connection. (4) connect(X,Y) :- train(X,Y). %% a train is a connection. (5) connect(X,Z) :- connect(X,Y), %% connection is a transitive relation. (6) connect(Y,Z). Computed Model (as output by implementation) + flight(X, Y) - flight(koblenz, X) - flight(X, koblenz) + train(koblenz, Y) + train(Y, koblenz) + connect(X, Y) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.26

  73. FDPLL Model Computation Example - Derivation � empyty tree � Clause instance used in inference: train(x, y) ∨ flight(x, y) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  74. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) Clause instance used in inference: ¬ flight(ko, x) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  75. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) Clause instance used in inference: train(ko, y) ∨ flight(ko, y) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  76. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) train(ko, y) ¬ train(ko, y) Clause instance used in inference: flight(ko, y) ∨ ¬ flight(y, ko) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  77. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) train(ko, y) ¬ train(ko, y) ¬ flight(y, ko) flight(y, ko) Clause instance used in inference: train(x, ko) ∨ flight(x, ko) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  78. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) train(ko, y) ¬ train(ko, y) ¬ flight(y, ko) flight(y, ko) ¬ train(x, ko) train(x, ko) Clause instance used in inference: connect(x, y) ∨ ¬ flight(x, y) . FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  79. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) train(ko, y) ¬ train(ko, y) ¬ flight(y, ko) flight(y, ko) ¬ train(x, ko) train(x, ko) ¬ connect(x, y) connect(x, y) Done. Return “satisfiable with model { flight(x, y), . . . , connect(x, y) } ” FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

  80. FDPLL Model Computation Example - Derivation flight(x, y) ¬ flight(x, y) ¬ flight(ko, x) flight(ko, x) train(ko, y) ¬ train(ko, y) ¬ flight(y, ko) flight(y, ko) ¬ train(x, ko) train(x, ko) ¬ connect(x, y) connect(x, y) Done. Return “satisfiable with model { flight(x, y), . . . , connect(x, y) } ” Redundancy: Instance not used in inference: connect(x, ko) ∨ ¬ train(x, ko) FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.27

Recommend


More recommend