[TYPES] a counterexample to Plotkin and Abadi's characterization of equivalence at existential type?

Uday S Reddy u.s.reddy at cs.bham.ac.uk
Wed Dec 5 10:05:42 EST 2012


Derek Dreyer writes:

> In short, Theorem 7 in their paper says that two terms of existential
> type are equal *if and only if* there exists a "simulation relation"
> between their internal representations of the abstract type such that
> the operations are logically related at the appropriate type
> (interpreting the abstract type using the chosen simulation relation).

The Theorem 7 doesn't quite say that.  u = (pack X x) means that <X, x> make
up *some* representation of the abstract data type u.  X and x have no
reason to be the same as what you regard as "the internal representation" of
u.

To put another way, the elements u of an existential type are *equivalence
classes* of type representations.  The Theorem 7 says that a simulation
relation exists between two cleverly chosen representatives of such
equivalence classes.

In my papers, I avoid the notation (pack X x), which is open to
misinterpretation, and use two separate notations

  <X, x>  -  for representations
  <|X, x|> - for equivalence classes of representations.

See for instance, "Objects and classes in Algol-like languages", Sec. 5.1.
http://www.cs.bham.ac.uk/~udr/papers/objects-and-classes.pdf.

Cheers,
Uday


More information about the Types-list mailing list