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:
Running a program Eprg
with a given data-set Edata
corresponds to forming the application
EprgEdata
and then using reduction rules to transform that application into a
simple form that can reasonably be considered as the result of the computation.
From our consideration of normal forms, we can now refine the above
statement to
Running a program Eprg
with a given data-set Edata
corresponds to forming the application
EprgEdata
and then applying normal-order reduction to obtain a normal form
which is considered to be the result of the computation.
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
E
beN, 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
FX
be EF,
GX
be EG
where EF, EG are
,
-irreducible.
Then, by the Church-Rosser theorem, there exists E
such that
EF
abeE and
EG
abeE
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,
(
x.x x)(
x. x x)
b
(
x. x x) (
x. x x)
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,
x . Fx ==ab
x . Gx
And hence, by
-reduction, F ==abeG