138 Sledgehammer is part of Isabelle, so you don't need to install it. However, it |
138 Sledgehammer is part of Isabelle, so you don't need to install it. However, it |
139 relies on third-party automatic theorem provers (ATPs) and SMT solvers. |
139 relies on third-party automatic theorem provers (ATPs) and SMT solvers. |
140 |
140 |
141 \subsection{Installing ATPs} |
141 \subsection{Installing ATPs} |
142 |
142 |
143 Currently, E, SPASS, and Vampire can be run locally; in addition, E, E-SInE, |
143 Currently, E, LEO-II, Satallax, SPASS, and Vampire can be run locally; in |
144 E-ToFoF, LEO-II, Satallax, SNARK, Waldmeister, and Vampire are available |
144 addition, E, E-SInE, E-ToFoF, LEO-II, Satallax, SNARK, Waldmeister, and Vampire |
145 remotely via System\-On\-TPTP \cite{sutcliffe-2000}. If you want better |
145 are available remotely via System\-On\-TPTP \cite{sutcliffe-2000}. If you want |
146 performance, you should at least install E and SPASS locally. |
146 better performance, you should at least install E and SPASS locally. |
147 |
147 |
148 There are three main ways to install ATPs on your machine: |
148 There are three main ways to install ATPs on your machine: |
149 |
149 |
150 \begin{enum} |
150 \begin{enum} |
151 \item[$\bullet$] If you installed an official Isabelle package with everything |
151 \item[$\bullet$] If you installed an official Isabelle package with everything |
522 performed implicitly if it can be done in a reasonable amount of time (something |
522 performed implicitly if it can be done in a reasonable amount of time (something |
523 that can be guessed from the number of facts in the original proof and the time |
523 that can be guessed from the number of facts in the original proof and the time |
524 it took to find it or replay it). |
524 it took to find it or replay it). |
525 |
525 |
526 In addition, some provers (notably CVC3, Satallax, and Yices) do not provide |
526 In addition, some provers (notably CVC3, Satallax, and Yices) do not provide |
527 proofs or sometimes provide incomplete proofs. The minimizer is then invoked to |
527 proofs or sometimes produce incomplete proofs. The minimizer is then invoked to |
528 find out which facts are actually needed from the (large) set of facts that was |
528 find out which facts are actually needed from the (large) set of facts that was |
529 initinally given to the prover. Finally, if a prover returns a proof with lots |
529 initinally given to the prover. Finally, if a prover returns a proof with lots |
530 of facts, the minimizer is invoked automatically since Metis would be unlikely |
530 of facts, the minimizer is invoked automatically since Metis would be unlikely |
531 to re-find the proof. |
531 to re-find the proof. |
532 |
532 |
720 developed by Stephan Schulz \cite{schulz-2002}. To use E, set the environment |
720 developed by Stephan Schulz \cite{schulz-2002}. To use E, set the environment |
721 variable \texttt{E\_HOME} to the directory that contains the \texttt{eproof} |
721 variable \texttt{E\_HOME} to the directory that contains the \texttt{eproof} |
722 executable, or install the prebuilt E package from Isabelle's download page. See |
722 executable, or install the prebuilt E package from Isabelle's download page. See |
723 \S\ref{installation} for details. |
723 \S\ref{installation} for details. |
724 |
724 |
|
725 \item[$\bullet$] \textbf{\textit{leo2}:} LEO-II is an automatic |
|
726 higher-order prover developed by Christoph Benzm\"uller et al.\ \cite{leo2}, |
|
727 with support for the TPTP higher-order syntax (THF). |
|
728 |
|
729 \item[$\bullet$] \textbf{\textit{metis}:} Although it is much less powerful than |
|
730 the external provers, Metis itself can be used for proof search. |
|
731 |
|
732 \item[$\bullet$] \textbf{\textit{metis\_full\_types}:} Fully typed version of |
|
733 Metis, corresponding to \textit{metis} (\textit{full\_types}). |
|
734 |
|
735 \item[$\bullet$] \textbf{\textit{metis\_no\_types}:} Untyped version of Metis, |
|
736 corresponding to \textit{metis} (\textit{no\_types}). |
|
737 |
|
738 \item[$\bullet$] \textbf{\textit{satallax}:} Satallax is an automatic |
|
739 higher-order prover developed by Chad Brown et al.\ \cite{satallax}, with |
|
740 support for the TPTP higher-order syntax (THF). |
|
741 |
725 \item[$\bullet$] \textbf{\textit{spass}:} SPASS is a first-order resolution |
742 \item[$\bullet$] \textbf{\textit{spass}:} SPASS is a first-order resolution |
726 prover developed by Christoph Weidenbach et al.\ \cite{weidenbach-et-al-2009}. |
743 prover developed by Christoph Weidenbach et al.\ \cite{weidenbach-et-al-2009}. |
727 To use SPASS, set the environment variable \texttt{SPASS\_HOME} to the directory |
744 To use SPASS, set the environment variable \texttt{SPASS\_HOME} to the directory |
728 that contains the \texttt{SPASS} executable, or install the prebuilt SPASS |
745 that contains the \texttt{SPASS} executable, or install the prebuilt SPASS |
729 package from Isabelle's download page. Sledgehammer requires version 3.5 or |
746 package from Isabelle's download page. Sledgehammer requires version 3.5 or |
730 above. See \S\ref{installation} for details. |
747 above. See \S\ref{installation} for details. |
731 |
748 |
732 \item[$\bullet$] \textbf{\textit{yices}:} Yices is an SMT solver developed at |
|
733 SRI \cite{yices}. To use Yices, set the environment variable |
|
734 \texttt{YICES\_SOLVER} to the complete path of the executable, including the |
|
735 file name. Sledgehammer has been tested with version 1.0. |
|
736 |
|
737 \item[$\bullet$] \textbf{\textit{vampire}:} Vampire is a first-order resolution |
749 \item[$\bullet$] \textbf{\textit{vampire}:} Vampire is a first-order resolution |
738 prover developed by Andrei Voronkov and his colleagues |
750 prover developed by Andrei Voronkov and his colleagues |
739 \cite{riazanov-voronkov-2002}. To use Vampire, set the environment variable |
751 \cite{riazanov-voronkov-2002}. To use Vampire, set the environment variable |
740 \texttt{VAMPIRE\_HOME} to the directory that contains the \texttt{vampire} |
752 \texttt{VAMPIRE\_HOME} to the directory that contains the \texttt{vampire} |
741 executable. Sledgehammer has been tested with versions 11, 0.6, and 1.0. |
753 executable. Sledgehammer has been tested with versions 11, 0.6, and 1.0. |
742 |
754 |
|
755 \item[$\bullet$] \textbf{\textit{yices}:} Yices is an SMT solver developed at |
|
756 SRI \cite{yices}. To use Yices, set the environment variable |
|
757 \texttt{YICES\_SOLVER} to the complete path of the executable, including the |
|
758 file name. Sledgehammer has been tested with version 1.0. |
|
759 |
743 \item[$\bullet$] \textbf{\textit{z3}:} Z3 is an SMT solver developed at |
760 \item[$\bullet$] \textbf{\textit{z3}:} Z3 is an SMT solver developed at |
744 Microsoft Research \cite{z3}. To use Z3, set the environment variable |
761 Microsoft Research \cite{z3}. To use Z3, set the environment variable |
745 \texttt{Z3\_SOLVER} to the complete path of the executable, including the file |
762 \texttt{Z3\_SOLVER} to the complete path of the executable, including the file |
746 name, and set \texttt{Z3\_NON\_COMMERCIAL=yes} to confirm that you are a |
763 name, and set \texttt{Z3\_NON\_COMMERCIAL=yes} to confirm that you are a |
747 noncommercial user. Sledgehammer has been tested with versions 2.7 to 2.18. |
764 noncommercial user. Sledgehammer has been tested with versions 2.7 to 2.18. |
748 |
765 |
749 \item[$\bullet$] \textbf{\textit{z3\_atp}:} This version of Z3 pretends to be an |
766 \item[$\bullet$] \textbf{\textit{z3\_atp}:} This version of Z3 pretends to be an |
750 ATP, exploiting Z3's undocumented support for the TPTP format. It is included |
767 ATP, exploiting Z3's undocumented support for the TPTP format. It is included |
751 for experimental purposes. It requires version 2.18 or above. |
768 for experimental purposes. It requires version 2.18 or above. |
752 |
|
753 \item[$\bullet$] \textbf{\textit{metis}:} Although it is much less powerful than |
|
754 the external provers, Metis itself can be used for proof search. |
|
755 |
|
756 \item[$\bullet$] \textbf{\textit{metis\_full\_types}:} Fully typed version of |
|
757 Metis, corresponding to \textit{metis} (\textit{full\_types}). |
|
758 |
|
759 \item[$\bullet$] \textbf{\textit{metis\_no\_types}:} Untyped version of Metis, |
|
760 corresponding to \textit{metis} (\textit{no\_types}). |
|
761 \end{enum} |
769 \end{enum} |
762 |
770 |
763 In addition, the following remote provers are supported: |
771 In addition, the following remote provers are supported: |
764 |
772 |
765 \begin{enum} |
773 \begin{enum} |
777 \item[$\bullet$] \textbf{\textit{remote\_e\_tofof}:} E-ToFoF is a metaprover |
785 \item[$\bullet$] \textbf{\textit{remote\_e\_tofof}:} E-ToFoF is a metaprover |
778 developed by Geoff Sutcliffe \cite{tofof} based on E running on his Miami |
786 developed by Geoff Sutcliffe \cite{tofof} based on E running on his Miami |
779 servers. This ATP supports the TPTP many-typed first-order format (TFF). The |
787 servers. This ATP supports the TPTP many-typed first-order format (TFF). The |
780 remote version of E-ToFoF runs on Geoff Sutcliffe's Miami servers. |
788 remote version of E-ToFoF runs on Geoff Sutcliffe's Miami servers. |
781 |
789 |
782 \item[$\bullet$] \textbf{\textit{remote\_leo2}:} LEO-II is an automatic |
790 \item[$\bullet$] \textbf{\textit{remote\_leo2}:} The remote version of LEO-II |
783 higher-order prover developed by Christoph Benzm\"uller et al.\ \cite{leo2}, |
791 runs on Geoff Sutcliffe's Miami servers \cite{sutcliffe-2000}. |
784 with support for the TPTP higher-order syntax (THF). The remote version of |
792 |
785 LEO-II runs on Geoff Sutcliffe's Miami servers. In the current setup, the |
793 \item[$\bullet$] \textbf{\textit{remote\_satallax}:} The remote version of |
786 problems given to LEO-II are only mildly higher-order. |
794 Satallax runs on Geoff Sutcliffe's Miami servers \cite{sutcliffe-2000}. |
787 |
|
788 \item[$\bullet$] \textbf{\textit{remote\_satallax}:} Satallax is an automatic |
|
789 higher-order prover developed by Chad Brown et al.\ \cite{satallax}, with |
|
790 support for the TPTP higher-order syntax (THF). The remote version of Satallax |
|
791 runs on Geoff Sutcliffe's Miami servers. In the current setup, the problems |
|
792 given to Satallax are only mildly higher-order. |
|
793 |
795 |
794 \item[$\bullet$] \textbf{\textit{remote\_snark}:} SNARK is a first-order |
796 \item[$\bullet$] \textbf{\textit{remote\_snark}:} SNARK is a first-order |
795 resolution prover developed by Stickel et al.\ \cite{snark}. It supports the |
797 resolution prover developed by Stickel et al.\ \cite{snark}. It supports the |
796 TPTP many-typed first-order format (TFF). The remote version of SNARK runs on |
798 TPTP many-typed first-order format (TFF). The remote version of SNARK runs on |
797 Geoff Sutcliffe's Miami servers. |
799 Geoff Sutcliffe's Miami servers. |