As we had discussed in the context of Haskell, we are interested in terms that cannot be reduced. These denote ``values'' and are called normal forms.
Formally, we are interested in properties of the relation , the reflexive and transitive closure of . We have already anticipated some of the questions we would like to ask about in our discussion of Haskell.
Consider the term . Only one reduction step is possible and this makes two copies of the argument and returns us to the original term . The reduction process for this term never terminates, so this is an example of a lambda term without a normal form. In the literature, the term is usually denoted .
Consider now the term that ignores its first argument. If we apply to , we have two possible reductions.
Clearly, if we keep making the second choice, we will never reach a normal form, even though it is always possible to reach a normal form in one step by choosing the first reduction.
To answer the question of multiple normal forms, we will state a more general result shortly.
First, we define a notion of equivalence based on .