Proof assistant

Last updated
An interactive proof session in CoqIDE, showing the proof script on the left and the proof state on the right CoqProofOfDecidablityOfEqualityOnNaturalNumbers.png
An interactive proof session in CoqIDE, showing the proof script on the left and the proof state on the right

In computer science and mathematical logic, a proof assistant or interactive theorem prover is a software tool to assist with the development of formal proofs by human-machine collaboration. This involves some sort of interactive proof editor, or other interface, with which a human can guide the search for proofs, the details of which are stored in, and some steps provided by, a computer.

Contents

A recent effort within this field is making these tools use artificial intelligence to automate the formalization of ordinary mathematics. [1]

System comparison

NameLatest versionDeveloper(s)Implementation languageFeatures
Higher-order logic Dependent types Small kernel Proof automation Proof by reflection Code generation
ACL2 8.3 Matt Kaufmann and J Strother Moore Common Lisp NoUntypedNoYesYes [2] Already executable
Agda 2.6.3Ulf Norell, Nils Anders Danielsson, and Andreas Abel (Chalmers and Gothenburg) Haskell YesYesYesNoPartialAlready executable
Albatross 0.4Helmut Brandl OCaml YesNoYesYesUn­knownNot yet Implemented
Coq 8.19.0 INRIA OCaml YesYesYesYesYesYes
F* repository Microsoft Research and INRIA F* YesYesNoYesYes [3] Yes
HOL Light repositoryJohn Harrison OCaml YesNoYesYesNoNo
HOL4 Kananaskis-13 (or repo)Michael Norrish, Konrad Slind, and others Standard ML YesNoYesYesNoYes
Idris 2 0.6.0.Edwin Brady Idris YesYesYesUn­knownPartialYes
Isabelle Isabelle2021 (February 2021) Larry Paulson (Cambridge), Tobias Nipkow (München) and Makarius Wenzel Standard ML, Scala YesNoYesYesYesYes
Lean v4.7.0 [4] Leonardo de Moura (Microsoft Research) C++, LeanYesYesYesYesYesYes
LEGO (not affiliated with Lego)1.3.1 Randy Pollack (Edinburgh) Standard ML YesYesYesNoNoNo
Metamath v0.198 [5] Norman Megill ANSI C
Mizar 8.1.05 Białystok University Free Pascal PartialYesNoNoNoNo
Nqthm
NuPRL 5 Cornell University Common Lisp YesYesYesYesUn­knownYes
PVS 6.0 SRI International Common Lisp YesYesNoYesNoUn­known
Twelf 1.7.1 Frank Pfenning and Carsten Schürmann Standard ML YesYesUn­knownNoNoUn­known

User interfaces

A popular front-end for proof assistants is the Emacs-based Proof General, developed at the University of Edinburgh.

Coq includes CoqIDE, which is based on OCaml/Gtk. Isabelle includes Isabelle/jEdit, which is based on jEdit and the Isabelle/Scala infrastructure for document-oriented proof processing. More recently, Visual Studio Code extensions have been developed for Isabelle by Makarius Wenzel, [7] and for Lean 4 by the leanprover developers. [8]

Formalization extent

Freek Wiedijk has been keeping a ranking of proof assistants by the amount of formalized theorems out of a list of 100 well-known theorems. As of September 2023, only five systems have formalized proofs of more than 70% of the theorems, namely Isabelle, HOL Light, Coq, Lean and Metamath. [9] [10]

Notable formalized proofs

The following is a list of notable proofs that have been formalized within proof assistants.

TheoremProof assistantYear
Four color theorem [11] Coq2005
Feit–Thompson theorem [12] Coq2012
Fundamental group of the circle [13] Coq2013
Erdős–Graham problem [14] [15] Lean2022
Polynomial Freiman-Ruzsa conjecture over [16] Lean2023

See also

