paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Extensible Metatheory Mechanization via Family Polymorphism

通过族多态实现可扩展的元理论机械化
PLDI 7(PLDI)2023匹配度 3/10 · 论文属于证明助手/定理证明中的语言设计与证明工程,关注元理论机械化代码和证明的可复用与可扩展,与用户核心方向(LLM/Agent 与静态分析或形式化验证交叉、浮点程序分析、贝叶斯程序分析)没有直接关联;仅与形式化验证/证明工程有边缘交集。引用 9 inbox
Ende Jin, Nada Amin, Yizhou Zhang
crossref: 2026-09-10

AI 速览

一句话:提出基于族多态的语言设计,使证明助手能复用和扩展元理论机械化代码与证明。

随着元理论机械化日益普及,证明助手亟需支持可复用、可扩展的代码与证明。本文提出一种面向证明助手可扩展元理论机械化的新语言设计,核心是借鉴面向对象的族多态,使代码与证明能相对其所在族进行多态化,从而在族扩展时自动复用和适配。该设计需应对证明助手底层语言兼具函数式、依赖类型、逻辑和交互式工具等特性带来的挑战。作者在 Coq 中实现插件原型,建立刻画该机制的依赖类型理论并证明其一致性与规范性,并通过案例研究展示新表达力能自然解决元理论机械化中的实际编程难题。

问题
如何让证明助手中的元理论机械化代码与证明易于复用和扩展,尤其是在语言定义及其证明随语言特性变化时。
方法
提出基于族多态的语言设计,将其实现为 Coq 插件,并用依赖类型理论刻画该机制、证明一致性与规范性。
评估
通过 Coq 插件原型和元理论机械化案例研究评估新设计的表达力与实用性。
原文摘要(Abstract)

With the growing practice of mechanizing language metatheories, it has become ever more pressing that interactive theorem provers make it easy to write reusable, extensible code and proofs. This paper presents a novel language design geared towards extensible metatheory mechanization in a proof assistant. The new design achieves reuse and extensibility via a form of family polymorphism, an object-oriented idea, that allows code and proofs to be polymorphic to their enclosing families. Our development addresses technical challenges that arise from the underlying language of a proof assistant being simultaneously functional, dependently typed, a logic, and an interactive tool. Our results include (1) a prototypical implementation of the language design as a Coq plugin, (2) a dependent type theory capturing the essence of the language mechanism and its consistency and canonicity results, and (3) case studies showing how the new expressiveness naturally addresses real programming challenges in metatheory mechanization.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1960,
  title = {Extensible Metatheory Mechanization via Family Polymorphism},
  author = {Ende Jin and Nada Amin and Yizhou Zhang},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {PLDI},
  year = {2023},
  doi = {10.1145/3591286}
}