Sound and Complete Inference Rules in FOL

Teqnht  NohmosÔnh M. Koumparˆkhc ' $ Sound and Complete Inference Rules in FOL An inference rule i is called sound if KB |= α whenever KB `i α ...
Author: Clifton Collins
4 downloads 2 Views 243KB Size
Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Sound and Complete Inference Rules in FOL An inference rule i is called sound if KB |= α

whenever

KB `i α

An inference rule i is called complete if KB `i α

whenever

KB |= α

Generalised Modus-Ponens (equivalently, forward or backward chaining) is sound and complete for Horn KBs but incomplete for general first-order logic.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example Let us consider the following formulas: P hD(x) ⇒ HighlyQualif ied(x) ¬P hD(x) ⇒ EarlyEarnings(x) HighlyQualif ied(x) ⇒ Rich(x) EarlyEarnings(x) ⇒ Rich(x) From the above we should be able to infer Rich(M e), but GMP won’t do it! Is there a complete inference procedure for FOL? &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

The Resolution Inference Rule

Basic propositional version: α ∨ β, ¬β ∨ γ or equivalently α∨γ

&

¬α ⇒ β, β ⇒ γ ¬α ⇒ γ

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

$

'

The Resolution Inference Rule - FOL version

p1 ∨ · · · ∨ pj · · · ∨ pm , q1 ∨ · · · ∨ qk · · · ∨ qn SU BST (σ, (p1 ∨ · · · ∨ pj−1 ∨ pj+1 ∨ · · · ∨ pm ∨ q1 · · · ∨ qk−1 ∨ qk+1 · · · ∨ qn )) where U N IF Y (pj , ¬qk ) = σ. Note: σ is the most general unifier (MGU) of pj and qk0 . The literals pj and qk are called complementary literals because each one unifies with the negation of the other. The resulting disjunction is called a resolvent.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples ¬Rich(x) ∨ U nhappy(x), Rich(M e) U nhappy(M e) with MGU σ = {x/M e}

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) P hD(x) ⇒ HighlyQualif ied(x) ¬P hD(x) ⇒ EarlyEarnings(x) HighlyQualif ied(x) ⇒ Rich(x) EarlyEarnings(x) ⇒ Rich(x) Let us try resolution to infer Rich(M e)! The standard way of showing that KB ` φ by resolution is to add ¬φ to the KB and show that we can reach the empty clause by repeated application of the resolution rule. In our case, we add ¬Rich(M e). &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) Let us first write all our formulas as disjunctions: ¬P hD(x) ∨ HighlyQualif ied(x) P hD(x) ∨ EarlyEarnings(x) ¬HighlyQualif ied(x) ∨ Rich(x) ¬EarlyEarnings(x) ∨ Rich(x) ¬Rich(M e) Now we can apply resolution repeatedly.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) From ¬Rich(M e) and ¬HighlyQualif ied(z) ∨ Rich(z) with MGU σ = {z/M e}, we infer ¬HighlyQualif ied(M e).

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) From ¬Rich(M e) and ¬EarlyEarnings(w) ∨ Rich(w) using MGU σ = {w/M e}, we infer ¬EarlyEarnings(M e).

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) From ¬P hD(x) ∨ HighlyQualif ied(x) and P hD(y) ∨ EarlyEarnings(y) with MGU σ = {x/y}, we infer HighlyQualif ied(y) ∨ EarlyEarnings(y).

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) From HighlyQualif ied(v) ∨ EarlyEarnings(v) and ¬EarlyEarnings(M e) using MGU σ = {v/M e}, we infer HighlyQualif ied(M e).

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Examples (cont’d) From HighlyQualif ied(M e) and ¬HighlyQualif ied(M e) using MGU σ = {}, we infer the empty clause. Thus we have reached a contradiction!

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Conjunctive Normal Form To be able to do resolution, the given formulas have to be in conjunctive normal form. Definition. A literal is an atomic formula or the negation of an atomic formula. An atomic formula is also called a positive literal, and the negation of an atomic formula is called a negative literal. A clause is a disjunction of literals. There is a special clause called empty which is equivalent to false. Definition. A FOL formula is in conjunctive normal form (CNF) if it is a conjunction of disjunctions of literals (equivalently if it is a set of clauses). Proposition. Every FOL formula is equivalent to a formula in CNF. &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Conversion to CNF 1. Eliminate equivalences and implications using the laws: (φ ⇔ ψ) ≡ (φ ⇒ ψ ∧ ψ ⇒ φ) φ ⇒ ψ ≡ ¬φ ∨ ψ 2. Move ¬ inwards using the equivalences ¬(φ ∨ ψ) ≡ ¬φ ∧ ¬ψ ¬(φ ∧ ψ) ≡ ¬φ ∨ ¬ψ ¬(∀x)φ ≡ (∃x)¬φ ¬(∃x)φ ≡ (∀x)¬φ ¬¬φ ≡ φ &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Conversion to CNF (cont’d) 3. Rename variables so that each quantifier has a unique variable. 3. Eliminate existential quantifiers. If an existential quantifier does not occur in the scope of a universal quantifier, we simply drop the quantifier and replace all occurences of the quantifier variable by a new constant called a Skolem constant. If an existential quantifier ∃x is within the scope of universal quantifiers ∀y1 , . . . , ∀yn , we drop the quantifier and replace all occurences of the quantifier variable x by the term f (y1 , . . . , yn ) where f is a new function symbol called a Skolem function. &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Conversion to CNF (cont’d) 5. Drop all universal quantifiers. 6. Distribute ∧ over ∨ using the equivalence (φ ∧ ψ) ∨ θ ≡ (φ ∨ θ) ∧ (ψ ∨ θ) 7. Flatten nested conjunctions or disjunctions. Then, write each disjunction on a separate line and standardize variables apart (i.e., make sure disjunctions use different variables).

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example Let us convert to CNF the following sentence: (∀x)((∀y)P (x, y) ⇒ ¬(∀y)(Q(x, y) ⇒ R(x, y))) 1. Eliminate implications: (∀x)(¬(∀y)P (x, y) ∨ ¬(∀y)(¬Q(x, y) ∨ R(x, y))) 2. Move ¬ inwards: (∀x)((∃y)¬P (x, y) ∨ (∃y)(Q(x, y) ∧ ¬R(x, y)))

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example (cont’d) 3. Rename variables: (∀x)((∃y)¬P (x, y) ∨ (∃z)(Q(x, z) ∧ ¬R(x, z))) 4. Skolemize: (∀x)(¬P (x, F1 (x)) ∨ (Q(x, F2 (x)) ∧ ¬R(x, F2 (x)))) 5. Drop universal quantifiers: ¬P (x, F1 (x)) ∨ (Q(x, F2 (x)) ∧ ¬R(x, F2 (x))) 6. Distribute ∧ over ∨: (¬P (x, F1 (x)) ∨ Q(x, F2 (x))) ∧ (¬P (x, F1 (x)) ∨ ¬R(x, F2 (x))) 7. Final form: ¬P (x, F1 (x)) ∨ Q(x, F2 (x)) ¬P (x, F1 (x)) ∨ ¬R(x, F2 (x)) &

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Resolution: Soundness and Refutation-Completeness Theorem. (Soundness) Let KB be a knowledge base. If φ can be proved from KB using resolution then KB |= φ. Theorem. (Refutation-completeness) If a set ∆ of clauses is unsatisfiable then resolution will derive the empty clause from ∆. Note: The above theorem holds only if ∆ does not involve equality. Methodology: If we are asked to prove KB |= α then we negate α and show that KB ∧ ¬α is unsatisfiable using resolution.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 1 The crime example we saw in a previous lecture: The law says that it is a crime for an American to sell weapons to hostile nations. The country Nono, an enemy of America, has some missiles, and all of its missiles were sold to it by Colonel West, who is an American. Use resolution to conclude that West is a criminal.

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Example 1: Formalization in FOL • “... it is a crime for an American to sell weapons to hostile nations”: (∀x, y, z) (American(x) ∧ W eapon(y) ∧ N ation(z)∧ Hostile(z) ∧ Sells(x, y, z) ⇒ Criminal(x)) • “Nono ... has some missiles”: (∃x) (Owns(N ono, x) ∧ M issile(x)) • “All of its missiles were sold to it by Colonel West”: (∀x) (Owns(N ono, x) ∧ M issile(x) ⇒ Sells(W est, x, N ono))

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Example 1: Formalization in FOL (cont’d) • Missiles are weapons: (∀x) (M issile(x) ⇒ W eapon(x)) • An enemy of America is a “hostile nation”: (∀x) (Enemy(x, America) ⇒ Hostile(x)) • “West, who is an American”: American(W est) • “The country Nono ...”: N ation(N ono) • “Nono, an enemy of America ...”: Enemy(N ono, America), N ation(America) &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 1: CNF form • “... it is a crime for an American to sell weapons to hostile nations”: ¬American(x) ∨ ¬W eapon(y) ∨ ¬Sells(x, y, z)∨ ¬Hostile(z) ∨ Criminal(x) • “Nono ... has some missiles”: Owns(N ono, M 1),

M issile(M 1)

• “All of its missiles were sold to it by Colonel West”: ¬M issile(x) ∨ ¬Owns(N ono, x) ∨ Sells(W est, x, N ono)

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Example 1: CNF form (cont’d) • Missiles are weapons: ¬M issile(x) ∨ W eapon(x) • An enemy of America is a “hostile nation”: ¬Enemy(x, America) ∨ Hostile(x) • “West, who is an American”: American(W est) • “The country Nono ...”: N ation(N ono) • “Nono, an enemy of America ...”: Enemy(N ono, America), N ation(America) &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

L

L

L

Hostile(z)

L

L

L

L

L L

L L

L

L

L L

L

L

L

L L L

>

>

&

Hostile(z)

Hostile(z)

Hostile(z)

>

Enemy(Nono,America)

Owns(Nono,M1)

>

Hostile(x)

>

Enemy(x,America)

Owns(Nono,M1)

>

Owns(Nono,M1)

Missile(M1)

Sells(West,y,z)

Sells(West,M1,z)

>

Missile(M1)

Criminal(West)

Sells(West,y,z)

Sells(West,y,z)

>

Sells(West,x,Nono)

>

Owns(Nono,x)

>

>

Missile(x)

Missile(y)

>

Missile(M1)

Weapon(y)

Weapon(y)

>

Weapon(x)

>

Missile(x)

American(West)

>

American(West)

Criminal(x)

L

L

L

Hostile(z)

>

Sells(x,y,z)

>

Weapon(y)

>

>

American(x)

L

Example 1: Proof

Hostile(Nono)

Hostile(Nono)

Hostile(Nono)

Enemy(Nono,America)

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 2 Let us assume that we know the following: Everyone who loves all animals is loved by someone. Anyone who kills an animal is loved by no one. Jack loves all animals. Either Jack or Curiosity killed the cat, who is named Tuna. From the above facts, can we prove that Curiosity killed Tuna?

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Example 2: Formalization in FOL • Everyone who loves animals is loved by someone. (∀x)((∀y)(Animal(y) ⇒ Loves(x, y)) ⇒ (∃y)Loves(y, x) ) • Anyone who kills an animal is loved by no one. (∀x)((∃y)(Animal(y) ∧ Kills(x, y)) ⇒ (∀z)¬Loves(z, x)) • Jack loves all animals. (∀x)(Animal(x) ⇒ Loves(Jack, x))

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Example 2: Formalization in FOL • Either Jack or Curiosity killed the cat ... Kills(Jack, T una) ∨ Kills(Curiosity, T una) • ... who is named Tuna. Cat(T una) We will also need the formula (∀x)(Cat(x) ⇒ Animal(x)) which is background knowledge. The negation of the formula to be proved is: ¬Kills(Curiosity, T una) &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

L L

Animal(F(Jack))

L

Loves(G(x),x)

Loves(G(Jack),Jack)

Animal (x)

Animal(F(x))

Loves(Jack,x)

Loves(G(x),x)

>

Loves(y,Jack)

Loves(x, F(x))

>

L

Kills(x,Tuna)

L

L

L

Kills(Jack,Tuna)

>

L

L

Kills(x,z)

Kills(Curiosity,Tuna)

>

L

Animal(z)

Kills(Curiosity,Tuna)

>

Kills(Jack,Tuna}

>

Loves(y,x)

>

Loves(y,x)

Animal(x)

>

Animal(Tuna)

Cat(x)

>

L

Example 2: Proof

Loves(G(Jack),Jack)

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Resolution, Validity and Unsatisfiability Questions: • How do we use resolution to prove that the following formula is valid? Happy(John) ∨ ¬Happy(John) • How do we use resolution to prove that the following formula is unsatisfiable? Happy(John) ∧ ¬Happy(John)

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Fill-in-the-Blank Questions So far we have used resolution to see that something follows from a KB. We can also use resolution to answer questions about facts that follow from a KB. In the previous example, we can use resolution to find the answer to the question: Who killed Tuna? This can be expressed using a free variable and writing the fill-in-the-blank query Kills(x, T una). Definition. An answer literal for a fill-in-the-blank query φ is an atomic formula of the form Ans(v1 , . . . , vn ) where the variables v1 , . . . , vn are the free variables in φ. &

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Fill-in-the-Blank Questions (cont’d) To answer the fill-in-the-blank query φ we form the disjunction Ans(v1 , . . . , vn ) ∨ ¬φ and convert it to CNF. Then we use resolution and terminate our search when we reach a clause containing only answer literals (instead of terminating when we reach the empty clause).

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Fill-in-the-Blank Questions (cont’d) For fill-in-the-blank questions, we can have: • Termination with a clause which is a single answer literal Ans(c1 , . . . , cn ). In this case, the constants c1 , . . . , cn gives us an answer to the query. There might be more answers depending on whether there are more resolution refutations of Ans(v1 , . . . , vn ) ∨ ¬φ. We can go on looking for more answers but we can never be sure that we have found them all (incompleteness of resolution). • Termination with a clause which is a disjunction of more than one answer literals. In this case, one of the answer literals contains the answer but we cannot say which one for sure. &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 1 KB: F ather(Art, John) F ather(Bob, Kim) (∀x)(∀y)(F ather(x, y) ⇒ P arent(x, y)) Query: Who is John’s parent? To answer the query, we use resolution on the following set of clauses: F ather(Art, John) F ather(Bob, Kim) ¬F ather(x, y) ∨ P arent(x, y) Ans(z) ∨ ¬P arent(z, John) &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 1 (cont’d) From F ather(Art, John) and ¬F ather(x, y) ∨ P arent(x, y) with MGU {x/Art, y/John}, we have P arent(Art, John) which in turn resolves with Ans(z) ∨ ¬P arent(z, John) with MGU {z/Art}, to give Ans(Art). &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 2 KB: F ather(Art, John) ∨ F ather(Bob, John) (∀x)(∀y)(F ather(x, y) ⇒ P arent(x, y)) Query: Who is John’s parent? To answer the query, we use resolution on the following set of clauses: F ather(Art, John) ∨ F ather(Bob, John) ¬F ather(x, y) ∨ P arent(x, y) Ans(z) ∨ ¬P arent(z, John) &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 2 (cont’d) From F ather(Art, John) ∨ F ather(Bob, John) and ¬F ather(x, y) ∨ P arent(x, y) with MGU {x/Art, y/John}, we have P arent(Art, John) ∨ F ather(Bob, John) which in turn resolves with ¬F ather(x, y) ∨ P arent(x, y) with MGU {x/Bob, y/John}, to give P arent(Art, John) ∨ P arent(Bob, John). &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Example 2 (cont’d) From P arent(Art, John) ∨ P arent(Bob, John) and Ans(z) ∨ ¬P arent(z, John) with MGU {z/Art}, we have Ans(Art) ∨ P arent(Bob, John) which in turn resolves with Ans(z) ∨ ¬P arent(z, John) with MGU {z/Bob}, to give Ans(Art) ∨ Ans(Bob). &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Dealing with Equality If we want to use equality in our resolution proofs, we can do it in two ways: • Add appropriate formulas that axiomatize equality in our KB. What are these formulas? • Use special inference rules that take equality into account. • Use equational unification (a special kind of unification that takes equality into account). The same is true for other special predicates such as arithmetic ones 1). There are various strategies that can be applied to make resolution more efficient in practice (unit preference, set of support, input resolution, subsumption). &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Other Normal Forms: DNF Definition. A FOL formula is in disjunctive normal form (DNF) if it is a disjunction of conjunctions of literals. Proposition. Every FOL formula is equivalent to a formula in DNF.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Other Normal Forms: PNF Definition. A FOL formula is in prenex normal form (PNF) if all its quantifiers appear at the front of the formula. Proposition. Every FOL formula is equivalent to a formula in PNF.

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Conversion to Prenex Normal Form • Steps 1 and 2 of conversion to CNF. • Move quantifiers to the front of the formula using the equivalences (∀x)(φ ∧ ψ) ≡ (∀x)φ ∧ ψ (∀x)(φ ∨ ψ) ≡ (∀x)φ ∨ ψ (∃x)(φ ∧ ψ) ≡ (∃x)φ ∧ ψ (∃x)(φ ∨ ψ) ≡ (∃x)φ ∨ ψ The above equivalences hold only if x does not appear free in ψ. Step 1 and 2 are not necessary if we introduce equivalences for the rest of the connectives. &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

A Brief History of Reasoning 450b.c.

Stoic and Megarian

PL, truth tables,

schools

inference (modus ponens)

322b.c.

Aristotle

“syllogisms” (inference rules), quantifiers

1847

Boole

PL (again)

1879

Frege

FOL

1921/22

Post/Wittgenstein

proof by truth tables

1930

G¨odel

∃ complete algorithm for proofs in FOL

1930

Herbrand

complete algorithm for proofs in FOL (reduce to propositional)

1931

G¨odel

¬∃ complete algorithm for arithmetic proofs

1960

Davis/Putnam

“practical” algorithm for PL resolution

Robinson

resolution

1965 &

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Soundnes and Completeness of FOL Inference

Theorem. (G¨odel, 1930) KB |= φ iff KB ` φ. Theorem. Checking entailment (equivalently: validity or unsatisfiability or provability) of a FOL formula is a recursively enumerable problem.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Informal Definitions A yes/no problem P is called recursive or decidable if there is an algorithm that, given input x, outputs “yes” and terminates whenever x ∈ P , and “no” and terminates when x 6∈ P . A yes/no problem P is called recursively enumerable or semi-decidable if there is an algorithm that, given input x, outputs “yes” and terminates whenever x ∈ P but computes for ever when x 6∈ P . The above algorithm is not a very useful because, if it has not terminated, we cannot know for sure whether we have waited long enough to get an answer. &

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

