You are on page 1of 8

Universal instantiation (UI)

Every instantiation of a universally quantied sentence is entailed by it: v Subst({v/g}, ) for any variable v and ground term g E.g., x King(x) Greedy(x) Evil(x) yields Chapter 9 King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(F ather(John)) Greedy(F ather(John)) Evil(F ather(John)) . .

Inference in first-order logic

Chapter 9

Chapter 9

Outline
Reducing rst-order inference to propositional inference Unication Generalized Modus Ponens Forward and backward chaining Logic programming Resolution

Existential instantiation (EI)


For any sentence , variable v, and constant symbol k that does not appear elsewhere in the knowledge base: v Subst({v/k}, ) E.g., x Crown(x) OnHead(x, John) yields Crown(C1) OnHead(C1, John) provided C1 is a new constant symbol, called a Skolem constant Another example: from x d(xy )/dy = xy we obtain d(ey )/dy = ey provided e is a new constant symbol

Chapter 9

Chapter 9

A brief history of reasoning


450b.c. 322b.c. 1565 1847 1879 1922 1930 1930 1931 1960 1965 Stoics Aristotle Cardano Boole Frege Wittgenstein Gdel o Herbrand Gdel o Davis/Putnam Robinson propositional logic, inference (maybe) syllogisms (inference rules), quantiers probability theory (propositional logic + uncertainty) propositional logic (again) rst-order logic proof by truth tables complete algorithm for FOL complete algorithm for FOL (reduce to propositional) complete algorithm for arithmetic practical algorithm for propositional logic practical algorithm for FOLresolution

Existential instantiation contd.


UI can be applied several times to add new sentences; the new KB is logically equivalent to the old EI can be applied once to replace the existential sentence; the new KB is not equivalent to the old, but is satisable i the old KB was satisable

Chapter 9

Chapter 9

Reduction to propositional inference


Suppose the KB contains just the following: x King(x) Greedy(x) Evil(x) King(John) Greedy(John) Brother(Richard, John) Instantiating the universal sentence in all possible ways, we have King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(John) Greedy(John) Brother(Richard, John) The new KB is propositionalized: proposition symbols are King(John), Greedy(John), Evil(John), King(Richard) etc.
Chapter 9 7

Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =

p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x)

q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)

Chapter 9

10

Reduction contd.
Claim: a ground sentence is entailed by new KB i entailed by original KB Claim: every FOL KB can be propositionalized so as to preserve entailment Idea: propositionalize KB and query, apply resolution, return result Problem: with function symbols, there are innitely many ground terms, e.g., F ather(F ather(F ather(John))) Theorem: Herbrand (1930). If a sentence is entailed by an FOL KB, it is entailed by a nite subset of the propositional KB Idea: For n = 0 to do create a propositional KB by instantiating with depth-n terms see if is entailed by this KB Problem: works if is entailed, loops if is not entailed Theorem: Turing (1936), Church (1936), entailment in FOL is semidecidable
Chapter 9 8

Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =

p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x)

q Knows(John, Jane) {x/Jane} Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)

Chapter 9

11

Problems with propositionalization


Propositionalization seems to generate lots of irrelevant sentences. E.g., from x King(x) Greedy(x) Evil(x) King(John) y Greedy(y) Brother(Richard, John) it seems obvious that Evil(John), but propositionalization produces lots of facts such as Greedy(Richard) that are irrelevant With p k-ary predicates and n constants, there are p nk instantiations With function symbols, it gets nuch much worse!

Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =

p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x)

q Knows(John, Jane) {x/Jane} Knows(y, OJ) {x/OJ, y/John} Knows(y, M other(y)) Knows(x, OJ)

Chapter 9

Chapter 9

12

Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if = Need to show that

Soundness of GMP

p1 , . . . , pn , (p1 . . . pn q) |= q provided that pi = pi for all i Lemma: For any denite clause p, we have p |= p by UI

p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x)

q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)

