356 Sledgehammer is invoked (e.g., ``\textit{provers}~= \textit{e spass |
356 Sledgehammer is invoked (e.g., ``\textit{provers}~= \textit{e spass |
357 remote\_vampire\/}''). For convenience, you can omit ``\textit{provers}~='' |
357 remote\_vampire\/}''). For convenience, you can omit ``\textit{provers}~='' |
358 and simply write the prover names as a space-separated list (e.g., ``\textit{e |
358 and simply write the prover names as a space-separated list (e.g., ``\textit{e |
359 spass remote\_vampire\/}''). |
359 spass remote\_vampire\/}''). |
360 |
360 |
361 \item[\labelitemi] \textbf{\textit{max\_relevant}} (\S\ref{relevance-filter}) |
361 \item[\labelitemi] \textbf{\textit{max\_facts}} (\S\ref{relevance-filter}) |
362 specifies the maximum number of facts that should be passed to the provers. By |
362 specifies the maximum number of facts that should be passed to the provers. By |
363 default, the value is prover-dependent but varies between about 150 and 1000. If |
363 default, the value is prover-dependent but varies between about 50 and 1000. If |
364 the provers time out, you can try lowering this value to, say, 100 or 50 and see |
364 the provers time out, you can try lowering this value to, say, 25 or 50 and see |
365 if that helps. |
365 if that helps. |
366 |
366 |
367 \item[\labelitemi] \textbf{\textit{isar\_proof}} (\S\ref{output-format}) specifies |
367 \item[\labelitemi] \textbf{\textit{isar\_proof}} (\S\ref{output-format}) specifies |
368 that Isar proofs should be generated, instead of one-liner \textit{metis} or |
368 that Isar proofs should be generated, instead of one-liner \textit{metis} or |
369 \textit{smt} proofs. The length of the Isar proofs can be controlled by setting |
369 \textit{smt} proofs. The length of the Isar proofs can be controlled by setting |
407 facts given using the \textit{verbose} option (\S\ref{output-format}) and the |
407 facts given using the \textit{verbose} option (\S\ref{output-format}) and the |
408 actual facts using \textit{debug} (\S\ref{output-format}). |
408 actual facts using \textit{debug} (\S\ref{output-format}). |
409 |
409 |
410 Sledgehammer is good at finding short proofs combining a handful of existing |
410 Sledgehammer is good at finding short proofs combining a handful of existing |
411 lemmas. If you are looking for longer proofs, you must typically restrict the |
411 lemmas. If you are looking for longer proofs, you must typically restrict the |
412 number of facts, by setting the \textit{max\_relevant} option |
412 number of facts, by setting the \textit{max\_facts} option |
413 (\S\ref{relevance-filter}) to, say, 25 or 50. |
413 (\S\ref{relevance-filter}) to, say, 25 or 50. |
414 |
414 |
415 You can also influence which facts are actually selected in a number of ways. If |
415 You can also influence which facts are actually selected in a number of ways. If |
416 you simply want to ensure that a fact is included, you can specify it using the |
416 you simply want to ensure that a fact is included, you can specify it using the |
417 ``$(\textit{add}{:}~\textit{my\_facts})$'' syntax. For example: |
417 ``$(\textit{add}{:}~\textit{my\_facts})$'' syntax. For example: |
1145 |
1145 |
1146 \subsection{Relevance Filter} |
1146 \subsection{Relevance Filter} |
1147 \label{relevance-filter} |
1147 \label{relevance-filter} |
1148 |
1148 |
1149 \begin{enum} |
1149 \begin{enum} |
1150 \opdefault{relevance\_thresholds}{float\_pair}{\upshape 0.45~0.85} |
1150 \opdefault{max\_facts}{smart\_int}{smart} |
|
1151 Specifies the maximum number of facts that may be returned by the relevance |
|
1152 filter. If the option is set to \textit{smart}, it is set to a value that was |
|
1153 empirically found to be appropriate for the prover. Typical values range between |
|
1154 50 and 1000. |
|
1155 |
|
1156 \opdefault{fact\_thresholds}{float\_pair}{\upshape 0.45~0.85} |
1151 Specifies the thresholds above which facts are considered relevant by the |
1157 Specifies the thresholds above which facts are considered relevant by the |
1152 relevance filter. The first threshold is used for the first iteration of the |
1158 relevance filter. The first threshold is used for the first iteration of the |
1153 relevance filter and the second threshold is used for the last iteration (if it |
1159 relevance filter and the second threshold is used for the last iteration (if it |
1154 is reached). The effective threshold is quadratically interpolated for the other |
1160 is reached). The effective threshold is quadratically interpolated for the other |
1155 iterations. Each threshold ranges from 0 to 1, where 0 means that all theorems |
1161 iterations. Each threshold ranges from 0 to 1, where 0 means that all theorems |
1156 are relevant and 1 only theorems that refer to previously seen constants. |
1162 are relevant and 1 only theorems that refer to previously seen constants. |
1157 |
1163 |
1158 \opdefault{max\_relevant}{smart\_int}{smart} |
|
1159 Specifies the maximum number of facts that may be returned by the relevance |
|
1160 filter. If the option is set to \textit{smart}, it is set to a value that was |
|
1161 empirically found to be appropriate for the prover. Typical values range between |
|
1162 50 and 1000. |
|
1163 |
|
1164 \opdefault{max\_new\_mono\_instances}{int}{smart} |
1164 \opdefault{max\_new\_mono\_instances}{int}{smart} |
1165 Specifies the maximum number of monomorphic instances to generate beyond |
1165 Specifies the maximum number of monomorphic instances to generate beyond |
1166 \textit{max\_relevant}. The higher this limit is, the more monomorphic instances |
1166 \textit{max\_facts}. The higher this limit is, the more monomorphic instances |
1167 are potentially generated. Whether monomorphization takes place depends on the |
1167 are potentially generated. Whether monomorphization takes place depends on the |
1168 type encoding used. If the option is set to \textit{smart}, it is set to a value |
1168 type encoding used. If the option is set to \textit{smart}, it is set to a value |
1169 that was empirically found to be appropriate for the prover. For most provers, |
1169 that was empirically found to be appropriate for the prover. For most provers, |
1170 this value is 200. |
1170 this value is 200. |
1171 |
1171 |