skip to main content
10.1145/3183440.3183493acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
demonstration

A regression proof selection tool for coq

Published: 27 May 2018 Publication History

Abstract

Large-scale software verification projects increasingly rely on proof assistants, such as Coq, to construct formal proofs of program correctness. However, such proofs must be checked after every change to a project to ensure expected program behavior. This process of regression proving can require substantial machine time, which is detrimental to productivity and trust in evolving projects. We present iCoq, the first regression proof selection tool. iCoq tracks fine-grained dependencies between Coq definitions, propositions, and proofs, and only checks those proofs affected by changes between two revisions. iCoq is suitable for workflows involving version control and continuous integration services, e.g., Travis CI. We applied iCoq to track dependencies across many revisions in several large Coq projects and measured the time savings compared to proof checking from scratch and when using Coq's timestamp-based toolchain for incremental checking. Our results show that proof checking with iCoq is up to 10 times faster than the former and up to 3 times faster than the latter. The demo video for iCoq can be found at: https://www.youtube.com/watch?v=egFnHkH5pXI.

References

[1]
2018. coq-dpdgraph. (2018). https://github.com/Karmaki/coq-dpdgraph.
[2]
2018. Coq manual ch. 15. (2018). https://coq.inria.fr/refman/tools.html.
[3]
2018. Coq manual ch. 28. (2018). https://coq.inria.fr/refman/async-proofs.html.
[4]
2018. The Coq Proof Assistant. (2018). https://coq.inria.fr.
[5]
Andrew W. Appel. 2015. Verification of a Cryptographic Primitive: SHA-256. Trans. Program. Lang. Syst. 37, 2 (2015), 7:1--7:31.
[6]
Bruno Barras, Carst Tankink, and Enrico Tassi. 2015. Asynchronous Processing of Coq Documents: From the Kernel up to the User Interface. In ITP. 51--66.
[7]
S. Boldo, J. H. Jourdan, X. Leroy, and G. Melquiond. 2013. A Formally-Verified C Compiler Supporting Floating-Point Arithmetic. In ARITH. 107--115.
[8]
Sylvie Boldo and Guillaume Melquiond. 2011. Flocq: A Unified Library for Proving Floating-Point Algorithms in Coq. In ARITH. 243--252.
[9]
Ahmet Celik, Karl Palmskog, and Milos Gligoric. 2017. iCoq: Regression Proof Selection for Large-Scale Verification Projects. In ASE. 171--182.
[10]
Haogang Chen, Tej Chajed, Alex Konradi, Stephanie Wang, Atalay İleri, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2017. Verifying a High-performance Crash-safe File System Using a Tree Specification. In SOSP. 270--286.
[11]
Michel Chilowicz, Étienne Duris, and Gilles Roussel. 2009. Syntax tree finger-printing for source code similarity detection. In ICPC. 243--247.
[12]
Milos Gligoric, Lamyaa Eloussi, and Darko Marinov. 2015. Practical Regression Test Selection with Dynamic File Dependencies. In ISSTA. 211--222.
[13]
M. Hilton, T. Tunnell, K. Huang, D. Marinov, and D. Dig. 2016. Usage, Costs, and Benefits of Continuous Integration in Open-Source Projects. In ASE. 426--437.
[14]
Owolabi Legunsen, Farah Hariri, August Shi, Yafeng Lu, Lingming Zhang, and Darko Marinov. 2016. An Extensive Study of Static Regression Test Selection in Modern Software Evolution. In FSE. 583--594.
[15]
Xavier Leroy. 2009. Formal Verification of a Realistic Compiler. Commun. ACM 52, 7 (2009), 107--115.
[16]
Alessandro Orso, Nanjuan Shi, and Mary Jean Harrold. 2004. Scaling Regression Testing to Large Software Systems. In FSE. 241--251.
[17]
Gregg Rothermel and Mary Jean Harrold. 1996. Analyzing Regression Test Selection Techniques. TSE 22, 8 (1996), 529--551.
[18]
TravisCI 2017. Travis CI. (2017). https://travis-ci.org.
[19]
Vladimir Voevodsky. 2015. An experimental library of formalized Mathematics based on the univalent foundations. MSCS 25, 5 (2015), 1278--1294.
[20]
James R. Wilcox, Doug Woos, Pavel Panchekha, Zachary Tatlock, Xi Wang, Michael D. Ernst, and Thomas Anderson. 2015. Verdi: A Framework for Implementing and Formally Verifying Distributed Systems. In PLDI. 357--368.
[21]
Doug Woos, James R. Wilcox, Steve Anton, Zachary Tatlock, Michael D. Ernst, and Thomas Anderson. 2016. Planning for change in a formal verification of the Raft consensus protocol. In CPP. 154--165.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings
May 2018
231 pages
ISBN:9781450356633
DOI:10.1145/3183440
  • Conference Chair:
  • Michel Chaudron,
  • General Chair:
  • Ivica Crnkovic,
  • Program Chairs:
  • Marsha Chechik,
  • Mark Harman
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 May 2018

Check for updates

Author Tags

  1. coq
  2. proof assistants
  3. proof engineering
  4. regression proof selection

Qualifiers

  • Demonstration

Conference

ICSE '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media