Mtac2: typed tactics for backward reasoning in Coq

Author:

Kaiser Jan-Oliver1,Ziliani Beta2,Krebbers Robbert3,Régis-Gianas Yann4,Dreyer Derek1

Affiliation:

1. MPI-SWS, Germany

2. Universidad Nacional de Córdoba, Argentina / CONICET, Argentina

3. Delft University of Technology, Netherlands

4. IRIF, France / CNRS, France / University of Paris Diderot, France / Inria, France

Abstract

Coq supports a range of built-in tactics, which are engineered primarily to support backward reasoning . Starting from a desired goal, the Coq programmer can use these tactics to manipulate the proof state interactively, applying axioms or lemmas to break the goal into subgoals until all subgoals have been solved. Additionally, it provides support for tactic programming via OCaml and Ltac, so that users can roll their own custom proof automation routines. Unfortunately, though, these tactic languages share a significant weakness. They do not offer the tactic programmer any static guarantees about the soundness of their custom tactics, making large tactic developments difficult to maintain. To address this limitation, Ziliani et al. previously proposed Mtac , a new typed approach to custom proof automation in Coq which provides the static guarantees that OCaml and Ltac are missing. However, despite its name, Mtac is really more of a metaprogramming language than it is a full-blown tactic language: it misses an essential feature of tactic programming, namely the ability to directly manipulate Coq’s proof state and perform backward reasoning on it. In this paper, we present Mtac2 , a next-generation version of Mtac that combines its support for typed metaprogramming with additional support for the programming of backward-reasoning tactics in the style of Ltac. In so doing, Mtac2 introduces a novel feature in tactic programming languages—what we call typed backward reasoning . With this feature, Mtac2 is capable of statically ruling out several classes of errors that would otherwise remain undetected at tactic definition time. We demonstrate the utility of Mtac2’s typed tactics by porting several tactics from a large Coq development, the Iris Proof Mode, from Ltac to Mtac2.

Publisher

Association for Computing Machinery (ACM)

Subject

Safety, Risk, Reliability and Quality,Software

Reference32 articles.

1. Raphaël Cauderlier. 2018. Tactics and certificates in Meta Dedukti. In ITP (ITP ‘18). Raphaël Cauderlier. 2018. Tactics and certificates in Meta Dedukti. In ITP (ITP ‘18).

2. Raphaël Cauderlier and François Thiré. {n. d.}. Meta Dedukti. http://deducteam.gforge.inria.fr/metadedukti/ Raphaël Cauderlier and François Thiré. {n. d.}. Meta Dedukti. http://deducteam.gforge.inria.fr/metadedukti/

Cited by 13 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Modularity, Code Specialization, and Zero-Cost Abstractions for Program Verification;Proceedings of the ACM on Programming Languages;2023-08-30

2. From Intuition to Coq: A Case Study in Verified Response-Time Analysis 1 of FIFO Scheduling;2022 IEEE Real-Time Systems Symposium (RTSS);2022-12

3. Touring the MetaCoq Project (Invited Paper);Electronic Proceedings in Theoretical Computer Science;2021-07-16

4. Verification of dynamic bisimulation theorems in Coq;Journal of Logical and Algebraic Methods in Programming;2021-04

5. Lassie: HOL4 tactics by example;Proceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs;2021-01-17

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3