| author | kuncar | 
| Wed, 02 May 2012 18:26:10 +0200 | |
| changeset 47852 | 0c3b8d036a5c | 
| parent 46273 | 48cf461535cf | 
| permissions | -rw-r--r-- | 
| 
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 | 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 | 11  | 
\ ML{\isaliteral{5F}{\isacharunderscore}}Tactic\isanewline
 | 
| 42651 | 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 | 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 | 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 | 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 | 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 | 68  | 
  Basically, the set of Isar tactic emulations \hyperlink{method.rule-tac}{\mbox{\isa{rule{\isaliteral{5F}{\isacharunderscore}}tac}}},
 | 
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 | 73  | 
  use the plain \indexref{Pure}{method}{rule}\hyperlink{method.Pure.rule}{\mbox{\isa{rule}}} method, or any of its
 | 
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
 | 
|
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 | 82  | 
    \verb|rtac|~\isa{{\isaliteral{22}{\isachardoublequote}}a\ {\isadigit{1}}{\isaliteral{22}{\isachardoublequote}}} & & \isa{{\isaliteral{22}{\isachardoublequote}}rule\ a{\isaliteral{22}{\isachardoublequote}}} \\
 | 
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}}} \\
 | 
|
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}}} & &
 | 
|
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]
 | 
|
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}}} \\
 | 
|
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}}} \\
 | 
|
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}}} & &
 | 
|
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 | 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 | 104  | 
  \cite{isabelle-ref}) are all covered by the \hyperlink{method.simp}{\mbox{\isa{simp}}} and
 | 
| 40406 | 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 | 107  | 
  acts either on the first goal (\hyperlink{method.simp}{\mbox{\isa{simp}}}) or all goals
 | 
| 40406 | 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 | 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}}} \\
 | 
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]
 | 
|
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}}} \\
 | 
|
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}}} \\
 | 
|
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}}} \\
 | 
|
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 | 128  | 
The Classical Reasoner provides a rather large number of  | 
129  | 
variations of automated tactics, such as \verb|blast_tac|, \verb|fast_tac|, \verb|clarify_tac| etc. The corresponding Isar methods  | 
|
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 | 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 | 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}}} \\
 | 
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}}} \\
 | 
|
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}}} \\
 | 
|
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 | 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
 | 
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 | 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 | 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}}} \\
 | 
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}}} \\
 | 
|
175  | 
    \verb|TRY|~\isa{tac} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
176  | 
    \verb|REPEAT1|~\isa{tac} & & \isa{{\isaliteral{22}{\isachardoublequote}}meth{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
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}}} \\
 | 
|
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}}} \\
 | 
|
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 | 183  | 
  \medskip \verb|CHANGED| (see \cite{isabelle-implementation}) is
 | 
184  | 
usually not required in Isar, since most basic proof methods already  | 
|
185  | 
fail unless there is an actual change in the goal state.  | 
|
186  | 
  Nevertheless, ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3F}{\isacharquery}}{\isaliteral{22}{\isachardoublequote}}}''  (try) may be used to accept
 | 
|
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 | 190  | 
  \cite{isabelle-implementation}) are not available in Isar, since
 | 
191  | 
there is no direct goal addressing. Nevertheless, some basic  | 
|
192  | 
  methods address all goals internally, notably \hyperlink{method.simp-all}{\mbox{\isa{simp{\isaliteral{5F}{\isacharunderscore}}all}}}
 | 
|
193  | 
  (see \secref{sec:simplifier}).  Also note that \verb|ALLGOALS| can be
 | 
|
| 40406 | 194  | 
  often replaced by ``\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}}'' (repeat at least once), although
 | 
| 46272 | 195  | 
this usually has a different operational behavior: subgoals are  | 
196  | 
solved in a different order.  | 
|
| 
26846
 
2e6726015771
removed obsolete conversion guide -- converted only section on tactics;
 
wenzelm 
parents:  
diff
changeset
 | 
197  | 
|
| 46273 | 198  | 
\medskip Iterated resolution, such as  | 
199  | 
\verb|REPEAT (FIRSTGOAL (resolve_tac ...))|, is usually better  | 
|
200  | 
  expressed using the \hyperlink{method.intro}{\mbox{\isa{intro}}} and \hyperlink{method.elim}{\mbox{\isa{elim}}} methods of
 | 
|
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:  |