LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic analysis of normalisation by evaluation for typed lambda calculus
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Higher-Order and Symbolic Computation
A Semantic Account of Type-Directed Partial Evaluation
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Extensional normalisation and type-directed partial evaluation for typed lambda calculus with sums
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphism*
Journal of Functional Programming
Parametric higher-order abstract syntax for mechanized semantics
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Normalization by evaluation for the computational lambda-calculus
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Hi-index | 0.00 |
This paper presents our experience of formalizing Danvy's type-directed partial evaluator (TDPE) for the call-by-name lambda calculus in the proof assistant Coq. Following the previous approach by Coquand and Ilik, we characterize TDPE as a composition of completeness and soundness theorems of typing rules with respect to the semantics. To show the correctness property of TDPE (i.e., TDPE preserves semantics), we further define a logical relation between residualizing and standard semantics, following Filinski. The use of parametric higher-order abstract syntax (PHOAS) leads to a simple formalization without being disturbed by fresh names created during TDPE. Because of the higher-order nature of PHOAS, it also requires us to prove manually a core property that corresponds to the main lemma of logical relations, which appears to be difficult to prove in Coq.