Names, Equations, Relations: Practical Ways to Reason about new
The nu-calculus of Pitts and Stark is a typed lambda-calculus, extended with state
in the form of dynamically-generated names. These names can be created locally, passed around, and compared with one another. Through the interaction between
names and functions, the language can capture notions of scope, visibility and sharing. Originally motivated by the study of references in Standard ML, the nu-calculus
has connections to local declarations in general; to the mobile processes of the pi-calculus; and to security protocols in the spi-calculus.
This paper introduces a logic of equations and relations which allows one to
reason about expressions of the nu-calculus: this uses a simple representation of the private and public scope of names, and allows straightforward proofs of
contextual equivalence (also known as observational, or observable, equivalence). The logic is based on earlier operational techniques, providing the same power but
in a much more accessible form. In particular it allows intuitive and direct proofs of all contextual equivalences between first-order functions with local names.
This supersedes the earlier BRICS Report RS-96-31. It also expands on the paper presented in Typed Lambda Calculi and Applications: Proceedings of the Third
International Conference TLCA '97, Lecture Notes in Computer Science 1210, Springer-Verlag 1997.
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.