First-Order Predicate Logic
First-Order Predicate Logic
x.y.(owns(x, y) house(y))
Logic in Computer Science 2012 3
Translations into Predicate Logic
x.(owns(Sue, x) house(x))
x.(owns(Peter, x) house(x))
x.y.(owns(x, y) house(y))
Let S be the signature consisting of the unary predicates house and human, the
binary predicate owns, and the individual constant Sue. Give an S-interpretation
F with F |= G for the following sentences G:
D F = {a, b, c, d, e};
houseF = {d, e}
SueF = a.
Note that in this interpretation all owners are humans. We can also take humanF =
{a, b} and the sentences from the previous slide are still true in F .
(Note that this is not the case for humanF = {a}.)
F |= G
Examples
F |= x.y.Q(x, y) u.v.Q(v, u)
Let
D F = {a, b};
To prove that x.P (x) x.P (x) is not satisfiable, we have to show that for all
{P }-structures F :
F 6|= x.P (x) x.P (x)
For a proof by contradiction assume there exists a {P }-structure F such that
We show that there does not exist any algorithm (no computer program) that
decides whether a first-order predicate logic sentence is satisfiable; i.e., for in-
put sentence G outputs Yes if G is satisfiable and No if G is not satisfiable.
To this end, we show that there is no computer program that decides whether
a given computer program P halts for a given input number n. (Called unde-
cidability of the halting problem.)
Now we show: there is no program in L which outputs yes for input (P, n) (P a
program in L and n a number) if program P terminates for input n, and outputs
no otherwise.
Then there exists a program Qterm that outputs yes for input P ] if P terminates
for input P ] . Otherwise it outputs no.
We can rewrite Qterm into a program Aterm that terminates for input P ] if Qterm
outputs no for input P ] . Otherwise it does not terminate. Then
Aterm terminates for input A]term if, and only if (by def. of Aterm )
Qterm outputs no for input A]term if, and only if (by def. of Qterm )
Now, for any (P, n), (P in a standard programming language L), one can write
up a first-order predicate logic sentence FP,n such that FP,n is satisfiable if, and
only if, P does not terminate for input n. FP,n describes the computation steps
of P .
Examples of tautologies
To show that x.P (x) x.P (x) is a tautology it is sufficient to prove that for
every {P }-structure F : if F |= x.P (x), then F |= x.P (x).
Observation
This is denoted by
X |= G
Observations
For any first-order sentence G: |= G if, and only if, G is a tautology. Since
being a tautology is undecidable it follows that being a logical con-
sequence is undecidable: there is not algorithm that decides whether
X |= G.
We have:
{P (c)} |= xP (x).
We have:
{P (c), x(P (x) Q(x))} |= xQ(x).
We have:
{P (c), x(P (x) Q(x))} 6|= Q(c).
We can model the logical consequence if my car is blue and all blue cars are
fast, then my car is fast as follows: take
Then
F |= G1 if and only if F |= G2 .
This is denoted by
G1 G2 .
Observations
x.G x.G;
x.G x.G;
x.G x.G;
x.G x.G;
Theorem There exists a computer program that outputs exactly the tautologies
of first-order predicate logic.
There are many distinct types of deduction systems that can be used to imple-
ment such a program:
Hilbert-style systems
Natural deduction
Sequent calculus
Tableaux method
Resolution
(G D) = (G D);
(G D) = (G D);
x.G = x.G.
We set
(G D F ) = (G (D F ))
Intuitively, (G D F ) means If G and D are true, then F is true.
The following formulas are tautologies, for any first-order predicate logic formu-
las D, G, and F :
(A1) ((G D F ) (G D) (G F ))
(A2) (G (D G D))
(A3) ((G D) G)
(A4) ((G D) D)
P (x) xc = P (c)
The following formulas are tautologies for all first-order predicate logic formulas
G and D:
(MP) G, G D/D;
(GE) G/x.G.
The first rules is called Modus Ponens. The second rule is called Generalisation.
Note
We say that G is provable from (A1)-(A9) with (MP) and (GE) if, and only if, there
is a sequence G1 , . . . , Gn such that for all Gi one of the following conditions
holds:
there exists j < i such that Gj = F and Gi = x.F (for some F, x);
Theorem A formula G is a tautology if, and only if, it is provable from (A1)-(A9)
with (MP) and (GE).
Recall that
SAR = {smaller, sum, prod, even, 0, 1, . . .}
The standard structure for SAR is given by
where
evenA = {n | n is even };
0A = 0, 1A = 1, and so on.
Theorem There does not exist an algorithm (computer program) that outputs
exactly the first-order sentences G over SAR such that A |= G.
It follows, in particular, that there is no finitary calculus that captures the sen-
tences that are true in A. Undecidability of arithmetic follows from incomplete-
ness:
Theorem There does not exist an algorithm (computer program) that decides
whether for a first-order sentence G over SAR it holds that A |= G.
Second-order logic is much more expressive than first-order logic. For example,
one can formalise induction (we use, for simplicity, + instead of sum):
Theorem There does not exist an algorithm (computer program) that outputs
exactly the tautologies of second-order logic.