A Survey of Interactive Theorem Proving

Fully formally verified mathematics and software are long-standing aims that became practically realizable with modern computer tools. Reasoning can be reduced to several basic logical principles, and performed using specialized software, with significant automation. Although full automation is not possible, three main paradigms are represented in formal reasoning tools: (i) decision procedures for special classes of problems, (ii) complete, but potentially unterminating proof search, (iii) checking of proof-sketches given by a human user while automatically constructing simpler proof steps. In this paper, we present a survey of the third approach, embodied in modern interactive theorem provers (ITP), also called proofassistants. These tools have been successfully developed for more than 40 years, and the current state-of-the-art tools have reached maturity needed to perform real-world large-scale formalizations of mathematics (e.g., Four-Color Theorem, Prime Number Theorem, and Feith-Thompson’s Odd Order theorem) and software correctness (e.g., substantial portions of operating systems and compilers have been verified). We discuss history of ITP, its logical foundations, main features of state-of-the-art systems, and give some details about the most prominent results in the field. We also summarize main results of the researchers from Serbia and personal results of the author. Mathematics Subject Classification (2010): Primary: 03-02, 03B35, 68T15;

[1]  Herman Geuvers,et al.  Proof-Assistants Using Dependent Type Systems , 2001, Handbook of Automated Reasoning.

[2]  Amy P. Felty,et al.  Lambda-Prolog: An Extended Logic Programming Language , 1988, CADE.

[3]  Tobias Nipkow,et al.  Sledgehammer: Judgement Day , 2010, IJCAR.

[4]  John Harrison,et al.  Handbook of Practical Logic and Automated Reasoning , 2009 .

[5]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[6]  Markus Wenzel,et al.  Constructive Type Classes in Isabelle , 2006, TYPES.

[7]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[8]  Michael J. C. Gordon,et al.  Introduction To The Hol System , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[9]  Gernot Heiser,et al.  Comprehensive formal verification of an OS microkernel , 2014, TOCS.

[10]  A. Church The calculi of lambda-conversion , 1941 .

[11]  Freek Wiedijk,et al.  Mizar Light for HOL Light , 2001, TPHOLs.

[12]  Georges Gonthier,et al.  Formal Proof—The Four- Color Theorem , 2008 .

[13]  William A. Howard,et al.  The formulae-as-types notion of construction , 1969 .

[14]  Filip Maric,et al.  Formalizing complex plane geometry , 2015, Annals of Mathematics and Artificial Intelligence.

[15]  P. Maksimovic Development and verification of probability logics and logical frameworks , 2013 .

[16]  Benjamin Grégoire,et al.  A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses , 2011, CPP.

[17]  Wen-tsün Wu Mechanical Theorem Proving in Geometries: Basic Principles , 1994 .

[18]  U. Norell,et al.  Towards a practical programming language based on dependent type theory , 2007 .

[19]  Samuel Boutin,et al.  Using Reflection to Build Efficient and Certified Decision Procedures , 1997, TACS.

[20]  T. Hales,et al.  The dodecahedral conjecture , 2009 .

[21]  Toby Walsh,et al.  Handbook of satisfiability , 2009 .

[22]  Enrico Tassi,et al.  A Small Scale Reflection Extension for the Coq system , 2008 .

[23]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[24]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[25]  Lawrence C. Paulson,et al.  Extending Sledgehammer with SMT Solvers , 2011, CADE.

[26]  G. Gentzen Untersuchungen über das logische Schließen. I , 1935 .

[27]  Andrzej Trybulec,et al.  Computer Assisted Reasoning with MIZAR , 1985, IJCAI.

[28]  Freek Wiedijk,et al.  A Synthesis of the Procedural and Declarative Styles of Interactive Theorem Proving , 2012, Log. Methods Comput. Sci..

[29]  Charalampos Cornaros,et al.  The prime number theorem and fragments ofP A , 1994, Arch. Math. Log..

