Predicate Logic
Lecture Module 12
Limitation of PL
● The facts like:
− “peter is a man”, “paul is a man”, “john is a man” can be
symbolized by P, Q and R, respectively in PL.
− We can not draw any conclusions about similarities between
P, Q and R.
● Better representations of these facts can be
● Further, the sentences like “All men are mortal” can
not be represented in PL.
− MAN(peter), MAN(paul) and MAN(john).
− Similarity between these facts that they are all man can be
easily derived.
● In Predicate Logic (logical extension of PL) such
sentences can be easily represented.
− The limitations of propositional logic are removed to some
extent.
Predicate Logic
● It has three more logical notions as compared to PL.
−Terms, Predicates and
− Quantifiers
● Term
− a constant (single individual or concept i.e.,5, john etc.),
− a variable that stands for different individuals
− n-place function f(t1, …, tn) where t1, …, tn are terms. A
function is a mapping that maps n terms to a term.
● Predicate
− a relation that maps n terms to a truth value true (T) or false (F).
● Quantifiers
− Universal or existential quantifiers i.e. and used in
conjunction with variables.
Examples
● “x loves y” is represented as LOVE(x, y) which maps it
to true or false when x and y get instantiated to actual
values.
● “john’s father loves john” is represented as
LOVE(father(john), john).
− Here father is a function that maps john to his father.
● x is greater than y is represented in predicate calculus
as GT(x, y).
● It is defined as follows:
GT( x, y) = T , if x y
= F , otherwise
● Symbols like GT and LOVE are called predicates
− Predicates two terms and map to T or F depending upon the
values of their terms.
Examples – Cont..
● Translate the sentence "Every man is mortal"
into Predicate formula.
● Representation of statement in predicate form
− “x is a man” and “MAN(x),
− x is mortal” by MORTAL(x)
● Every man is mortal :
(x) (MAN(x) → MORTAL(x))
First Order Predicate Logic (FOPL)
● Inference rules are added to Predicate Calculus.
● In First Order Predicate Logic (FOPL), quantification is
over variables.
− Higher order Predicate Logic is one if quantification is on
functions or predicates.
● Using inference rules one can derive new formula
using the existing ones.
● Interpretations of Formulae in FOPL
− In PL, an interpretation is simply an assignment of truth values
to the atoms.
− In FOPL, there are variables, so we have to do more than that.
− An interpretation I for a formula in FOPL consists of a non
empty domain D and an assignment of values to each
constant, function symbol and predicate symbol.
Cont…
● A formula is said to be consistent (satisfiable) if
and only if there exists an interpretation I such that
I[] = T.
− Alternatively we say that I is a model of or I satisfies .
● A formula is said to be inconsistent
(unsatisfiable) if and only if no interpretation that
satisfies or there exists no model for .
● A formula is valid if and only if for every
interpretation I, I[] = T.
● A formula is a logical consequence of a set of
formulae {1, 2, ..., n } if and only if
− for every interpretation I, if I[1 … n ] = T, then
I[] = T.
Prenex Normal Form
● In FOPL, there are infinite number of domains and
consequently infinite number of interpretations of a
formula.
● Therefore, unlike PL, it is not possible to verify a
validity and inconsistency of a formula by evaluating
it under all possible interpretations.
● We will discuss the formalism for verifying
inconsistency and validity in FOPL.
● In FOPL, there is also a third type of normal form
called Prenex Normal Form.
Contd..
● A closed formula of FOL is said to be in Prenex
Normal Form (PNF) if and only if is represented as
(q1 x1) (q2 x2) … (qn xn) (M),
where, qk , (1 k n ) quant ( or ) and
M is a formula free from quantifiers.
● A list of quantifiers [(q1 x1) … (qn xn)] is called prefix
and M is called the matrix of a formula . Here M is
represented in CNF.
Transformation of Formula into PNF
● A formula can be easily transformed into PNF
using various equivalence laws.
● Following conventions are used:
− [x] → a formula , which contains a variable x.
− → a formula without a variable x.
− q → Quantifier ( or ).
Equivalence Laws
● In addition to the equivalence laws given for
PL, following equivalence laws FOPL
available.
− (q x) [x] V (q x) ( [x] V )
− V (q x) [x] (q x) ( V [x])
− (q x) [x] (q x) ( [x] )
− (q x) [x] (q x) ( [x])
− ~((x) [x]) (x) (~ [x])
− ~((x) [x]) (x) (~ [x])
Skolemisation (Standard Form)
● Prenex normal form of a formula is further
transformed into special form called Skolemisation
or Standard Form.
● This form is used in resolution of clauses.
● The process of eliminating existential quantifiers and
replacing the corresponding variable by a constant
or a function is called skolemisation.
● A constant or a function is called skolem constant or
function.
Conversion of PNF to its Standard Form
● Scan prefix from left to right.
● If q1 is the first existential quantifier then
− choose a new constant c D & Matrix. Replace all
occurrence of x1 appearing in Matrix by c and delete
(q1 x1) from the prefix to obtain new prefix and matrix.
● If qr is an existential quantifier and q1….qr-1 are
universal quantifiers appearing before qr , then
− choose a new (r-1) place function symbol 'f ' D &
Matrix. Replace all occurrence of xr in Matrix by f(x1,
…, xr-1 ) and remove (qr xr).
● Repeat the process till all existential quantifiers are
removed from matrix.
Cont…
• Any formula in FOPL can be transformed into its standard form.
• Matrix of standard formula is in CNF and prefix is free from
existential quantifiers.
• Formula in standard form is expressed as:
(x1)… (xn) (C1 … Ck),
where Ck ,(1 k m) is formula in disjunctive normal form.
• Since all the variables in prefix are universally quantified, we omit
prefix part from the standard form for the sake of convenience
and write standard form as (C1 … Ck).
• The standard form of any formula is of the form (C1 … Ck),
where each Ci , (1 i m) is a clause.
• A clause Ci is a closed formula of the form (L1V … V Lm), where
each Li is a literal with all the variables occurring in L1, …, Lm
being universally quantified.
Cont…
• Let S = { C1, … ,Ck } be a set of clauses that
represents a standard form of a formula .
− S is said to be unsatisfiable (inconsistent) if and only if
there no interpretation that satisfies all the clauses of
S simultaneously.
− A formula is unsatisfiable (inconsistent) if and only if
its corresponding set S is unsatisfiable.
− S is said to be satisfiable (consistent) if and only if
each clause is consistent i.e., an interpretation that
satisfies all the clauses of S simultaneously.
• Alternatively, an interpretation I models S if and only
if I models each clause of S.
Resolution Refutation in Predicate Logic
● Resolution method is used to test unsatisfiability of a
set S of clauses in Predicate Logic.
● It is an extension of resolution method for PL.
● The resolution principle basically checks whether
empty clause is contained or derived from S.
● Resolution for the clauses containing no variables is
very simple and is similar to PL.
● It becomes complicated when clauses contain
variables.
● In such case, two complementary literals are
resolved after proper substitutions so that both the
literals have same arguments.
Example
● Consider two clauses C1 and C2 as follows:
C1 = P(x) V Q(x)
C2 = ~ P(f(x)) V R(x)
● Substitute 'f(a)' for 'x' in C1 and 'a' for 'x' in C2 , where 'a' is a
new constant from the domain, then
C3 = P(f(a)) V Q(f(a))
C4 = ~ P(f(a)) V R(a)
● Resolvent C of C3 and C4 is [Q(f(a)) V R(a)]
− Here C3 and C4 do not have variables. They are called
ground instances of C 1 and C2 .
● In general, if we substitute 'f(x)' for 'x' in C1 , then
C'1 = P(f(x)) V Q(f(x))
● Resolvent C' of C'1 and C2 is [Q(f(x)) V R(x)]
● We notice that C is an instance of C' .
Theorems
● Logical Consequence: L is a logical consequence of
S iff {S ~L} = { C1,,… , Cn , ~ L} is unsatisfiable.
− A deduction of an empty clause from a set S of
clauses is called a resolution refutation of S.
● Soundness and completeness of resolution:
There is a resolution refutation of S if and only if S is
unsatisfiable (inconsistent).
● L is a logical consequence of S if and only if there is
a resolution refutation of S {~L}.
● We can summarize that in order to show L to be a
logical consequence the of set of formulae {1,…,n },
use the procedure given on next slide.
Procedure
• Obtain a set S of all the clauses.
• Show that a set S { ~ L} is unsatisfiable i.e.,
− the set S { ~ L} contains either empty clause or empty
clause can be derived in finite steps using resolution
method.
− If so, then report 'Yes' and conclude that L is a logical
consequence of S and subsequently of formulae 1, …, n
otherwise report 'No'.
• Resolution refutation algorithm finds a contradiction if
one exists, if clauses to resolve at each step are
chosen systematically.
• There exist various strategies for making the right
choice that can speed up the process considerably.
Useful Tips
• Initially choose a clause from the negated goal clauses as one
of the parents to be resolved.
− This corresponds to intuition that the contradiction we are looking
for must be because of the formula to be proved .
• Choose a resolvent and some existing clause if both contain
complementary literals.
• If such clauses do not exists, then resolve any pairs of clauses
that contain complementary literals.
• Whenever possible, resolve with the clauses with single literal.
− Such resolution generate new clauses with fewer literals than the
larger of their parent clauses and thus probably algorithm
terminates faster.
• Eliminate tautologies and clauses that are subsumed by other
clauses as soon as they are generated.
Logic Programming
• Logic programming is based on FOPL.
• Clause in logic programming is special form of
FOPL formula.
• Program in logic programming is a collection of
clauses.
• Queries are solved using resolution principle.
• A clause in logic programming is represented in a
clausal notation as
A1, …, Ak B1,…, Bt ,
where Aj are positive literals and Bk are negative literals.
Conversion of a Clause into Clausal Notation
● A clause in FOPL is a closed formula of the form,
L 1V … V L m
where each Lk , (1 k n) is a literal and all the variables
occurring in L1, …, Lm are universally quantified.
● Separate positive and negative literals in the clause
as follows:
(L1V … V Lm)
(A1 V … VAk V ~ B1 V …V~ Bt),
where m = k + t, Aj, (1 j k) are positive literals
and Bj , (1 j t) are negative literals
Cont…
(L1V … V Lm) (A1 V … VAk V ~ B1 V …V~ Bt),
(A1 V … VAk ) V ~ (B1 … Bt)
(B1 … Bt) → (A1 V … VAk )
{since P → Q ~ P V Q}
● Clausal notation is written in the form :
(A1V … VAk ) (B1 … Bt) OR A1, …, Ak B1,…, Bt .
Here Aj , (1 j k) are positive literals and Bi , (1 i t) are negative literals.
● Interpretations of A B and B → A are same.
● In clausal notation, all variables are assumed to be
universally quantified.
− Bi , (1 i t) (negative literals) are called antecedents and A j ,
(1 j k) (positive literals) are called consequents.
− Commas in antecedent and consequent denote conjunction
and disjunction respectively.
Cont…
• Applying the results of FOPL to the logic programs,
− a goal G with respect to a program P (finite set of clauses) is
solved by showing that the set of clauses P { ~ G} is
unsatisfiable or there is a resolution refutation of P { ~ G}.
• If so, then G is logical consequence of a program P.
• There are three basic statements. These are special
forms of clauses.
− facts,
− rules and
− queries.
Example
● Consider the following logic program.
GRANDFATHER (x, y) FATHER (x, z) , PARENT (z, y)
PARENT (x, y) FATHER (x, y)
PARENT (x, y) MOTHER (x, y)
FATHER ( abraham, robert)
FATHER ( robert, mike)
● In FOL above program is represented as a set of
clauses as:
S={ GRANDFATHER (x, y) V ~FATHER (x, z) V ~ PARENT (z, y),
PARENT(x, y) V ~ FATHER (x, y),
PARENT(x, y) V ~ MOTHER (x, y),
FATHER ( abraham, robert),
FATHER ( robert, mike)
}
Example
● Let us number the clauses of S as follows:
i. GRANDFATHER(x, y) V ~FATHER(x, z) V ~PARENT(z, y)
ii. PARENT(x, y) V ~ FATHER (x, y)
iii. PARENT(x, y) V ~ MOTHER (x, y),
iv. FATHER ( abraham, robert)
v. FATHER ( robert, mike)
● Simple queries :
− Ground Query
Query:“Is abraham a grandfather of mike ?"
Example – Cont…
● Ground Query “Is abraham a grandfather of mike ?"
GRANDFATHER (abraham, mike).
● In FOPL, ~GRANDFATHER(abraham, mike) is
negation of goal { GRANDFATHER (abraham, mike).
● Include {~goal} in the set S and show using
resolution refutation that S {~ goal} is unsatisfiable
in order to conclude the goal.
● Let ~ goal is numbered as ( vi) in continuation of first
five clauses of S listed above.
vi. ~ GRANDFATHER (abraham, mike)
● Resolution tree is given on next slide:
Resolution Tree
(i) ( vi )
{x / abraham, y / mike}
( iv) ~ FATHER(abraham, z) V ~PARENT(z, mike)
{z / robert}
~ PARENT (robert, mike) ( ii)
~ FATHER (robert, mike) (v)
Answer: Yes
Different Type of Queries
● Non ground queries
Query:“Does there exist x such that x is a father of
robert ?” {Who is father of robert?}
FATHER (x, robert).
Query: “Does there exist x such that abraham is a
father of x?" {abraham is father of whom?}
FATHER (abraham, x).
Query: “Do there exist x and y such that x is a father of
y?" { who is father of whom?}
FATHER (x, y).