{x/Jane} {x/OJ, y/John} {y/John, x/M other(John)}

1. (p1 . . . pn q) |= (p1 . . . pn q) = (p1 . . . pn q) 2. p1 , . . . , pn |= p1 . . . pn |= p1 . . . pn 3. From 1 and 2, q follows by ordinary Modus Ponens

Chapter 9

13

Chapter 9

16

Unication
We can get the inference immediately if we can nd a substitution such that King(x) and Greedy(x) match King(John) and Greedy(y) = {x/John, y/John} works Unify(, ) = if =

Example knowledge base


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 American. Prove that Col. West is a criminal

p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x)

q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)

{x/Jane} {x/OJ, y/John} {y/John, x/M other(John)} f ail

Standardizing apart eliminates overlap of variables, e.g., Knows(z17, OJ)

Chapter 9

14

Chapter 9

17

Generalized Modus Ponens (GMP)


p1 , p2 , . . . , pn , (p1 p2 . . . pn q) q p1 is King(John) p1 is King(x) p2 is Greedy(x) p2 is Greedy(y) is {x/John, y/John} q is Evil(x) q is Evil(John) GMP used with KB of denite clauses (exactly one positive literal) All variables assumed universally quantied

Example knowledge base contd.


. . . it is a crime for an American to sell weapons to hostile nations:

where pi = pi for all i

Chapter 9

15

Chapter 9

18

Example knowledge base contd.


. . . 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

Example knowledge base contd.


. . . 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, i.e., x Owns(N ono, x) M issile(x): Owns(N ono, M1) and M issile(M1) . . . all of its missiles were sold to it by Colonel West x M issile(x) Owns(N ono, x) Sells(W est, x, N ono) Missiles are weapons: M issile(x) W eapon(x) An enemy of America counts as hostile:

Chapter 9

19

Chapter 9

22

Example knowledge base contd.


. . . 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, i.e., x Owns(N ono, x) M issile(x): Owns(N ono, M1) and M issile(M1) . . . all of its missiles were sold to it by Colonel West

Example knowledge base contd.


. . . 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, i.e., x Owns(N ono, x) M issile(x): Owns(N ono, M1) and M issile(M1) . . . all of its missiles were sold to it by Colonel West x M issile(x) Owns(N ono, x) Sells(W est, x, N ono) Missiles are weapons: M issile(x) W eapon(x) An enemy of America counts as hostile: Enemy(x, America) Hostile(x) West, who is American . . . American(W est) The country Nono, an enemy of America . . . Enemy(N ono, America)

Chapter 9

20

Chapter 9

23

Example knowledge base contd.


. . . 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, i.e., x Owns(N ono, x) M issile(x): Owns(N ono, M1) and M issile(M1) . . . all of its missiles were sold to it by Colonel West x M issile(x) Owns(N ono, x) Sells(W est, x, N ono) Missiles are weapons:

Forward chaining algorithm


function FOL-FC-Ask(KB, ) returns a substitution or false repeat until new is empty new { } for each sentence r in KB do ( p 1 . . . p n q) Standardize-Apart(r) for each such that (p 1 . . . p n ) = (p 1 . . . p n ) for some p 1, . . . , p n in KB q Subst(, q) if q is not a renaming of a sentence already in KB or new then do add q to new Unify(q , ) if is not fail then return add new to KB return false

Chapter 9

21

Chapter 9

24

Forward chaining proof

Properties of forward chaining


Sound and complete for rst-order denite clauses (proof similar to propositional proof) Datalog = rst-order denite clauses + no functions (e.g., crime KB) FC terminates for Datalog in poly iterations: at most p nk literals May not terminate in general if is not entailed This is unavoidable: entailment with denite clauses is semidecidable

American(West)

Missile(M1)

Owns(Nono,M1)

Enemy(Nono,America)

Chapter 9

25

Chapter 9

28

Forward chaining proof

Eciency of forward chaining


