一句话:提出首个实用的内部参数性证明助手 Agda--bridges,并基于 SRP 给出内部自由定理的单行证明。
参数性翻译能从单个多态程序计算参数性陈述与证明,但不提供内部参数性;内部参数性类型论虽可导出内部参数性,却缺乏成熟证明助手实现,证明低层繁琐。本文提出 Agda--bridges:首个实用的内部参数性证明助手,首次机器化证明相对性定理等关键定理。作者类比 HoTT/UF 的结构同一原理(SIP),提出结构相关性原理(SRP)作为内部参数性的高层充分条件,并对满足 SRP 的类型证明一般参数性定理,从而单行证明标准内部自由定理。还指出 SRP 比 SIP 更难证明,并在 Agda--bridges 中浅层嵌入逻辑关系的观察式类型论以组合满足 SRP 的类型;该定理应为其推理规则之一。
Two approaches exist to incorporate parametricity into proof assistants based on dependent type theory. On the one hand, parametricity translations conveniently compute parametricity statements and their proofs solely based on individual well-typed polymorphic programs. But they do not offer internal parametricity: formal proofs that any polymorphic program of a certain type satisfies its parametricity statement. On the other hand, internally parametric type theories augment plain type theory with additional primitives out of which internal parametricity can be derived. But those type theories lack mature proof assistant implementations and deriving parametricity in them involves low-level intractable proofs. In this paper, we contribute Agda --bridges: the first practical internally parametric proof assistant. We provide the first mechanized proofs of crucial theorems for internal parametricity, like the relativity theorem. We identify a high-level sufficient condition for proving internal parametricity which we call the structure relatedness principle (SRP) by analogy with the structure identity principle (SIP) of HoTT/UF. We state and prove a general parametricity theorem for types that satisfy the SRP. Our parametricity theorem lets us obtain one-liner proofs of standard internal free theorems. We observe that the SRP is harder to prove than the SIP and provide in Agda --bridges a shallowly embedded type theory to compose types that satisfy the SRP. This type theory is an observational type theory of logical relations and our parametricity theorem ought to be one of its inference rules.
@article{paperbot2589,
title = {Internal and Observational Parametricity for Cubical Agda},
author = {Antoine Van Muylder and Andreas Nuyts and Dominique Devriese},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {POPL},
year = {2024},
doi = {10.1145/3632850}
}