doc-src/IsarRef/generic.tex
changeset 10741 e56ac1863f2c
parent 10627 dc3eff1b7556
child 10858 479dad7b3b41
equal deleted inserted replaced
10740:8256cfec2040 10741:e56ac1863f2c
   278 \indexisarmeth{unfold}\indexisarmeth{fold}\indexisarmeth{insert}
   278 \indexisarmeth{unfold}\indexisarmeth{fold}\indexisarmeth{insert}
   279 \indexisarmeth{erule}\indexisarmeth{drule}\indexisarmeth{frule}
   279 \indexisarmeth{erule}\indexisarmeth{drule}\indexisarmeth{frule}
   280 \indexisarmeth{fail}\indexisarmeth{succeed}
   280 \indexisarmeth{fail}\indexisarmeth{succeed}
   281 \begin{matharray}{rcl}
   281 \begin{matharray}{rcl}
   282   unfold & : & \isarmeth \\
   282   unfold & : & \isarmeth \\
   283   fold & : & \isarmeth \\[0.5ex]
   283   fold & : & \isarmeth \\
   284   insert^* & : & \isarmeth \\[0.5ex]
   284   insert & : & \isarmeth \\[0.5ex]
   285   erule^* & : & \isarmeth \\
   285   erule^* & : & \isarmeth \\
   286   drule^* & : & \isarmeth \\
   286   drule^* & : & \isarmeth \\
   287   frule^* & : & \isarmeth \\[0.5ex]
   287   frule^* & : & \isarmeth \\[0.5ex]
   288   succeed & : & \isarmeth \\
   288   succeed & : & \isarmeth \\
   289   fail & : & \isarmeth \\
   289   fail & : & \isarmeth \\
   290 \end{matharray}
   290 \end{matharray}
   291 
   291 
   292 \begin{rail}
   292 \begin{rail}
   293   ('fold' | 'unfold' | 'insert' | 'erule' | 'drule' | 'frule') thmrefs
   293   ('fold' | 'unfold' | 'insert') thmrefs
       
   294   ;
       
   295   ('erule' | 'drule' | 'frule') ('('nat')')? thmrefs
   294   ;
   296   ;
   295 \end{rail}
   297 \end{rail}
   296 
   298 
   297 \begin{descr}
   299 \begin{descr}
   298 \item [$unfold~\vec a$ and $fold~\vec a$] expand and fold back again the given
   300 \item [$unfold~\vec a$ and $fold~\vec a$] expand and fold back again the given
   299   meta-level definitions throughout all goals; any facts provided are inserted
   301   meta-level definitions throughout all goals; any facts provided are inserted
   300   into the goal and subject to rewriting as well.
   302   into the goal and subject to rewriting as well.
       
   303 \item [$insert~\vec a$] inserts theorems as facts into all goals of the proof
       
   304   state.  Note that current facts indicated for forward chaining are ignored.
   301 \item [$erule~\vec a$, $drule~\vec a$, and $frule~\vec a$] are similar to the
   305 \item [$erule~\vec a$, $drule~\vec a$, and $frule~\vec a$] are similar to the
   302   basic $rule$ method (see \S\ref{sec:pure-meth-att}), but apply rules by
   306   basic $rule$ method (see \S\ref{sec:pure-meth-att}), but apply rules by
   303   elim-resolution, destruct-resolution, and forward-resolution, respectively
   307   elim-resolution, destruct-resolution, and forward-resolution, respectively
   304   \cite{isabelle-ref}.  These are improper method, mainly for experimentation
   308   \cite{isabelle-ref}.  The optional natural number argument (default $0$)
   305   and emulating tactic scripts.
   309   specifies additional assumption steps to be performed.
   306 
   310   
   307   Different modes of basic rule application are usually expressed in Isar at
   311   Note that these methods are improper ones, mainly serving for
   308   the proof language level, rather than via implicit proof state
   312   experimentation and tactic script emulation.  Different modes of basic rule
   309   manipulations.  For example, a proper single-step elimination would be done
   313   application are usually expressed in Isar at the proof language level,
   310   using the basic $rule$ method, with forward chaining of current facts.
   314   rather than via implicit proof state manipulations.  For example, a proper
   311 \item [$insert~\vec a$] inserts theorems as facts into all goals of the proof
   315   single-step elimination would be done using the basic $rule$ method, with
   312   state.  Note that current facts indicated for forward chaining are ignored.
   316   forward chaining of current facts.
   313 \item [$succeed$] yields a single (unchanged) result; it is the identity of
   317 \item [$succeed$] yields a single (unchanged) result; it is the identity of
   314   the ``\texttt{,}'' method combinator (cf.\ \S\ref{sec:syn-meth}).
   318   the ``\texttt{,}'' method combinator (cf.\ \S\ref{sec:syn-meth}).
   315 \item [$fail$] yields an empty result sequence; it is the identity of the
   319 \item [$fail$] yields an empty result sequence; it is the identity of the
   316   ``\texttt{|}'' method combinator (cf.\ \S\ref{sec:syn-meth}).
   320   ``\texttt{|}'' method combinator (cf.\ \S\ref{sec:syn-meth}).
   317 \end{descr}
   321 \end{descr}