more on automatically tried tools;
authorwenzelm
Thu, 31 Oct 2013 16:10:35 +0100
changeset 54354 4e6defdc24ac
parent 54353 6692c355ebc1
child 54355 08cbb9461b48
more on automatically tried tools;
src/Doc/JEdit/Base.thy
src/Doc/JEdit/JEdit.thy
src/Doc/ROOT
--- a/src/Doc/JEdit/Base.thy	Wed Oct 30 21:23:47 2013 +0100
+++ b/src/Doc/JEdit/Base.thy	Thu Oct 31 16:10:35 2013 +0100
@@ -1,5 +1,5 @@
 theory Base
-imports Pure
+imports Main
 begin
 
 ML_file "../antiquote_setup.ML"
--- a/src/Doc/JEdit/JEdit.thy	Wed Oct 30 21:23:47 2013 +0100
+++ b/src/Doc/JEdit/JEdit.thy	Thu Oct 31 16:10:35 2013 +0100
@@ -356,7 +356,7 @@
 *}
 
 
-section {* Prover output *}
+section {* Prover output \label{sec:prover-output} *}
 
 text {* Prover output consists of \emph{markup} and \emph{messages}.
   Both are directly attached to the corresponding positions in the
@@ -665,9 +665,98 @@
 
 section {* Automatically tried tools *}
 
-text {*
-  FIXME
-*}
+text {* Continuous document processing works asynchronously in the
+  background.  Visible document source that has been evaluated already
+  may get augmented by additional results of \emph{asynchronous print
+  functions}.  The canonical example is proof state output, which is
+  always enabled.  More heavy-weight print functions may be applied,
+  in order to prove or disprove parts of the formal text by other
+  means.
+
+  Isabelle/HOL provides various automatically tried tools that operate
+  on outermost goal statements (e.g.\ @{command lemma}, @{command
+  theorem}), independently of the state of the current proof attempt.
+  They work implicitly without any arguments.  Results are output as
+  \emph{information messages}, which are indicated in the text area by
+  blue squiggles and a blue information sign in the gutter.  The
+  message content may be shown as for any other message, see also
+  \secref{sec:prover-output}.  Some tools produce output with
+  \emph{sendback} markup, which means that clicking on certain parts
+  of the output inserts that text into the source in the proper place.
+
+  \medskip The following Isabelle system options control the behaviour
+  of automatically tried tools (see also the jEdit dialog window
+  \emph{Plugin Options / Isabelle / General / Automatically tried
+  tools}):
+
+  \begin{itemize}
+
+  \item @{system_option auto_methods} controls automatic use of a
+  combination of standard proof methods (@{method auto}, @{method
+  simp}, @{method blast}, etc.).  This corresponds to the command
+  @{command "try0"}.
+
+  The tool is disabled by default, since unparameterized invocation of
+  standard proof methods often consumes substantial CPU resources
+  without leading to success.
+
+  \item @{system_option auto_nitpick} controls a slightly reduced
+  version of @{command nitpick}, which tests for counterexamples using
+  first-order relational logic. See also the Nitpick manual
+  \cite{isabelle-nitpick}.
+
+  This tool is disabled by default, due to the extra overhead of
+  invoking an external Java process for each attempt to disprove a
+  subgoal.
+
+  \item @{system_option auto_quickcheck} controls automatic use of
+  @{command quickcheck}, which tests for counterexamples using a
+  series of assignments for free variables of a subgoal.
+
+  This tool is \emph{enabled} by default.  It requires little
+  overhead, but is a bit weaker than @{command nitpick}.
+
+  \item @{system_option auto_sledgehammer} controls a significantly
+  reduced version of @{command sledgehammer}, which attempts to prove
+  a subgoal using external automatic provers. See also the
+  Sledgehammer manual \cite{isabelle-sledgehammer}.
+
+  This tool is disabled by default, due to the relatively heavy nature
+  of Sledgehammer.
+
+  \item @{system_option auto_solve_direct} controls automatic use of
+  @{command solve_direct}, which checks whether the current subgoals
+  can be solved directly by an existing theorem.  This also helps to
+  detect duplicate lemmas.
+
+  This tool is \emph{enabled} by default.
+
+  \end{itemize}
+
+  Invocation of automatically tried tools is subject to some global
+  policies of parallel execution, which may be configured as follows:
+
+  \begin{itemize}
+
+  \item @{system_option auto_time_limit} (default 2.0) determines the
+  timeout (in seconds) for each tool execution individually.
+
+  \item @{system_option auto_time_start} (default 1.0) determines the
+  start delay (in seconds) for automatically tried tools, after the
+  main command evaluation is finished.
+
+  \end{itemize}
+
+  Each tool is submitted independently to the pool of parallel
+  execution tasks in Isabelle/ML, using hardwired priorities according
+  to its relative ``heaviness''.  The main stages of evaluation and
+  printing of proof states take precedence, but an already running
+  tool is not canceled and may thus reduce reactivity of proof
+  document processing.
+
+  Users should experiment how the available CPU resources (number of
+  cores) are best invested to get additional feedback from prover in
+  the background, by using weaker or stronger tools.  *}
 
 
 section {* Sledgehammer \label{sec:sledgehammer} *}
--- a/src/Doc/ROOT	Wed Oct 30 21:23:47 2013 +0100
+++ b/src/Doc/ROOT	Thu Oct 31 16:10:35 2013 +0100
@@ -143,7 +143,7 @@
     "document/showsymbols"
     "document/style.sty"
 
-session JEdit (doc) in "JEdit" = Pure +
+session JEdit (doc) in "JEdit" = HOL +
   options [document_variants = "jedit", thy_output_source]
   theories
     JEdit