We present a sound, complete, and elementary proof method, based on bisimulation, for contextual equivalence in a λ-calculus with full universal, existential, and recursive types. Unlike logical relations (either semantic or syntactic), our development is elementary, using only sets and relations and avoiding advanced machinery such as domain theory, admissibility, and -closure. Unlike other bisimulations, ours is complete even for existential types. The key idea is to consider sets of relations-instead of just relations-as bisimulations.
They later present another sound and complete proof methodology based on bisimulation relations, but apply it to a lambda calculus with full universal, existential, and recursive types REF .
A bisimulation for type abstraction and recursion
POPL '05
Computer Science