doc-src/Sledgehammer/sledgehammer.tex
changeset 48388 fd7958ebee96
parent 48387 302cf211fb3f
child 48390 4147f2bc4442
equal deleted inserted replaced
48387:302cf211fb3f 48388:fd7958ebee96
   395 currently loaded libraries. The component that performs this selection is
   395 currently loaded libraries. The component that performs this selection is
   396 called \emph{relevance filter}.
   396 called \emph{relevance filter}.
   397 
   397 
   398 \begin{enum}
   398 \begin{enum}
   399 \item[\labelitemi]
   399 \item[\labelitemi]
   400 The traditional relevance filter, called \emph{MePo}, assigns a score to every
   400 The traditional relevance filter, called \emph{MePo}
   401 available fact (lemma, theorem, definition, or axiom) based upon how many
   401 (\underline{Me}ng--\underline{Pau}lson), assigns a score to every available fact
   402 constants that fact shares with the conjecture. This process iterates to include
   402 (lemma, theorem, definition, or axiom) based upon how many constants that fact
   403 facts relevant to those just accepted. The constants are weighted to give
   403 shares with the conjecture. This process iterates to include facts relevant to
   404 unusual ones greater significance. MePo copes best when the conjecture contains
   404 those just accepted. The constants are weighted to give unusual ones greater
   405 some unusual constants; if all the constants are common, it is unable to
   405 significance. MePo copes best when the conjecture contains some unusual
   406 discriminate among the hundreds of facts that are picked up. The filter is also
   406 constants; if all the constants are common, it is unable to discriminate among
   407 memoryless: It has no information about how many times a particular fact has
   407 the hundreds of facts that are picked up. The filter is also memoryless: It has
   408 been used in a proof, and it cannot learn.
   408 no information about how many times a particular fact has been used in a proof,
       
   409 and it cannot learn.
   409 
   410 
   410 \item[\labelitemi]
   411 \item[\labelitemi]
   411 An experimental, memoryful alternative to MePo is \emph{MaSh}
   412 An experimental, memoryful alternative to MePo is \emph{MaSh}
   412 (\underline{Ma}chine Learner for \underline{S}ledge\underline{h}ammer). It
   413 (\underline{Ma}chine Learner for \underline{S}ledge\underline{h}ammer). It
   413 relies on an external tool called \texttt{mash} that applies machine learning to
   414 relies on an external tool called \texttt{mash} that applies machine learning to
  1017 
  1018 
  1018 \subsection{Relevance Filter}
  1019 \subsection{Relevance Filter}
  1019 \label{relevance-filter}
  1020 \label{relevance-filter}
  1020 
  1021 
  1021 \begin{enum}
  1022 \begin{enum}
       
  1023 \opdefault{fact\_filter}{string}{smart}
       
  1024 Specifies the relevance filter to use. The following filters are available:
       
  1025 
       
  1026 \begin{enum}
       
  1027 \item[\labelitemi] \textbf{\textit{mepo}:}
       
  1028 The traditional memoryless MePo relevance filter.
       
  1029 
       
  1030 \item[\labelitemi] \textbf{\textit{mash}:}
       
  1031 The memoryful MaSh machine learner. MaSh relies on the external program
       
  1032 \texttt{mash}, which can be obtained from the author at \authoremail. To install
       
  1033 it, set the environment variable \texttt{MASH\_HOME} to the directory that
       
  1034 contains the \texttt{mash} executable.
       
  1035 
       
  1036 \item[\labelitemi] \textbf{\textit{mesh}:} A combination of MePo and MaSh.
       
  1037 
       
  1038 \item[\labelitemi] \textbf{\textit{smart}:} Use Mesh if \texttt{mash} is
       
  1039 installed and the target prover is an ATP; otherwise, use MePo.
       
  1040 \end{enum}
       
  1041 
  1022 \opdefault{max\_facts}{smart\_int}{smart}
  1042 \opdefault{max\_facts}{smart\_int}{smart}
  1023 Specifies the maximum number of facts that may be returned by the relevance
  1043 Specifies the maximum number of facts that may be returned by the relevance
  1024 filter. If the option is set to \textit{smart}, it is set to a value that was
  1044 filter. If the option is set to \textit{smart}, it is set to a value that was
  1025 empirically found to be appropriate for the prover. Typical values range between
  1045 empirically found to be appropriate for the prover. Typical values range between
  1026 50 and 1000.
  1046 50 and 1000.
  1030 relevance filter. The first threshold is used for the first iteration of the
  1050 relevance filter. The first threshold is used for the first iteration of the
  1031 relevance filter and the second threshold is used for the last iteration (if it
  1051 relevance filter and the second threshold is used for the last iteration (if it
  1032 is reached). The effective threshold is quadratically interpolated for the other
  1052 is reached). The effective threshold is quadratically interpolated for the other
  1033 iterations. Each threshold ranges from 0 to 1, where 0 means that all theorems
  1053 iterations. Each threshold ranges from 0 to 1, where 0 means that all theorems
  1034 are relevant and 1 only theorems that refer to previously seen constants.
  1054 are relevant and 1 only theorems that refer to previously seen constants.
       
  1055 
       
  1056 \optrue{learn}{dont\_learn}
       
  1057 Specifies whether MaSh should be run automatically by Sledgehammer to learn the
       
  1058 available theories (and hence provide more accurate results). Learning only
       
  1059 takes place if \texttt{mash} is installed.
  1035 
  1060 
  1036 \opdefault{max\_new\_mono\_instances}{int}{smart}
  1061 \opdefault{max\_new\_mono\_instances}{int}{smart}
  1037 Specifies the maximum number of monomorphic instances to generate beyond
  1062 Specifies the maximum number of monomorphic instances to generate beyond
  1038 \textit{max\_facts}. The higher this limit is, the more monomorphic instances
  1063 \textit{max\_facts}. The higher this limit is, the more monomorphic instances
  1039 are potentially generated. Whether monomorphization takes place depends on the
  1064 are potentially generated. Whether monomorphization takes place depends on the