In order to prove the consistency of the lambda calculus, it is convenient to introduce the notion of beta-reduction.

The one-step beta reduction, denoted by ->, is the least relation such that:

- (\x. M) N -> M[N/x],
- M =
_{alpha}N, N -> N', and N'_{alpha}M' => M -> M' - M -> N => M P -> N P
- M -> N => P M -> P N
- M -> N => \x. M -> \x. N

The multi-step beta reduction, denoted by ->>, is the reflexive and transitive closure of ->, namely:

- M -> N => M ->> N
- M ->> M (reflexivity)
- M ->> N and N ->> P => M ->> P (transitivity)

Let us now consider the relation between conversion and reduction. Clearly, by their definitions, we have the following:

**Proposition**: the lambda-conversion is the reflexive, symmetric, and
transitive closure of -> (or equivalently, of ->>).

- M ->> N, or
- N ->> M, or
- there exists P such that M ->> P and N ->> P
- there exists P such that P ->> M and P ->> N
- a combination of the above cases.

Fortunately, case (4) can be reduced to (3) thanks to the following theorem:

**Theorem (Church-Rosser)** ->> is confluent.
Namely, if P ->> M and P ->> N, then there exists
Q such that M ->> Q and N ->> Q.

The property of confluence is also called "diamond property", because of the shape of the diagram that illustrates the property.

Confluence means, essentially, that it does not matter in which order we reduce the beta-redexes inside a term: we can always "rejoin" towards the same term. ("all roads bring to Rome" :-)

**Example** Consider P =def= [plus] ([times] [1] [2]) ([plus] [3] [4]).
Then we have P ->> M and P ->> N, where M =def= [plus] [2] ([plus] [3] [4])
and N =def= [plus] ([times] [1] [2]) [7], i.e. M and N are obtained by reducing different parts of P.
Now, by reducing, in both M and N, the other part, we get M ->> [plus] [2] [7] and
N ->> [plus] [2] [7].

The example of reduction of operations on numerals is particularly simple; things are much more complicated when we consider reduction of higher-order terms. In that context the confluence property is not so obvious. The proof of this important result, in fact, is rather involved, and we will not see it in the course. The interested reader can find it on the Barendregt's references.

From the confluence property, we have the following:

**Corollary** If M = N then there exists
P such that M ->> P and N ->> P.

**Proof**. Remember that = is the reflexive, symmetric and transitive closure of ->.
This means that = is the least relation such that

- M -> N => M = N
- M = M
- N = M => M = N
- M = Q and Q = N => M = N

- 1 (Base case). Assume M -> N. Then the statement holds for P =def= N. In fact N ->> N.
- 2 (Base case). Assume M and N are identical. Then define P =def= M and observe that M ->> M.
- 3 (Inductive case). Assume N = M. By inductive hypothesis, we have that here exists P such that N ->> P and M ->> P.
- 4 (Inductive case). Assume M = Q and Q = N. By inductive hypothesis, we have that there exist
P
_{1}and P_{2}such that M ->> P_{1}, Q ->> P_{1}, Q ->> P_{2}, and N ->> P_{2}. Again by confluence, we have that there exists P such that P_{1}->> P and P_{2}->> P. Therefore we have M ->> P and N ->> P.

As a consequence of the above corollary we have:

**Theorem** The Lambda Calculus is consistent.
In particular, different Church's numerals are not lambda-convertible.

**Proof**. If [m] = [n], then from previous corollary
there must exist P such that [m] ->> P and [n] ->> P. However,
Church's numerals are in normal form, i.e. they cannot be reduced.
Hence we mush have that [m], P and [n] are identical
(modulo alpha-renaming).
But, by definition, [m] and [n] are identical
only if m and n are the same number.

This method however is not complete, because there exist terms which do not have a normal form. One example of such term is the fixpoint operator Y=def= \y.(\x.y(xx))(\x.y(xx)). In fact, we have

\y.(\x.y(xx))(\x.y(xx)) -> \y.y((\x.y(xx))(\x.y(xx))) -> \y.y(y((\x.y(xx))(\x.y(xx)))) -> ... -> \y.y^{n}((\x.y(x x))(\x.y(xx))) -> ...

Another example is the term Omega =def= (\x.xx)(\x.xx). We have in fact

Omega -> Omega -> Omega -> ...

In general lambda conversion is semi-decidable, but not decidable. In other words, it is not provable, in general, that two terms are not lambda convertible. The exceptions are, of course, the terms which have a normal form, like the numerals.

Note that there are terms which have a normal form, but also the possibility of an infinite chain of reductions. For example, take the term M =def= [true] [0] Omega. We have M ->> [0], but also M -> M -> M ->... because of the possibility of reducing the last term, Omega. A term which only gives rise to finite chains of reductions (obviously resulting in the same normal form) is called strongly normalizing. A term which has a normal form, but also infinite chains of reductions, is called weakly normalizing.