Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2103656.2103690acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Static and user-extensible proof checking

Published: 25 January 2012 Publication History

Abstract

Despite recent successes, large-scale proof development within proof assistants remains an arcane art that is extremely time-consuming. We argue that this can be attributed to two profound shortcomings in the architecture of modern proof assistants. The first is that proofs need to include a large amount of minute detail; this is due to the rigidity of the proof checking process, which cannot be extended with domain-specific knowledge. In order to avoid these details, we rely on developing and using tactics, specialized procedures that produce proofs. Unfortunately, tactics are both hard to write and hard to use, revealing the second shortcoming of modern proof assistants. This is because there is no static knowledge about their expected use and behavior. As has recently been demonstrated, languages that allow type-safe manipulation of proofs, like Beluga, Delphin and VeriML, can be used to partly mitigate this second issue, by assigning rich types to tactics. Still, the architectural issues remain. In this paper, we build on this existing work, and demonstrate two novel ideas: an extensible conversion rule and support for static proof scripts. Together, these ideas enable us to support both user-extensible proof checking, and sophisticated static checking of tactics, leading to a new point in the design space of future proof assistants. Both ideas are based on the interplay between a light-weight staging construct and the rich type information available.

Supplementary Material

JPG File (popl_4b_2.jpg)
ZIP File (popl089.zip)
sutcTR.pdf: Extended version of the paper. This version includes a technical appendix with full details for the definitions and proofs mentioned within the paper.
MP4 File (popl_4b_2.mp4)

References

[1]
H.P. Barendregt and H. Geuvers. Proof-assistants using dependent type systems. In A. Robinson and A. Voronkov, editors, Handbook of Automated Reasoning. Elsevier Sci. Pub. B.V., 1999.
[2]
B. Barras, S. Boutin, C. Cornes, J. Courant, Y. Coscoy, D. Delahaye, D. de Rauglaudre, J.C. Filliâtre, E. Giménez, H. Herbelin, et al. The Coq proof assistant reference manual (version 8.3), 2010.
[3]
F. Blanqui, J.P. Jouannaud, and M. Okada. The calculus of algebraic constructions. In Rewriting Techniques and Applications, pages 671--671. Springer, 1999.
[4]
F. Blanqui, J.P. Jouannaud, and P.Y. Strub. A calculus of congruent constructions. Unpublished draft, 2005.
[5]
S. Boutin. Using reflection to build efficient and certified decision procedures. Lecture Notes in Computer Science, 1281: 515--529, 1997.
[6]
A. Chlipala. Mostly-automated verification of low-level programs in computational separation logic. In Proceedings of the 2011 ACM SIGPLAN conference on Programming Language Design and Implementation. ACM, 2011.
[7]
R.L. Constable, S.F. Allen, H.M. Bromley, W.R. Cleaveland, J.F. Cremer, R.W. Harper, D.J. Howe, T.B. Knoblock, N.P. Mendler, P. Panangaden, et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, NJ, 1986.
[8]
R. Davies and F. Pfenning. A modal analysis of staged computation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 258--270. ACM, 1996.
[9]
G. Gonthier. Formal proof--the four-color theorem. Notices of the AMS, 55 (11): 1382--1393, 2008.
[10]
G. Gonthier, B. Ziliani, A. Nanevski, and D. Dreyer. How to make ad hoc proof automation less ad hoc. In Proceeding of the 16th ACM SIGPLAN International Conference on Functional Programming, pages 163--175. ACM, 2011.
[11]
J. Harrison. HOL Light: A tutorial introduction. Lecture Notes in Computer Science, pages 265--269, 1996.
[12]
G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, et al. seL4: Formal verification of an OS kernel. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, pages 207--220. ACM, 2009.
[13]
X. Leroy. Formal verification of a realistic compiler. Communications of the ACM, 52 (7): 107--115, 2009.
[14]
T. Nipkow, L.C. Paulson, and M. Wenzel. Isabelle/HOL : A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS, 2002.
[15]
B. Pientka and J. Dunfield. Programming with proofs and explicit contexts. In Proceedings of the 10th international ACM SIGPLAN conference on Principles and Practice of Declarative Programming, pages 163--173. ACM New York, NY, USA, 2008.
[16]
A. Poswolsky and C. Schürmann. Practical programming with higher-order encodings and dependent types. Lecture Notes in Computer Science, 4960: 93, 2008.
[17]
V. Siles and H. Herbelin. Equality is typable in semi-full pure type systems. In 2010 25th Annual IEEE Symposium on Logic in Computer Science, pages 21--30. IEEE, 2010.
[18]
K. Slind and M. Norrish. A brief overview of HOL4. Theorem Proving in Higher Order Logics, pages 28--32, 2008.
[19]
M. Sozeau. Subset coercions in coq. In Proceedings of the 2006 International Conference on Types for Proofs and Programs, pages 237--252. Springer-Verlag, 2006.
[20]
A. Stampoulis and Z. Shao. VeriML: Typed computation of logical terms inside a language with effects. In Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, pages 333--344. ACM, 2010.
[21]
A. Stampoulis and Z. Shao. Static and user-extensible proof checking (extended version). Available in the ACM Digital Library, 2012.
[22]
P.Y. Strub. Coq modulo theory. In Proceedings of the 24th International Conference on Computer Science Logic, pages 529--543. Springer-Verlag, 2010.

