Prover9
   HOME

TheInfoList



OR:

Prover9 is an
automated theorem prover Automated theorem proving (also known as ATP or automated deduction) is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs. Automated reasoning over mathematical proof was a maj ...
for first-order and equational logic developed by
William McCune William Walker McCune (December 17, 1953 – May 2, 2011) was an American computer scientist and logician working in the fields of automated reasoning, algebra, logic, and formal methods. He was best known for the development of the Otter, Prover ...
.


Description

Prover9 is the successor of the Otter theorem prover also developed by
William McCune William Walker McCune (December 17, 1953 – May 2, 2011) was an American computer scientist and logician working in the fields of automated reasoning, algebra, logic, and formal methods. He was best known for the development of the Otter, Prover ...
. Prover9 is noted for producing relatively readable proofs and having a powerful hints strategy. Prover9 is intentionally paired with
Mace4 Mace stands for "Models And Counter-Examples", and is a model A model is an informative representation of an object, person or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and It ...
, which searches for finite models and counterexamples. Both can be run simultaneously from the same input, with Prover9 attempting to find a proof, while Mace4 attempts to find a (disproving) counter-example. Prover9, Mace4, and many other tools are built on an underlying library named LADR ("Library for Automated Deduction Research") to simplify implementation. Resulting proofs can be double-checked by Ivy, a proof-checking tool that has been separately verified using
ACL2 ACL2 ("A Computational Logic for Applicative Common Lisp") is a software system consisting of a programming language, created by Timothy Still it was an extensible theory in a first-order logic, and an automated theorem prover. ACL2 is designed to ...
. In July 2006 the LADR/Prover9/Mace4 input language made a major change (which also differentiates it from Otter). The key distinction between "clauses" and "formulas" completely disappeared; "formulas" can now have
free variables In mathematics, and in other disciplines involving formal languages, including mathematical logic and computer science, a free variable is a notation (symbol) that specifies places in an expression where substitution may take place and is not ...
; and "clauses" are now a subset of "formulas". Prover9/Mace4 also supports a "goal" type of formula, which is automatically negated for proof. Prover9 attempts to automatically generate a proof by default; in contrast, Otter's automatic mode must be explicitly set. Prover9 was under active development, with new releases every month or every other month, until 2009. Prover9 is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
, and therefore,
open source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open ...
; it is released under
GPL The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
version 2 or later.


Examples


Socrates

The traditional "all men are mortal", "Socrates is a man", prove "Socrates is mortal" can be expressed this way in Prover9: formulas(assumptions). man(x) -> mortal(x). % open formula with free variable x man(socrates). end_of_list. formulas(goals). mortal(socrates). end_of_list. This will be automatically converted into clausal form (which Prover9 also accepts): formulas(sos). -man(x) , mortal(x). man(socrates). -mortal(socrates). end_of_list.


Square root of 2 is irrational

A proof that the
square root of 2 The square root of 2 (approximately 1.4142) is a positive real number that, when multiplied by itself, equals the number 2. It may be written in mathematics as \sqrt or 2^, and is an algebraic number. Technically, it should be called the princip ...
is irrational can be expressed this way: formulas(assumptions). 1*x = x. % identity x*y = y*x. % commutativity x*(y*z) = (x*y)*z. % associativity ( x*y = x*z ) -> y = z. % cancellation (0 is not allowed, so x!=0). % % Now let's define divides(x,y): x divides y. % Example: divides(2,6) is true because 2*3=6. % divides(x,y) <-> (exists z x*z = y). divides(2,x*x) -> divides(2,x). % If 2 divides x*x, it divides x. a*a = 2*(b*b). % a/b = sqrt(2), so a^2 = 2 * b^2. (x != 1) -> -(divides(x,a) & divides(x,b)). % a/b is in lowest terms 2 != 1. % Original author almost forgot this. end_of_list.


References

{{Reflist, 2, refs= {{cite web, title=Automated Theorem Proving in Loop Theory, first1=J. D., last1=Phillips, first2=David, last2=Stanovsky , url=http://www.karlin.mff.cuni.cz/~stanovsk/math/esarm.pdf, access-date=15 November 2018, website=
Charles University ) , image_name = Carolinum_Logo.svg , image_size = 200px , established = , type = Public, Ancient , budget = 8.9 billion CZK , rector = Milena Králíčková , faculty = 4,057 , administrative_staff = 4,026 , students = 51,438 , undergr ...
, url-status=live, archive-url=https://web.archive.org/web/20180328220241/http://www.karlin.mff.cuni.cz/~stanovsk/math/esarm.pdf, archive-date=28 March 2018, df=dmy-all
{{cite conference, conference=10th International Conference, MPC 2010, title=On Automated Program Construction and Verification, first1=Rudolf, last1=Berghammer, first2=Georg, last2=Struth, book-title=Mathematics of Program Construction, Proceedings, location=
Quebec City Quebec City ( or ; french: Ville de Québec), officially Québec (), is the capital city of the Provinces and territories of Canada, Canadian province of Quebec. As of July 2021, the city had a population of 549,459, and the Communauté métrop ...
, date=21 June 2010, editor1=Bolduc, Claude , editor2=Desharnais, Jules , editor3=Ktari, Bechir, doi=10.1007/978-3-642-13321-3, isbn=978-3-642-13320-6 , url=https://pdfs.semanticscholar.org/c5a0/c676eaa782ba22f96854dc7c3757c17f4990.pdf, access-date=19 November 2018, url-status=dead , archive-url=https://web.archive.org/web/20181119064308/https://pdfs.semanticscholar.org/c5a0/c676eaa782ba22f96854dc7c3757c17f4990.pdf, archive-date=19 November 2018, df=dmy-all


External links


Prover9 home pageProver9 - Mace4 - LADR forumsFormal methods (square root of 2 example)
Free theorem provers Public-domain software