emacs local vars;
authorwenzelm
Mon, 24 Aug 1998 19:11:13 +0200
changeset 5370 ba0470fe09fc
parent 5369 8384e01b6cf8
child 5371 e27558a68b8d
emacs local vars; added conversions (Simplifier.rewrite etc.); updated tracing example; fixed theory setup;
doc-src/Ref/simplifier.tex
--- a/doc-src/Ref/simplifier.tex	Mon Aug 24 18:58:12 1998 +0200
+++ b/doc-src/Ref/simplifier.tex	Mon Aug 24 19:11:13 1998 +0200
@@ -703,26 +703,34 @@
 \end{warn}
 
 
-\section{Forward simplification rules}
-\index{simplification!forward rules}
-\begin{ttbox}\index{*simplify}\index{*asm_simplify}\index{*full_simplify}\index{*asm_full_simplify}
+\section{Forward rules and conversions}
+\index{simplification!forward rules}\index{simplification!conversions}
+\begin{ttbox}\index{*simplify}\index{*asm_simplify}\index{*full_simplify}\index{*asm_full_simplify}\index{*Simplifier.rewrite}\index{*Simplifier.asm_rewrite}\index{*Simplifier.full_rewrite}\index{*Simplifier.asm_full_rewrite}
 simplify          : simpset -> thm -> thm
 asm_simplify      : simpset -> thm -> thm
 full_simplify     : simpset -> thm -> thm
-asm_full_simplify : simpset -> thm -> thm
+asm_full_simplify : simpset -> thm -> thm\medskip
+Simplifier.rewrite           : simpset -> cterm -> thm
+Simplifier.asm_rewrite       : simpset -> cterm -> thm
+Simplifier.full_rewrite      : simpset -> cterm -> thm
+Simplifier.asm_full_rewrite  : simpset -> cterm -> thm
 \end{ttbox}
 
-These functions provide \emph{forward} rules for simplification.
-Their effect is analogous to the corresponding tactics described in
-\S\ref{simp-tactics}, but affect the whole theorem instead of just a
-certain subgoal.  Also note that the looper~/ solver process as
-described in \S\ref{sec:simp-looper} and \S\ref{sec:simp-solver} is
-omitted in forward simplification.
+The first four of these functions provide \emph{forward} rules for
+simplification.  Their effect is analogous to the corresponding
+tactics described in \S\ref{simp-tactics}, but affect the whole
+theorem instead of just a certain subgoal.  Also note that the
+looper~/ solver process as described in \S\ref{sec:simp-looper} and
+\S\ref{sec:simp-solver} is omitted in forward simplification.
+
+The latter four are \emph{conversions}, establishing proven equations
+of the form $t \equiv u$ where the l.h.s.\ $t$ has been given as
+argument.
 
 \begin{warn}
-  Forward simplification should be used rarely in ordinary proof
-  scripts.  It as mainly intended to provide an internal interface to
-  the simplifier for special utilities.
+  Forward simplification rules and conversions should be used rarely
+  in ordinary proof scripts.  The main intention is to provide an
+  internal interface to the simplifier for special utilities.
 \end{warn}
 
 
@@ -816,19 +824,27 @@
 by (Asm_simp_tac 1);
 \ttbreak
 {\out Adding rewrite rule:}
-{\out .x + Suc(n) == Suc(.x + n)}
+{\out .x + Suc n == Suc (.x + n)}
 \ttbreak
+{\out Applying instance of rewrite rule:}
+{\out ?m + Suc ?n == Suc (?m + ?n)}
 {\out Rewriting:}
-{\out Suc(.x) + Suc(n) == Suc(.x + Suc(n))}
+{\out Suc .x + Suc n == Suc (Suc .x + n)}
 \ttbreak
+{\out Applying instance of rewrite rule:}
+{\out Suc ?m + ?n == Suc (?m + ?n)}
 {\out Rewriting:}
-{\out .x + Suc(n) == Suc(.x + n)}
+{\out Suc .x + n == Suc (.x + n)}
 \ttbreak
+{\out Applying instance of rewrite rule:}
+{\out Suc ?m + ?n == Suc (?m + ?n)}
 {\out Rewriting:}
-{\out Suc(.x) + n == Suc(.x + n)}
+{\out Suc .x + n == Suc (.x + n)}
 \ttbreak
+{\out Applying instance of rewrite rule:}
+{\out ?x = ?x == True}
 {\out Rewriting:}
-{\out Suc(Suc(.x + n)) = Suc(Suc(.x + n)) == True}
+{\out Suc (Suc (.x + n)) = Suc (Suc (.x + n)) == True}
 \ttbreak
 {\out Level 3}
 {\out m + Suc(n) = Suc(m + n)}
@@ -1424,21 +1440,27 @@
 \end{ttbox}
 
 
-\subsection{Theory data for implicit simpsets}
-\begin{ttbox}\indexbold{*simpset_thy_data}
-simpset_thy_data: string * (object * (object -> object) *
-    (object * object -> object) * (Sign.sg -> object -> unit))
+\subsection{Theory setup}\index{simplification!setting up the theory}
+\begin{ttbox}\indexbold{*Simplifier.setup}\index{*setup!simplifier}
+Simplifier.setup: (theory -> theory) list
 \end{ttbox}
 
-Theory data for implicit simpsets has to be set up explicitly.  The
-simplifier already provides an appropriate data kind definition
-record.  This has to be installed into the base theory of any new
-object-logic as \ttindexbold{thy_data} within the \texttt{ML} section.
+Advanced theory related features of the simplifier (e.g.\ implicit
+simpset support) have to be set up explicitly.  The simplifier already
+provides a suitable setup function definition.  This has to be
+installed into the base theory of any new object-logic via a
+\texttt{setup} declaration.
 
-This is done at the end of \texttt{IFOL.thy} as follows:
+For example, this is done in \texttt{FOL/IFOL.thy} as follows:
 \begin{ttbox}
-ML val thy_data = [Simplifier.simpset_thy_data];
+setup Simplifier.setup
 \end{ttbox}
 
 
 \index{simplification|)}
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "ref"
+%%% End: