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
A predicative analysis of structural recursion
Journal of Functional Programming
Mechanizing metatheory in a logical framework
Journal of Functional Programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic Metatheory of Higher-Order Subtyping
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Explicit Contexts in LF (Extended Abstract)
Electronic Notes in Theoretical Computer Science (ENTCS)
Implementing a normalizer using sized heterogeneous types
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
New equations for neutral terms: a sound and complete decision procedure, formalized
Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming
First-class substitutions in contextual type theory
Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practice
Hi-index | 0.00 |
We analyze a normalization function for the simply typed λ-calculus based on hereditary substitutions, a technique developed by Pfenning et al. The normalizer is implemented in Agda, a total language where all programs terminate. It requires no termination proof since it is structurally recursive which is recognized by Agda's termination checker. Using Agda as an interactive theorem prover we establish that our normalization function precisely identifies Βη-equivalent terms and hence can be used to decide Βη-equality. An interesting feature of this approach is that it is clear from the construction that Βη-equality is primitive recursive.