一句话:提出分层模态类型论,以统一语法分离代码表示与计算,支持元编程和内涵分析。
在证明助手中支持元编程时,代码的语法表示与计算行为常相互纠缠,难以对开放式代码做内涵分析并保持规范化。本文把分层引入模态类型论,给出一个两层系统:第0层是无模态的简单类型λ演算,用于刻画代码的语法表示;第1层加入上下文◻类型,允许对第0层可能开放的代码做模式匹配并保留规范化。两层共享统一语法与类型判断,但仅第1层可计算,因而支持引用和代码运行。作者用预层模型通过正规化求值(NbE)证明系统,从中抽取可靠且完备的规范化算法并在Agda中实现,为证明助手中的元编程与内涵分析提供了统一基础。
We introduce layering to modal type theory to support meta-programming and intensional analysis coherently. In particular, we demonstrate this idea by developing a 2-layered modal type theory. At the core of this type theory (layer 0) is a simply typed λ -calculus with no modality. Layer 1 is obtained by extending the core language with one layer of contextual ◻ types to support pattern matching on potentially open code from layer 0 while retaining normalization. Although both layers fundamentally share a uniform syntax and the same typing judgment, we only allow computation at layer 1. As a consequence, layer 0 accurately captures the syntactic representation of code in contrast to the computational behaviors at layer 1. Moreover, the uniform syntax at both layers enables quotation and code running. The system is justified by normalization by evaluation (NbE) using a presheaf model. The normalization algorithm extracted from the model is sound and complete and is implemented in Agda. Layered modal type theory provides a uniform foundation for meta-programming with intensional analysis. We see this work as an important step towards a foundational way to support meta-programming in proof assistants.
@article{paperbot2667,
title = {A Layered Approach to Intensional Analysis in Type Theory},
author = {Jason Z. S. Hu and Brigitte Pientka},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {46},
number = {4},
year = {2024},
doi = {10.1145/3707203}
}