[Paper Review] Generic Description of Well-Scoped, Well-Typed Syntaxes
This paper introduces a generic framework for describing well-scoped, well-typed syntaxes in dependently typed languages using descriptions within a universe, enabling type-generic programming. It implements type-preserving renaming and substitution for all such languages in a single, reusable Agda library with formal proofs, achieving a 'once and for all' solution across diverse typed languages with binders.
We adapt the technique of type-generic programming via descriptions pointing into a universe to the domain of typed languages with binders and variables, implementing a notion of "syntax-generic programming" in a dependently typed programming language. We present an Agda library implementation of type-preserving renaming and substitution (including proofs about their behaviour) "once and for all" over all applicable languages using our technique.
Motivation & Objective
- To address the repetitive implementation of type-preserving operations like renaming and substitution across different typed languages with binders.
- To provide a generic, reusable framework that applies uniformly to all well-scoped, well-typed syntaxes in a dependently typed setting.
- To formalize and verify the correctness of renaming and substitution operations once and for all, independent of any specific language.
- To demonstrate that descriptions in a universe can effectively encode the structure of typed syntaxes with variable scoping and type safety.
- To enable systematic, modular construction of language-specific components using a single, unified foundation.
Proposed method
- Using a universe of descriptions to represent syntax trees with binding structures in a type-generic way.
- Encoding well-scoping and well-typing constraints directly within the description framework to ensure type safety by construction.
- Defining generic operations—renaming and substitution—over the description-based syntax using dependent types.
- Proving that renaming and substitution preserve types and scope conditions using Agda’s dependent type system.
- Leveraging Agda’s support for inductive families and dependent pattern matching to ensure correctness by construction.
- Abstracting over language-specific syntax by parameterizing the framework on a description of the language’s grammar and typing rules.
Experimental results
Research questions
- RQ1Can a single, generic framework describe well-scoped, well-typed syntaxes across diverse typed languages with binders?
- RQ2How can type-preserving renaming and substitution be implemented generically, with formal proofs, across all such languages?
- RQ3To what extent can descriptions in a universe capture the structural and typing constraints of typed languages with variables and binders?
- RQ4Can the correctness of renaming and substitution be proven once and for all, rather than per language?
- RQ5What is the role of dependent types in enabling such generic, correct-by-construction implementations?
Key findings
- The framework successfully encodes well-scoped, well-typed syntaxes using descriptions within a universe, ensuring type safety by construction.
- Renaming and substitution are implemented generically across all supported languages, with full formal proofs of their type-preserving and scope-preserving behavior.
- The Agda library demonstrates that these operations can be defined once and reused across multiple languages without re-implementation.
- The use of descriptions enables a modular and extensible approach to language description, separating syntax structure from type constraints.
- The approach reduces boilerplate and error-prone code in language implementations by abstracting over language-specific details.
- The framework supports a systematic, reusable, and formally verified foundation for building typed languages with binders.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.