[30]  Andrea Asperti,et al.  Proof, Message and Certificate , 2012, AISC/MKM/Calculemus.

[31]  Rp Rob Nederpelt,et al.  Selected papers on Automath , 1994 .

[32]  Henning Bruhn,et al.  The Journey of the Union-Closed Sets Conjecture , 2013, Graphs Comb..

[33]  Florian Haftmann,et al.  Code generation from specifications in higher-order logic , 2009 .

[34]  David Aspinall,et al.  Proof General: A Generic Tool for Proof Development , 2000, TACAS.

[35]  Michael J. C. Gordon,et al.  From LCF to HOL: a short history , 2000, Proof, Language, and Interaction.

[36]  Bjorn Poonen Union-Closed Families , 1992, J. Comb. Theory, Ser. A.

[37]  Deepak Kapur,et al.  Using Gröbner Bases to Reason About Geometry Problems , 1986, J. Symb. Comput..

[38]  Marc Bezem,et al.  A Vernacular for Coherent Logic , 2014, CICM.

[39]  Melvyn B. Nathanson,et al.  Elementary Methods in Number Theory , 1999 .

[40]  Marc Pantel,et al.  Formally verified optimizing compilation in ACG-based flight control software , 2012 .

[41]  Markus Wenzel,et al.  Isabelle, Isar - a versatile environment for human readable formal proof documents , 2002 .

[42]  Sascha Böhme,et al.  Proving Theorems of Higher-Order Logic with SMT Solvers , 2012 .

[43]  Georges Gonthier A computer-checked proof of the Four Colour Theorem , 2005 .

[44]  Filip Maric,et al.  Formal verification of a modern SAT solver by shallow embedding into Isabelle/HOL , 2010, Theor. Comput. Sci..

[45]  Dana S. Scott,et al.  A Type-Theoretical Alternative to ISWIM, CUCH, OWHY , 1993, Theor. Comput. Sci..

[46]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[47]  MA John Harrison PhD Theorem Proving with the Real Numbers , 1998, Distinguished Dissertations.

[48]  Predrag Janicic,et al.  Formal Correctness Proof for DPLL Procedure , 2010, Informatica.

[49]  R. P. Burn,et al.  Geometry of Complex Numbers , 1981 .

[50]  Alonzo Church,et al.  A note on the Entscheidungsproblem , 1936, Journal of Symbolic Logic.

[51]  John Harrison,et al.  Formalizing an Analytic Proof of the Prime Number Theorem , 2009, Journal of Automated Reasoning.

[52]  Sascha Böhme,et al.  Fast LCF-Style Proof Reconstruction for Z3 , 2010, ITP.

[53]  Jeremy Avigad,et al.  A Machine-Checked Proof of the Odd Order Theorem , 2013, ITP.

[54]  Tjark Weber,et al.  Integrating a SAT Solver with an LCF-style Theorem Prover , 2005, PDPAR@CAV.

[55]  Lawrence C. Paulson,et al.  The foundation of a generic theorem prover , 1989, Journal of Automated Reasoning.

[56]  Xavier Leroy,et al.  A Formally Verified Compiler Back-end , 2009, Journal of Automated Reasoning.

[57]  Predrag Janicic,et al.  Formalization of Abstract State Transition Systems for SAT , 2011, Log. Methods Comput. Sci..

[58]  Pierre Letouzey Extraction in Coq: An Overview , 2008, CiE.

[59]  Cezary Kaliszyk,et al.  Learning-Assisted Automated Reasoning with Flyspeck , 2012, Journal of Automated Reasoning.

[60]  Thomas C. Hales,et al.  The Jordan Curve Theorem, Formally and Informally , 2007, Am. Math. Mon..

[61]  Johannes Hölzl,et al.  A Formally Verified Proof of the Central Limit Theorem , 2014, Journal of Automated Reasoning.

