Title: First-Order Logic (FOL) aka. predicate calculus
1First-Order Logic (FOL)aka. predicate calculus
- Tuomas Sandholm
- Carnegie Mellon University
- Computer Science Department
2First-Order Logic (FOL) Syntax
- User defines these primitives
- Constant symbols (i.e., the "individuals" in the
world) E.g., Mary, 3 - Function symbols (mapping individuals to
individuals) E.g., father-of(Mary) John,
color-of(Sky) Blue - Predicate symbols (mapping from individuals to
truth values) E.g., greater(5,3), green(Grass),
color(Grass, Green)
3First-Order Logic (FOL) Syntax
- FOL supplies these primitives
- Variable symbols. E.g., x,y
- Connectives. Same as in PL not (), and (), or
(v), implies (gt), if and only if (ltgt) - Quantifiers Universal (A) and Existential (E)
4Quantifiers
- Universal quantification corresponds to
conjunction ("and") in that (Ax)P(x) means that P
holds for all values of x in the domain
associated with that variable. - E.g., (Ax) dolphin(x) gt mammal(x)
- Existential quantification corresponds to
disjunction ("or") in that (Ex)P(x) means that P
holds for some value of x in the domain
associated with that variable. - E.g., (Ex) mammal(x) lays-eggs(x)
- Universal quantifiers are usually used with
"implies" to form "if-then rules." - E.g., (Ax) cs15-381-student(x) gt smart(x) means
"All cs15-381 students are smart." - You rarely use universal quantification to make
blanket statements about every individual in the
world (Ax)cs15-381-student(x) smart(x) meaning
that everyone in the world is a cs15-381 student
and is smart.
5Quantifiers
- Existential quantifiers are usually used with
"and" to specify a list of properties or facts
about an individual. - E.g., (Ex) cs15-381-student(x) smart(x) means
"there is a cs15-381 student who is smart." - A common mistake is to represent this English
sentence as the FOL sentence (Ex)
cs15-381-student(x) gt smart(x) - Switching the order of universal quantifiers does
not change the meaning (Ax)(Ay)P(x,y) is
logically equivalent to (Ay)(Ax)P(x,y).
Similarly, you can switch the order of
existential quantifiers. - Switching the order of universals and
existentials does change meaning - Everyone likes someone (Ax)(Ey)likes(x,y)
- Someone is liked by everyone (Ey)(Ax)likes(x,y)
6First-Order Logic (FOL) Syntax
- Sentences are built up of terms and atoms
- A term (denoting a real-world object) is a
constant symbol, a variable symbol, or a function
e.g. left-leg-of ( ). For example, x and f(x1,
..., xn) are terms, where each xi is a term. - An atom (which has value true or false) is either
an n-place predicate of n terms, or, if P and Q
are atoms, then P, P V Q, P Q, P gt Q, P ltgt Q
are atoms - A sentence is an atom, or, if P is a sentence and
x is a variable, then (Ax)P and (Ex)P are
sentences - A well-formed formula (wff) is a sentence
containing no "free" variables. I.e., all
variables are "bound" by universal or existential
quantifiers. - E.g., (Ax)P(x,y) has x bound as a universally
quantified variable, but y is free.
7Translating English to FOL
- Every gardener likes the sun.(Ax) gardener(x) gt
likes(x,Sun) - You can fool some of the people all of the
time.(Ex)(At) (person(x) time(t)) gt
can-fool(x,t) - You can fool all of the people some of the
time.(Ax)(Et) (person(x) time(t) gt
can-fool(x,t) - All purple mushrooms are poisonous.(Ax)
(mushroom(x) purple(x)) gt poisonous(x)
8Translating English to FOL
- No purple mushroom is poisonous.(Ex) purple(x)
mushroom(x) poisonous(x) or,
equivalently,(Ax) (mushroom(x) purple(x)) gt
poisonous(x) - There are exactly two purple mushrooms.(Ex)(Ey)
mushroom(x) purple(x) mushroom(y) purple(y)
(xy) (Az) (mushroom(z) purple(z)) gt
((xz) v (yz)) - Deb is not tall.tall(Deb)
- X is above Y if X is on directly on top of Y or
else there is a pile of one or more other objects
directly on top of one another starting with X
and ending with Y.(Ax)(Ay) above(x,y) ltgt
(on(x,y) v (Ez) (on(x,z) above(z,y)))
9Inference Rules for FOL
- Inference rules for PL apply to FOL as well. For
example, Modus Ponens, And-Introduction,
And-Elimination, etc. - New sound inference rules for use with
quantifiers - Universal EliminationIf (Ax)P(x) is true, then
P(c) is true, where c is a constant in the domain
of x. For example, from (Ax)eats(Ziggy, x) we can
infer eats(Ziggy, IceCream). - The variable symbol can be replaced by any ground
term, i.e., any constant symbol or function
symbol applied to ground terms only. - Existential IntroductionIf P(c) is true, then
(Ex)P(x) is inferred. - For example, from eats(Ziggy, IceCream) we can
infer (Ex)eats(Ziggy, x). - All instances of the given constant symbol are
replaced by the new variable symbol. Note that
the variable symbol cannot already exist anywhere
in the expression. - Existential EliminationFrom (Ex)P(x) infer P(c).
- For example, from (Ex)eats(Ziggy, x) infer
eats(Ziggy, Cheese). - Note that the variable is replaced by a brand new
constant that does not occur in this or any other
sentence in the Knowledge Base. In other words,
we don't want to accidentally draw other
inferences about it by introducing the constant.
All we know is there must be some constant that
makes this true, so we can introduce a brand new
one to stand in for that (unknown) constant.
10Inference Rules for FOL
- Paramodulation
- Given two sentences (P1 v ... v PN) and (ts v Q1
v ... v QM) where each Pi and Qi is a literal and
Pj contains a term t, derive new sentence (P1 v
... v Pj-1 v Pjs v Pj1 v ... v PN v Q1 v ... v
QM) where Pjs means a single occurrence of the
term t is replaced by the term s in Pj - Example From P(a) and ab derive P(b)
11Inference Rules for FOL
- Generalized Modus Ponens (GMP)
- Combines And-Introduction, Universal-Elimination,
and Modus Ponens - E.g. from P(c), Q(c), and (Ax)(P(x) Q(x)) gt
R(x), derive R(c) - In general, given atomic sentences P1, P2, ...,
PN, and implication sentence (Q1 Q2 ... QN)
gt R, where Q1, ..., QN and R are atomic
sentences, and subst(Theta, Pi) subst(Theta,
Qi) for i1,...,N, derive new sentence
subst(Theta, R) - subst(Theta, alpha) denotes the result of
applying a set of substitutions defined by Theta
to the sentence alpha - A substitution list Theta v1/t1, v2/t2, ...,
vn/tn means to replace all occurrences of
variable symbol vi by term ti. - Substitutions are made in left-to-right order in
the list. - E.g. subst(x/IceCream, y/Ziggy, eats(y,x))
eats(Ziggy, IceCream)
12Automated Inference in FOL
- Automated inference in FOL is harder than in PL
because variables can take on potentially an
infinite number of possible values from their
domain. Hence there are potentially an infinite
number of ways to apply the Universal-Elimination
rule of inference - Goedel's Completeness Theorem says that FOL
entailment is semidecidable. That is, if a
sentence is true given a set of axioms, there is
a procedure that will determine this. However, if
the sentence is false, then there is no guarantee
that a procedure will ever determine this. In
other words, the procedure may never halt in this
case. - Goedel's Incompleteness Theorem says that in a
slightly extended language (that enables
mathematical induction), there are entailed
sentences that cannot be proved - The truth table method of inference is not
complete for FOL because the truth table size may
be infinite - Natural deduction is complete for FOL but is not
practical for automated inference because the
"branching factor" in a search is too large,
caused by the fact that we would have to
potentially try every inference rule in every
possible way using the set of known sentences
13Incompleteness of the generalized modus ponens
inference rule
?x P(x) gt Q(x) ?x ?P(x) gt Q(x) ?x Q(x) gt
S(x) ?x R(x) gt S(x)
? Cannot be converted to Horn
Want to conclude S(A)
S(A) is true if Q(A) or R(A) is true, and one of
those must be true because either P(A) or
?P(A) Incomplete there are entailed sentences
that the procedure cannot infer.
14Generalized Modus Ponens in Horn FOL
- Generalized Modus Ponens (GMP) is complete for
KBs containing only Horn clauses - A Horn clause is a sentence of the form(Ax)
(P1(x) P2(x) ... Pn(x)) gt Q(x)where there
are 0 or more Pi's, and the Pi's and Q are
positive (i.e., un-negated) literals - Horn clauses represent a subset of the set of
sentences representable in FOL. For example, P(a)
v Q(a) is a sentence in FOL but is not a Horn
clause. - Natural deduction using GMP is complete for KBs
containing only Horn clauses. Proofs start with
the given axioms/premises in KB, deriving new
sentences using GMP until the goal/query sentence
is derived. This defines a forward chaining
inference procedure because it moves "forward"
from the KB to the goal.
15Example of forward chaining
- Example KB All cats like fish, cats eat
everything they like, and Ziggy is a cat. In FOL,
KB - (Ax) cat(x) gt likes(x, Fish)
- (Ax)(Ay) (cat(x) likes(x,y)) gt eats(x,y)
- cat(Ziggy)
- Goal query Does Ziggy eat fish?
- Proof
- Use GMP with (1) and (3) to derive 4.
likes(Ziggy, Fish) - Use GMP with (3), (4) and (2) to derive
eats(Ziggy, Fish) - So, Yes, Ziggy eats fish.
Data-driven
16Backward chaining
- Backward-chaining deduction using GMP is complete
for KBs containing only Horn clauses. Proofs
start with the goal query, find implications that
would allow you to prove it, and then prove each
of the antecedents in the implication, continuing
to work "backwards" until we get to the axioms,
which we know are true. - Example Does Ziggy eat fish?
- To prove eats(Ziggy, Fish), first see if this is
known from one of the axioms directly. Here it is
not known, so see if there is a Horn clause that
has the consequent (i.e., right-hand side) of the
implication matching the goal. - Proof Goal Driven
- Goal matches RHS of Horn clause (2), so try and
prove new sub-goals cat(Ziggy) and likes(Ziggy,
Fish) that correspond to the LHS of (2) - cat(Ziggy) matches axiom (3), so we've "solved"
that sub-goal - likes(Ziggy, Fish) matches the RHS of (1), so try
and prove cat(Ziggy) - cat(Ziggy) matches (as it did earlier) axiom (3),
so we've solved this sub-goal - There are no unsolved sub-goals, so we're done.
Yes, Ziggy eats fish.
17Resolution Procedure (aka Resolution Refutation
Procedure)
- Resolution procedure is a sound and complete
inference procedure for FOL (BFS is complete for
Horn, DFS may go into infinite loops) - Resolution procedure uses a single rule of
inference the Resolution Rule (RR), which is a
generalization of the same rule used in PL - Resolution Rule for PLFrom sentence P1 v P2 v
... v Pn and sentence P1 v Q2 v ... v Qm derive
resolvent sentence P2 v ... v Pn v Q2 v ... v Qm
- Examples
- From P and P v Q, derive Q (Modus Ponens)
- From (P v Q) and (Q v R), derive P v R
- From P and P, derive False
- From (P v Q) and (P v Q), derive True
18Resolution Procedure
- Resolution Rule for FOL
- Given sentence P1 v ... v Pn
- and sentence Q1 v ... v Qm
- where each Pi and Qi is a literal, i.e., a
positive or negated predicate symbol with its
terms, - if Pj and Qk unify with substitution list Theta,
- then derive the resolvent sentencesubst(Theta,
P1 v ... v Pj-1 v Pj1 v ... v Pn v Q1 v ... Qk-1
v Qk1 v ... v Qm) - Example
- From clause P(x, f(a)) v P(x, f(y)) v Q(y)
- and clause P(z, f(a)) v Q(z),
- derive resolvent clause P(z, f(y)) v Q(y) v Q(z)
using Theta x/z
19Unification
- Unification is a "pattern matching" procedure
that takes two atomic sentences, called literals,
as input, and returns "failure" if they do not
match and a substitution list, Theta, if they do
match. - That is, unify(p,q) Theta means subst(Theta, p)
subst(Theta, q) for two atomic sentences p and
q. - Theta is called the most general unifier (mgu)
- All variables in the given two literals are
implicitly universally quantified - To make literals match, replace
(universally-quantified) variables by terms
20Unification Algorithm
- procedure unify(p, q, theta)
- Scan p and q left-to-right and find the first
corresponding terms where p and q "disagree"
where p and q not equal - If there is no disagreement, return theta
success - Let r and s be the terms in p and q,
respectively, where disagreement first occurs - If variable(r) then theta union(theta, r/s)
unify(subst(theta, p), subst(theta, q), theta) - else if variable(s) then theta union(theta,
s/r) unify(subst(theta, p), subst(theta, q),
theta) - else return "failure" end
21Unification
Literal 1 Literal 2 Literal 3
parents(x, father(x), mother(Bill)) parents(x, father(x), mother(Bill)) parents(x, father(x), mother(Jane)) parents(Bill, father(Bill), y) parents(Bill, father(y), z) parents(Bill, father(y), mother(y)) x/Bill, y/mother(Bill) x/Bill, y/Bill, z/mother(Bill) Failure
22Unification
- Unify is a linear time algorithm that returns the
most general unifier (mgu), i.e., a shortest
length substitution list that makes the two
literals match. - (In general, there is not a unique minimum length
substitution list, but unify returns one of
them.) - A variable can never be replaced by a term
containing that variable. For example, x/f(x) is
illegal. This "occurs check" should be done in
the above pseudo-code before making the recursive
calls.
23Resolution Procedure
- Proof by contradiction method
- Given a consistent set of axioms KB and goal
sentence Q, we want to show that KB Q. This
means that every interpretation I that satisfies
KB, satisfies Q. But we know that any
interpretation I satisfies either Q or Q, but
not both. Therefore if in fact KB Q, an
interpretation that satisfies KB, satisfies Q and
does not satisfy Q. Hence KB union Q is
unsatisfiable, i.e., that it's false under all
interpretations. - In other words, (KB - Q) ltgt (KB Q - False)
- What's the gain? If KB union Q is unsatisfiable,
then some finite subset is unsatisfiable - Resolution procedure can be used to establish
that a given sentence Q is entailed by KB
however, it cannot, in general, be used to
generate all logical consequences of a set
sentences. Also, the resolution procedure cannot
be used to prove that Q is not entailed by KB. - Resolution procedure won't always give an answer
since entailment is only semidecidable. And you
can't just run two proofs in parallel, one trying
to prove Q and the other trying to prove Q,
since KB might not entail either one.
24Resolution Algorithm
- procedure resolution-refutation(KB, Q)
- KB is a set of consistent, true FOL sentences
- Q is a goal sentence that we want to derive
- return success if KB - Q, and failure
otherwise - KB union(KB, Q)
- while false not in KB do
- pick 2 sentences, S1 and S2, in KB that contain
literals that unify (if none, return "failure) -
- resolvent resolution-rule(S1, S2)
- KB union(KB, resolvent)
- return "success"
25Resolution example (using PL sentences)
- From Heads I win, tails you lose prove that I
win - First, define the axioms in KB
- "Heads I win, tails you lose."(Heads gt IWin)
or, equivalently, (Heads v IWin)(Tails gt
YouLose) or, equivalently, (Tails v YouLose) - Add some general knowledge axioms about coins,
winning, and losing(Heads v Tails)(YouLose gt
IWin) or, equivalently, (YouLose v IWin)(IWin
gt YouLose) or, equivalently, (IWin v YouLose) - Goal IWin
26Resolution example (using PL sentences)
Sentence 1 Sentence 2 Resolvent
IWin Heads Tails YouLose IWin Heads v IWin Heads v Tails Tails v YouLose YouLose v Iwin IWin Heads Tails YouLose IWin False
27Problems yet to be addressed
- Resolution rule of inference is only applicable
with sentences that are in the form P1 v P2 v ...
v Pn, where each Pi is a negated or nonnegated
predicate and contains functions, constants, and
universally quantified variables, so can we
convert every FOL sentence into this form? - Resolution strategy
- How to pick which pair of sentences to resolve?
- How to pick which pair of literals, one from each
sentence, to unify?
28Converting FOL sentences to clause form
- Every FOL sentence can be converted to a
logically equivalent sentence that is in a
"normal form" called clause form - Steps to convert a sentence to clause form
- Eliminate all ltgt connectives by replacing each
instance of the form (P ltgt Q) by expression ((P
gt Q) (Q gt P)) - Eliminate all gt connectives by replacing each
instance of the form (P gt Q) by (P v Q) - Reduce the scope of each negation symbol to a
single predicate by applying equivalences such as
converting - P to P
- (P v Q) to P Q
- (P Q) to P v Q
- (Ax)P to (Ex)P
- (Ex)P to (Ax)P
29Converting FOL sentences to clause form
- Standardize variables rename all variables so
that each quantifier has its own unique variable
name. For example, convert (Ax)P(x) to (Ay)P(y)
if there is another place where variable x is
already used. - Eliminate existential quantification by
introducing Skolem functions. For example,
convert (Ex)P(x) to P(c) where c is a brand new
constant symbol that is not used in any other
sentence. c is called a Skolem constant. More
generally, if the existential quantifier is
within the scope of a universal quantified
variable, then introduce a Skolem function that
depends on the universally quantified variable. - For example, (Ax)(Ey)P(x,y) is converted to
(Ax)P(x, f(x)). f is called a Skolem function,
and must be a brand new function name that does
not occur in any other sentence in the entire KB.
- Example (Ax)(Ey)loves(x,y) is converted to
(Ax)loves(x,f(x)) where in this case f(x)
specifies the person that x loves. - (If we knew that everyone loved their mother,
then f could stand for the mother-of function.)
30Converting FOL sentences to clause form
- Remove universal quantification symbols by first
moving them all to the left end and making the
scope of each the entire sentence, and then just
dropping the "prefix" part. E.g., convert
(Ax)P(x) to P(x) - Distribute "and" over "or" to get a conjunction
of disjunctions called conjunctive normal form. - convert (P Q) v R to (P v R) (Q v R)
- convert (P v Q) v R to (P v Q v R)
- Split each conjunct into a separate clause, which
is just a disjunction ("or") of negated and
nonnegated predicates, called literals - Standardize variables apart again so that each
clause contains variable names that do not occur
in any other clause
31Converting FOL sentences to clause form
- Examples
- Convert the sentence
- (Ax)(P(x) gt ((Ay)(P(y) gt P(f(x,y)))
(Ay)(Q(x,y) gt P(y)))) - Eliminate ltgtNothing to do here.
- Eliminate gt(Ax)(P(x) v ((Ay)(P(y) v
P(f(x,y))) (Ay)(Q(x,y) v P(y)))) - Reduce scope of negation(Ax)(P(x) v ((Ay)(P(y)
v P(f(x,y))) (Ey)(Q(x,y) P(y))))
32Converting FOL sentences to clause form
- Standardize variables(Ax)(P(x) v ((Ay)(P(y) v
P(f(x,y))) (Ez)(Q(x,z) P(z)))) - Eliminate existential quantification(Ax)(P(x) v
((Ay)(P(y) v P(f(x,y))) (Q(x,g(x))
P(g(x))))) - Drop universal quantification symbols(P(x) v
((P(y) v P(f(x,y))) (Q(x,g(x)) P(g(x))))) - Convert to conjunction of disjunctions(P(x) v
P(y) v P(f(x,y))) (P(x) v Q(x,g(x))) (P(x)
v P(g(x)))
33Converting FOL sentences to clause form
- Create separate clauses
- P(x) v P(y) v P(f(x,y))
- P(x) v Q(x,g(x))
- P(x) v P(g(x))
- Standardize variables
- P(x) v P(y) v P(f(x,y))
- P(z) v Q(z,g(z))
- P(w) v P(g(w))
34Example Hoofers Club example from Charles Dyer
- Problem Statement Tony, Shi-Kuo and Ellen
belong to the Hoofers Club. Every member of the
Hoofers Club is either a skier or a mountain
climber or both. No mountain climber likes rain,
and all skiers like snow. Ellen dislikes
whatever Tony likes and likes whatever Tony
dislikes. Tony likes rain and snow. - Query Is there a member of the Hoofers Club who
is a mountain climber but not a skier?
35Example Hoofers Club
- Translation into FOL Sentences
- Let S(x) mean x is a skier, M(x) mean x is a
mountain climber, and L(x,y) mean x likes y,
where the domain of the first variable is Hoofers
Club members, and the domain of the second
variable is snow and rain. We can now translate
the above English sentences into the following
FOL wffs - (Ax) S(x) v M(x)
- (Ex) M(x) L(x, Rain)
- (Ax) S(x) gt L(x, Snow)
- (Ay) L(Ellen, y) ltgt L(Tony, y)
- L(Tony, Rain)
- L(Tony, Snow)
- Query (Ex) M(x) S(x)
- Negation of the Query (Ex) M(x) S(x)
36Example Hoofers Club
- Conversion to Clause Form
- S(x1) v M(x1)
- M(x2) v L(x2, Rain)
- S(x3) v L(x3, Snow)
- L(Tony, x4) v L(Ellen, x4)
- L(Tony, x5) v L(Ellen, x5)
- L(Tony, Rain)
- L(Tony, Snow)
- Negation of the Query M(x7) v S(x7)
Write these on blackboard
37Example Hoofers Club
- Resolution Refutation Proof
Clause 1 Clause 2 Resolvent MGU (i.e., Theta)
8 9 10 11 1 3 4 7 9. S(x1) 10. L(x1, Snow) 11. L(Tony, Snow) 12. False x7/x1 x3/x1 x4/Snow, x1/Ellen
38Example Hoofers Club
Clause 1 Clause 2 Resolvent MGU (i.e., Theta)
M(x7) v S(x7) v (M(x7) S(x7)) 9 10 11 1 3 4 7 9. S(x1) v (M(x1) S(x1)) 10. L(x1, Snow) v (M(x1) S(x1)) 11. L(Tony, Snow) v (M(Ellen) S(Ellen)) 12. M(Ellen) S(Ellen) x7/x1 x3/x1 x4/Snow, x1/Ellen
- Answer to the query Ellen!
39Resolution procedure as search
- Resolution procedure can be thought of as the
bottom-up construction of a search tree, where
the leaves are the clauses produced by KB and the
negation of the goal. When a pair of clauses
generates a new resolvent clause, add a new node
to the tree with arcs directed from the resolvent
to the two parent clauses. The resolution
procedure succeeds when a node containing the
False clause is produced, becoming the root node
of the tree. - A strategy is complete if its use guarantees that
the empty clause (i.e., false) can be derived
whenever it is entailed
40Some strategies for controlling resolution's
search
- Breadth-First
- Level 0 clauses are those from the original
axioms and the negation of the goal. Level k
clauses are the resolvents computed from two
clauses, one of which must be from level k-1 and
the other from any earlier level. - Compute all level 1 clauses possible, then all
possible level 2 clauses, etc. - Complete, but very inefficient.
- Set-of-Support
- At least one parent clause must be from the
negation of the goal or one of the "descendents"
of such a goal clause (i.e., derived from a goal
clause) - Complete (assuming all possible set-of-support
clauses are derived) - Unit Resolution
- At least one parent clause must be a "unit
clause," (clause containing a single literal) - Not complete in general, but complete for Horn
clause KBs - Input Resolution
- At least one parent from the original KB (axioms
and the negation of the goal) - Not complete in general, but complete for Horn
clause KBs - Linear Resolution
- P and Q can be resolved together if either P is
in the original KB or if P is an ancestor of Q in
the proof tree - Complete
41Subsumption
- Motivation Helps keep the KB small gt less
search - Never keep more specific (subsumed) sentences
in the KB than more general ones - E.g., if the KB has P(x), then eliminate
- P(c)
- P(a) v P(b)