G¨ odel’s Incompleteness Theorem

Theorem. (G¨odel, 1930) For any set A of true sentences of number theory, and, in particular, any set of basic axioms, there are other true sentences of number arithmetic that cannot be proved from A. Sad conclusion: We can never prove all the theorems of mathematics within any given system of axioms.

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Soundness and Completeness (cont’d)

Theorem. (Herbrand, 1930) If a finite set ∆ of clauses is unsatisfiable then the Herbrand base of ∆ is unsatisfiable. Theorem. (Robinson, 1965) Soundness of Resolution. If there is a resolution refutation of a clause φ from a set of clauses KB then KB |= φ. Theorem. (Robinson, 1965) Completeness of Resolution. If a set of clauses KB is unsatisfiable then there is a resolution refutation of the empty clause from KB. &

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Soundness and Completeness (cont’d) Question: How can we use a refutation-complete proof procedure (e.g., resolution) to determine whether a sentence φ is entailed by a set of sentences KB? Answer: We can negate φ, add it to KB and then use resolution. But we will not know whether KB |= φ until resolution finds a contradiction and returns. While resolution has not returned, we do not know whether the system has gone into a loop or the proof is about to pop out!!!

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Some Good News There are many interesting subsets of FOL that are decidable: • Monadic logic (only unary predicates). • Horn clauses • ... Many practical problems can be encoded in these subsets!

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Knowledge-Based Agents function KB-Agent(percept) returns an action static KB, a knowledge-base t, a counter, initially 0, indicating time Tell(KB,Make-Percept-Sentence(percept, t)) action ← Ask(KB,Make-Action-Query(t)) Tell(KB,Make-Action-Sentence(action, t)) t←t+1 return action Using the FOL machinery we presented, how can we implement knowledge-based agents? &

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Logical Reasoning Systems • Logic programming languages (most notably Prolog). Prolog was developed in 1972 by Alain Colmerauer and it is based on the idea of backward chaining. Prolog’s motto (after Kowalski) is: Algorithm = Logic + Control Logic programming and Prolog was the basis of much exciting research and development in logic programming in the 70’s and 80’s. Logic programming and its extensions is still a very lively area of research that has been applied in many areas (databases, natural language processing, expert systems etc.). Of particular, importance is constraint logic programming (CLP) that integrates logic programming with CSPs. CLP has been used with success recently in many combinatorial optimisation applications (e.g., scheduling, planning, etc.)

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Logical Reasoning Systems (cont’d) • Production systems based on the idea of forward-chaining (where the conclusion of an implication is interpreted as an action to be executed). Production systems were used a lot in early AI work (particularly in rule-based expert systems). There are various implemented production systems such as OPS-5 or CLIPS.

&

%

Teqnht  NohmosÔnh

'

M. Koumparˆkhc

$

Logical Reasoning Systems (cont’d) • Theorem provers are more powerful tools than Prolog since they can deal with full first-order logic. Examples: OTTER, PTTP, etc. Theorem provers have come up with novel mathematical results (lattice theory, a formal proof of Godel’s incompleteness theorem, Robbins algebra). They are also used in verification and synthesis of both hardware and software because both domains can be given correct axiomatizations.

&

%

Teqnht  NohmosÔnh

M. Koumparˆkhc

'

$

Readings • AIMA, Chapter 9. • M. Genesereth and N. Nilsson. “Logical Foundations of Artificial Intelligence”, Chapter 4. This chapter gives a more formal treatment with detailed proofs of the theorems we presented. • The book “Mechanizing Proof: Computing, Risk and Trust” by Donald MacKenzie (MIT Press, 2001) is an interesting historical and sociological account of automated theorem proving. Read this book for fun when you have time!

&

%