First Order Logic
First Order Logic
First-Order Logic
Chapter 8.1-8.3
Adapted from slides by Some material adopted from notes
Tim Finin and by Andreas Geyer-Schulz
Marie desJardins.
Outline
• First-order logic
– Properties, relations, functions, quantifiers, …
– Terms, sentences, axioms, theories, proofs, …
• Extensions to first-order logic
• Logical agents
– Reflex agents
– Representing change: situation calculus, frame problem
– Preferences on actions
– Goal-based agents
First-order logic
• First-order logic (FOL) models the world in terms of
– Objects, which are things with individual identities
– Properties of objects that distinguish them from other objects
– Relations that hold among sets of objects
– Functions, which are a subset of relations where there is only one
“value” for any given “input”
• Examples:
– Objects: Students, lectures, companies, cars ...
– Relations: Brother-of, bigger-than, outside, part-of, has-color,
occurs-after, owns, visits, precedes, ...
– Properties: blue, oval, even, large, ...
– Functions: father-of, best-friend, second-half, one-more-than ...
User provides
• Constant symbols, which represent individuals in the world
– Mary
–3
– Green
• Function symbols, which map individuals to individuals
– father-of(Mary) = John
– color-of(Sky) = Blue
• Predicate symbols, which map individuals to truth values
– greater(5,3)
– green(Grass)
– color(Grass, Green)
FOL Provides
• Variable symbols
– E.g., x, y, foo
• Connectives
– Same as in PL: not (), and (), or (), implies (), if
and only if (biconditional )
• Quantifiers
– Universal x or (Ax)
– Existential x or (Ex)
Sentences are built from terms and atoms
Cast
– Sir Bedevere the Wise, master of (odd) logic
– King Arthur
– Villager 1, witch-hunter
– Villager 2, ex-newt
– Villager 3, one-line wonder
– All, the rest of you scoundrels, mongrels, and
nere-do-wells.
An example from Monty Python
by way of Russell & Norvig
• FIRST VILLAGER: We have found a witch. May we burn
her?
• ALL: A witch! Burn her!
• BEDEVERE: Why do you think she is a witch?
• SECOND VILLAGER: She turned me into a newt.
• B: A newt?
• V2 (after looking at himself for some time): I got better.
• ALL: Burn her anyway.
• B: Quiet! Quiet! There are ways of telling whether she is a
witch.
Monty Python cont.
• B: Tell me… what do you do with witches?
• ALL: Burn them!
• B: And what do you burn, apart from witches?
• Third Villager: …wood?
• B: So why do witches burn?
• V2 (after a beat): because they’re made of wood?
• B: Good.
• ALL: I see. Yes, of course.
Monty Python cont.
• B: So how can we tell if she is made of wood?
• V1: Make a bridge out of her.
• B: Ah… but can you not also make bridges out of stone?
• ALL: Yes, of course… um… er…
• B: Does wood sink in water?
• ALL: No, no, it floats. Throw her in the pond.
• B: Wait. Wait… tell me, what also floats on water?
• ALL: Bread? No, no no. Apples… gravy… very small
rocks…
• B: No, no, no,
Monty Python cont.
• KING ARTHUR: A duck!
• (They all turn and look at Arthur. Bedevere looks up, very
impressed.)
• B: Exactly. So… logically…
• V1 (beginning to pick up the thread): If she… weighs the
same as a duck… she’s made of wood.
• B: And therefore?
• ALL: A witch!
Monty Python Fallacy #1
• x witch(x) burns(x)
• x wood(x) burns(x)
• -------------------------------
• x witch(x) wood(x)
• pq
• rq
• ---------
• pr Fallacy: Affirming the conclusion
Monty Python Near-Fallacy #2
• wood(x) can-build-bridge(x)
• -----------------------------------------
• can-build-bridge(x) wood(x)
• B: Ah… but can you not also make bridges out of stone?
Monty Python Fallacy #3
• x wood(x) floats(x)
• x duck-weight (x) floats(x)
• -------------------------------
• x duck-weight(x) wood(x)
• pq
• rq
• -----------
• rp
Monty Python Fallacy #4
• z light(z) wood(z)
• light(W)
• ------------------------------
• wood(W) ok…………..
S(x) is a P(x)
necessary (x) P(x) => S(x)
S(x)
condition of P(x)
S(x) is a S(x)
sufficient (x) P(x) <= S(x)
P(x)
condition of P(x)
S(x) is a P(x)
necessary and (x) P(x) <=> S(x)
S(x)
sufficient
condition of P(x)
Higher-order logic
• FOL only allows to quantify over variables, and variables
can only range over objects.
• HOL allows us to quantify over relations
• Example: (quantify over functions)
“two functions are equal iff they produce the same value for all
arguments”
f g (f = g) (x f(x) = g(x))
• Example: (quantify over predicates)
r transitive( r ) (xyz) r(x,y) r(y,z) r(x,z))
• More expressive, but undecidable. (there isn’t an effective
algorithm to decide whether all sentences are valid)
– First-order logic is decidable only when it uses predicates with only one
argument.
Expressing uniqueness
• Sometimes we want to say that there is a single, unique
object that satisfies a certain condition
• “There exists a unique x such that king(x) is true”
– x king(x) y (king(y) x=y)
– x king(x) y (king(y) xy)
– ! x king(x)
• “Every country has exactly one ruler”
– c country(c) ! r ruler(c,r)
• Iota operator: “ x P(x)” means “the unique x such that p(x)
is true”
– “The unique ruler of Freedonia is dead”
– dead( x ruler(freedonia,x))
Notational differences
• Different symbols for and, or, not, implies, ...
–
– p v (q ^ r)
– p + (q * r)
– etc
• Prolog
cat(X) :- furry(X), meows (X), has(X, claws)
• Lispy notations
(forall ?x (implies (and (furry ?x)
(meows ?x)
(has ?x claws))
(cat ?x)))
Logical agents for the Wumpus World