Abstract
This paper is concerned with a programming language construct for typed name binding that enforces αequivalence. It proves a new result about what operations on names can co-exist with this construct. The particular form of typed name binding studied is that used by the FreshML family of languages. Its characteristic feature is that a name binding is represented by an abstract (name,value)-pair that may only be deconstructed via the generation of fresh bound names. In FreshML the only observation one can make of names is to test whether or not they are equal. This restricted amount of observation was thought necessary to ensure that there is no observable difference between αequivalent name binders. Yet from an algorithmic point of view it would be desirable to allow other operations and relations on names, such as a total ordering. This paper shows that, contrary to expectations, one may add not just ordering, but almost any relation or numerical function on names without disturbing the fundamental correctness result about this form of typed name binding (that object-level αequivalence precisely corresponds to contextual equivalence at the programming meta-level), so long as one takes the state of dynamically created names into account.
- B. E. Aydemir, A. Bohannon, M. Fairbairn, J. N. Foster, B. C. Pierce, P. Sewell, D. Vytiniotis, G. Washburn, S. Weirich, and S. Zdancewic. Mechanised metatheory for the masses: The POPLmark challenge. In 18th International Conference on Theorem Proving in Higher Order Logics: TPHOLs 2005, volume 3603 of Lecture Notes in Computer Science, pages 50--65. Springer-Verlag, 2005. Google Scholar
Digital Library
- P. N. Benton and X. Leroy, editors. ACM SIGPLAN Workshop on ML (ML 2005), Tallinn, Estonia, Electronic Notes in Theoretical Computer Science. Elsevier, 2005.Google Scholar
- J. Cheney. Scrap your nameplate (functional pearl). In 10th ACM SIGPLAN Int. Conference on Functional Programming (ICFP'05), Tallinn, Estonia, pages 180--191. ACM Press, 2005. Google Scholar
Digital Library
- M. Felleisen and R. Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 103:235--271, 1992. Google Scholar
Digital Library
- C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen. The essence of compiling with continuations. In Proceedings ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'93, Albuquerque, NM, USA, pages 237--247. ACM Press, June 1993. Google Scholar
Digital Library
- M. J. Gabbay and A. M. Pitts. A new approach to abstract syntax with variable binding. Formal Aspects of Computing, 13:341--363, 2001.Google Scholar
Digital Library
- A. D. Gordon. Operational equivalences for untyped and polymorphic object calculi. In Gordon and Pitts {8}, pages 9--54. Google Scholar
Digital Library
- A. D. Gordon and A. M. Pitts, editors. Higher Order Operational Techniques in Semantics. Publications of the Newton Institute. Cambridge University Press, 1998. Google Scholar
Digital Library
- C. A. Gunter. Semantics of Programming Languages: Structures and Techniques. Foundations of Computing. MIT Press, 1992. Google Scholar
Digital Library
- D. J. Howe. Proving congruence of bisimulation in functional programming languages. Information and Computation, 124(2):103--112, 1996. Google Scholar
Digital Library
- S. B. Lassen. Relational reasoning about contexts. In Gordon and Pitts {8}, pages 91--135. Google Scholar
Digital Library
- I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287--327, 1991.Google Scholar
Cross Ref
- T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL---A Proof Assistant for Higher-Order Logic, volume 2283 of Lecture Notes in Computer Science. Springer-Verlag, 2002. Google Scholar
Digital Library
- C. Okasaki and A. Gill. Fast mergeable integer maps. In ACM-SIGPLAN Workshop on ML, Baltimore, Maryland, USA, pages 77--86. ACM Press, 1998.Google Scholar
- F. Pfenning. Logical frameworks. In A. Robinson and A. Voronkov, editors, Handbook of Automated Reasoning, chapter 17, pages 1063--1147. Elsevier Science and MIT Press, 2001. Google Scholar
Digital Library
- A. M. Pitts. Operational semantics and program equivalence. In Applied Semantics, Advanced Lectures, volume 2395 of Lecture Notes in Computer Science, Tutorial, pages 378--412. Springer-Verlag, 2002. International Summer School, APPSEM 2000, Caminha, Portugal, 2000. Google Scholar
Digital Library
- A. M. Pitts. Nominal logic, a first order theory of names and binding. Information and Computation, 186:165--193, 2003. Google Scholar
Digital Library
- A. M. Pitts. Typed operational reasoning. In B. C. Pierce, editor, Advanced Topics in Types and Programming Languages, chapter 7, pages 245--289. The MIT Press, 2005.Google Scholar
- A. M. Pitts. Alpha-structural recursion and induction. Journal of the ACM, 53(3):459--506, 2006. Google Scholar
Digital Library
- A. M. Pitts and M. J. Gabbay. A metalanguage for programming with bound names modulo renaming. In 5th Int. Conference on Mathematics of Program Construction (MPC2000), Ponte de Lima, Portugal, volume 1837 of Lecture Notes in Computer Science, pages 230--255. Springer-Verlag, 2000. Google Scholar
Digital Library
- F. Pottier. An overview of Cαml. In Benton and Leroy {2}, pages 27--52.Google Scholar
- F. Pottier. Static name control for FreshML. Draft, July 2006.Google Scholar
- M. R. Shinwell. The Fresh Approach: Functional Programming with Names and Binders. PhD thesis, University of Cambridge Computer Laboratory, 2005. Available as University of Cambridge Computer Laboratory Technical Report UCAM-CL-TR-618.Google Scholar
- M. R. Shinwell. Fresh O'Caml: Nominal abstract syntax for the masses. In Benton and Leroy {2}, pages 53--76. Google Scholar
Digital Library
- M. R. Shinwell and A. M. Pitts. On a monadic semantics for freshness. Theoretical Computer Science, 342:28--55, 2005. Google Scholar
Digital Library
- M. R. Shinwell, A. M. Pitts, and M. J. Gabbay. FreshML: Programming with binders made simple. In 8th ACM SIGPLAN Int. Conference on Functional Programming(ICFP 2003), Uppsala, Sweden, pages 263--274. ACM Press, 2003. Google Scholar
Digital Library
- C. Urban and S. Berghofer. A recursion combinator for nominal datatypes implemented in Isabelle/HOL. In 3rd International Joint Conference on Automated Reasoning (IJCAR 2006), Seattle, USA, volume 4130 of Lecture Notes in Computer Science, pages 498--512. Springer-Verlag, 2006. Google Scholar
Digital Library
- C. Urban and M. Norrish. A formal treatment of the Barendregt Variable Convention in rule inductions. In 3rd ACM SIGPLAN Workshop on Mechanized Reasoning about Languages with Variable Binding (MERLIN '05), Tallinn, Estonia, pages 25--32. ACM Press, 2005. Google Scholar
Digital Library
- C. Urban, A. M. Pitts, and M. J. Gabbay. Nominal unification. Theoretical Computer Science, 323:473--497, 2004. Google Scholar
Digital Library
Index Terms
Generative unbinding of names
Recommendations
Generative unbinding of names
POPL '07: Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesThis paper is concerned with a programming language construct for typed name binding that enforces αequivalence. It proves a new result about what operations on names can co-exist with this construct. The particular form of typed name binding studied is ...
A fresh look at programming with names and binders
ICFP '10: Proceedings of the 15th ACM SIGPLAN international conference on Functional programmingA wide range of computer programs, including compilers and theorem provers, manipulate data structures that involve names and binding. However, the design of programming idioms which allow performing these manipulations in a safe and natural style has, ...
Toward a general theory of names: binding and scope
MERLIN '05: Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized reasoning about languages with variable bindingHigh-level formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higher-order abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, ...






Comments