FDPLL { A First-Order Davis-Putnam-Logemann-Loveland...
Transcript of FDPLL { A First-Order Davis-Putnam-Logemann-Loveland...
FDPLL – A First-OrderDavis-Putnam-Logemann-LovelandProcedure
Peter Baumgartner
Institut fur Informatik
Universitat Koblenz-Landau
Germany
http://www.uni-koblenz.de/~peter/
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.1
Theorem Proving
Theorem proving is about . . .
Logics (Propositional, First-Order, Higher-Order, Modal, Description, . . . )
Calculi and proof procedures (Resolution,. . . )
Systems (Interactive, Automated)
Applications (Knowledge Representation, Verification, . . . )
Milestones
60s: Calculi: DPLL, Resolution, Model Elimination
70s: Logic Programming
80s: Knowledge Representation
90s: “A Basis for Applications”
2000s: Semantic Web, Ontologies, SW-Engineering
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.2
Theorem Proving
Theorem proving is about . . .
Logics (Propositional, First-Order, Higher-Order, Modal, Description, . . . )
Calculi and proof procedures (Resolution,. . . )
Systems (Interactive, Automated)
Applications (Knowledge Representation, Verification, . . . )
Milestones
60s: Calculi: DPLL, Resolution, Model Elimination
70s: Logic Programming
80s: Knowledge Representation
90s: “A Basis for Applications”
2000s: Semantic Web, Ontologies, SW-Engineering
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.2
Theorem Proving
Theorem proving is about . . .
Logics (Propositional, First-Order, Higher-Order, Modal, Description, . . . )
Calculi and proof procedures (Resolution, . . . )
Systems (Interactive, Automated)
Applications (Knowledge Representation, Verification, . . . )
Milestones
60s: Calculi: DPLL, Resolution, Model Elimination
70s: Logic Programming
80s: Knowledge Representation
90s: “A Basis for Applications”
2000s: Semantic Web, Ontologies, SW-Engineering
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.3
Two Separated Worlds
First-OrderReasoning
PropositionalReasoning
Techniques Resolution DPLL
Model Elimination OBDD
Hyper Linking Stalmarck’s Method
Tableaux
Stochastic (GSAT)
Systems E, Otter, Setheo, SNARK,
Spass, Vampire
Chaff, SMV, Heerhugo, FACT,
WalkSat
Applications SW-Verification (Limited) Symbolic Model Checking
Mathematics Mathematics
Discourse Representation Planning, Description Logics
TPTP Nonmonotonic Reasoning
Can couple these worlds more closely?
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.4
Two Separated Worlds
First-OrderReasoning
PropositionalReasoning
Techniques Resolution DPLL
Model Elimination OBDD
Hyper Linking Stalmarck’s Method
Tableaux
Stochastic (GSAT)
Systems E, Otter, Setheo, SNARK,
Spass, Vampire
Chaff, SMV, Heerhugo, FACT,
WalkSat
Applications SW-Verification (Limited) Symbolic Model Checking
Mathematics Mathematics
Discourse Representation Planning, Description Logics
TPTP Nonmonotonic Reasoning
Can couple these worlds more closely?
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.4
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
Motivation
DPLL: Successfully used for propositional logic
FDPLL: New lifting of DPLL to f irst-order logic
Why?
Use successful first-order techniques
(unification, redundancy tests)
Close a gap in the calculus landscape
Theorem Proving: Alternative to
Resolution, Model Elimination
Model computation
(Counterexamples, diagnosis, abduction,
planning, nonmonotonic reasoning,. . . –
largely unexplored)
(Dream) Bring first-order reasoning to
domains that are successfully tackled with
propositional DPLL
Unification:
unify{P(a, y), P(x, f(x))}
= {P(a, f(a))}
Theorem Proving:
Axioms?
|= Conjecture
Model Computation: Is
Axioms∧¬Conjecture
satisfiable?
Axioms?
6|= Conjecture
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.5
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.6
Notation
Propositional clause: a disjunction of literals, e.g.
A∨B∨¬C∨¬D
Propositional clause set: a finite set of propositional clauses.
Interpretation: maps atoms to {true, false}, e.g.
A B C D
true false true false
Representation by consistent sets of literals, e.g. (all the same)
{A, C} {A,¬B, C} {A,¬B, C,¬D}
Model: an interpretation such that every clause is satisfied, e.g.
{A, C} |= {A∨B∨¬C∨¬D}
{A, C} 6|= {A∨B∨¬C∨¬D, ¬A∨B}
A clause set is satisfiable iff a model for it exists, otherwise unsatisfiable.
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.7
Notation
Propositional clause: a disjunction of literals, e.g.
A∨B∨¬C∨¬D
Propositional clause set: a finite set of propositional clauses.
Interpretation: maps atoms to {true, false}, e.g.
A B C D
true false true false
Representation by consistent sets of literals, e.g. (all the same)
{A, C} {A,¬B, C} {A,¬B, C,¬D}
Model: an interpretation such that every clause is satisfied, e.g.
{A, C} |= {A∨B∨¬C∨¬D}
{A, C} 6|= {A∨B∨¬C∨¬D, ¬A∨B}
A clause set is satisfiable iff a model for it exists, otherwise unsatisfiable.
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.7
Notation
Propositional clause: a disjunction of literals, e.g.
A∨B∨¬C∨¬D
Propositional clause set: a finite set of propositional clauses.
Interpretation: maps atoms to {true, false}, e.g.
A B C D
true false true false
Representation by consistent sets of literals, e.g. (all the same)
{A, C} {A,¬B, C} {A,¬B, C,¬D}
Model: an interpretation such that every clause is satisfied, e.g.
{A, C} |= {A∨B∨¬C∨¬D}
{A, C} 6|= {A∨B∨¬C∨¬D, ¬A∨B}
A clause set is satisfiable iff a model for it exists, otherwise unsatisfiable.
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.7
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{} 6|= A∨B
{} |= C∨¬A
{} |= D∨¬C∨¬A
{} |= ¬D∨¬B
〈empty tree〉
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
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{A} |= A∨B
{A} 6|= C∨¬A
{A} |= D∨¬C∨¬A
{A} |= ¬D∨¬B
A ¬A
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
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{A, C} |= A∨B
{A, C} |= C∨¬A
{A, C} 6|= D∨¬C∨¬A
{A, C} |= ¬D∨¬B
A
C ¬C
¬A
?
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
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{A, C, D} |= A∨B
{A, C, D} |= C∨¬A
{A, C, D} |= D∨¬C∨¬A
{A, C, D} |= ¬D∨¬B
A
C ¬C
D ¬D
¬A
?
?
Model {A, C, D} 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
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{B} |= A∨B
{B} |= C∨¬A
{B} |= D∨¬C∨¬A
{B} |= ¬D∨¬B
A
C ¬C
D ¬D
¬A
¬B
?
? ?
Model {B} found.
B
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
Propositional DPLL as a Semantic Tree Method
(1) A∨B (2) C∨¬A (3) D∨¬C∨¬A (4) ¬D∨¬B
{B} |= A∨B
{B} |= C∨¬A
{B} |= D∨¬C∨¬A
{B} |= ¬D∨¬B
A
C ¬C
D ¬D
¬A
¬B
?
? ?
Model {B} found.
B
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
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
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
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
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
Overview
Propositional DPLL as a semantic tree method 4
First-Order DPLL so far
FDPLL
Relation to other calculi
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.10
DPLL - The First-Order Case (1962)
Grounding
PropositionalDPLL
→∃y P(y, a)
Given Formula
P(f(x), x)¬P(y, a)
Clause Form
∀x ∃y P(y, x)Preprocessing:
Outer loop:
Inner 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
DPLL - The First-Order Case (1962)
Grounding
PropositionalDPLL
→∃y P(y, a)
Given Formula
P(f(x), x)¬P(y, a)
Clause Form
P(f(a), a)¬P(a, a)
∀x ∃y P(y, x)Preprocessing:
Outer loop:
Inner 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
DPLL - The First-Order Case (1962)
Proof found
Grounding
PropositionalDPLL
Outer LoopSTOP:
→∃y P(y, a)
Given Formula
P(f(x), x)¬P(y, a)
Clause Form
P(f(a), a)¬P(a, a)
Sat?
∀x ∃y P(y, x)
No
Preprocessing:
Outer loop:
Inner loop:
Yes
Continue
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
DPLL - The First-Order Case (1962)
Grounding
PropositionalDPLL
→∃y P(y, a)
Given Formula
P(f(a), a)¬P(a, a)
P(f(x), x)¬P(y, a)
Clause Form
P(f(a), a)¬P(a, a)
∀x ∃y P(y, x)Preprocessing:
Outer loop:
Inner loop:
¬P(f(a), a)
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
DPLL - The First-Order Case (1962)
Grounding
PropositionalDPLL
Outer LoopProof found
→∃y P(y, a)
Given Formula
P(f(a), a)¬P(a, a)
P(f(x), x)¬P(y, a)
Clause Form
P(f(a), a)¬P(a, a)
∀x ∃y P(y, x)Preprocessing:
Outer loop:
Inner loop:Sat?
No Yes
ContinueSTOP:
¬P(f(a), a)
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
DPLL - The First-Order Case (1962)
Grounding
PropositionalDPLL
Outer LoopProof found
→∃y P(y, a)
Given Formula
P(f(a), a)¬P(a, a)
P(f(x), x)¬P(y, a)
Clause Form
P(f(a), a)¬P(a, a)
∀x ∃y P(y, x)Preprocessing:
Outer loop:
Inner loop:Sat?
No Yes
ContinueSTOP:
¬P(f(a), a)
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
Controlling the Grounding Process
Davis 1963; Chinlund, Davis, Hinman, McIlroy 1964:
“Linked Conjunct Method”:
Admissible clause set:
P(a) ∨ Q(a)
¬P(a) ∨ Q(a)
¬Q(a) ∨ P(a)
Every literal has a mate
Non-admissible clause set:
P(b) ∨ Q(a)
¬P(a) ∨ Q(a)
¬Q(a) ∨ P(a)
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
Controlling the Grounding Process
Davis 1963; Chinlund, Davis, Hinman, McIlroy 1964:
“Linked Conjunct Method”:
Admissible clause set:
P(a) ∨ Q(a)
¬P(a) ∨ Q(a)
¬Q(a) ∨ P(a)
Every literal has a mate
Non-admissible clause set:
P(b) ∨ Q(a)
¬P(a) ∨ Q(a)
¬Q(a) ∨ P(a)
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
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(f(x), x) ¬P(y, z)∨Q(y, z)
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
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(f(x), x) ¬P(y, z)∨Q(y, z)
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
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(f(x), x) ¬P(y, z)∨Q(y, z)
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
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(f(x), x) ¬P(y, z)∨Q(y, z)
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
Overview
Propositional DPLL as a semantic tree method 4
First-Order DPLL so far 4
FDPLL
Relation to other calculi
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.14
Meta-Level Strategy
Lifted data structures:
PropositionalReasoning
First-OrderReasoning
Resolution A∨¬B∨C P(x, y)∨¬Q(x, z)∨R(y, z)
DPLL
B
A ¬A
¬B
C ¬C?
P(x, y) ¬P(x, y)
¬P(x, a) P(x, a)
¬Q(x, y)?
Q(x, y)
FDPLL: First-Order Semantic Trees
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.15
Meta-Level Strategy
Lifted data structures:
PropositionalReasoning
First-OrderReasoning
Resolution A∨¬B∨C P(x, y)∨¬Q(x, z)∨R(y, z)
DPLL
B
A ¬A
¬B
C ¬C?
P(x, y) ¬P(x, y)
¬P(x, a) P(x, a)
¬Q(x, y)?
Q(x, y)
FDPLL: First-Order Semantic Trees
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.15
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
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
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
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
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
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
Extracting an Interpretation from a Branch
Branch B:
P(x, y)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
P(a, a)
P(a, b)
P(b, a)
P(b, b)
P(x, y)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
P(a, a)
P(a, b)
P(b, a)
P(b, b)
P(x, y)
¬P(a, y)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
¬P(a, a)
¬P(a, b)
P(b, a)
P(b, b)
P(x, y)
¬P(a, y)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
¬P(a, a)
¬P(a, b)
P(b, a)
P(b, b)
P(x, y)
¬P(a, y)
¬P(b, b)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
¬P(a, a)
¬P(a, b)
P(b, a)
¬P(b, b)
P(x, y)
¬P(a, y)
¬P(b, b)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
¬P(a, a)
¬P(a, b)
P(b, a)
¬P(b, b)
P(x, y)
¬P(a, y)
¬P(b, b)
P(a, b)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B:
¬P(a, a)
P(a, b)
P(b, a)
¬P(b, b)
P(x, y)
¬P(a, y)
¬P(b, b)
P(a, b)
Interpretation [[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
Extracting an Interpretation from a Branch
Branch B: Interpretation [[B]] = {. . .}:
{
}
, ,
,
P(x, y)
P(a, b)P(a, b)
¬P(a, y)
¬P(b, b)
¬P(a, a) P(b, a)
¬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.
The order of literals does not matter.
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.18
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? 4
When is a branch closed?
How to construct such trees (calculus)?
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.19
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
Propositional case:
¬C
¬B
?
¬AA
C B∨Cclosed by
B
1.
2.
3.
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
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
FDPLL case:
closed by¬Q(x, y)
¬P(x, a)
¬P(x, y)P(x, y)
Q(x, y)
P(x, a)
P(x, y)∨Q(x, x) ?
1.
2.
3.
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
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
FDPLL case:
¬Q($, $)
¬P($, a)
¬P($, $)P($, $)
P(x, y)∨Q(x, x)
P($, a)
Q($, $)
1. Replace all variables in tree by a constant $. Gives propositional tree
2.
3.
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
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
FDPLL case:
¬Q($, $)
¬P($, a)
¬P($, $)P($, $)
Q($, $) P($, a)∨Q($, $)
γ = {x/$, y/a}P(x, y)∨Q(x, x)P($, a)
1. Replace all variables in tree by a constant $. Gives propositional tree
2. Compute matcher γ to propositionally close branch
3.
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
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
FDPLL case:
closed by¬Q(x, y)
¬P(x, a)
¬P(x, y)P(x, y)
Q(x, y) P(x, y)∨Q(x, x)
P(x, a)
?
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
Calculus: Branch Closure
Purpose: Determine if branch elementary contradicts an input clause.
FDPLL case:
closed by¬Q(x, y)
¬P(x, a)
¬P(x, y)P(x, y)
Q(x, y) P(x, y)∨Q(x, x)
P(x, a)
?
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
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? 4
When is a branch closed? 4
How to construct such trees (calculus)?
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.21
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
〈emptytree〉
Init
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
? ?
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
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
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
unsatisfiable
? ?
Closed?No
STOP:
Yes
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
unsatisfiablebranch B
? ?
? ?
Closed?
STOP:
Yes
B
No
Select open
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
branch B unsatisfiable
B
? ?
? ?
No
Yes
Closed?
STOP:
No
Select open
Yes
[[B]]?
|= S
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
branch B unsatisfiable
satisfiable
? ?
? ?
No
Closed?
STOP:
No
Select open
Yes
[[B]]?
|= S
Yes
STOP:
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
branch B
satisfiable
unsatisfiableand split B
with L and ¬L
L ¬L
? ?
STOP:
Yes
Closed?
STOP:
No
Select open
Yes
[[B]]?
|= S
Select literal L
No
? ?
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
FDPLL Calculus
Input: a clause set S
Output: “unsatisfiable” or “satisfiable” (if terminates)
Note: Strategy much like in inner loop of propositional DPLL:
branch B unsatisfiableand split B
with L and ¬L
satisfiable
L ¬L
? ?
Closed?
STOP:
No
Select open
YesSelect literal L
No
[[B]]?
|= S
Yes
STOP:
? ?
Next: Testing [[B]] |= S and splitting
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.22
Calculus: The Splitting Rule
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
P(x, y) ∨ ¬P(y, x)¬P(a, b)
¬P(a, y′)
P(y′′, x′′)
Some clausefrom S
1.
2.
3.
This split was really necessary!
Proposition: If [[B]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
Calculus: The Splitting Rule
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
¬P(a, b)
¬P(a, y′)
P(y′′, x′′)
σ = {x/a, . . .}
P(x, y) ∨ ¬P(y, x)σ
P(a, y) ∨ ¬P(y, a)
1. Compute simultaneous most general unifier σ
2.
3.
This split was really necessary!
Proposition: If [[B]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
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(a, y) ∨ ¬P(y, a)
σ = {x/a, . . .}
litsel1. Compute simultaneous most general unifier σ
2. Select from clause instance a literal not on branch
3.
This split was really necessary!
Proposition: If [[B]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
Calculus: The Splitting Rule
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
P(y′′, x′′)
¬P(a, b)
¬P(a, y′)
P(x, y) ∨ ¬P(y, x)
P(a, y) ∨ ¬P(y, a)
σ = {x/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]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
Calculus: The Splitting Rule
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
¬P(a, b) P(x, y) ∨ ¬P(y, x)
¬P(a, y′)
P(y′′, x′′)
{¬P(a, c), P(c, a), . . .} P(a, c) ∨ ¬P(c, a)6|=
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]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
Calculus: The Splitting Rule
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
¬P(a, b) P(x, y) ∨ ¬P(y, x)
¬P(a, y′)
P(y′′, x′′)
{¬P(a, c), P(c, a), . . .} P(a, c) ∨ ¬P(c, a)6|=
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]] 6|= S, then split is applicable to some clause from S
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.23
Calculus: The Splitting Rule – Another Example
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
P(x, y) ∨ ¬P(a, x)¬P(a, b)
¬P(a, y′)
P(y′′, x′′)
Some clausefrom S
1.
2.
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
Calculus: The Splitting Rule – Another Example
Purpose: Satisfy a clause that is currently “false”
P(y, a)¬P(y, a)
σ
¬P(a, b)
P(a, y) ∨ ¬P(a, a)
¬P(a, y′)
P(y′′, x′′)
σ = {x/a, . . .}
P(x, y) ∨ ¬P(a, x)
1. Compute MGU σ of clause against branch literals
2.
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
Calculus: The Splitting Rule – Another Example
Purpose: Satisfy a clause that is currently “false”
P(y′′, x′′)
¬P(a, y′)
¬P(a, b) P(x, y) ∨ ¬P(a, x)
P(a, y) ∨ ¬P(a, a)
σ = {x/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
Calculus: The Splitting Rule – Another Example
Purpose: Satisfy a clause that is currently “false”
P(y′′, x′′)
¬P(a, y′)
¬P(a, b) P(x, y) ∨ ¬P(a, x)
P(a, y) ∨ ¬P(a, a)
σ = {x/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
Calculus: The Splitting Rule – Another Example
Purpose: Satisfy a clause that is currently “false”
P(y′′, x′′)
¬P(a, y′)
¬P(a, b) P(x, y) ∨ ¬P(a, x)
P(a, y) ∨ ¬P(a, a)
σ = {x/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
Calculus: The Commit Rule
Purpose: Achieve consistency of interpretation associated to branch
P(x, y)
P(a, y)
¬P(x, b)
1.
2.
Now have removed the inconsistency
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25
Calculus: The Commit Rule
Purpose: Achieve consistency of interpretation associated to branch
P(x, y)
P(a, y)
¬P(x, b)
{P(a, b),¬P(a, b)} is inconsistent!Problem:
1.
2.
Now have removed the inconsistency
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25
Calculus: The Commit Rule
Purpose: Achieve consistency of interpretation associated to branch
σ = {x/a, y/b}P(a, b)
P(x, y)
P(a, y)
¬P(x, b)
1. Compute a MGU σ of branch literals with opposite sign
2.
Now have removed the inconsistency
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.25
Calculus: The Commit Rule
Purpose: Achieve consistency of interpretation associated to branch
P(x, y)
P(a, y)
¬P(x, b)
¬P(a, b)P(a, b)
σ = {x/a, y/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
Calculus: The Commit Rule
Purpose: Achieve consistency of interpretation associated to branch
P(x, y)
P(a, y)
¬P(x, b)
¬P(a, b)P(a, b)
σ = {x/a, y/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
FDPLL Complete Example
(1) train(X,Y) ; flight(X,Y). %% train from X to Y or flight from X to Y.
(2) -flight(koblenz,X). %% no flight from koblenz to anywhere.
(3) flight(X,Y) :- flight(Y,X). %% flight is symmetric.
(4) connect(X,Y) :- flight(X,Y). %% a flight is a connection.
(5) connect(X,Y) :- train(X,Y). %% a train is a connection.
(6) connect(X,Z) :- connect(X,Y), %% connection is a transitive relation.
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
FDPLL Complete Example
(1) train(X,Y) ; flight(X,Y). %% train from X to Y or flight from X to Y.
(2) -flight(koblenz,X). %% no flight from koblenz to anywhere.
(3) flight(X,Y) :- flight(Y,X). %% flight is symmetric.
(4) connect(X,Y) :- flight(X,Y). %% a flight is a connection.
(5) connect(X,Y) :- train(X,Y). %% a train is a connection.
(6) connect(X,Z) :- connect(X,Y), %% connection is a transitive relation.
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
FDPLL Model Computation Example - Derivation
〈empyty tree〉
Clause instance used in inference: train(x, y)∨flight(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
FDPLL Model Computation Example - Derivation
¬flight(x, y)flight(x, y)
Clause instance used in inference: ¬flight(ko, x)
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
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)
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
FDPLL Model Computation Example - Derivation
flight(x, y) ¬flight(x, y)
flight(ko, x)
¬train(ko, y)train(ko, y)
¬flight(ko, x)
Clause instance used in inference: flight(ko, y)∨¬flight(y, ko)
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
FDPLL Model Computation Example - Derivation
flight(x, y)
¬flight(ko, x)
train(ko, y)
¬flight(x, y)
flight(ko, x)
¬train(ko, y)
flight(y, ko)¬flight(y, ko)
Clause instance used in inference: train(x, ko)∨flight(x, ko)
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
FDPLL Model Computation Example - Derivation
¬flight(ko, x)
train(ko, y)
¬flight(y, ko)
train(x, ko)
¬flight(x, y)
flight(ko, x)
¬train(ko, y)
flight(y, ko)
¬train(x, ko)
flight(x, y)
Clause instance used in inference: connect(x, y)∨¬flight(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
FDPLL Model Computation Example - Derivation
flight(x, y)
¬flight(ko, x)
train(ko, y)
¬flight(y, ko)
train(x, ko)
connect(x, y)
¬flight(x, y)
flight(ko, x)
¬train(ko, y)
flight(y, ko)
¬train(x, ko)
¬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
FDPLL Model Computation Example - Derivation
flight(x, y)
¬flight(ko, x)
train(ko, y)
¬flight(y, ko)
connect(x, y)
¬flight(x, y)
flight(ko, x)
¬train(ko, y)
flight(y, ko)
¬train(x, ko)
¬connect(x, y)
train(x, ko)
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
Optional Inference Rule – Universal Splits
(1) P(x) (2) ¬P(x)∨Q(x)
Split based on tautology ∀x P(x)∨¬∀x P(x):
?¬P(sk1)∀x P(x)
Sources for Universal Splits
Unit input clauses
Resolving away n− 1 literals from an n-literal clause (UR-Resolution)
Advantages: – No “exceptions” permitted, hence much better efficiency
– Subsumption
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.28
Optional Inference Rule – Universal Splits
(1) P(x) (2) ¬P(x)∨Q(x)
Split based on tautology ∀x P(x)∨¬∀x P(x):
?
∀x Q(x) ¬Q(sk2)?
¬P(sk1)∀x P(x)
Sources for Universal Splits
Unit input clauses
Resolving away n− 1 literals from an n-literal clause (UR-Resolution)
Advantages: – No “exceptions” permitted, hence much better efficiency
– Subsumption
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.28
Optional Inference Rule – Universal Splits
(1) P(x) (2) ¬P(x)∨Q(x)
Split based on tautology ∀x P(x)∨¬∀x P(x):
?
∀x Q(x) ¬Q(sk2)?
¬P(sk1)∀x P(x)
Sources for Universal Splits
Unit input clauses
Resolving away n− 1 literals from an n-literal clause (UR-Resolution)
Advantages: – No “exceptions” permitted, hence much better efficiency
– Subsumption
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.28
Calculus: Summary / Properties
Summary
DPLL data structure lifted to first-order logic level
Two simple inference rules, controlled by unification
Computes with interpretations/models
Semantical redundancy criterion
Properties
Soundness and completeness (with fair strategy).
Extension: More efficient reasoning with unit clauses (e.g. ∀x P(x, a))
Proof convergence (avoids backtracking the semantics trees)
Decides function-free clause logic (Bernays-Schonfinkel class)
Covers e.g. Basic modal logic, Description logic, DataLog
Returns model in satisfiable case
But: Resolution better on other classes!
[Fermuller et. al. Handbook AR 2001 (e.g. Godel class, Monadic class, Guarded Fragment,. . . )]
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.29
Calculus: Summary / Properties
Summary
DPLL data structure lifted to first-order logic level
Two simple inference rules, controlled by unification
Computes with interpretations/models
Semantical redundancy criterion
Properties
Soundness and completeness (with fair strategy).
Extension: More efficient reasoning with unit clauses (e.g. ∀x P(x, a))
Proof convergence (avoids backtracking the semantics trees)
Decides function-free clause logic (Bernays-Schonfinkel class)
Covers e.g. Basic modal logic, Description logic, DataLog
Returns model in satisfiable case
But: Resolution better on other classes!
[Fermuller et. al. Handbook AR 2001 (e.g. Godel class, Monadic class, Guarded Fragment,. . . )]
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.29
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? 4
When is a branch closed? 4
How to construct such trees (calculus)? 4
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.30
Overview
Propositional DPLL as a semantic tree method 4
First-Order DPLL so far 4
FDPLL 4
Relation to other calculi
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.31
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Resolution:
P(x, z′) ← P(x, y)∧P(y, z)∧P(z, z′)
[Bachmair & Ganzinger,
Handbook AR 2001],
[Fermuller et. al.,
Handbook AR 2001]
P(x, z′′) ← P(x, y)∧P(y, z)∧P(z, z′)∧P(z′, z′′)
Does not terminate for function-free clause sets
Complicated to extract model
Very good on other classes, Equality
Rigid Variable Approaches:
P(x′, z′) ← P(x′, y′)∧P(y′, z′)
P(x′′, z′′) ← P(x′′, y′′)∧P(y′′, z′′)
FO-DPLL: [Chang&Lee 73]
Tableaux and CM: [Peltier, IGPL
99], [Baumgartner et al, CADE 99],
[Beckert, FTP 2000], [Giese, CADE
01]
Unpredictable number of variants, weak redundancy test
Difficult to avoid unnecessary (!) backtracking
Difficult to extract model
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.32
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Resolution:
P(x, z′) ← P(x, y)∧P(y, z)∧P(z, z′)
[Bachmair & Ganzinger,
Handbook AR 2001],
[Fermuller et. al.,
Handbook AR 2001]
P(x, z′′) ← P(x, y)∧P(y, z)∧P(z, z′)∧P(z′, z′′)
Does not terminate for function-free clause sets
Complicated to extract model
Very good on other classes, Equality
Rigid Variable Approaches:
P(x′, z′) ← P(x′, y′)∧P(y′, z′)
P(x′′, z′′) ← P(x′′, y′′)∧P(y′′, z′′)
FO-DPLL: [Chang&Lee 73]
Tableaux and CM: [Peltier, IGPL
99], [Baumgartner et al, CADE 99],
[Beckert, FTP 2000], [Giese, CADE
01]
Unpredictable number of variants, weak redundancy test
Difficult to avoid unnecessary (!) backtracking
Difficult to extract model
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.32
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Resolution:
P(x, z′) ← P(x, y)∧P(y, z)∧P(z, z′)
[Bachmair & Ganzinger,
Handbook AR 2001],
[Fermuller et. al.,
Handbook AR 2001]
P(x, z′′) ← P(x, y)∧P(y, z)∧P(z, z′)∧P(z′, z′′)
Does not terminate for function-free clause sets
Complicated to extract model
Very good on other classes, Equality
Rigid Variable Approaches:
P(x′, z′) ← P(x′, y′)∧P(y′, z′)
P(x′′, z′′) ← P(x′′, y′′)∧P(y′′, z′′)
FO-DPLL: [Chang&Lee 73]
Tableaux and CM: [Peltier, IGPL
99], [Baumgartner et al, CADE 99],
[Beckert, FTP 2000], [Giese, CADE
01]
Unpredictable number of variants, weak redundancy test
Difficult to avoid unnecessary (!) backtracking
Difficult to extract model
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.32
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Resolution:
P(x, z′) ← P(x, y)∧P(y, z)∧P(z, z′)
[Bachmair & Ganzinger,
Handbook AR 2001],
[Fermuller et. al.,
Handbook AR 2001]
P(x, z′′) ← P(x, y)∧P(y, z)∧P(z, z′)∧P(z′, z′′)
Does not terminate for function-free clause sets
Complicated to extract model
Very good on other classes, Equality
Rigid Variable Approaches:
P(x′, z′) ← P(x′, y′)∧P(y′, z′)
P(x′′, z′′) ← P(x′′, y′′)∧P(y′′, z′′)
FO-DPLL: [Chang&Lee 73]
Tableaux and CM: [Peltier, IGPL
99], [Baumgartner et al, CADE 99],
[Beckert, FTP 2000], [Giese, CADE
01]
Unpredictable number of variants, weak redundancy test
Difficult to avoid unnecessary (!) backtracking
Difficult to extract model
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.32
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Resolution:
P(x, z′) ← P(x, y)∧P(y, z)∧P(z, z′)
[Bachmair & Ganzinger,
Handbook AR 2001],
[Fermuller et. al.,
Handbook AR 2001]
P(x, z′′) ← P(x, y)∧P(y, z)∧P(z, z′)∧P(z′, z′′)
Does not terminate for function-free clause sets
Complicated to extract model
Very good on other classes, Equality
Rigid Variable Approaches:
P(x′, z′) ← P(x′, y′)∧P(y′, z′)
P(x′′, z′′) ← P(x′′, y′′)∧P(y′′, z′′)
FO-DPLL: [Chang&Lee 73]
Tableaux and CM: [Peltier, IGPL
99], [Baumgartner et al, CADE 99],
[Beckert, FTP 2000], [Giese, CADE
01]
Unpredictable number of variants, weak redundancy test
Difficult to avoid unnecessary (!) backtracking
Difficult to extract model
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.32
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Families of First-Order Logic Calculi
Consider a transitivity clause P(x, z)←P(x, y)∧P(y, z).
Instance Based Methods:
P(x, z) ← P(x, y)∧P(y, z)
P(a, z) ← P(a, y)∧P(y, b)
HL [Lee&Plaisted, JAR 92], SHL
[Chu&Plaisted, CADE 94], DM
[Billon, TABLEAUX 96], OSHL
[Plaisted & Zhu, AAAI 97], Hyper
Tableaux NG [TABLEAUX 98], [van
Eijck, CSL 01]
Weak redundancy criterion (no subsumption)
Need to keep clause instances (memory problem)
Clauses do not become longer (cf. Resolution)
May delete variant clauses (cf. Rigid Variable Approach)
FDPLL in this tradition, but
need not keep instances
conceptually different: – binary splitting
– based on first-order interpretations
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.33
Overview
Propositional DPLL as a semantic tree method 4
First-Order DPLL so far 4
FDPLL 4
Relation to other calculi 4
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.34
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Implementation
In Eclipse Prolog, ≈ 1300 LoC, http://www.uni-koblenz.de/~peter/FDPLL/
Some improvements (Dependency directed backtracking)
Still slow due to low inference rate and non-optimal algorithm
. . . on TPTP
Solves some moderately difficult problems e.g. IVT
3-move Rubik’s cube problem (654 possible state predicate instances)
Relative strength: non-Horn, satisfiable problems (Modal Logic)
Success rates:
State-of-the-art systems: ≈ 55%, FDPLL: ≈ 40%
State-of-the-art Resolution systems, 70’s technology: ≈ 30%
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.35
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36
Conclusions
Summary
Motivation: combine successful propositional and first-order techniques
Directly lifts propositional DPLL to first-order level
New concept: Schema variables
Sound and complete
Outlook
Nonmonotonic logic variant (document management application)
Improve model building capabilities
Theory reasoning (Equality, Decision procedures)
Combine with other techniques (OSHL)
Serious implementation (OCaml)
FDPLL – A First-Order Davis-Putnam-Logemann-Loveland Procedure – P. Baumgartner – p.36