doc-src/Sledgehammer/sledgehammer.tex
changeset 48294 2b0c5553dc46
parent 48184 7c48419c89c5
child 48387 302cf211fb3f
equal deleted inserted replaced
48293:914ca0827804 48294:2b0c5553dc46
   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