Substitution: a formal methods case study using monads and transformations
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Formalization of the Strong Normalization Proof for System F in LEGO
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Structural Recursive Definitions in Type Theory
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Analysis of a Guard Condition in Type Theory (Extended Abstract)
FoSSaCS '98 Proceedings of the First International Conference on Foundations of Software Science and Computation Structure
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
de Bruijn notation as a nested datatype
Journal of Functional Programming
Mechanizing metatheory in a logical framework
Journal of Functional Programming
Normalization for the Simply-Typed Lambda-Calculus in Twelf
Electronic Notes in Theoretical Computer Science (ENTCS)
CIC∧: type-based termination of recursive definitions in the calculus of inductive constructions
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Semi-continuous sized types and termination
CSL'06 Proceedings of the 20th international conference on Computer Science Logic
Formalized metatheory with terms represented by an indexed family of types
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Extracting a normalization algorithm in Isabelle/HOL
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Practical inference for type-based termination in a polymorphic setting
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Arithmetical proofs of strong normalization results for the symmetric λµ-calculus
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Decidability of type-checking in the calculus of algebraic constructions with size annotations
CSL'05 Proceedings of the 19th international conference on Computer Science Logic
Implementing a normalizer using sized heterogeneous types
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
Hi-index | 0.00 |
In the simply typed λ-calculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus giving rise to a structurally recursive normalizer for the simply typed λ-calculus. We implement hereditary substitutions in a functional programming language with sized heterogeneous inductive types $\Fhat$, arriving at an interpreter whose termination can be tracked by the type system of its host programming language.