Search: in
Prover9
Prover9 Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
Prover9 Email this to a friend      Prover9

Prover9

Prover9
Prover9

Prover9

Prover9 is an automated theorem prover for First-order and equational logic developed by William McCune. Prover9 is the successor of the Otter theorem prover.

Prover9 is intentionally paired with Mace4, 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 to simplify implementation. Resulting proofs can be double-checked by Ivy, a proof-checking tool that has been separately verified using ACL2.

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; 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 is under active development, with new releases every month or every other month. Prover9 is free software/open source software; it is released under GPL version 2 or later.

Contents


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 is irrational can be expressed this way: formulas(assumptions). 1*x = x. % identity x*1 = x. x*(y*z) = (x*y)*z. % associativity x*y = y*x. % commutativity (x*y = x*z ) -> y = z. % cancellation (0 is not allowed, so x!=0). % % Now let's define divides(x,y): x divides y. divides(2,6) is true b/c 2*3=6. % divides(x,y) <-> (exists z x*z = y). divides(2,x*y) -> (divides(2,x) | divides(2,y)). % If 2 divides x*y, it divides x or y. 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.

External links


Prover9
Prover9
Prover9

Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article

Prover9
Prover9
Search for Prover9 in Tutorials
Search for Prover9 in Encyclopedia
Search for Prover9 in Dictionary
Search for Prover9 in Open Directory
Search for Prover9 in Store
Search for Prover9 in PriceGig


Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Prover9
Advertisement

Advertisement



Prover9
Prover9 top Prover9

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement