doc-src/IsarRef/Thy/document/ML_Tactic.tex
author webertj
Fri, 17 Aug 2012 20:31:12 +0200
changeset 48853 ec82c33c75f8
parent 46273 48cf461535cf
permissions -rw-r--r--
Typo fixed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     1
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
     3
\def\isabellecontext{ML{\isaliteral{5F}{\isacharunderscore}}Tactic}%
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     4
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     6
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     7
\endisadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     8
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
     9
\isatagtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    10
\isacommand{theory}\isamarkupfalse%
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    11
\ ML{\isaliteral{5F}{\isacharunderscore}}Tactic\isanewline
42651
e3fdb7c96be5 formal Base theory;
wenzelm
parents: 42626
diff changeset
    12
\isakeyword{imports}\ Base\ Main\isanewline
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    13
\isakeyword{begin}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    14
\endisatagtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    15
{\isafoldtheory}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    16
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    17
\isadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    18
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    19
\endisadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    20
%
26852
a31203f58b20 misc tuning;
wenzelm
parents: 26846
diff changeset
    21
\isamarkupchapter{ML tactic expressions%
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    22
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    23
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    24
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    25
\begin{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    26
Isar Proof methods closely resemble traditional tactics, when used
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
    27
  in unstructured sequences of \hyperlink{command.apply}{\mbox{\isa{\isacommand{apply}}}} commands.
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    28
  Isabelle/Isar provides emulations for all major ML tactics of
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    29
  classic Isabelle --- mostly for the sake of easy porting of existing
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    30
  developments, as actual Isar proof texts would demand much less
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    31
  diversity of proof methods.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    32
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    33
  Unlike tactic expressions in ML, Isar proof methods provide proper
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    34
  concrete syntax for additional arguments, options, modifiers etc.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    35
  Thus a typical method text is usually more concise than the
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    36
  corresponding ML tactic.  Furthermore, the Isar versions of classic
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    37
  Isabelle tactics often cover several variant forms by a single
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    38
  method with separate options to tune the behavior.  For example,
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
    39
  method \hyperlink{method.simp}{\mbox{\isa{simp}}} replaces all of \verb|simp_tac|~/ \verb|asm_simp_tac|~/ \verb|full_simp_tac|~/ \verb|asm_full_simp_tac|, there
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    40
  is also concrete syntax for augmenting the Simplifier context (the
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    41
  current ``simpset'') in a convenient way.%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    42
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    43
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    44
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    45
\isamarkupsection{Resolution tactics%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    46
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    47
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    48
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    49
\begin{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    50
Classic Isabelle provides several variant forms of tactics for
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    51
  single-step rule applications (based on higher-order resolution).
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    52
  The space of resolution tactics has the following main dimensions.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    53
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    54
  \begin{enumerate}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    55
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    56
  \item The ``mode'' of resolution: intro, elim, destruct, or forward
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    57
  (e.g.\ \verb|resolve_tac|, \verb|eresolve_tac|, \verb|dresolve_tac|,
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    58
  \verb|forward_tac|).
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    59
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    60
  \item Optional explicit instantiation (e.g.\ \verb|resolve_tac| vs.\
27249
f339dc43ce9f updated generated file;
wenzelm
parents: 27210
diff changeset
    61
  \verb|res_inst_tac|).
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    62
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    63
  \item Abbreviations for singleton arguments (e.g.\ \verb|resolve_tac|
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    64
  vs.\ \verb|rtac|).
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    65
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    66
  \end{enumerate}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    67
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    68
  Basically, the set of Isar tactic emulations \hyperlink{method.rule-tac}{\mbox{\isa{rule{\isaliteral{5F}{\isacharunderscore}}tac}}},
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    69
  \hyperlink{method.erule-tac}{\mbox{\isa{erule{\isaliteral{5F}{\isacharunderscore}}tac}}}, \hyperlink{method.drule-tac}{\mbox{\isa{drule{\isaliteral{5F}{\isacharunderscore}}tac}}}, \hyperlink{method.frule-tac}{\mbox{\isa{frule{\isaliteral{5F}{\isacharunderscore}}tac}}} (see
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    70
  \secref{sec:tactics}) would be sufficient to cover the four modes,
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    71
  either with or without instantiation, and either with single or
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    72
  multiple arguments.  Although it is more convenient in most cases to
42626
6ac8c55c657e eliminated some duplicate "def" positions;
wenzelm
parents: 40406
diff changeset
    73
  use the plain \indexref{Pure}{method}{rule}\hyperlink{method.Pure.rule}{\mbox{\isa{rule}}} method, or any of its
6ac8c55c657e eliminated some duplicate "def" positions;
wenzelm
parents: 40406
diff changeset
    74
  ``improper'' variants \hyperlink{method.erule}{\mbox{\isa{erule}}}, \hyperlink{method.drule}{\mbox{\isa{drule}}}, \hyperlink{method.frule}{\mbox{\isa{frule}}}.  Note that explicit goal addressing is only supported by the
6ac8c55c657e eliminated some duplicate "def" positions;
wenzelm
parents: 40406
diff changeset
    75
  actual \hyperlink{method.rule-tac}{\mbox{\isa{rule{\isaliteral{5F}{\isacharunderscore}}tac}}} version.
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    76
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    77
  With this in mind, plain resolution tactics correspond to Isar
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    78
  methods as follows.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    79
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    80
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    81
  \begin{tabular}{lll}
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    82
    \verb|rtac|~\isa{{\isaliteral{22}{\isachardoublequote}}a\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}rule\ a{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    83
    \verb|resolve_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5B}{\isacharbrackleft}}a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}rule\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    84
    \verb|res_inst_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}ctxt\ {\isaliteral{5B}{\isacharbrackleft}}{\isaliteral{28}{\isacharparenleft}}x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ t\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{29}{\isacharparenright}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}\ a\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & &
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    85
    \isa{{\isaliteral{22}{\isachardoublequote}}rule{\isaliteral{5F}{\isacharunderscore}}tac\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{3D}{\isacharequal}}\ t\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C414E443E}{\isasymAND}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ {\isaliteral{5C3C494E3E}{\isasymIN}}\ a{\isaliteral{22}{\isachardoublequote}}} \\[0.5ex]
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    86
    \verb|rtac|~\isa{{\isaliteral{22}{\isachardoublequote}}a\ i{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}rule{\isaliteral{5F}{\isacharunderscore}}tac\ {\isaliteral{5B}{\isacharbrackleft}}i{\isaliteral{5D}{\isacharbrackright}}\ a{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    87
    \verb|resolve_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5B}{\isacharbrackleft}}a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}\ i{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}rule{\isaliteral{5F}{\isacharunderscore}}tac\ {\isaliteral{5B}{\isacharbrackleft}}i{\isaliteral{5D}{\isacharbrackright}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    88
    \verb|res_inst_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}ctxt\ {\isaliteral{5B}{\isacharbrackleft}}{\isaliteral{28}{\isacharparenleft}}x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ t\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{29}{\isacharparenright}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}\ a\ i{\isaliteral{22}{\isachardoublequote}}} & &
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
    89
    \isa{{\isaliteral{22}{\isachardoublequote}}rule{\isaliteral{5F}{\isacharunderscore}}tac\ {\isaliteral{5B}{\isacharbrackleft}}i{\isaliteral{5D}{\isacharbrackright}}\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{3D}{\isacharequal}}\ t\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C414E443E}{\isasymAND}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ {\isaliteral{5C3C494E3E}{\isasymIN}}\ a{\isaliteral{22}{\isachardoublequote}}} \\
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    90
  \end{tabular}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    91
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    92
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    93
  Note that explicit goal addressing may be usually avoided by
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
    94
  changing the order of subgoals with \hyperlink{command.defer}{\mbox{\isa{\isacommand{defer}}}} or \hyperlink{command.prefer}{\mbox{\isa{\isacommand{prefer}}}} (see \secref{sec:tactic-commands}).%
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    95
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    96
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    97
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    98
\isamarkupsection{Simplifier tactics%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
    99
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   100
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   101
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   102
\begin{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   103
The main Simplifier tactics \verb|simp_tac| and variants (cf.\
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
   104
  \cite{isabelle-ref}) are all covered by the \hyperlink{method.simp}{\mbox{\isa{simp}}} and
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   105
  \hyperlink{method.simp-all}{\mbox{\isa{simp{\isaliteral{5F}{\isacharunderscore}}all}}} methods (see \secref{sec:simplifier}).  Note that
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   106
  there is no individual goal addressing available, simplification
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
   107
  acts either on the first goal (\hyperlink{method.simp}{\mbox{\isa{simp}}}) or all goals
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   108
  (\hyperlink{method.simp-all}{\mbox{\isa{simp{\isaliteral{5F}{\isacharunderscore}}all}}}).
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   109
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   110
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   111
  \begin{tabular}{lll}
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   112
    \verb|asm_full_simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \hyperlink{method.simp}{\mbox{\isa{simp}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   113
    \verb|ALLGOALS|~(\verb|asm_full_simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}) & & \hyperlink{method.simp-all}{\mbox{\isa{simp{\isaliteral{5F}{\isacharunderscore}}all}}} \\[0.5ex]
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   114
    \verb|simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \hyperlink{method.simp}{\mbox{\isa{simp}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}no{\isaliteral{5F}{\isacharunderscore}}asm{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   115
    \verb|asm_simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \hyperlink{method.simp}{\mbox{\isa{simp}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}no{\isaliteral{5F}{\isacharunderscore}}asm{\isaliteral{5F}{\isacharunderscore}}simp{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   116
    \verb|full_simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \hyperlink{method.simp}{\mbox{\isa{simp}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}no{\isaliteral{5F}{\isacharunderscore}}asm{\isaliteral{5F}{\isacharunderscore}}use{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   117
    \verb|asm_lr_simp_tac|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}simpset{\isaliteral{7D}{\isacharbraceright}}\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \hyperlink{method.simp}{\mbox{\isa{simp}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}asm{\isaliteral{5F}{\isacharunderscore}}lr{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} \\
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   118
  \end{tabular}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   119
  \medskip%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   120
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   121
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   122
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   123
\isamarkupsection{Classical Reasoner tactics%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   124
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   125
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   126
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   127
\begin{isamarkuptext}%
46272
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   128
The Classical Reasoner provides a rather large number of
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   129
  variations of automated tactics, such as \verb|blast_tac|, \verb|fast_tac|, \verb|clarify_tac| etc.  The corresponding Isar methods
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   130
  usually share the same base name, such as \hyperlink{method.blast}{\mbox{\isa{blast}}}, \hyperlink{method.fast}{\mbox{\isa{fast}}}, \hyperlink{method.clarify}{\mbox{\isa{clarify}}} etc.\ (see \secref{sec:classical}).%
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   131
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   132
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   133
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   134
\isamarkupsection{Miscellaneous tactics%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   135
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   136
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   137
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   138
\begin{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   139
There are a few additional tactics defined in various theories of
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   140
  Isabelle/HOL, some of these also in Isabelle/FOL or Isabelle/ZF.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   141
  The most common ones of these may be ported to Isar as follows.
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   142
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   143
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   144
  \begin{tabular}{lll}
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   145
    \verb|stac|~\isa{{\isaliteral{22}{\isachardoublequote}}a\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}subst\ a{\isaliteral{22}{\isachardoublequote}}} \\
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   146
    \verb|hyp_subst_tac|~\isa{{\isadigit{1}}} & & \isa{hypsubst} \\
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   147
    \verb|strip_tac|~\isa{{\isadigit{1}}} & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C617070726F783E}{\isasymapprox}}{\isaliteral{22}{\isachardoublequote}}} & \isa{{\isaliteral{22}{\isachardoublequote}}intro\ strip{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   148
    \verb|split_all_tac|~\isa{{\isadigit{1}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}simp\ {\isaliteral{28}{\isacharparenleft}}no{\isaliteral{5F}{\isacharunderscore}}asm{\isaliteral{5F}{\isacharunderscore}}simp{\isaliteral{29}{\isacharparenright}}\ only{\isaliteral{3A}{\isacharcolon}}\ split{\isaliteral{5F}{\isacharunderscore}}tupled{\isaliteral{5F}{\isacharunderscore}}all{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   149
      & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C617070726F783E}{\isasymapprox}}{\isaliteral{22}{\isachardoublequote}}} & \isa{{\isaliteral{22}{\isachardoublequote}}simp\ only{\isaliteral{3A}{\isacharcolon}}\ split{\isaliteral{5F}{\isacharunderscore}}tupled{\isaliteral{5F}{\isacharunderscore}}all{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   150
      & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C6C6C6573733E}{\isasymlless}}{\isaliteral{22}{\isachardoublequote}}} & \isa{{\isaliteral{22}{\isachardoublequote}}clarify{\isaliteral{22}{\isachardoublequote}}} \\
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   151
  \end{tabular}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   152
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   153
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   154
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   155
\isamarkupsection{Tacticals%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   156
}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   157
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   158
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   159
\begin{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   160
Classic Isabelle provides a huge amount of tacticals for combination
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   161
  and modification of existing tactics.  This has been greatly reduced
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   162
  in Isar, providing the bare minimum of combinators only: ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{2C}{\isacharcomma}}{\isaliteral{22}{\isachardoublequote}}}'' (sequential composition), ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{7C}{\isacharbar}}{\isaliteral{22}{\isachardoublequote}}}'' (alternative
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   163
  choices), ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}}'' (try), ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}}'' (repeat at least
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   164
  once).  These are usually sufficient in practice; if all fails,
26902
8db1e960d636 updated generated file;
wenzelm
parents: 26852
diff changeset
   165
  arbitrary ML tactic code may be invoked via the \hyperlink{method.tactic}{\mbox{\isa{tactic}}}
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   166
  method (see \secref{sec:tactics}).
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   167
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   168
  \medskip Common ML tacticals may be expressed directly in Isar as
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   169
  follows:
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   170
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   171
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   172
  \begin{tabular}{lll}
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   173
    \isa{{\isaliteral{22}{\isachardoublequote}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}}~\verb|THEN|~\isa{{\isaliteral{22}{\isachardoublequote}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{2}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{2}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   174
    \isa{{\isaliteral{22}{\isachardoublequote}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}}~\verb|ORELSE|~\isa{{\isaliteral{22}{\isachardoublequote}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{2}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{7C}{\isacharbar}}\ meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{2}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   175
    \verb|TRY|~\isa{tac} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   176
    \verb|REPEAT1|~\isa{tac} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   177
    \verb|REPEAT|~\isa{tac} & & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{28}{\isacharparenleft}}meth{\isaliteral{2B}{\isacharplus}}{\isaliteral{29}{\isacharparenright}}{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   178
    \verb|EVERY|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5B}{\isacharbrackleft}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   179
    \verb|FIRST|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5B}{\isacharbrackleft}}tac\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}{\isaliteral{2C}{\isacharcomma}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{5D}{\isacharbrackright}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{7C}{\isacharbar}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}} \\
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   180
  \end{tabular}
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   181
  \medskip
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   182
46272
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   183
  \medskip \verb|CHANGED| (see \cite{isabelle-implementation}) is
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   184
  usually not required in Isar, since most basic proof methods already
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   185
  fail unless there is an actual change in the goal state.
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   186
  Nevertheless, ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}}''  (try) may be used to accept
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   187
  \emph{unchanged} results as well.
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   188
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   189
  \medskip \verb|ALLGOALS|, \verb|SOMEGOAL| etc.\ (see
46272
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   190
  \cite{isabelle-implementation}) are not available in Isar, since
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   191
  there is no direct goal addressing.  Nevertheless, some basic
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   192
  methods address all goals internally, notably \hyperlink{method.simp-all}{\mbox{\isa{simp{\isaliteral{5F}{\isacharunderscore}}all}}}
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   193
  (see \secref{sec:simplifier}).  Also note that \verb|ALLGOALS| can be
