doc-src/IsarRef/Thy/document/Misc.tex
changeset 27598 b66e257b75f5
parent 27054 f1ef0973d0a8
child 28788 ff9d8a8932e4
equal deleted inserted replaced
27597:beb9b5f07dbc 27598:b66e257b75f5
   210 \isamarkuptrue%
   210 \isamarkuptrue%
   211 %
   211 %
   212 \begin{isamarkuptext}%
   212 \begin{isamarkuptext}%
   213 \begin{matharray}{rcl}
   213 \begin{matharray}{rcl}
   214     \indexdef{}{command}{undo}\hypertarget{command.undo}{\hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   214     \indexdef{}{command}{undo}\hypertarget{command.undo}{\hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   215     \indexdef{}{command}{redo}\hypertarget{command.redo}{\hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   215     \indexdef{}{command}{linear\_undo}\hypertarget{command.linear-undo}{\hyperlink{command.linear-undo}{\mbox{\isa{\isacommand{linear{\isacharunderscore}undo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   216     \indexdef{}{command}{kill}\hypertarget{command.kill}{\hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   216     \indexdef{}{command}{kill}\hypertarget{command.kill}{\hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
   217   \end{matharray}
   217   \end{matharray}
   218 
   218 
   219   The Isabelle/Isar top-level maintains a two-stage history, for
   219   The Isabelle/Isar top-level maintains a two-stage history, for
   220   theory and proof state transformation.  Basically, any command can
   220   theory and proof state transformation.  Basically, any command can
   221   be undone using \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, excluding mere diagnostic
   221   be undone using \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, excluding mere diagnostic
   222   elements.  Its effect may be revoked via \hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}, unless
   222   elements.  Note that a theorem statement with a \emph{finished}
   223   the corresponding \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}} step has crossed the beginning
   223   proof is treated as a single unit by \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}.  In
   224   of a proof or theory.  The \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}} command aborts the
   224   contrast, the variant \hyperlink{command.linear-undo}{\mbox{\isa{\isacommand{linear{\isacharunderscore}undo}}}} admits to step back
   225   current history node altogether, discontinuing a proof or even the
   225   into the middle of a proof.  The \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}} command aborts
   226   whole theory.  This operation is \emph{not} undo-able.
   226   the current history node altogether, discontinuing a proof or even
       
   227   the whole theory.  This operation is \emph{not} undo-able.
   227 
   228 
   228   \begin{warn}
   229   \begin{warn}
   229     History commands should never be used with user interfaces such as
   230     History commands should never be used with user interfaces such as
   230     Proof~General \cite{proofgeneral,Aspinall:TACAS:2000}, which takes
   231     Proof~General \cite{proofgeneral,Aspinall:TACAS:2000}, which takes
   231     care of stepping forth and back itself.  Interfering by manual
   232     care of stepping forth and back itself.  Interfering by manual
   232     \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, \hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}, or even \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}}
   233     \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, \hyperlink{command.linear-undo}{\mbox{\isa{\isacommand{linear{\isacharunderscore}undo}}}}, or even \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}} commands would quickly result in utter confusion.
   233     commands would quickly result in utter confusion.
       
   234   \end{warn}%
   234   \end{warn}%
   235 \end{isamarkuptext}%
   235 \end{isamarkuptext}%
   236 \isamarkuptrue%
   236 \isamarkuptrue%
   237 %
   237 %
   238 \isamarkupsection{System commands%
   238 \isamarkupsection{System commands%