Cited By

View all
  • (2017)Expressive and strongly type-safe code generationProceedings of the 19th International Symposium on Principles and Practice of Declarative Programming10.1145/3131851.3131872(199-210)Online publication date: 9-Oct-2017
  • (2015)Programming up to CongruenceACM SIGPLAN Notices10.1145/2775051.267697450:1(369-382)Online publication date: 14-Jan-2015
  • (2015)Programming up to CongruenceProceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2676726.2676974(369-382)Online publication date: 14-Jan-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2012
602 pages
ISBN:9781450310833
DOI:10.1145/2103656
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 1
    POPL '12
    January 2012
    569 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2103621
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 January 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. conversion rule
  2. dependent types
  3. proof assistants
  4. tactic development
  5. type theory

Qualifiers

  • Research-article

Conference

POPL '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2017)Expressive and strongly type-safe code generationProceedings of the 19th International Symposium on Principles and Practice of Declarative Programming10.1145/3131851.3131872(199-210)Online publication date: 9-Oct-2017
  • (2015)Programming up to CongruenceACM SIGPLAN Notices10.1145/2775051.267697450:1(369-382)Online publication date: 14-Jan-2015
  • (2015)Programming up to CongruenceProceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2676726.2676974(369-382)Online publication date: 14-Jan-2015
  • (2015)Mtac: A monad for typed tactic programming in CoqJournal of Functional Programming10.1017/S095679681500011825Online publication date: 24-Aug-2015
  • (2013)MtacACM SIGPLAN Notices10.1145/2544174.250057948:9(87-100)Online publication date: 25-Sep-2013
  • (2013)Typed syntactic meta-programmingACM SIGPLAN Notices10.1145/2544174.250057548:9(73-86)Online publication date: 25-Sep-2013
  • (2013)MtacProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500579(87-100)Online publication date: 25-Sep-2013
  • (2013)Typed syntactic meta-programmingProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500575(73-86)Online publication date: 25-Sep-2013
  • (2013)Tracking Data-Flow with Open Closure TypesLogic for Programming, Artificial Intelligence, and Reasoning10.1007/978-3-642-45221-5_47(710-726)Online publication date: 2013
  • (2013)VTOS: Research on Methodology of “Light-Weight” Formal Design and Verification for Microkernel OSInformation and Communications Security10.1007/978-3-319-02726-5_2(17-32)Online publication date: 20-Nov-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media