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% |