Simple observation: no need to match a rule on iteration k if a premise wasnt added on iteration k 1 match each rule whose premise contains a newly added literal Matching itself can be expensive

Weapon(M1)

Sells(West,M1,Nono)

Hostile(Nono)

Database indexing allows O(1) retrieval of known facts e.g., query M issile(x) retrieves M issile(M1) Matching conjunctive premises against known facts is NP-hard

American(West)

Missile(M1)

Owns(Nono,M1)

Enemy(Nono,America)

Forward chaining is widely used in deductive databases

Chapter 9

26

Chapter 9

29

Forward chaining proof


Criminal(West)
NT

Hard matching example


Di(wa, nt) Di(wa, sa) Di(nt, q)Di(nt, sa) Di(q, nsw) Di(q, sa) Di(nsw, v) Di(nsw, sa) Di(v, sa) Colorable() Di(Red, Blue) Di(Red, Green) Di(Green, Red) Di(Green, Blue) Di(Blue, Red) Di(Blue, Green)

Q WA SA
NSW

Weapon(M1)

Sells(West,M1,Nono)

Hostile(Nono)
V Victoria

American(West)

Missile(M1)

Owns(Nono,M1)

Enemy(Nono,America)

Colorable() is inferred i the CSP has a solution CSPs include 3SAT as a special case, hence matching is NP-hard

Chapter 9

27

Chapter 9

30

Backward chaining algorithm


function FOL-BC-Ask(KB, goals, ) returns a set of substitutions inputs: KB, a knowledge base goals, a list of conjuncts forming a query ( already applied) , the current substitution, initially the empty substitution { } local variables: answers, a set of substitutions, initially empty if goals is empty then return {} q Subst(, First(goals)) for each sentence r in KB where Standardize-Apart(r) = ( p 1 . . . p n q) and Unify(q, q ) succeeds new goals [ p 1, . . . , p n |Rest(goals)] answers FOL-BC-Ask(KB, new goals, Compose( , )) answers return answers
American(West)

Backward chaining example


Criminal(West) {x/West}

Weapon(y)

Sells(x,y,z)

Hostile(z)

{}

Chapter 9

31

Chapter 9

34

Backward chaining example


Criminal(West)

Backward chaining example


Criminal(West) {x/West}

American(West)

Weapon(y)

Sells(x,y,z) Sells(West,M1,z)

Hostile(z) Hostile(Nono)

{}

Missile(y)

Chapter 9

32

Chapter 9

35

Backward chaining example


Criminal(West) {x/West}

Backward chaining example


Criminal(West) {x/West, y/M1}

American(x)

Weapon(y)

Sells(x,y,z)

Hostile(z)

American(West)

Weapon(y)

Sells(x,y,z) Sells(West,M1,z)

Hostile(z) Hostile(Nono)

{}

Missile(y)

{ y/M1 }

Chapter 9

33

Chapter 9

36

Backward chaining example


Criminal(West) {x/West, y/M1, z/Nono}

Logic programming
Sound bite: computation as inference on logical KBs 1. 2. 3. 4. 5. 6. 7. Logic programming Ordinary programming Identify problem Identify problem Assemble information Assemble information Tea break Figure out solution Encode information in KB Program solution Encode problem instance as facts Encode problem instance as data Ask queries Apply program to data Find false facts Debug procedural errors

American(West)

Weapon(y)

Sells(West,M1,z)

Hostile(z)

{}

{ z/Nono }

Missile(y)

Missile(M1)

Owns(Nono,M1)

{ y/M1 }

Should be easier to debug Capital(N ewY ork, U S) than x := x + 2 !

Chapter 9

37

Chapter 9

40

Backward chaining example


Criminal(West) {x/West, y/M1, z/Nono}

Prolog systems
Basis: backward chaining with Horn clauses + bells & whistles Widely used in Europe, Japan (basis of 5th Generation project) Compilation techniques approaching a billion LIPS Program = set of clauses = head :- literal1, . . . literaln.

