introduction to logic resolution
TRANSCRIPT
![Page 1: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/1.jpg)
Introduction to LogicResolution
Michael GeneserethComputer Science Department
Stanford University
![Page 2: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/2.jpg)
Assumption p(a) p(f(a)) p(x) => q(x) ~p(x) => q(x)
Universal Elimination ∀x.∀y.q(x,y)
q(a,a) q(x,a)q(a,y) q(x,y)q(a, f(a)) q(x, f(a)) … …
Problem With Natural Deduction
![Page 3: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/3.jpg)
The Resolution Principle is a rule of inference.
Using the Resolution Principle alone (without axiom schemata or other rules of inference), it is possible to build a proof system (called Resolution) that is can prove everything that can be proved in Fitch.
The search space using the Resolution Principle is much smaller than that of natural deduction systems.
Resolution Principle
![Page 4: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/4.jpg)
Clausal Form
Unification
Resolution Rule of Inference
Unsatisfiability
Logical Entailment
Answer Extraction
Programme
![Page 5: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/5.jpg)
Clausal Form
![Page 6: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/6.jpg)
Resolution works only on expressions in clausal form.
Fortunately, it is possible to convert any set of Herbrand Logic sentences into an equally satisfiable set of sentences in clausal form.
Clausal Form
![Page 7: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/7.jpg)
A literal is either an atomic sentence or a negation of an atomic sentence.
p(a), ¬p(b)
A clausal sentence is either a literal or a disjunction of literals.
p(a), ¬p(b), p(a) ∨ ¬p(b)
A clause is a set of literals.
{p(a)}, {¬p(b)}, {p(a),¬p(b)}
Clausal Form
![Page 8: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/8.jpg)
The empty clause {} is unsatisfiable.
Why? It is equivalent to an empty disjunction.
Empty Sets
![Page 9: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/9.jpg)
Inseado
€
ϕ1⇒ϕ2 → ¬ϕ1∨ϕ2ϕ1⇔ϕ2 → (¬ϕ1∨ϕ2 )∧ (ϕ1∨¬ϕ2 )
Implications Out:
Inseado
![Page 10: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/10.jpg)
€
ϕ1⇒ϕ2 → ¬ϕ1∨ϕ2ϕ1⇔ϕ2 → (¬ϕ1∨ϕ2 )∧ (ϕ1∨¬ϕ2 )
¬¬ϕ → ϕ
¬(ϕ1 ∧ϕ2 ) → ¬ϕ1 ∨¬ϕ2¬(ϕ1 ∨ϕ2 ) → ¬ϕ1 ∧¬ϕ2¬∀ν.ϕ → ∃ν.¬ϕ¬∃ν.ϕ → ∀ν.¬ϕ
Implications Out:
Negations In:
Inseado
![Page 11: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/11.jpg)
∀x.p(x)∨∀x.q(x) → ∀x.p(x)∨∀y.q(y)
Standardize variables
Inseado
![Page 12: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/12.jpg)
∀x.p(x)∨∀x.q(x) → ∀x.p(x)∨∀y.q(y)
Standardize variables
Existentials Out (Outside in)
∃x.p(x) → p(a)
Inseado
![Page 13: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/13.jpg)
∀x.p(x)∨∀x.q(x) → ∀x.p(x)∨∀y.q(y)
Standardize variables
Existentials Out (Outside in)
∃x.p(x) → p(a)
∀x.( p(x)∧ ∃z.q(x, y, z)) → ∀x.( p(x)∧ q(x, y, f (x, y)))
Inseado
![Page 14: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/14.jpg)
Alls Out
∀x.( p(x)∧ q(x, y, f (x, y))) → p(x)∧ q(x, y, f (x, y))
Inseado
![Page 15: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/15.jpg)
Alls Out
Distribution
∀x.( p(x)∧ q(x, y, f (x, y))) → p(x)∧ q(x, y, f (x, y))
€
ϕ1∨ (ϕ2 ∧ϕ3 ) → (ϕ1∨ϕ2 )∧ (ϕ1∨ϕn )(ϕ1∧ϕ2 )∨ϕ3 → (ϕ1∨ϕ3 )∧ (ϕ2 ∨ϕ3 )ϕ ∨ (ϕ1∨ ...∨ϕn ) → (ϕ ∨ϕ1∨ ...∨ϕn )(ϕ1∨ ...∨ϕn )∨ϕ → (ϕ1∨ ...∨ϕn ∨ϕ )ϕ ∧ (ϕ1∧ ...∧ϕn ) → (ϕ ∧ϕ1∧ ...∧ϕn )(ϕ1∧ ...∧ϕn )∧ϕ → (ϕ1∧ ...∧ϕn ∧ϕ )
Inseado
![Page 16: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/16.jpg)
Operators Outϕ1 ∧ ... ∧ϕn → ϕ1
...ϕn
ϕ1 ∨ ... ∨ϕn → {ϕ1,..., ϕn}
Inseado
![Page 17: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/17.jpg)
Example
∃y.(g(y)∧∀z.(r(z)⇒ f (y,z)))I ∃y.(g(y)∧∀z.(¬r(z)∨ f (y, z)))N ∃y.(g(y)∧∀z.(¬r(z)∨ f (y, z)))S ∃y.(g(y)∧∀z.(¬r(z)∨ f (y, z)))E g(greg)∧∀z.(¬r(z)∨ f (greg, z)))A g(greg)∧ (¬r(z)∨ f (greg, z)))D g(greg)∧ (¬r(z)∨ f (greg, z)))O {g(greg)}
{¬r(z), f (greg, z)}
Example
![Page 18: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/18.jpg)
¬∃y.(g(y)∧∀z.(r(z)⇒ f (y, z)))I ¬∃y.(g(y)∧∀z.(¬r(z)∨ f (y,z)))N ¬∃y.(g(y)∧∀z.(¬r(z)∨ f (y,z)))
∀y.¬(g(y)∧∀z.(¬r(z)∨ f (y, z)))∀y.(¬g(y)∨¬∀z.(¬r(z)∨ f (y, z)))∀y.(¬g(y)∨∃z.¬(¬r(z)∨ f (y, z)))∀y.(¬g(y)∨∃z.(¬¬r(z)∧¬f (y,z)))∀y.(¬g(y)∨∃z.(r(z)∧¬f (y, z)))
S ∀y.(¬g(y)∨∃z.(r(z)∧¬f (y, z)))
Example
![Page 19: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/19.jpg)
€
∀y.(¬g(y)∨∃z.(r(z)∧¬f (y, z)))E ∀y.(¬g(y)∨ (r(h(y))∧¬f (y,h(y))))A ¬g(y)∨ (r(h(y))∧¬f (y,h(y)))D (¬g(y)∨ r(h(y)))∧ (¬g(y)∨¬f (y,h(y)))O {¬g(y), r(h(y))}
{¬g(y),¬f (y,h(y))}
Example
![Page 20: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/20.jpg)
Bad News: The result of converting a set of sentences is not necessarily logically equivalent to the original set of sentences. Why? Introduction of Skolem constants and functions.
Good News: The result of converting a set of sentences is satisfiable in the expanded language if and only if the original set of sentences is satisfiable in the original language. Important because we use satisfiability to determine logical entailment.
Clausal Form
![Page 21: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/21.jpg)
Unification
![Page 22: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/22.jpg)
Unification
Unification is the process of determining whether two expressions can be unified, i.e. made identical by appropriate substitutions for their variables.
Unification
![Page 23: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/23.jpg)
A substitution is a finite set of pairs of variables and terms, called replacements.
{x←a, y←f(b), v←w}
The result of applying a substitution σ to an expression ϕ is the expression ϕσ obtained from ϕ by replacing every occurrence of every variable in the substitution by its replacement.
p(x,x,y,z){x←a, y←f(b), v←w} = p(a,a,f(b),z)
Substitutions
![Page 24: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/24.jpg)
r{x,y,z}{x←a, y←f(u), z←v}=r{a,f(u),v}
r{a,f(u),v}{u←d, v←e, z←g}=r(a,f(d),e)
r{x,y,z}{x←a, y←f(d), z←e, u←d, v←e}=r(a,f(d),e)
Cascaded Substitutions
![Page 25: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/25.jpg)
Composition of Substitutions
The composition of substitution σ and τ is the substitution (written compose(σ,τ) or, more simply, στ) obtained by(1) applying τ to the replacements in σ(2) adding to σ pairs from τ with different variables(3) deleting any assignments of a variable to itself.
{x←a, y←f(u), z←v}{u←d,v←e,z←g}
={x←a,y←f(d),z←e}{u←d,v←e,z←g}
={x←a,y←f(d),z←e,u←d,v←e}
Composition of Substitutions
![Page 26: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/26.jpg)
Unification
A substitution σ is a unifier for an expression ϕ and an expression ψ if and only if ϕσ=ψσ.
p(x,y){x←a,y←b,v←b}=p(a,b)p(a,v){x←a,y←b,v←b}=p(a,b)
If two expressions have a unifier, they are said to be unifiable. Otherwise, they are nonunifiable.
p(x,x)p(a,b)
Unification
![Page 27: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/27.jpg)
Non-Uniqueness of Unification
Unifier 1:p(x,y){x←a,y←b,v←b} = p(a,b)p(a,v){x←a,y←b,v←b} = p(a,b)
Unifier 2:p(x,y){x←a,y← f(w),v← f(w)} = p(a,f(w))p(a,v){x←a,y← f(w), v← f(w)} = p(a,f(w))
Unifier 3:p(x,y){x←a,y←v} = p(a,v)p(a,v){x←a,y←v} = p(a,v)
NonUniqueness of Unification
![Page 28: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/28.jpg)
Most General Unifier
A substitution σ is a most general unifier (mgu) of two expressions if and only if it is as general as or more general than any other unifier.
Theorem: If two expressions are unifiable, then they have an mgu that is unique up to variable permutation.
p(x,y){x←a,y←v} = p(a,v)p(a,v){x←a,y←v} = p(a,v)
p(x,y){x←a,v←y} = p(a,y)p(a,v){x←a,v←y} = p(a,y)
Most General Unifier
![Page 29: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/29.jpg)
Unification Procedure
One good thing about our language is that there is a simple and inexpensive procedure for computing a most general unifier of any two expressions if it exists.
Unification Procedure
![Page 30: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/30.jpg)
Each expression is treated as a sequence of its immediate subexpressions.
Linear Version:p(a, f(b, c), d)
Structured Version:
p a d
f b c
Expression Structure
![Page 31: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/31.jpg)
(1) If two expressions being compared are identical, succeed.
(2) If neither is a variable and at least one is a constant, fail.
(3) If one of the expressions is a variable, proceed as described shortly.
(4) If both expressions are sequences, iterate across the expressions, comparing as described above.
Unification Procedure
![Page 32: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/32.jpg)
If one of the expressions is a variable, check whether the variable has a binding in the current substitution.
(a) If so, try to unify the binding with the other expression.
(b) If no binding, check whether the other expression contains the variable. If the variable occurs within the expression, fail; otherwise, set the substitution to the composition of the old substitution and a new substitution in which variable is bound to the other expression.
Dealing With Variables
![Page 33: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/33.jpg)
Example
Call: p(x,b), p(a,y), {}
Call: p, p, {} Exit: {}
Call: x, a, {} Exit: {}{x←a} = {x←a}
Call: b, y, {x←a} Exit: {x←a}{y←b} = {x←a, y←b}
Exit: {x←a, y←b}
Example
![Page 34: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/34.jpg)
Example
Call: p(x,x), p(a,y), {}
Call: p, p, {} Exit: {}
Call: x, a, {} Exit: {}{x←a} = {x←a}
Call: x, y, {x←a} Call: a, y, {x←a}) Exit: {x←a}{y←a} = {x←a, y←a} Exit: {x←a, y←a}
Exit: {x←a, y←a}
Example
![Page 35: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/35.jpg)
Example
Call: p(x,x), p(a,b), {}
Call: p, p, {} Exit: {}
Call: x, a, {} Exit: {}{x←a} = {x←a}
Call: x, b, {x←a} Call: a, b, {x←a}) Exit: false Exit: false
Exit: false
Example
![Page 36: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/36.jpg)
Example
Call: p(x,x), p(y,f(y)), {}
Call: p, p, {} Exit: {}
Call: x, y, {} Exit: {}{x←y} = {x←y}
Call: x, f(y), {x←y} Call: y, f(y), {x←y}) Exit: false Exit: false
Exit: false
Example
![Page 37: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/37.jpg)
Reason
Circularity Problem: {x←f(y),y←f(y)}
Unification Problem:
p(x,x){x←f(y), y←f(y)} = p(f(y),f(y))
p(y,f(y)){x←f(y), y←f(y)} = p(f(y),f(f(y)))
Reason
![Page 38: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/38.jpg)
Solution
Before assigning a variable to an expression, first check that the variable does not occur within that expression.
This is called, oddly enough, the occur check test.
Prolog does not do the occur check (and is proud of it).
Solution
![Page 39: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/39.jpg)
Resolution Principle
![Page 40: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/40.jpg)
Propositional Resolution
€
{ϕ1,...,ϕ,...,ϕm}{ψ1,...,¬ϕ,...,ψn}{ϕ1,...,ϕm ,ψ1,...,ψn}
Propositional Resolution
![Page 41: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/41.jpg)
Resolution (Simple Version)
€
{ϕ1,..., ϕ,...,ϕm}{ψ1,...,¬ψ,...,ψn}{ϕ1,...,ϕm ,ψ1,...,ψn}σwhere σ = mgu(ϕ,ψ)
Resolution (simple version)
![Page 42: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/42.jpg)
Example
€
{ p(a, y),r(y)}{¬p(x,b), s(x)}{r(y), s(x)}{x← a, y← b}{r(b), s(a)}
Example
![Page 43: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/43.jpg)
Problem
€
{ p(a, x)}{¬p(x,b)}Failure
Problem
![Page 44: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/44.jpg)
Resolution (Improved)
€
{ϕ1,..., ϕ,...,ϕm}{ψ1,...,¬ψ,...,ψn}{ϕ1τ ,...,ϕmτ ,ψ1,...,ψn}σwhere σ = mgu(ϕτ ,ψ)where τ is a variable renaming on ϕ
Resolution (improved)
![Page 45: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/45.jpg)
Example
€
{ p(a, x)}{¬p(x,b)}Failure
€
{ p(a,y)}{¬p(x,b)}{}{x← a,y← b}
Example
![Page 46: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/46.jpg)
Problem
€
{p(x), p(y)}{¬p(u),¬p(v)}{p(y),¬p(v)}{p(x),¬p(v)}{p(y),¬p(u)}{p(x),¬p(u)}
Problem
![Page 47: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/47.jpg)
If a subset of the literals in a clause Φ has a most general unifier γ, then the clause Φ' obtained by applying γ to Φ is called a factor of Φ.
Clause
{p(x),p(f(y)),r(x,y)}
Factors
{p(f(y)),r(f(y),y)}
{p(x),p(f(y)),r(x,y)}
Factors
![Page 48: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/48.jpg)
Resolution (Final Version)
€
Φ
Ψ
((Φ'−{φ})τ ∪ (Ψ'−{¬ψ}))σwhere φ ∈ Φ' , a factor of Φ where ¬ψ ∈ Ψ' , a factor of Ψ where σ = mgu(ϕτ ,ψ)where τ is a variable renaming on ϕ
Resolution (final version)
![Page 49: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/49.jpg)
Example
€
{p(x), p(y)}{¬p(u),¬p(v)}{p(y),¬p(v)}{p(x),¬p(v)}{p(y),¬p(u)}{p(x),¬p(u)} €
{p(x)}{¬p(u)}{}
Example
![Page 50: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/50.jpg)
Need for Original Clauses
1. {p(a,y), p(x,b)} Premise2. {¬p(a,d)} Premise3. {¬p(c,b)} Premise4. {p(x,b)} 1, 25. {} 3, 4
1. {p(a,y), p(x,b)} Premise2. {¬p(a,d)} Premise3. {¬p(c,b)} Premise4. {p(a,b)} Factor of 1
Need for Original Clauses
![Page 51: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/51.jpg)
Resolution Reasoning
![Page 52: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/52.jpg)
Resolution Derivation
A resolution derivation of a conclusion from a set of premises is a finite sequence of clauses terminating in the conclusion in which each clause is either a premise or the result of applying the resolution principle to earlier elements of the sequence.
Resolution Derivation
![Page 53: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/53.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
Example
![Page 54: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/54.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
Example
![Page 55: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/55.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal) } Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z) , g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
Example
![Page 56: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/56.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
8. {¬p(bud,z), g(art,z)} 2, 5
Example
![Page 57: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/57.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
8. {¬p(bud,z), g(art,z)} 2, 5
9. {g(art,coe)} 4, 8
Example
![Page 58: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/58.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
8. {¬p(bud,z), g(art,z)} 2, 5
9. {g(art,coe)} 4, 8
Example
![Page 59: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/59.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
8. {¬p(bud,z), g(art,z)} 2, 5
9. {g(art,coe)} 4, 8
Example
![Page 60: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/60.jpg)
Example
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬p(bob,z), g(art,z)} 1, 5
7. {g(art,cal)} 3, 6
8. {¬p(bud,z), g(art,z)} 2, 5
9. {g(art,coe)} 4, 8
Example
![Page 61: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/61.jpg)
Resolution Not Generatively Complete
Using the Resolution Principle alone, it is not possible to generate every clause that is logically entailed by a set of premises.
Examples:
{} |= {p(a), ¬p(a)}
But resolution cannot generate these results.
Resolution Not Generatively Complete
![Page 62: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/62.jpg)
Unsatisfiability
![Page 63: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/63.jpg)
Start with premises.
Apply resolution repeatedly.
If empty clause generated, the original set is unsatisfiable.
Demonstrating Unsatisfiability
![Page 64: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/64.jpg)
Example
1. {p(a,b), q(a,c)} Premise
2. {¬p(x,y), r(x)} Premise
3. {¬q(x,y), r(x)} Premise
4. {¬r(z)} Premise
Example
![Page 65: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/65.jpg)
1. {p(a,b), q(a,c)} Premise
2. {¬p(x,y), r(x)} Premise
3. {¬q(x,y), r(x)} Premise
4. {¬r(z)} Premise
5. {q(a,c), r(a)} 1, 2
Example
![Page 66: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/66.jpg)
Example
1. {p(a,b), q(a,c)} Premise
2. {¬p(x,y), r(x)} Premise
3. {¬q(x,y), r(x)} Premise
4. {¬r(z)} Premise
5. {q(a,c), r(a)} 1, 2
6. {r(a)} 5, 3
Example
![Page 67: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/67.jpg)
Example
1. {p(a,b), q(a,c)} Premise
2. {¬p(x,y), r(x)} Premise
3. {¬q(x,y), r(x)} Premise
4. {¬r(z)} Premise
5. {q(a,c), r(a)} 1, 2
6. {r(a)} 5, 3
7. {} 6, 4
Example
![Page 68: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/68.jpg)
Logical Entailment
![Page 69: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/69.jpg)
A resolution derivation of a clause ϕ from a set Δ of clauses is a sequence of clauses terminating in ϕ in which each item is(1) a member of Δ or(2) the result of applying the resolution to earlier items.
A sentence ϕ is provable from a set of sentences Δ byresolution if and only if there is a derivation of the empty clause from the clausal form of Δ∪{¬ϕ}.
A resolution proof is a derivation of the empty clause from the clausal form of the premises and the negation of the desired conclusion.
Provability
![Page 70: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/70.jpg)
Example
Everybody loves somebody. Everybody loves a lover. Show that everybody loves everybody.
€
∀x.∃y.loves(x,y)∀u.∀v.∀w.(loves(v,w)⇒ loves(u,v))¬∀x.∀y.loves(x,y)
€
{loves(x, f (x))}{¬loves(v,w), loves(u, v)}{¬loves( jack, jill)
Example
![Page 71: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/71.jpg)
Example
1. {loves(x,f(x))} Premise2. {¬loves(v,w), loves(u,v)} Premise
3. {¬loves(jack,jill)} Negated Goal
Example
![Page 72: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/72.jpg)
Example (continued)
1. {loves(x,f(x))} Premise2. {¬loves(v,w), loves(u,v)} Premise
3. {¬loves(jack,jill)} Negated Goal
4. {loves(u,x)} 1, 2
Example (continued)
![Page 73: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/73.jpg)
Example (concluded)
1. {loves(x,f(x))} Premise2. {¬loves(v,w), loves(u,v)} Premise
3. {¬loves(jack,jill)} Negated Goal
4. {loves(u,x)} 1, 2
5. {} 4, 3
Example (concluded)
![Page 74: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/74.jpg)
Harry and Ralph
Every horse can outrun every dog. Some greyhound can outrun every rabbit. Show that every horse can outrun every rabbit.
€
∀x.∀y.(h(x)∧d(y)⇒ f (x, y))∃y.(g(y)∧∀z.(r(z)⇒ f (y, z)))∀y.(g(y)⇒ d(y))∀x.∀y.∀z.( f (x, y)∧ f (y, z)⇒ f (x, z))
¬∀x.∀y.(h(x)∧ r(y)⇒ f (x, y))
Harry and Ralph
![Page 75: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/75.jpg)
Harry and Ralph
€
∀x.∀y.(h(x)∧d(y)⇒ f (x,y))∃y.(g(y)∧∀z.(r(z)⇒ f (y,z)))∀y.(g(y)⇒ d(y))∀x.∀y.∀z.( f (x,y)∧ f (y,z)⇒ f (x,z))
{¬h(x),¬d(y), f (x,y)}{g(greg)}{¬r(z), f (greg,z)}{¬g(y),d(y)}{¬f (x,y),¬f (y,z), f (x,z)}
Harry and Ralph
![Page 76: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/76.jpg)
Harry and Ralph
€
¬∀x.∀y.(h(x)∧ r(y)⇒ f (x,y))
{h(harry)}{r(ralph)}{¬f (harry,ralph)}
Harry and Ralph
![Page 77: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/77.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)}3. {¬r(z), f(greg,z)}4. {¬g(y), d(y)}5. {¬f(x,y),¬f(y,z),f(x,z)}6. {h(harry)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 78: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/78.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10. {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)}4. {¬g(y), d(y)}5. {¬f(x,y),¬f(y,z),f(x,z)}6. {h(harry)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 79: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/79.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10. {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)} 11. {f(harry,greg)}4. {¬g(y), d(y)}5. {¬f(x,y),¬f(y,z),f(x,z)}6. {h(harry)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 80: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/80.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10 {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)} 11. {f(harry,greg)}4. {¬g(y), d(y)} 12. {f(greg,ralph)}5. {¬f(x,y),¬f(y,z),f(x,z)}6. {h(harry)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 81: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/81.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10 {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)} 11. {f(harry,greg) }4. {¬g(y), d(y)} 12. {f(greg,ralph)}5. {¬f(x,y),¬f(y,z),f(x,z)} 13. {¬f(greg,z),f(harry,z)}6. {h(harry)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 82: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/82.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10 {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)} 11. {f(harry,greg)}4. {¬g(y), d(y)} 12. {f(greg,ralph)}5. {¬f(x,y),¬f(y,z),f(x,z)} 13. {¬f(greg,z),f(harry,z)}6. {h(harry)} 14. {f(harry,ralph)}7. {r(ralph)}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 83: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/83.jpg)
Harry and Ralph
1. {¬h(x), ¬d(y), f(x,y)} 9. {d(greg)}2. {g(greg)} 10 {¬d(y), f(harry,y)}3. {¬r(z), f(greg,z)} 11. {f(harry,greg)}4. {¬g(y), d(y)} 12. {f(greg,ralph)}5. {¬f(x,y),¬f(y,z),f(x,z)} 13. {¬f(greg,z),f(harry,z)}6. {h(harry)} 14. {f(harry,ralph)}7. {r(ralph)} 15. {}8. {¬f(harry,ralph)}
Harry and Ralph
![Page 84: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/84.jpg)
Inferential Equivalence
Equivalence Theorem: It is possible to prove a conclusion from a set of premises using Herbrand Resolution if and only if it is possible to prove that conclusion from those premises using Fitch.
Inferential Equivalence
![Page 85: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/85.jpg)
Answer Extraction
![Page 86: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/86.jpg)
Determining Logical Entailment
To determine whether a set Δ of sentences logically entails a closed sentence ϕ, rewrite Δ∪{¬ϕ} in clausal form and try to derive the empty clause.
Determining Logical Entailment
![Page 87: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/87.jpg)
Example
Show that (p(x) ⇒ q(x)) and p(a) logically entail ∃z.q(z).
1. {¬p(x),q(x)} Premise2. {p(a)} Premise3. {¬q(z)} Goal4. {¬p(z)} 1,35. {} 2, 4
Example
![Page 88: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/88.jpg)
Alternate Method
Basic Method: To determine whether a set Δ of sentences logically entails a closed sentence ϕ, rewrite Δ∪{¬ϕ} in clausal form and try to derive the empty clause.
Alternate Method: To determine whether a set Δ of sentences logically entails a closed sentence ϕ , rewrite Δ∪{ϕ ⇒ goal} in clausal form and try to derive goal.
Intuition: The sentence (ϕ ⇒ goal) is equivalent to the sentence (¬ϕ ∨ goal).
Alternate Method
![Page 89: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/89.jpg)
Example
Show that (p(x) ⇒ q(x)) and p(a) logically entail ∃z.q(z).
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a)} p(a)3. {¬q(z),goal} ∃z.q(z)⇒ goal4. {¬p(z), goal} 1,35. {goal} 2, 4
Example
![Page 90: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/90.jpg)
Answer Extraction Method
Alternate Method for Logical Entailment: To determine whether a set Δ of sentences logically entails a closed sentence ϕ , rewrite Δ∪{ϕ ⇒ goal} in clausal form and try to derive goal.
Method for Answer Extraction: To get values for free variables ν1,…,νn in ϕ for which Δ logically entails ϕ, rewrite Δ∪{ϕ ⇒ goal(ν1,…,νn)} in clausal form and try to derive goal(ν1,…,νn).
Intuition: The sentence (q(z) ⇒ goal(z)) says that, whenever, z satisfies q, it satisfies the “goal”.
Answer Extraction Method
![Page 91: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/91.jpg)
Example
Given (p(x) ⇒ q(x)) and p(a), find a term τ such that q(τ) is true.
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a)} p(a)3. {¬q(z),goal(z)} q(z)⇒ goal(z)4. {¬p(z), goal(z)} 1,35. {goal(a)} 2, 4
Example
![Page 92: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/92.jpg)
Example
Given (p(x) ⇒ q(x)) and p(a) and p(b), find a term τ such that q(τ) is true.
€
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a)} p(a)3. {p(b)} p(b)4. {¬q(z),goal(z)} q(z)⇒ goal(z)5. {¬p(z),goal(z)} 1,46. {goal(a)} 2,57. {goal(b)} 3,5
Example
![Page 93: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/93.jpg)
Example
Given (p(x) ⇒ q(x)) and (p(a) ∨ p(b)), find a term τ such that q(τ) is true.
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a), p(b)} p(a)∨ p(b)3. {¬q(z),goal(z)} q(z)⇒ goal(z)4. {¬p(z), goal(z)} 1,35. {p(b), goal(a)} 2,46. {goal(a),goal(b)} 4,5
Example
![Page 94: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/94.jpg)
Example
Given (p(x) ⇒ q(x)) and (p(a) ∨ p(b)), find a term τ such that q(τ) is true.
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a), p(b)} p(a)∨ p(b)3. {¬q(z),goal(z)} q(z)⇒ goal(z)4. {¬p(z), goal(z)} 1,35. {p(b), goal(a)} 2,46. {goal(a),goal(b)} 4,5
Example
![Page 95: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/95.jpg)
Kinship
Art is the parent of Bob and Bud.Bob is the parent of Cal and Coe.A grandparent is a parent of a parent.
p(art,bob)p(art,bud)p(bob,cal)p(bob,coe)p(x, y)∧ p(y, z)⇒ g(x, z)
Kinship
![Page 96: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/96.jpg)
Example
Given (p(x) ⇒ q(x)) and (p(a) ∨ p(b)), find a term τ such that q(τ) is true.
1. {¬p(x),q(x)} p(x)⇒ q(x)2. {p(a), p(b)} p(a)∨ p(b)3. {¬q(z),goal(z)} q(z)⇒ goal(z)4. {¬p(z), goal(z)} 1,35. {p(b), goal(a)} 2,46. {goal(a),goal(b)} 4,5
Example
![Page 97: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/97.jpg)
Is Art the Grandparent of Coe?
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬g(art,coe), goal()} 1, 5
7. {¬p(art,y), ¬p(y,coe), goal()} 3, 6
8. {¬p(bud,coe), goal()} 2, 5
9. {goal()} 4, 8
Is Art a grandparent of Coe?
![Page 98: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/98.jpg)
Who is the Grandparent of Coe?
1. {p(art,bob)} Premise
2. {p(art,bud)} Premise
3. {p(bob,cal)} Premise
4. {p(bud,coe)} Premise
5. {¬p(x,y), ¬p(y,z), g(x,z)} Premise
6. {¬g(x,coe), goal(x)} Goal
7. {¬p(x,y), ¬p(y,coe), goal(x)} 3, 6
8. {¬p(bud,coe), goal(art)} 2, 5
9. {goal(art)} 4, 8
Who are the grandparents of Coe?
![Page 99: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/99.jpg)
Who Are the Grandchildren of Art?1. {p(art,bob)} p(art,bob)2. {p(art,bud)} p(art,bud)3. {p(bob,cal)} p(bob,cal)4. {p(bob,coe)} p(bob,coe)5. {¬p(x, y),¬p(y, z), g(x, z)} p(x, y)∧ p(y, z)⇒ g(x, z)6. {¬g(art, z), goal(z)} g(art, z)⇒ goal(z)7. {¬p(art,y),¬p(y, z), goal(z)} 5,68. {¬p(bob, z),goal(z)} 1,79. {¬p(bud, z), goal(z)} 2,710. {goal(cal)} 3,811. {goal(coe)} 4,8
Who are the grandchildren of Art?
![Page 100: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/100.jpg)
People and their Grandchildren?1. {p(art,bob)} p(art,bob)2. {p(art,bud)} p(art,bud)3. {p(bob,cal)} p(bob,cal)4. {p(bob,coe)} p(bob,coe)5. {¬p(x, y),¬p(y, z), g(x, z)} p(x, y)∧ p(y, z)⇒ g(x, z)6. {¬g(x,z),goal(x, z)} g(x, z)⇒ goal(x, z)7. {¬p(x, y),¬p(y, z), goal(x, z)} 5,68. {¬p(bob, z),goal(art, z)} 1,79. {¬p(bud, z), goal(art, z)} 2,710. {goal(art,cal)} 3,811. {goal(art,coe)} 4,8
People and their grandchildren?
![Page 101: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/101.jpg)
Variable Length Lists
Example[a,b,c,d]
Representation as Termcons(a,cons(b,cons(c,cons(d,nil))))
Shorthand(a . (b . (c . (d . nil))))
Shorthand[a,b,c,d]
a b c d
Variable Length Lists
![Page 102: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/102.jpg)
List Membership
Membership axioms:member(u, u . x)member(u, v . y) ⇐ member(u, y)
Membership Clauses:{member(u, u . x)}{member(u, v . y), ¬member(u, y)}
Answer Extraction for member(w, [a, b, c]){¬member(w, a.b.c. nil),goal(w)}{goal(a)}{¬member(w, b.c. nil)}{goal(b)}
List Membership
![Page 103: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/103.jpg)
List Concatenation
Concatenation Axioms:append(nil,y,y)append(w. x, y, w.z) ⇐ append(x, y, z)
Concatenation Clauses:{append(nil,y,y)}{append(w. x, y, w.z), ¬append(x, y, z)}
Answer Extraction for append([a,b],[c,d],z):{¬append(a.b.nil, c.d.nil, z), goal(z)}{¬append(b.nil, c.d.nil, z1), goal(a.z1)}{¬append(nil, c.d.nil, z2), goal(a.b.z2)}{goal(a.b.c.d.nil)}
List Concatenation
![Page 104: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/104.jpg)
List Reversal
Reversal Example:reverse([a,b,c,d], [d,c,b,a])
Reversal Axioms:reverse(x, y) ⇐ reverse2(x, nil, y)reverse2(nil, y, y)reverse2(w.x, y, z) ⇐ reverse2(x, w.y, z)
Answer Extraction for reverse([a,b,c,d],z):{¬reverse(a.b.c.d.nil, z), goal(z)} …{goal(d.c.b.a.nil)}
List Reversal
![Page 105: Introduction to Logic Resolution](https://reader030.vdocuments.site/reader030/viewer/2022020622/61ed3d27ba50be3d7772c2cd/html5/thumbnails/105.jpg)