Computer Science 591i
Operational Equivalence.

ERRATA - we must specify normal order reduction.
In this lecture we consider the concept of extensional, or operational equivalence. Recall that we said: From our consideration of normal forms, we can now refine the above statement to

The Operational Domain

Since -conversion is an equivalence relation, we can define equivalence-classes of terms under -conversion.

Definition

The Operational Domain of the -calculus consists of the set of equivalence classes under -conversion of normal forms, together with a distinguished entity U.

Definition

If E is a term of the -calculus, then D(E) is the set {F | F ==a E}

Definition

If E is a term of the -calculus, and EbeN, where N is a normal form, then we define If no normal form exists, then

Definition

Two expressions F and G are operationally equivalent (or extensionally equivalent) if, for all X


How does this equivalence relate to our notions of and -equivalence? The following Lemmas establishes the relationship.


Lemma OE1

In the Pure -calculus, for any F,G

Proof

let F ==abe G. Let X be a term. Then FX ==abe GX. Suppose

where EF, EG are ,-irreducible. Then, by the Church-Rosser theorem, there exists E such that EFabeE and EGabeE and, since EF and EG are normal forms, we can conclude FX==aGX.
Thus Eval(FX) = Eval(GX)

However, suppose Eval(FX)=U. Then there can be no normal form for GX, for if there were, by the Church-Rosser theorem, there would be an normal form for FX. Therefore Eval(FX) = U = Eval(GX)


We couldn't expect an exact converse of the above lemma to hold, since all divergent computations are smashed down by Eval to the single undefined element, and there are certainly inconvertible divergent terms in the calculus. For example, ( x . x x)( x . x x) and ( x . x x x)( x . x x x) are both divergent, as, for example, while the second form is not only divergent but gives successively larger terms on each reduction. They are not however abe-equivalent. However we can obtain the following:

Lemma

Let F ==o G, and suppose that for some variable x, Eval(F x) /= U. Then F==abeG.

Proof

From the definition of Eval, Fx ==abe Gx. So, by the definition of ==ab,

And hence, by -reduction, F ==abeG