40406
313a24b66a8d updated generated files;
wenzelm
parents: 30172
diff changeset
   194
  often replaced by ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}}'' (repeat at least once), although
46272
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   195
  this usually has a different operational behavior: subgoals are
0de85de15e52 updated citations;
wenzelm
parents: 42651
diff changeset
   196
  solved in a different order.
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   197
46273
wenzelm
parents: 46272
diff changeset
   198
  \medskip Iterated resolution, such as
wenzelm
parents: 46272
diff changeset
   199
  \verb|REPEAT (FIRSTGOAL (resolve_tac ...))|, is usually better
wenzelm
parents: 46272
diff changeset
   200
  expressed using the \hyperlink{method.intro}{\mbox{\isa{intro}}} and \hyperlink{method.elim}{\mbox{\isa{elim}}} methods of
wenzelm
parents: 46272
diff changeset
   201
  Isar (see \secref{sec:classical}).%
26846
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   202
\end{isamarkuptext}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   203
\isamarkuptrue%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   204
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   205
\isadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   206
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   207
\endisadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   208
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   209
\isatagtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   210
\isacommand{end}\isamarkupfalse%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   211
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   212
\endisatagtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   213
{\isafoldtheory}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   214
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   215
\isadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   216
%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   217
\endisadelimtheory
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   218
\isanewline
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   219
\end{isabellebody}%
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   220
%%% Local Variables:
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   221
%%% mode: latex
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   222
%%% TeX-master: "root"
2e6726015771 removed obsolete conversion guide -- converted only section on tactics;
wenzelm
parents:
diff changeset
   223
%%% End: