Computing correctly with inductive relations

Computing correctly with inductive relations
复制标题

利用归纳关系正确计算

DOI:
10.1145/3519939.3523707
复制
发表时间:
2022
期刊:
Programming Language Design and Implementation
影响因子:
--
通讯作者:
Lampropoulos, Leonidas
Lampropoulos, Leonidas
中科院分区:
--
文献类型:
--
作者:
Paraskevopoulou, Zoe;Eline, Aaron;Lampropoulos, Leonidas

文献摘要

参考文献

被引文献

相似文献

归纳关系是机械化证明开发中编写规范的主要方式。与纯功能性规范相比,它们具有更强的表达能力,并促进了更多的组合推理。然而,归纳关系也有一个显着的缺点:它们不能用于computation.In本文中,我们提出了一个统一的框架提取三种不同类型的计算内容从归纳定义的关系:半决策程序,枚举,和随机生成器。我们展示了如何三个不同的实例化相同的算法可以用来生成所有三类的计算定义内的逻辑的Coq证明助理。对于每个派生的计算,我们也得到机械化的证明,它是健全的和完整的原始归纳关系,使用Ltac2,Coq的新的元编程facility.We实现我们的框架上的QuickChick测试工具Coq的顶部,并证明它涵盖了大多数情况下的利益提取计算的归纳关系中发现的软件基础系列。最后,我们评估的实用性和效率,我们的方法与小的案例研究,随机属性为基础的测试和证明计算反射。
Inductive relations are the predominant way of writing specifications in mechanized proof developments. Compared to purely functional specifications, they enjoy increased expressive power and facilitate more compositional reasoning. However, inductive relations also come with a significant drawback: they can’t be used for computation.In this paper, we present a unifying framework for extracting three different kinds of computational content from inductively defined relations: semi-decision procedures, enumerators, and random generators. We show how three different instantiations of the same algorithm can be used to generate all three classes of computational definitions inside the logic of the Coq proof assistant. For each derived computation, we also derive mechanized proofs that it is sound and complete with respect to the original inductive relation, using Ltac2, Coq’s new metaprogramming facility.We implement our framework on top of the QuickChick testing tool for Coq, and demonstrate that it covers most cases of interest by extracting computations for the inductive relations found in the Software Foundations series. Finally, we evaluate the practicality and the efficiency of our approach with small case studies in randomized property-based testing and proof by computational reflection.
做出随机判断:根据类型系统的定义自动生成类型良好的术语
DOI: --
发表时间: 2015
期刊: European Symposium on Programming
影响因子: --
作者:
B. Fetscher;Koen Claessen;Michal H. Palka;John Hughes;R. Findler
通讯作者: R. Findler
SciFe:用于高效枚举具有不变量的数据结构的 Scala 框架
DOI: --
发表时间: 2014
期刊: SCALA@ECOOP
影响因子: --
作者:
I. Kuraj;Viktor Kunčak
通讯作者: Viktor Kunčak
相关类型的随机生成器
DOI: --
发表时间: 2004
期刊: International Colloquium on Theoretical Aspects of Computing
影响因子: --
作者:
P. Dybjer;Qiao Haiyan;M. Takeyama
通讯作者: M. Takeyama
废弃你的样板文件
DOI: --
发表时间: 2003
期刊: Asian Symposium on Programming Languages and Systems
影响因子: --
作者:
S. Jones;R. Lämmel
通讯作者: R. Lämmel
从逻辑归纳类型中提取纯功能内容
DOI: --
发表时间: 2007
期刊: International Conference on Theorem Proving in Higher Order Logics
影响因子: --
作者:
David Delahaye;Catherine Dubois;Jean
通讯作者: Jean