160 likes | 265 Views
This lecture covers the fundamentals of First Order Logic (FOL) resolution, focusing on the challenges of quantifier elimination and variable comparison. It delves into substitution and unification, explaining how these processes facilitate theorem proving in FOL. The examples illustrate the importance of unique variables and the concept of the most general unifier (MGU). Additionally, it discusses the resolution method for proving theorems through clausal form conversion, with practical examples to strengthen understanding.
E N D
CS.462Artificial Intelligence SOMCHAI THANGSATHITYANGKUL Lecture 06 : First Order Logic Resolution Prove
Proving Theorem in FOL • Proving theorem in FOL raises two additional problems: • Need to remove quantifiers • Need to be able to compare variable (which represent unknown values)
Substitution and Unification • A substitution is a set of variable/ term pairs that one can apply to sentences to perform some needed unification or other manipulation SUBST(, ) denoted the result of applying substitution to sentence e.g., SUBST({x/A, y/ f(x)}, P (x,y)) = P(A, f(A)) • Unification is the process of taking 2 atomic statements and finding a substitution that make them equivalent UNIFY(p,q) = where SUBST(, p) = SUBST(, q) e.g. UNIFY(P(x), P(A) = { x/A }
Unification Example Knows(John, x) Hates(John, x) Knows(John, Jane) Knows(y, Leonid) Knows(y, Mother(y)) Knows(x, Elizabeth) UNIFY(Knows(John, x), Knows(John, Jane)) = {x/John} UNIFY(Knows(John, x), Knows(y, Leonid)) = {x/John, y/Leonid} UNIFY(Knows(John, x), Knows(y, Mother(y))) = {y/John, x/Mother(John)} UNIFY(Knows(John, x), Knows(x, Elizabeth) = fail
Unification Example • Before beginning unification, all variable names must be unique UNIFY(Knows(John, x1), Knows(x2, Elizabeth) = {x1/Elizabeth, x2/John} • Unification makes as few commitments about variable bindings as possible UNIFY(Knows(John, x), Knows(y, z) = {y/John, x/z} Or {y/John, x/z, w/Freda} Or {y/John, x/John, z/John} Or … {y/John, x/z} is the most general unifier (MGU)
Resolution Using Unification Given: P(A) (x) (P(x) Q(f(x))), prove: (z) (Q(z)) • Negate the theorem: (z) (Q(z)) • Drop universal quantifiers and separate into disjunctive clauses. • P(A) • (P(x) Q(f(x))) • Q(z) • Clause 1 and 2 are resolved by substituting A for x {x/A}. Resulting clause is Q(f(A)), which is added to original set. • Q(f(A)) is resolved against clause 3, using {z/f(A)}. Result is Q(f(A)) and Q(f(A)) • Contradiction proves original theorem.
Resolution Proof • Question (informal): Is Marcus alive in the year 2001? • Axioms (informal) • Marcus was a man. • Marcus was a Pompeian. • Marcus was born in 40 A.D. • All man are mortal. • The volcano erupted in 79 A.D. • All Pompeians died when the volcano erupted. • No mortal lives longer than 150 years. • Additional axioms are required. 8. Alive means not dead 9. If someone dies, they remain dead.
Resolution Proof Axioms in clause form • Man(Marcus) • Pompeian(Marcus) • Born(Marcus, 40) • Man(x1) Mortal(x1) from... x Man(x) Mortal(x) • Erupted(Volcano, 79) • Pomepeian(x2) Died(x2, 79) from... x Pompeian(x) Died(x, 79) • Mortal(x3) Born(x3, t1) Gt(t2-t1, 150) Dead(x3, t2) from... x,t1,t2 (Mortal(x)Born(x,t)Gt(t2-t1, 150) Dead(x, t2))
Resolution Proof 8a. Alive(x4, t3) Dead(x4, t3) 8b. Dead(x4, t3) Alive(x4, t3) from... x,t Alive(x, t) Dead(x, t) 9. Died(x6, t5) Gt(t6,t5) Dead(x6,t6) from... x,t1,t2 Died(x, t1) Gt(t2,t1) Dead(x, t2) Prove: alive(Marcus, 2001) Negate clause to be proved and add to list: alive(Marcus, 2001)
Alive(x4, t3)Dead(x4, t3) Alive(Marcus, 2001) {x4/Marcus, t3/2001} Mortal(x3) Born(x3, t1) Gt(t2-t1, 150) Dead(x3, t2) Dead(x4, 2001) {x3/Marcus, t2/2001} Mortal(Marcus) Born(Marcus, t1) Gt(2001-t1, 150) Man(x1) Mortal(x1) {x1/Marcus} Man(Marcus) Born(Marcus, t1) Gt(2001-t1, 150) Man(Marcus) Born(Marcus, t1) Gt(2001-t1, 150) Born(Marcus, 40) {t1/40} Gt(2001-40, 150) Gt(1961, 150)
Try this • Use Resolution prove that West is a criminal