Notes

  1. Ornes, Stephen (August 27, 2020). "Quanta Magazine – How Close Are Computers to Automating Mathematical Reasoning?".
  2. Hunt, Warren; Matt Kaufmann; Robert Bellarmine Krug; J Moore; Eric W. Smith (2005). "Meta Reasoning in ACL2" (PDF). Theorem Proving in Higher Order Logics. Lecture Notes in Computer Science. Vol. 3603. pp. 163–178. doi:10.1007/11541868_11. ISBN   978-3-540-28372-0.
  3. Search for "proofs by reflection": arXiv : 1803.06547
  4. "Lean 4 Releases Page". GitHub. Retrieved 15 October 2023.
  5. "Release v0.198 · metamath/Metamath-exe". GitHub .
  6. Farmer, William M.; Guttman, Joshua D.; Thayer, F. Javier (1993). "IMPS: An interactive mathematical proof system". Journal of Automated Reasoning. 11 (2): 213–248. doi:10.1007/BF00881906. S2CID   3084322 . Retrieved 22 January 2020.
  7. Wenzel, Makarius. "Isabelle" . Retrieved 2 November 2019.
  8. "VS Code Lean 4". GitHub. Retrieved 15 October 2023.
  9. Wiedijk, Freek (15 September 2023). "Formalizing 100 Theorems".
  10. Geuvers, Herman (February 2009). "Proof assistants: History, ideas and future". Sādhanā. 34 (1): 3–25. doi: 10.1007/s12046-009-0001-5 . hdl: 2066/75958 . S2CID   14827467.
  11. Gonthier, Georges (2008), "Formal Proof—The Four-Color Theorem" (PDF), Notices of the American Mathematical Society , 55 (11): 1382–1393, MR   2463991, archived (PDF) from the original on 2011-08-05
  12. "Feit thomson proved in coq - Microsoft Research Inria Joint Centre". 2016-11-19. Archived from the original on 2016-11-19. Retrieved 2023-12-07.
  13. Licata, Daniel R.; Shulman, Michael (2013). "Calculating the Fundamental Group of the Circle in Homotopy Type Theory". 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science. pp. 223–232. arXiv: 1301.3443 . doi:10.1109/lics.2013.28. ISBN   978-1-4799-0413-6. S2CID   5661377 . Retrieved 2023-12-07.
  14. "Math Problem 3,500 Years In The Making Finally Gets A Solution". IFLScience. 2022-03-11. Retrieved 2024-02-09.
  15. Avigad, Jeremy (2023). "Mathematics and the formal turn". arXiv: 2311.00007 [math.HO].
  16. Sloman, Leila (2023-12-06). "'A-Team' of Math Proves a Critical Link Between Addition and Sets". Quanta Magazine. Retrieved 2023-12-07.

Related Research Articles

Automated theorem proving is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs. Automated reasoning over mathematical proof was a major impetus for the development of computer science.

<span class="mw-page-title-main">Isabelle (proof assistant)</span> Higher-order logic (HOL) automated theorem prover

The Isabelle automated theorem prover is a higher-order logic (HOL) theorem prover, written in Standard ML and Scala. As an LCF-style theorem prover, it is based on a small logical core (kernel) to increase the trustworthiness of proofs without requiring — yet supporting — explicit proof objects.

HOL denotes a family of interactive theorem proving systems using similar (higher-order) logics and implementation strategies. Systems in this family follow the LCF approach as they are implemented as a library which defines an abstract data type of proven theorems such that new objects of this type can only be created using the functions in the library which correspond to inference rules in higher-order logic. As long as these functions are correctly implemented, all theorems proven in the system must be valid. As such, a large system can be built on top of a small trusted kernel.

Logic for Computable Functions (LCF) is an interactive automated theorem prover developed at Stanford and Edinburgh by Robin Milner and collaborators in early 1970s, based on the theoretical foundation of logic of computable functions previously proposed by Dana Scott. Work on the LCF system introduced the general-purpose programming language ML to allow users to write theorem-proving tactics, supporting algebraic data types, parametric polymorphism, abstract data types, and exceptions.

<span class="mw-page-title-main">Mizar system</span>

The Mizar system consists of a formal language for writing mathematical definitions and proofs, a proof assistant, which is able to mechanically check proofs written in this language, and a library of formalized mathematics, which can be used in the proof of new theorems. The system is maintained and developed by the Mizar Project, formerly under the direction of its founder Andrzej Trybulec.

