[论文解读] Practical Sized Typing for Coq
本文提出了一项针对 Coq 的实用扩展,整合了递归与共递归函数的大小类型检查与推断,实现了无需语法注解的终止性与生产力验证。该方法支持未标注的 Gallina 项并保持向后兼容性,使用户能够编写类似快速排序的惯用程序,同时确保逻辑一致性。
Termination of recursive functions and productivity of corecursive functions are important for maintaining logical consistency in proof assistants. However, contemporary proof assistants, such as Coq, rely on syntactic criteria that prevent users from easily writing obviously terminating or productive programs, such as quicksort. This is troublesome, since there exist theories for type-based termination- and productivity-checking. In this paper, we present a design and implementation of sized type checking and inference for Coq. We extend past work on sized types for the Calculus of (Co)Inductive Constructions (CIC) with support for global definitions found in Gallina, and extend the sized-type inference algorithm to support completely unannotated Gallina terms. This allows our design to maintain complete backward compatibility with existing Coq developments. We provide an implementation that extends the Coq kernel with optional support for sized types.
研究动机与目标
- 解决 Coq 中语法终止性检查限制用户编写自然的、终止的程序(如快速排序)的问题。
- 设计一种支持在(共)归纳类型系统(CIC)中使用全局定义和未标注 Gallina 项的大小类型系统。
- 在增加基于大小的终止性与生产力检查支持的同时,确保与现有 Coq 开发的向后兼容性。
- 实现一个内核扩展,可选择性地启用 Coq 中的大小类型检查,而不会破坏现有代码库。
提出的方法
- 将大小类型扩展至(共)归纳类型系统(CIC),以支持对终止性与生产力的推理。
- 设计一种大小类型推断算法,即使在完全未标注的 Gallina 项中也能推断出大小。
- 通过将大小类型集成到 Gallina 的语法与类型系统中,支持全局定义。
- 修改 Coq 内核,可选择性地强制执行大小类型检查,同时保持向后兼容性。
- 将大小注解作为一种精炼类型,用于追踪递归与共递归函数中结构的递减或递增。
- 采用一种类型推断机制,从项的结构中推断大小,避免手动注解的需要。
实验结果
研究问题
- RQ1是否可以在不需对用户定义函数添加语法注解的情况下,将大小类型集成到 Coq 内核中?
- RQ2如何在保持逻辑一致性的前提下,使大小类型推断适用于未标注的 Gallina 项?
- RQ3添加大小类型对现有 Coq 开发的可维护性与向后兼容性有何影响?
- RQ4大小类型是否能有效验证无需手动大小注解的惯用程序(如快速排序)的终止性与生产力?
- RQ5如何将大小类型扩展以支持 Gallina 中常见的全局定义?
主要发现
- 所提出的大小类型系统成功验证了常见程序(如快速排序)的终止性与生产力,且无需手动大小注解。
- 推断算法能正确推断未标注 Gallina 项的大小,使其在实际开发中具有实用性。
- 内核扩展保持了完全的向后兼容性,使现有 Coq 代码无需修改即可编译。
- 该方法支持全局定义与共递归函数,扩展了 CIC 中大小类型研究的先前工作。
- 该集成表明,基于大小的推理在主流证明助手(如 Coq)中既实用又可扩展。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。