一句话:提出基于合成守卫域理论的渐进类型指称语义,统一证明βη等式有效性与渐进性定理。
渐进类型允许静态与动态类型风格可靠混合,但其元理论验证困难:即使简单语言也含递归与错误,现实语言还有内存分配和动态类型标签,并需证明类型等式推理有效性与渐进性(graduality)。已有验证工作重复繁琐、可复用定理少。本文提出基于守卫域理论(guarded domain theory)的渐进类型指称语义,融合步进索引逻辑关系的通用性与指称语义的模块性、可复用性。作者在简单渐进类型λ演算上建模,证明βη等式有效性与渐进性定理,并在 Guarded Cubical Agda 中机器化验证大部分核心定理,为可复用的渐进类型程序语义数学理论奠定基础。
Gradually typed programming languages, which allow for soundly mixing static and dynamically typed programming styles, present a strong challenge for metatheorists. Even the simplest sound gradually typed languages feature at least recursion and errors, with realistic languages featuring furthermore runtime allocation of memory locations and dynamic type tags. Further, the desired metatheoretic properties of gradually typed languages have become increasingly sophisticated: validity of type-based equational reasoning as well as the relational property known as graduality. Many recent works have tackled verifying these properties, but the resulting mathematical developments are highly repetitive and tedious, with few reusable theorems persisting across different developments. In this work, we present a new denotational semantics for gradual typing developed using guarded domain theory. Guarded domain theory combines the generality of step-indexed logical relations for modeling advanced programming features with the modularity and reusability of denotational semantics. We demonstrate the feasibility of this approach with a model of a simple gradually typed lambda calculus and prove the validity of beta-eta equality and the graduality theorem for the denotational model. This model should provide the basis for a reusable mathematical theory of gradually typed program semantics. Finally, we have mechanized most of the core theorems of our development in Guarded Cubical Agda, a recent extension of Agda with support for the guarded recursive constructions we use.
@article{paperbot3222,
title = {Denotational Semantics of Gradual Typing using Synthetic Guarded Domain Theory},
author = {Eric Giovannini and Tingting Ding and Max S. New},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {POPL},
year = {2025},
doi = {10.1145/3704863}
}