The Undecidability of First Order Logic
A first order logic is given by a set of function symbols and a set of
predicate symbols. Each function or predicate symbol comes with an
arity, which is natural number. Function symbols of arity 0 are known
as constant symbols. Now terms are recursively defined by
- variables are terms, and
- if ti are terms for i=1,...,n and f is an n-ary
function symbol, then f(t1,...,tn) is a term.
Formulas are recursively defined by
- if ti are terms for i=1,...,n and p is an n-ary
predicate symbol, then p(t1,...,tn) is a
formula.
- if P and Q are formulas, then
P is a
formula, P
Q is a formula,
P
Q is a formula, P
Q is a formula, and P <=> Q is a formula.
- if P is a formula and x a variable, then
x: P and
x: P are formulas.
The completeness theorem for first order logic says that a formula is
provable from the laws of first order logic (not given here) if and
only if it is true in under all possible interpretations,
i.e. regardless of the meaning of the function and predicate symbols.
Theorem: It is undecidable whether a first order logic formula
is provable (or true under all possible interpretations).
Proof: Suppose there is an algorithm B that, given a first
order logic and a formula in that logic, decides whether that formula
is valid (holds under all possible interpretations). I will use that
to give a decision algorithm for the language {(M,w) | M is the
description of a Turing machine that accepts the string w}. As the
latter problem is undecidable this will show that B cannot exists.
Given M and w, create a first order logic by declaring a constant
, a unary function symbol a for every letter a in
the alphabet, and a binary predicate fq for every state q
of M.
Consider the following interpretation of this logic:
Variables x range over strings over the given alphabet,
denotes the empty string, a(w) denotes the string aw, and
fq(x,y) indicates that M, when given input w, can reach a
configuration with state q, in which xy is on the tape, with x in
reverse order, and the head of M points at the first position of y.
Under this interpretation fq0(
,w) is certainly a
true formula, as the initial configuration is surely reachable. Here
q0 is the initial state, and w is a representation of w made from the
constant and function symbols of the logic. Furthermore the formula
x
y: fq-acc(x,y) with q-acc the
acceptance state, holds iff M accepts w.
Whenever M has a transition from state q to state r, reading a,
writing b, and moving right, the formula
x
y:
fq(x,ay) => fr(bx,y)
holds. Here x and y are variables. Likewise, if M has a transition
from state q to state r, reading a, writing b, and moving left, the formulas
x
y:
fq(cx,ay) => fr(x,cby)
hold for every choice of a letter c. In addition we have
x
y:
fq(
,ay) =>
fr(
,by),
covering the case that M cannot move left, because its head is already
in the left-most position. Finally, there are variants of the formulas
above for the case that a is the blank symbol and that square of the
tape is visited for the first time:
x
y:
fq(x,
) =>
fr(bx,
)
x
y:
fq(cx,
) =>
fr(x,cb
)
x
y:
fq(
,
) => fr(
,b
).
Let T be the conjunction of all implication formulas mentioned above.
As M has finitely many transitions and the alphabet is finite, this
conjunction is finite as well, and thus a formula of first order logic.
Now consider the formula
fq0(
,w) & T =>
x
y:
fq-acc(x,y).
In case M accepts w, there is a valid computation leading to an accept
state. Each step therein corresponds with a substitution instance of
one of the conjuncts in T, and using the laws of first order logic it
is easy to check that the formula above is provable and thus true
under all interpretations. If, on the other hand, the formula above
is true under all interpretations, it is surely true in the given
interpretation, which implies that M has an accepting computation
starting on w.
Thus, in order to decide whether or not M accepts w, it suffices to
check whether or not the formula above is a theorem of first order logic.