ObservationEquivalence is an idea that arose in Concurrency theory.
It was the response to the question
`` when are two (concurrent) programs equivalent? ''.
The answer is that this depends on the observer
that interacts
with the program. If an observer can interact with two observed
entities in such a way that it can spot difference in their
behavior, then they are not relatively equivalent.
Now, if you are given a language in which observers can be
described, and you can show that for all possible observers
two entities exhibit the same behavior, then we have a stronger
equivalence, often called congruence.
--
AamodSane