American(West)

Weapon(y)

Sells(West,M1,z)

Hostile(Nono)

criminal(X) :- american(X), weapon(Y), sells(X,Y,Z), hostile(Z).

{}

{ z/Nono }

Missile(y)

Missile(M1)

Owns(Nono,M1)

Enemy(Nono,America)

{ y/M1 }

{}

{}

{}

Ecient unication by open coding Ecient retrieval of matching clauses by direct linking Depth-rst, left-to-right backward chaining Built-in predicates for arithmetic etc., e.g., X is Y*Z+3 Closed-world assumption (negation as failure) e.g., given alive(X) :- not dead(X). alive(joe) succeeds if dead(joe) fails

Chapter 9

38

Chapter 9

41

Properties of backward chaining


Depth-rst recursive proof search: space is linear in size of proof Incomplete due to innite loops x by checking current goal against every goal on stack Inecient due to repeated subgoals (both success and failure) x using caching of previous results (extra space!) Widely used (without improvements!) for logic programming

Prolog examples
Depth-rst search from a start state X: dfs(X) :- goal(X). dfs(X) :- successor(X,S),dfs(S). No need to loop over S: successor succeeds for each Appending two lists to produce a third: append([],Y,Y). append([X|L],Y,[X|Z]) :- append(L,Y,Z). query: append(A,B,[1,2]) ? answers: A=[] B=[1,2] A=[1] B=[2] A=[1,2] B=[]

Chapter 9

39

Chapter 9

42

Resolution: brief summary


Full rst-order version:
1 ( 1 i1 i+1
American(x)

Resolution proof: denite clauses


Weapon(y) Sells(x,y,z) Hostile(z) Criminal(x) Criminal(West)

>

>

>

>

m1 m n k, k m1 mj1 mj+1 mn )
L

American(West)

American(West)

Weapon(y)

Sells(West,y,z)

Hostile(z)

>

>

>

where Unify( i, mj ) = . For example, Rich(x) U nhappy(x) Rich(Ken) U nhappy(Ken) with = {x/Ken} Apply resolution steps to CN F (KB ); complete for FOL
L

Missile(x)

Weapon(x)

Weapon(y)

Sells(West,y,z)

Hostile(z)

Missile(M1)

Missile(y)

Sells(West,y,z)

Hostile(z)

Missile(x)

Owns(Nono,x)

Sells(West,x,Nono)

Sells(West,M1,z)

Hostile(z)

Missile(M1)

Missile(M1)

Owns(Nono,M1)

Hostile(Nono)

Owns(Nono,M1)

Owns(Nono,M1)

Hostile(Nono)

Enemy(x,America)

Hostile(x)

Hostile(Nono)

Enemy(Nono,America)

Enemy(Nono,America)

Chapter 9

43

Chapter 9

>

>

>

>

>

>

>

>

>

>

>

>

46

Conversion to CNF
Everyone who loves all animals is loved by someone: x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 1. Eliminate biconditionals and implications x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] 2. Move inwards: x, p x p, x, p x p: x [ y (Animal(y) Loves(x, y))] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)] x [ y Animal(y) Loves(x, y)] [ y Loves(y, x)]

Chapter 9

44

Conversion to CNF contd.


3. Standardize variables: each quantier should use a dierent one x [ y Animal(y) Loves(x, y)] [ z Loves(z, x)] 4. Skolemize: a more general form of existential instantiation. Each existential variable is replaced by a Skolem function of the enclosing universally quantied variables: x [Animal(F (x)) Loves(x, F (x))] Loves(G(x), x) 5. Drop universal quantiers: [Animal(F (x)) Loves(x, F (x))] Loves(G(x), x) 6. Distribute over : [Animal(F (x)) Loves(G(x), x)] [Loves(x, F (x)) Loves(G(x), x)]

Chapter 9

45

You might also like