[62]  Thomas C. Hales,et al.  Formal computations and methods , 2012 .

[63]  van Ls Bert Benthem Jutting,et al.  Checking Landau's “Grundlagen” in the Automath System: Appendices 3 and 4 (The PN-lines; Excerpt for “Satz 27”) , 1994 .

[64]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[65]  Tobias Nipkow,et al.  Code Generation via Higher-Order Rewrite Systems , 2010, FLOPS.

[66]  Jeremy Avigad,et al.  A formally verified proof of the prime number theorem , 2005, TOCL.

[67]  Matt Kaufmann,et al.  A Parallelized Theorem Prover for a Logic with Parallel Execution , 2013, ITP.

[68]  Per Martin-Löf,et al.  Intuitionistic type theory , 1984, Studies in proof theory.

[69]  T. Hales Cannonballs and Honeycombs , 2000 .

[70]  Jeremy Avigad,et al.  Type inference in mathematics , 2011, Bull. EATCS.

[71]  T. Peterfalvi Character theory for the odd order theorem , 2000 .

[72]  Adam Chlipala,et al.  Certified Programming with Dependent Types - A Pragmatic Introduction to the Coq Proof Assistant , 2013 .

[73]  Brian Huffman,et al.  Lifting and Transfer: A Modular Design for Quotients in Isabelle/HOL , 2013, CPP.

[74]  John McCarthy,et al.  Computer programs for checking mathematical proofs , 1962 .

[75]  John Harrison,et al.  HOL Light: A Tutorial Introduction , 1996, FMCAD.

[76]  Robert Milewski Fundamental Theorem of Algebra1 , 2004 .

[77]  Amit Goel,et al.  Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL , 2007, FroCoS.

[78]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.

[79]  E. T. An Introduction to the Theory of Numbers , 1946, Nature.

[80]  Conor McBride,et al.  Epigram: Practical Programming with Dependent Types , 2004, Advanced Functional Programming.

[81]  W. Feit,et al.  SOLVABILITY OF GROUPS OF ODD ORDER , 2012 .

[82]  Dana Mackenzie What in the Name of Euclid Is Going On Here? , 2005, Science.

[83]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[84]  Xavier Leroy,et al.  Formal verification of a realistic compiler , 2009, CACM.

[85]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[86]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[87]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[88]  John Harrison,et al.  The HOL Light Theory of Euclidean Space , 2012, Journal of Automated Reasoning.

[89]  Peter Lammich,et al.  The Isabelle Collections Framework , 2010, ITP.

[90]  Michael Norrish,et al.  seL4: formal verification of an OS kernel , 2009, SOSP '09.

[91]  Hugo Herbelin,et al.  30 years of research and development around Coq , 2014, POPL.

[92]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[93]  J. Grcar Errors and Corrections in Mathematics Literature , 2013 .

[94]  A. Wiles,et al.  Ring-Theoretic Properties of Certain Hecke Algebras , 1995 .

[95]  F. Dechesne,et al.  N.G. de Bruijn (1918–2012) and his Road to Automath, the Earliest Proof Checker , 2012 .

[96]  Georges Gonthier,et al.  The Four Colour Theorem: Engineering of a Formal Proof , 2008, ASCM.

[97]  John Harrison,et al.  Formal Proof—Theory and Practice , 2008 .

[98]  Pierre Corbineau,et al.  A Declarative Language for the Coq Proof Assistant , 2007, TYPES.

[99]  Freek Wiedijk,et al.  A Comparison of Mizar and Isar , 2004, Journal of Automated Reasoning.

[100]  G. Glauberman,et al.  Local Analysis for the Odd Order Theorem: Maximal Subgroups , 1995 .

[101]  Lawrence C. Paulson,et al.  Automation for interactive proof: First prototype , 2006, Inf. Comput..

[102]  Robert S. Boyer,et al.  Proving Theorems about LISP Functions , 1973, JACM.

