[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

EQ?, again



    Date: Wed, 19 Feb 86 21:37:49 EST
    From: Jonathan A Rees <JAR@MC.LCS.MIT.EDU>

I   1. (EQ?  (LAMBDA (X) X) (LAMBDA (Y) Y))		;"Coalescing"
I   2. (EQV? (LAMBDA (X) X) (LAMBDA (Y) Y))
I   3. (LET ((X (LAMBDA (Z) Z))) (EQ?  X X))	;"Splitting"
T   4. (LET ((X (LAMBDA (Z) Z))) (EQV? X X))
I   5. (LET ((X ... any expression evaluating to an exact number ...))
	 (EQ? X X))
I   6. (EQ? #\X #\X)

Let me qualify those five "I" answers.  If two things are EQ?, then they
should be operationally identical.  (One consequence is that two things
that are EQ? should also be EQV?.)  If they are not EQ?, then they might
or might not be operationally identical.  The contrapositive is:  if two
things are proved in the course of a program execution to be
operationally distinct, then EQ? must consistently be false of them (in
both the future and the past).

--Guy