PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Handbook of logic in computer science (vol. 2)
Information and Computation
Substitution: a formal methods case study using monads and transformations
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
Some Lambda Calculus and Type Theory Formalized
Journal of Automated Reasoning
Monadic Presentations of Lambda Terms Using Generalized Inductive Types
CSL '99 Proceedings of the 13th International Workshop and 8th Annual Conference of the EACSL on Computer Science Logic
de Bruijn notation as a nested datatype
Journal of Functional Programming
Pure type systems with judgemental equality
Journal of Functional Programming
Implementing a normalizer using sized heterogeneous types
Journal of Functional Programming
An induction principle for nested datatypes in intensional type theory
Journal of Functional Programming
Some Domain Theory and Denotational Semantics in Coq
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A formalisation of a dependently typed language as an inductive-recursive family
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Implementing a normalizer using sized heterogeneous types
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Strongly Typed Term Representations in Coq
Journal of Automated Reasoning
Hi-index | 0.00 |
It is possible to represent the terms of a syntax with binding constructors by a family of types, indexed by the free variables that may occur. This approach has been used several times for the study of syntax and substitution, but never for the formalization of the metatheory of a typing system. We describe a recent formalization of the metatheory of Pure Type Systems in Coq as an example of such a formalization. In general, careful thought is required as to how each definition and theorem should be stated, usually in an unfamiliar ‘big-step' form; but, once the correct form has been found, the proofs are very elegant and direct.