[103]  Robin Thomas,et al.  The Four-Colour Theorem , 1997, J. Comb. Theory, Ser. B.

[104]  J. R. Guard,et al.  Semi-Automated Mathematics , 1969, JACM.

[105]  Filip Maric,et al.  Formalization and Implementation of Modern SAT Solvers , 2009, Journal of Automated Reasoning.

[106]  Luís Cruz-Filipe,et al.  A Constructive Formalization of the Fundamental Theorem of Calculus , 2002, TYPES.

[107]  Tobias Nipkow,et al.  Flyspeck I: Tame Graphs , 2006, IJCAR.

[108]  Herman Geuvers,et al.  A Constructive Proof of the Fundamental Theorem of Algebra without Using the Rationals , 2000, TYPES.

[109]  Markus Wenzel,et al.  Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit , 2012, UITP.

[110]  T. Hales Dense Sphere Packings: A Blueprint for Formal Proofs , 2012 .

[111]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[112]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[113]  Alan Robinson,et al.  Handbook of automated reasoning , 2001 .

[114]  Markus Wenzel Shared-Memory Multiprocessing for Interactive Theorem Proving , 2013, ITP.

[115]  Lawrence C. Paulson,et al.  Natural Deduction as Higher-Order Resolution , 1986, J. Log. Program..

[116]  Filip Maric,et al.  Formalization of Incremental Simplex Algorithm by Stepwise Refinement , 2012, FM.

[117]  Kenneth A. Ribet,et al.  Modular elliptic curves and fermat's last theorem , 1993 .

[118]  Andrea Asperti,et al.  The Matita Interactive Theorem Prover , 2011, CADE.

[119]  T. Hales The Kepler conjecture , 1998, math/9811078.

[120]  Adam Naumowicz,et al.  A Brief Overview of Mizar , 2009, TPHOLs.

[121]  Freek Wiedijk,et al.  Formal proof -- getting started , 2008 .

[122]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[123]  Freek Wiedijk,et al.  The Seventeen Provers of the World, Foreword by Dana S. Scott , 2006, The Seventeen Provers of the World.

[124]  John Harrison,et al.  HOL Light: An Overview , 2009, TPHOLs.

[125]  Tobias Nipkow,et al.  Data Refinement in Isabelle/HOL , 2013, ITP.

[126]  Miodrag Zivkovic,et al.  Formalizing Frankl's Conjecture: FC-Families , 2012, AISC/MKM/Calculemus.

[127]  Jan M. Smith,et al.  Martin-Löf's type theory , 2001, LICS 2001.

[128]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[129]  Robin Milner,et al.  LCF: A Way of Doing Proofs with a Machine , 1979, MFCS.

[130]  Peter Lammich Refinement for Monadic Programs , 2012, Arch. Formal Proofs.

[131]  Hendrik Pieter Barendregt,et al.  Introduction to generalized type systems , 1991, Journal of Functional Programming.

[132]  Sana Stojanovic,et al.  A Coherent Logic Based Geometry Theorem Prover Capable of Producing Formal and Readable Proofs , 2010, Automated Deduction in Geometry.

[133]  Pedro Quaresma,et al.  The Area Method - A Recapitulation , 2012, J. Autom. Reason..

[134]  Stephen D. Smith,et al.  The Classification of Quasithin Groups , 2004 .

[135]  Jeremy Avigad,et al.  Formally verified mathematics , 2014, Commun. ACM.

[136]  Thomas C. Hales,et al.  Formal Verification of Nonlinear Inequalities with Taylor Interval Approximations , 2013, NASA Formal Methods.

[137]  Tobias Nipkow,et al.  Flyspeck II: the basic linear programs , 2009, Annals of Mathematics and Artificial Intelligence.

[138]  Florian Kammüller,et al.  Locales - A Sectioning Concept for Isabelle , 1999, TPHOLs.