518 generated by Sledgehammer instead of \textit{metis} if the proof obviously |
518 generated by Sledgehammer instead of \textit{metis} if the proof obviously |
519 requires type information or if \textit{metis} failed when Sledgehammer |
519 requires type information or if \textit{metis} failed when Sledgehammer |
520 preplayed the proof. (By default, Sledgehammer tries to run \textit{metis} with |
520 preplayed the proof. (By default, Sledgehammer tries to run \textit{metis} with |
521 various options for up to 3 seconds each time to ensure that the generated |
521 various options for up to 3 seconds each time to ensure that the generated |
522 one-line proofs actually work and to display timing information. This can be |
522 one-line proofs actually work and to display timing information. This can be |
523 configured using the \textit{preplay\_timeout} option (\S\ref{timeouts}).) |
523 configured using the \textit{preplay\_timeout} and \textit{dont\_preplay} |
|
524 options (\S\ref{timeouts}).) |
524 % |
525 % |
525 At the other end of the soundness spectrum, \textit{metis} (\textit{no\_types}) |
526 At the other end of the soundness spectrum, \textit{metis} (\textit{no\_types}) |
526 uses no type information at all during the proof search, which is more efficient |
527 uses no type information at all during the proof search, which is more efficient |
527 but often fails. Calls to \textit{metis} (\textit{no\_types}) are occasionally |
528 but often fails. Calls to \textit{metis} (\textit{no\_types}) are occasionally |
528 generated by Sledgehammer. |
529 generated by Sledgehammer. |
719 |
720 |
720 \def\defl{\{} |
721 \def\defl{\{} |
721 \def\defr{\}} |
722 \def\defr{\}} |
722 |
723 |
723 \def\flushitem#1{\item[]\noindent\kern-\leftmargin \textbf{#1}} |
724 \def\flushitem#1{\item[]\noindent\kern-\leftmargin \textbf{#1}} |
|
725 \def\optrueonly#1{\flushitem{\textit{#1} $\bigl[$= \textit{true}$\bigr]$\enskip}\nopagebreak\\[\parskip]} |
724 \def\optrue#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{bool}$\bigr]$\enskip \defl\textit{true}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
726 \def\optrue#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{bool}$\bigr]$\enskip \defl\textit{true}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
725 \def\opfalse#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{bool}$\bigr]$\enskip \defl\textit{false}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
727 \def\opfalse#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{bool}$\bigr]$\enskip \defl\textit{false}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
726 \def\opsmart#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{smart\_bool}$\bigr]$\enskip \defl\textit{smart}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
728 \def\opsmart#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{smart\_bool}$\bigr]$\enskip \defl\textit{smart}\defr\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
727 \def\opsmartx#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{smart\_bool}$\bigr]$\enskip \defl\textit{smart}\defr\\\hbox{}\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
729 \def\opsmartx#1#2{\flushitem{\textit{#1} $\bigl[$= \qtybf{smart\_bool}$\bigr]$\enskip \defl\textit{smart}\defr\\\hbox{}\hfill (neg.: \textit{#2})}\nopagebreak\\[\parskip]} |
728 \def\opnodefault#1#2{\flushitem{\textit{#1} = \qtybf{#2}} \nopagebreak\\[\parskip]} |
730 \def\opnodefault#1#2{\flushitem{\textit{#1} = \qtybf{#2}} \nopagebreak\\[\parskip]} |
916 several provers are set, the first one is used. |
918 several provers are set, the first one is used. |
917 |
919 |
918 \opnodefault{prover}{string} |
920 \opnodefault{prover}{string} |
919 Alias for \textit{provers}. |
921 Alias for \textit{provers}. |
920 |
922 |
921 %\opnodefault{atps}{string} |
|
922 %Legacy alias for \textit{provers}. |
|
923 |
|
924 %\opnodefault{atp}{string} |
|
925 %Legacy alias for \textit{provers}. |
|
926 |
|
927 \opfalse{blocking}{non\_blocking} |
923 \opfalse{blocking}{non\_blocking} |
928 Specifies whether the \textbf{sledgehammer} command should operate |
924 Specifies whether the \textbf{sledgehammer} command should operate |
929 synchronously. The asynchronous (non-blocking) mode lets the user start proving |
925 synchronously. The asynchronous (non-blocking) mode lets the user start proving |
930 the putative theorem manually while Sledgehammer looks for a proof, but it can |
926 the putative theorem manually while Sledgehammer looks for a proof, but it can |
931 also be more confusing. Irrespective of the value of this option, Sledgehammer |
927 also be more confusing. Irrespective of the value of this option, Sledgehammer |
953 it can be done in a reasonable amount of time (as determined by |
949 it can be done in a reasonable amount of time (as determined by |
954 the number of facts in the original proof and the time it took to find or |
950 the number of facts in the original proof and the time it took to find or |
955 preplay it) or the proof involves an unreasonably large number of facts. |
951 preplay it) or the proof involves an unreasonably large number of facts. |
956 |
952 |
957 \nopagebreak |
953 \nopagebreak |
958 {\small See also \textit{preplay\_timeout} (\S\ref{timeouts}).} |
954 {\small See also \textit{preplay\_timeout} (\S\ref{timeouts}) |
|
955 and \textit{dont\_preplay} (\S\ref{timeouts}).} |
959 |
956 |
960 \opfalse{overlord}{no\_overlord} |
957 \opfalse{overlord}{no\_overlord} |
961 Specifies whether Sledgehammer should put its temporary files in |
958 Specifies whether Sledgehammer should put its temporary files in |
962 \texttt{\$ISA\-BELLE\_\allowbreak HOME\_\allowbreak USER}, which is useful for |
959 \texttt{\$ISA\-BELLE\_\allowbreak HOME\_\allowbreak USER}, which is useful for |
963 debugging Sledgehammer but also unsafe if several instances of the tool are run |
960 debugging Sledgehammer but also unsafe if several instances of the tool are run |
1084 \textit{poly\_guards}?, \textit{poly\_tags}?, \textit{raw\_mono\_guards}?, \\ |
1081 \textit{poly\_guards}?, \textit{poly\_tags}?, \textit{raw\_mono\_guards}?, \\ |
1085 \textit{raw\_mono\_tags}?, \textit{mono\_guards}?, \textit{mono\_tags}?, \\ |
1082 \textit{raw\_mono\_tags}?, \textit{mono\_guards}?, \textit{mono\_tags}?, \\ |
1086 \textit{mono\_native}? (sound*):} \\ |
1083 \textit{mono\_native}? (sound*):} \\ |
1087 The type encodings \textit{poly\_guards}, \textit{poly\_tags}, |
1084 The type encodings \textit{poly\_guards}, \textit{poly\_tags}, |
1088 \textit{raw\_mono\_guards}, \textit{raw\_mono\_tags}, \textit{mono\_guards}, |
1085 \textit{raw\_mono\_guards}, \textit{raw\_mono\_tags}, \textit{mono\_guards}, |
1089 \textit{mono\_tags}, and \textit{mono\_native} are fully |
1086 \textit{mono\_tags}, and \textit{mono\_native} are fully typed and sound. For |
1090 typed and sound. For each of these, Sledgehammer also provides a lighter, |
1087 each of these, Sledgehammer also provides a lighter variant identified by a |
1091 virtually sound variant identified by a question mark (`\hbox{?}')\ that detects |
1088 question mark (`\hbox{?}')\ that detects and erases monotonic types, notably |
1092 and erases monotonic types, notably infinite types. (For \textit{mono\_native}, |
1089 infinite types. (For \textit{mono\_native}, the types are not actually erased |
1093 the types are not actually erased but rather replaced by a shared uniform type |
1090 but rather replaced by a shared uniform type of individuals.) As argument to the |
1094 of individuals.) As argument to the \textit{metis} proof method, the question |
1091 \textit{metis} proof method, the question mark is replaced by a |
1095 mark is replaced by a \hbox{``\textit{\_query\/}''} suffix. |
1092 \hbox{``\textit{\_query\/}''} suffix. |
1096 |
1093 |
1097 \item[\labelitemi] |
1094 \item[\labelitemi] |
1098 \textbf{% |
1095 \textbf{% |
1099 \textit{poly\_guards}??, \textit{poly\_tags}??, \textit{raw\_mono\_guards}??, \\ |
1096 \textit{poly\_guards}??, \textit{poly\_tags}??, \textit{raw\_mono\_guards}??, \\ |
1100 \textit{raw\_mono\_tags}??, \textit{mono\_guards}??, \textit{mono\_tags}?? \\ |
1097 \textit{raw\_mono\_tags}??, \textit{mono\_guards}??, \textit{mono\_tags}?? \\ |
1141 Alternative versions of the `\hbox{!!}' encodings. As argument to the |
1138 Alternative versions of the `\hbox{!!}' encodings. As argument to the |
1142 \textit{metis} proof method, the `\hbox{@!}' suffix is replaced by |
1139 \textit{metis} proof method, the `\hbox{@!}' suffix is replaced by |
1143 \hbox{``\textit{\_at\_bang\/}''}. |
1140 \hbox{``\textit{\_at\_bang\/}''}. |
1144 |
1141 |
1145 \item[\labelitemi] \textbf{\textit{smart}:} The actual encoding used depends on |
1142 \item[\labelitemi] \textbf{\textit{smart}:} The actual encoding used depends on |
1146 the ATP and should be the most efficient virtually sound encoding for that ATP. |
1143 the ATP and should be the most efficient sound encoding for that ATP. |
1147 \end{enum} |
1144 \end{enum} |
1148 |
1145 |
1149 For SMT solvers, the type encoding is always \textit{mono\_native}, irrespective |
1146 For SMT solvers, the type encoding is always \textit{mono\_native}, irrespective |
1150 of the value of this option. |
1147 of the value of this option. |
1151 |
1148 |
1269 no preplaying takes place, and no timing information is displayed next to the |
1266 no preplaying takes place, and no timing information is displayed next to the |
1270 suggested \textit{metis} calls. |
1267 suggested \textit{metis} calls. |
1271 |
1268 |
1272 \nopagebreak |
1269 \nopagebreak |
1273 {\small See also \textit{minimize} (\S\ref{mode-of-operation}).} |
1270 {\small See also \textit{minimize} (\S\ref{mode-of-operation}).} |
|
1271 |
|
1272 \optrueonly{dont\_preplay} |
|
1273 Alias for ``\textit{preplay\_timeout} = 0''. |
|
1274 |
1274 \end{enum} |
1275 \end{enum} |
1275 |
1276 |
1276 \let\em=\sl |
1277 \let\em=\sl |
1277 \bibliography{../manual}{} |
1278 \bibliography{../manual}{} |
1278 \bibliographystyle{abbrv} |
1279 \bibliographystyle{abbrv} |