The QED manifesto was a proposal for a computer-based database of all mathematical knowledge, strictly formalized and with all proofs having been checked automatically.

<span class="mw-page-title-main">Coq (software)</span> Proof assistant

Coq is an interactive theorem prover first released in 1989. It allows for expressing mathematical assertions, mechanically checks proofs of these assertions, helps find formal proofs, and extracts a certified program from the constructive proof of its formal specification. Coq works within the theory of the calculus of inductive constructions, a derivative of the calculus of constructions. Coq is not an automated theorem prover but includes automatic theorem proving tactics (procedures) and various decision procedures.

In logic, a logical framework provides a means to define a logic as a signature in a higher-order type theory in such a way that provability of a formula in the original logic reduces to a type inhabitation problem in the framework type theory. This approach has been used successfully for (interactive) automated theorem proving. The first logical framework was Automath; however, the name of the idea comes from the more widely known Edinburgh Logical Framework, LF. Several more recent proof tools like Isabelle are based on this idea. Unlike a direct embedding, the logical framework approach allows many logics to be embedded in the same type system.

Twelf is an implementation of the logical framework LF developed by Frank Pfenning and Carsten Schürmann at Carnegie Mellon University. It is used for logic programming and for the formalization of programming language theory.

A computer-assisted proof is a mathematical proof that has been at least partially generated by computer.

In computer science, in particular in knowledge representation and reasoning and metalogic, the area of automated reasoning is dedicated to understanding different aspects of reasoning. The study of automated reasoning helps produce computer programs that allow computers to reason completely, or nearly completely, automatically. Although automated reasoning is considered a sub-field of artificial intelligence, it also has connections with theoretical computer science and philosophy.

<span class="mw-page-title-main">Peter B. Andrews</span> American mathematician (born 1937)

Peter Bruce Andrews (born 1937) is an American mathematician and Professor of Mathematics, Emeritus at Carnegie Mellon University in Pittsburgh, Pennsylvania, and the creator of the mathematical logic Q0. He received his Ph.D. from Princeton University in 1964 under the tutelage of Alonzo Church. He received the Herbrand Award in 2003. His research group designed the TPS automated theorem prover. A subsystem ETPS (Educational Theorem Proving System) of TPS is used to help students learn logic by interactively constructing natural deduction proofs.

HOL Light is a proof assistant for classical higher-order logic. It is a member of the HOL theorem prover family. Compared with other HOL systems, HOL Light is intended to have relatively simple foundations. HOL Light is authored and maintained by the mathematician and computer scientist John Harrison. HOL Light is released under the simplified BSD license.

Metamath is a formal language and an associated computer program for archiving and verifying mathematical proofs. Several databases of proved theorems have been developed using Metamath covering standard results in logic, set theory, number theory, algebra, topology and analysis, among others.

Automath is a formal language, devised by Nicolaas Govert de Bruijn starting in 1967, for expressing complete mathematical theories in such a way that an included automated proof checker can verify their correctness.

In mathematical logic, a judgment or assertion is a statement or enunciation in a metalanguage. For example, typical judgments in first-order logic would be that a string is a well-formed formula, or that a proposition is true. Similarly, a judgment may assert the occurrence of a free variable in an expression of the object language, or the provability of a proposition. In general, a judgment may be any inductively definable assertion in the metatheory.

Interactive Theorem Proving (ITP) is an annual international academic conference on the topic of automated theorem proving, proof assistants and related topics, ranging from theoretical foundations to implementation aspects and applications in program verification, security, and formalization of mathematics.

<span class="mw-page-title-main">Grigore Roșu</span> Computer science professor

Grigore Roșu is a computer science professor at the University of Illinois at Urbana-Champaign and a researcher in the Information Trust Institute. He is known for his contributions in runtime verification, the K framework, matching logic, and automated coinduction.

Dale Miller is an American computer scientist and author. He is a Director of Research at Inria Saclay and one of the designers of the λProlog programming language and the Abella interactive theorem prover.

References

Catalogues