535 \postw |
535 \postw |
536 |
536 |
537 for a successful \textit{metis} proof, you can advantageously pass the |
537 for a successful \textit{metis} proof, you can advantageously pass the |
538 \textit{full\_types} option to \textit{metis} directly. |
538 \textit{full\_types} option to \textit{metis} directly. |
539 |
539 |
540 \point{And what are the \textit{lam\_lifting} and \textit{hide\_lams} arguments |
540 \point{And what are the \textit{lifting} and \textit{hide\_lams} arguments |
541 to Metis?} |
541 to Metis?} |
542 |
542 |
543 Orthogonally to the encoding of types, it is important to choose an appropriate |
543 Orthogonally to the encoding of types, it is important to choose an appropriate |
544 translation of $\lambda$-abstractions. Metis supports three translation schemes, |
544 translation of $\lambda$-abstractions. Metis supports three translation schemes, |
545 in decreasing order of power: Curry combinators (the default), |
545 in decreasing order of power: Curry combinators (the default), |
700 option (\S\ref{problem-encoding}) and at most one type encoding specification |
700 option (\S\ref{problem-encoding}) and at most one type encoding specification |
701 with the same semantics as Sledgehammer's \textit{type\_enc} option |
701 with the same semantics as Sledgehammer's \textit{type\_enc} option |
702 (\S\ref{problem-encoding}). |
702 (\S\ref{problem-encoding}). |
703 % |
703 % |
704 The supported $\lambda$ translation schemes are \textit{hide\_lams}, |
704 The supported $\lambda$ translation schemes are \textit{hide\_lams}, |
705 \textit{lam\_lifting}, and \textit{combinators} (the default). |
705 \textit{lifting}, and \textit{combs} (the default). |
706 % |
706 % |
707 All the untyped type encodings listed in \S\ref{problem-encoding} are supported. |
707 All the untyped type encodings listed in \S\ref{problem-encoding} are supported. |
708 For convenience, the following aliases are provided: |
708 For convenience, the following aliases are provided: |
709 \begin{enum} |
709 \begin{enum} |
710 \item[\labelitemi] \textbf{\textit{full\_types}:} Synonym for \textit{poly\_guards\_query}. |
710 \item[\labelitemi] \textbf{\textit{full\_types}:} Synonym for \textit{poly\_guards\_query}. |
973 \begin{enum} |
973 \begin{enum} |
974 \item[\labelitemi] \textbf{\textit{hide\_lams}:} Hide the $\lambda$-abstractions |
974 \item[\labelitemi] \textbf{\textit{hide\_lams}:} Hide the $\lambda$-abstractions |
975 by replacing them by unspecified fresh constants, effectively disabling all |
975 by replacing them by unspecified fresh constants, effectively disabling all |
976 reasoning under $\lambda$-abstractions. |
976 reasoning under $\lambda$-abstractions. |
977 |
977 |
978 \item[\labelitemi] \textbf{\textit{lam\_lifting}:} Introduce a new |
978 \item[\labelitemi] \textbf{\textit{lifting}:} Introduce a new |
979 supercombinator \const{c} for each cluster of $n$~$\lambda$-abstractions, |
979 supercombinator \const{c} for each cluster of $n$~$\lambda$-abstractions, |
980 defined using an equation $\const{c}~x_1~\ldots~x_n = t$ ($\lambda$-lifting). |
980 defined using an equation $\const{c}~x_1~\ldots~x_n = t$ ($\lambda$-lifting). |
981 |
981 |
982 \item[\labelitemi] \textbf{\textit{combinators}:} Rewrite lambdas to the Curry |
982 \item[\labelitemi] \textbf{\textit{combs}:} Rewrite lambdas to the Curry |
983 combinators (\comb{I}, \comb{K}, \comb{S}, \comb{B}, \comb{C}). Combinators |
983 combinators (\comb{I}, \comb{K}, \comb{S}, \comb{B}, \comb{C}). Combinators |
984 enable the ATPs to synthesize $\lambda$-terms but tend to yield bulkier formulas |
984 enable the ATPs to synthesize $\lambda$-terms but tend to yield bulkier formulas |
985 than $\lambda$-lifting: The translation is quadratic in the worst case, and the |
985 than $\lambda$-lifting: The translation is quadratic in the worst case, and the |
986 equational definitions of the combinators are very prolific in the context of |
986 equational definitions of the combinators are very prolific in the context of |
987 resolution. |
987 resolution. |
988 |
988 |
989 \item[\labelitemi] \textbf{\textit{hybrid\_lams}:} Introduce a new |
989 \item[\labelitemi] \textbf{\textit{combs\_and\_lifting}:} Introduce a new |
990 supercombinator \const{c} for each cluster of $\lambda$-abstractions and characterize it both using a |
990 supercombinator \const{c} for each cluster of $\lambda$-abstractions and characterize it both using a |
991 lifted equation $\const{c}~x_1~\ldots~x_n = t$ and via Curry combinators. |
991 lifted equation $\const{c}~x_1~\ldots~x_n = t$ and via Curry combinators. |
|
992 |
|
993 \item[\labelitemi] \textbf{\textit{combs\_or\_lifting}:} For each cluster of |
|
994 $\lambda$-abstractions, heuristically choose between $\lambda$-lifting and Curry |
|
995 combinators. |
992 |
996 |
993 \item[\labelitemi] \textbf{\textit{keep\_lams}:} |
997 \item[\labelitemi] \textbf{\textit{keep\_lams}:} |
994 Keep the $\lambda$-abstractions in the generated problems. This is available |
998 Keep the $\lambda$-abstractions in the generated problems. This is available |
995 only with provers that support the THF0 syntax. |
999 only with provers that support the THF0 syntax. |
996 |
1000 |
997 \item[\labelitemi] \textbf{\textit{smart}:} The actual translation scheme used |
1001 \item[\labelitemi] \textbf{\textit{smart}:} The actual translation scheme used |
998 depends on the ATP and should be the most efficient scheme for that ATP. |
1002 depends on the ATP and should be the most efficient scheme for that ATP. |
999 \end{enum} |
1003 \end{enum} |
1000 |
1004 |
1001 For SMT solvers, the $\lambda$ translation scheme is always |
1005 For SMT solvers, the $\lambda$ translation scheme is always \textit{lifting}, |
1002 \textit{lam\_lifting}, irrespective of the value of this option. |
1006 irrespective of the value of this option. |
1003 |
1007 |
1004 \opdefault{type\_enc}{string}{smart} |
1008 \opdefault{type\_enc}{string}{smart} |
1005 Specifies the type encoding to use in ATP problems. Some of the type encodings |
1009 Specifies the type encoding to use in ATP problems. Some of the type encodings |
1006 are unsound, meaning that they can give rise to spurious proofs |
1010 are unsound, meaning that they can give rise to spurious proofs |
1007 (unreconstructible using \textit{metis}). The supported type encodings are |
1011 (unreconstructible using \textit{metis}). The supported type encodings are |