We define λ seal , an untyped call-by-value λ-calculus with primitives for protecting abstract data by sealing, and develop a bisimulation proof method that is sound and complete with respect to contextual equivalence. This provides a formal basis for reasoning about data abstraction in open, dynamic settings where static techniques such as type abstraction and logical relations are not applicable.
For example, Sumii and Pierce define an untyped call-by-value lambda calculus with sealing and present a bisimulation-based approach to prove contextual equivalence REF .
A bisimulation for dynamic sealing
POPL '04
Computer Science