updated unification options;
authorwenzelm
Sun, 11 Nov 2012 21:08:11 +0100
changeset 50083 01605e79c569
parent 50082 a025340c4abb
child 50084 3a3c54342e58
updated unification options;
src/Doc/IsarRef/Generic.thy
src/Doc/Ref/document/thm.tex
--- a/src/Doc/IsarRef/Generic.thy	Sun Nov 11 20:47:04 2012 +0100
+++ b/src/Doc/IsarRef/Generic.thy	Sun Nov 11 21:08:11 2012 +0100
@@ -1976,4 +1976,49 @@
   \end{description}
 *}
 
+
+section {* Tracing higher-order unification *}
+
+text {*
+  \begin{tabular}{rcll}
+    @{attribute_def unify_trace_simp} & : & @{text "attribute"} & default @{text "false"} \\
+    @{attribute_def unify_trace_types} & : & @{text "attribute"} & default @{text "false"} \\
+    @{attribute_def unify_trace_bound} & : & @{text "attribute"} & default @{text "50"} \\
+    @{attribute_def unify_search_bound} & : & @{text "attribute"} & default @{text "60"} \\
+  \end{tabular}
+  \medskip
+
+  Higher-order unification works well in most practical situations,
+  but sometimes needs extra care to identify problems.  These tracing
+  options may help.
+
+  \begin{description}
+
+  \item @{attribute unify_trace_simp} controls tracing of the
+  simplification phase of higher-order unification.
+
+  \item @{attribute unify_trace_types} controls warnings of
+  incompleteness, when unification is not considering all possible
+  instantiations of schematic type variables.
+
+  \item @{attribute unify_trace_bound} determines the depth where
+  unification starts to print tracing information once it reaches
+  depth; 0 for full tracing.  At the default value, tracing
+  information is almost never printed in practice.
+
+  \item @{attribute unify_search_bound} prevents unification from
+  searching past the given depth.  Because of this bound, higher-order
+  unification cannot return an infinite sequence, though it can return
+  an exponentially long one.  The search rarely approaches the default
+  value in practice.  If the search is cut off, unification prints a
+  warning ``Unification bound exceeded''.
+
+  \end{description}
+
+  \begin{warn}
+  Options for unification cannot be modified in a local context.  Only
+  the global theory content is taken into account.
+  \end{warn}
+*}
+
 end
--- a/src/Doc/Ref/document/thm.tex	Sun Nov 11 20:47:04 2012 +0100
+++ b/src/Doc/Ref/document/thm.tex	Sun Nov 11 21:08:11 2012 +0100
@@ -46,39 +46,6 @@
 \end{ttdescription}
 
 
-\subsection{Tracing flags for unification}
-
-\begin{ttbox} 
-Unify.trace_simp   : bool ref \hfill\textbf{initially false}
-Unify.trace_types  : bool ref \hfill\textbf{initially false}
-Unify.trace_bound  : int ref \hfill\textbf{initially 10}
-Unify.search_bound : int ref \hfill\textbf{initially 20}
-\end{ttbox}
-Tracing the search may be useful when higher-order unification behaves
-unexpectedly.  Letting {\tt res_inst_tac} circumvent the problem is easier,
-though.
-\begin{ttdescription}
-\item[set Unify.trace_simp;] 
-causes tracing of the simplification phase.
-
-\item[set Unify.trace_types;] 
-generates warnings of incompleteness, when unification is not considering
-all possible instantiations of type unknowns.
-
-\item[Unify.trace_bound := $n$;] 
-causes unification to print tracing information once it reaches depth~$n$.
-Use $n=0$ for full tracing.  At the default value of~10, tracing
-information is almost never printed.
-
-\item[Unify.search_bound := $n$;] prevents unification from
-  searching past the depth~$n$.  Because of this bound, higher-order
-  unification cannot return an infinite sequence, though it can return
-  an exponentially long one.  The search rarely approaches the default value
-  of~20.  If the search is cut off, unification prints a warning
-  \texttt{Unification bound exceeded}.
-\end{ttdescription}
-
-
 \section{*Primitive meta-level inference rules}
 
 \subsection{Logical equivalence rules}