Locally nameless representation with cofinite quantificationThe locally nameless representation can be used to represent binders in a formal settings. In this representation, bound variables are represented using de Bruijn indices, whereas free variables are represented using names. The cofinite quantification plays a key role in making it possible to obtain strong induction principles. DownloadRelated publicationsEngineering Formal Metatheory with B. Aydemir, B. C. Pierce, R. Pollack and S. Weirich Symposium on Principles of Programming Languages (POPL), January 2008 The Locally Nameless Representation Journal of Automated Reasoning (JAR), May 2011 Tutorial| Formalization of STLC: a tutorial | | | Coq appendix to the JAR paper | |
Details on tactics and automation can be found here. Main developmentsML with datatypes, recursion, references and exceptions Type soundness | | System-Fsub: PoplMark 1A+2A Type soundness | | Pure lambda calculus Church-Rosser property | | Call-by-value lambda calculus Correctness of the CPS translation | | Call-by-value lambda calculus Equivalence of big-step and small-step semantics | | Calculus of Constructions Subject reduction | |
Metatheory libraryAdditional tutorial examplesSTLC Type soundness | | STLC Extra material | | STLC + Exceptions Type soundness | | STLC + References Type soundness | |
Older releasesUsersA non-exhaustive list of users of the approach locally nameless with cofinite quantification can be found here. |