Title: First-Order Logic (FOL) aka. predicate calculus
1First-Order Logic (FOL)aka. predicate calculus
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 has 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) cs_student(x) gt smart(x) means "All
cs students are smart." - You rarely use universal quantification to make
blanket statements about every individual in the
world (Ax)cs(x) smart(x) meaning that everyone
in the world is a cs 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) cs_student(x) smart(x) means "there
is a cs_student who is smart." - A common mistake is to represent this English
sentence as the FOL sentence (Ex) cs_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 universal and existential
quantifiers 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)))
9Automated 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 - Godel'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. - Godel's Incompleteness Theorem says that in a
slightly extended language (that enables
mathematical induction), there are entailed
sentences that cannot be proved
10Automated Inference in FOL
- The truth table method of inference is not
complete for FOL because the truth table size may
be infinite.
11Generalized 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.
12Example 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.
13Backward 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.
14Backward chaining
- 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.
15Resolution (Refutation) Procedure
- Resolution procedure is a sound and complete
inference procedure for FOL - 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
16Resolution 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
17Unification
- 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, Q, if they do
match. - That is, unify(p,q) Q means subst(Q, p)
subst(Q, 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
18Unification 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
19Unification
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
20Unification
- 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.
21Resolution 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)
- 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.
22Resolution 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
23Resolution example for PL
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
24Problems 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 non-negated
predicate and contains functions, constants, and
universally quantified variables, so can we
convert every FOL sentence into this form? - Resolution strategy
- How to pick the pair of sentences to resolve?
- How to pick the pair of literals, one from each
sentence, to unify?
25Converting 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
26Converting 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.
27Converting 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
28Converting FOL sentences to clause form
- Example
- 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))))
29Converting 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)))
30Converting 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))
31Example Hoofers Club
- 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?
32Example 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)
33Example 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)
34Example 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
35Example 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!
36Resolution 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
37Some 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