From Fedora Project Wiki

(Add "SAT Solver" category)
(Add theorem provers)
Line 5: Line 5:
[[FormalMethods|Fedora Formal Methods Special Interest Group (SIG)]]
[[FormalMethods|Fedora Formal Methods Special Interest Group (SIG)]]
for more information.
for more information.
== Theorem Provers ==
Theorem provers can prove whether or not a goal can be proved given a set of assumptions.
=== First-Order Logic (FOL) Theorem Provers ===
First-order Logic (FOL) is a widely-used mathematical language for stating assumptions and goals.  FOL is not as expressive as some other languages, but it is sufficient for many purposes, and FOL provers tend to be able to prove much more in an automated way than those with more powerful languages (e.g., higher-order logics).
* E
* prover9 (prover9-apps, prover9-devel, prover9-doc)


== SAT Solvers ==
== SAT Solvers ==
Line 21: Line 31:
== Other ==
== Other ==
The tools packaged so far, and not listed above, are:
The tools packaged so far, and not listed above, are:
E, alt-ergo, coq (coq-coqide, coq-doc, coq-emacs), cvc3, emacs-proofgeneral (emacs-common-proofgeneral, emacs-proofgeneral-el.noarch), xemacs-proofgeneral (xemacs-proofgeneral-el), frama-c {TODO}, ppl (ppl-*), prover9 (prover9-apps, prover9-devel, prover9-doc), pvs-sbcl, sat4j, splint, stp (stp-devel), tex-zfuzz, why (why-coq, why-gwhy), zenon, csisat.
alt-ergo, coq (coq-coqide, coq-doc, coq-emacs), cvc3, emacs-proofgeneral (emacs-common-proofgeneral, emacs-proofgeneral-el.noarch), xemacs-proofgeneral (xemacs-proofgeneral-el), frama-c {TODO}, ppl (ppl-*), pvs-sbcl, sat4j, splint, stp (stp-devel), tex-zfuzz, why (why-coq, why-gwhy), zenon, csisat.

Revision as of 15:15, 20 January 2010

Formal methods tool suite

Here are major categories of formal methods tools, along with the specific programs and packages that implement those categories in Fedora. See the Fedora Formal Methods Special Interest Group (SIG) for more information.

Theorem Provers

Theorem provers can prove whether or not a goal can be proved given a set of assumptions.

First-Order Logic (FOL) Theorem Provers

First-order Logic (FOL) is a widely-used mathematical language for stating assumptions and goals. FOL is not as expressive as some other languages, but it is sufficient for many purposes, and FOL provers tend to be able to prove much more in an automated way than those with more powerful languages (e.g., higher-order logics).

  • E
  • prover9 (prover9-apps, prover9-devel, prover9-doc)

SAT Solvers

A SAT (satisfiability) solver can determine if boolean variables (variables which can be true or false) can have values that would make a set of formulas true. If it's possible, then the formulas are satisfiable. In the worst case this problem is extremely hard (i.e., they are NP-complete), but modern algorithms can usually solve typical SAT problems very quickly. SAT solvers aren't usually used directly by people; instead, they are a building block used by many other tools.

Packages:

  • minisat2
  • picosat

Other

The tools packaged so far, and not listed above, are: alt-ergo, coq (coq-coqide, coq-doc, coq-emacs), cvc3, emacs-proofgeneral (emacs-common-proofgeneral, emacs-proofgeneral-el.noarch), xemacs-proofgeneral (xemacs-proofgeneral-el), frama-c {TODO}, ppl (ppl-*), pvs-sbcl, sat4j, splint, stp (stp-devel), tex-zfuzz, why (why-coq, why-gwhy), zenon, csisat.