doc-src/Sledgehammer/sledgehammer.tex
changeset 46366 2ded91a6cbd5
parent 46302 adf10579fe43
child 46409 d4754183ccce
equal deleted inserted replaced
46365:547d1a1dcaf6 46366:2ded91a6cbd5
   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