当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Practical Sized Typing for Coq
arXiv - CS - Programming Languages Pub Date : 2019-12-11 , DOI: arxiv-1912.05601
Jonathan Chan and William J. Bowman

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 的实用大小打字

递归函数的终止和核心递归函数的生产力对于维持证明助手中的逻辑一致性很重要。然而,当代的证明助手(例如 Coq)依赖于阻止用户轻松编写明显终止或生产性程序(例如快速排序)的语法标准。这很麻烦,因为存在基于类型的终止和生产力检查的理论。在本文中,我们提出了 Coq 大小类型检查和推理的设计和实现。我们扩展了过去关于 (Co) 归纳构造微积分 (CIC) 的大小类型的工作,支持在 Gallina 中找到的全局定义,并扩展了大小类型推理算法以支持完全未注释的 Gallina 术语。这使我们的设计能够与现有的 Coq 开发保持完全的向后兼容性。我们提供了一个扩展 Coq 内核的实现,可选支持大小类型。
更新日期:2020-06-02
down
wechat
bug