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 |