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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend