doc-src/IsarRef/generic.tex
author wenzelm
Sun, 22 Aug 1999 21:13:20 +0200
changeset 7315 76a39a3784b5
parent 7175 8263d0b50e12
child 7319 3907d597cae6
permissions -rw-r--r--
checkpoint;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7135
wenzelm
parents:
diff changeset
     1
7167
wenzelm
parents: 7141
diff changeset
     2
\chapter{Generic Tools and Packages}\label{ch:gen-tools}
wenzelm
parents: 7141
diff changeset
     3
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
     4
\section{Basic proof methods}\label{sec:pure-meth}
7167
wenzelm
parents: 7141
diff changeset
     5
wenzelm
parents: 7141
diff changeset
     6
\indexisarmeth{fail}\indexisarmeth{succeed}\indexisarmeth{$-$}\indexisarmeth{assumption}
wenzelm
parents: 7141
diff changeset
     7
\indexisarmeth{finish}\indexisarmeth{fold}\indexisarmeth{unfold}
wenzelm
parents: 7141
diff changeset
     8
\indexisarmeth{rule}\indexisarmeth{erule}
wenzelm
parents: 7141
diff changeset
     9
\begin{matharray}{rcl}
wenzelm
parents: 7141
diff changeset
    10
  fail & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    11
  succeed & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    12
  - & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    13
  assumption & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    14
  finish & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    15
  fold & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    16
  unfold & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    17
  rule & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    18
  erule^* & : & \isarmeth \\
wenzelm
parents: 7141
diff changeset
    19
\end{matharray}
wenzelm
parents: 7141
diff changeset
    20
wenzelm
parents: 7141
diff changeset
    21
\begin{rail}
wenzelm
parents: 7141
diff changeset
    22
  ('fold' | 'unfold' | 'rule' | 'erule') thmrefs
wenzelm
parents: 7141
diff changeset
    23
  ;
wenzelm
parents: 7141
diff changeset
    24
\end{rail}
wenzelm
parents: 7141
diff changeset
    25
wenzelm
parents: 7141
diff changeset
    26
\begin{descr}
wenzelm
parents: 7141
diff changeset
    27
\item [$ $]
wenzelm
parents: 7141
diff changeset
    28
\end{descr}
wenzelm
parents: 7141
diff changeset
    29
wenzelm
parents: 7141
diff changeset
    30
FIXME
wenzelm
parents: 7141
diff changeset
    31
wenzelm
parents: 7141
diff changeset
    32
%FIXME sort
wenzelm
parents: 7141
diff changeset
    33
%FIXME thmref (single)
wenzelm
parents: 7141
diff changeset
    34
%FIXME var vs. term
wenzelm
parents: 7141
diff changeset
    35
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    36
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    37
\section{Miscellaneous attributes}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    38
7167
wenzelm
parents: 7141
diff changeset
    39
\indexisaratt{tag}\indexisaratt{untag}\indexisaratt{COMP}\indexisaratt{RS}
wenzelm
parents: 7141
diff changeset
    40
\indexisaratt{OF}\indexisaratt{where}\indexisaratt{of}\indexisaratt{standard}
wenzelm
parents: 7141
diff changeset
    41
\indexisaratt{elimify}\indexisaratt{transfer}\indexisaratt{export}
wenzelm
parents: 7141
diff changeset
    42
\begin{matharray}{rcl}
wenzelm
parents: 7141
diff changeset
    43
  tag & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    44
  untag & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    45
  COMP & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    46
  RS & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    47
  OF & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    48
  where & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    49
  of & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    50
  standard & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    51
  elimify & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    52
  transfer & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    53
  export & : & \isaratt \\
wenzelm
parents: 7141
diff changeset
    54
\end{matharray}
wenzelm
parents: 7141
diff changeset
    55
wenzelm
parents: 7141
diff changeset
    56
\begin{rail}
wenzelm
parents: 7141
diff changeset
    57
  ('tag' | 'untag') (nameref+)
wenzelm
parents: 7141
diff changeset
    58
  ;
7175
wenzelm
parents: 7167
diff changeset
    59
\end{rail}
wenzelm
parents: 7167
diff changeset
    60
wenzelm
parents: 7167
diff changeset
    61
\begin{rail}
7167
wenzelm
parents: 7141
diff changeset
    62
  ('COMP' | 'RS') nat? thmref
wenzelm
parents: 7141
diff changeset
    63
  ;
wenzelm
parents: 7141
diff changeset
    64
  'OF' thmrefs
wenzelm
parents: 7141
diff changeset
    65
  ;
7175
wenzelm
parents: 7167
diff changeset
    66
\end{rail}
wenzelm
parents: 7167
diff changeset
    67
wenzelm
parents: 7167
diff changeset
    68
\begin{rail}
wenzelm
parents: 7167
diff changeset
    69
  'where' (name '=' term * 'and')
7167
wenzelm
parents: 7141
diff changeset
    70
  ;
7175
wenzelm
parents: 7167
diff changeset
    71
  'of' (inst * ) ('concl' ':' (inst * ))?
7167
wenzelm
parents: 7141
diff changeset
    72
  ;
wenzelm
parents: 7141
diff changeset
    73
wenzelm
parents: 7141
diff changeset
    74
  inst: underscore | term
wenzelm
parents: 7141
diff changeset
    75
  ;
wenzelm
parents: 7141
diff changeset
    76
\end{rail}
wenzelm
parents: 7141
diff changeset
    77
wenzelm
parents: 7141
diff changeset
    78
\begin{descr}
wenzelm
parents: 7141
diff changeset
    79
\item [$ $]
wenzelm
parents: 7141
diff changeset
    80
\end{descr}
wenzelm
parents: 7141
diff changeset
    81
wenzelm
parents: 7141
diff changeset
    82
FIXME
7135
wenzelm
parents:
diff changeset
    83
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    84
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    85
\section{Calculational proof}\label{sec:calculation}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    86
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    87
\indexisarcmd{also}\indexisarcmd{finally}\indexisaratt{trans}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    88
\begin{matharray}{rcl}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    89
  \isarcmd{also} & : & \isartrans{proof(state)}{proof(state)} \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    90
  \isarcmd{finally} & : & \isartrans{proof(state)}{proof(chain)} \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    91
  trans & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    92
\end{matharray}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    93
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    94
Calculational proof is forward reasoning with implicit application of
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    95
transitivity rules (such those of $=$, $\le$, $<$).  Isabelle/Isar maintains
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    96
an auxiliary register $calculation$\indexisarreg{calculation} for accumulating
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    97
results obtained by transitivity obtained together with the current facts.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    98
Command $\ALSO$ updates $calculation$ from the most recent result, while
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
    99
$\FINALLY$ exhibits the final result by forward chaining towards the next goal
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   100
statement.  Both commands require valid current facts, i.e.\ may occur only
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   101
after commands that produce theorems such as $\ASSUMENAME$, $\NOTENAME$, or
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   102
some finished $\HAVENAME$ or $\SHOWNAME$.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   103
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   104
Also note that the automatic term abbreviation ``$\dots$'' has its canonical
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   105
application with calculational proofs.  It automatically refers to the
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   106
argument\footnote{The argument of a curried infix expression is its right-hand
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   107
  side.} of the preceding statement.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   108
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   109
Isabelle/Isar calculations are implicitly subject to block structure in the
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   110
sense that new threads of calculational reasoning are commenced for any new
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   111
block (as opened by a local goal, for example).  This means that, apart from
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   112
being able to nest calculations, there is no separate \emph{begin-calculation}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   113
command required.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   114
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   115
\begin{rail}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   116
  ('also' | 'finally') transrules? comment?
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   117
  ;
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   118
  'trans' (() | 'add' ':' | 'del' ':') thmrefs
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   119
  ;
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   120
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   121
  transrules: '(' thmrefs ')' interest?
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   122
  ;
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   123
\end{rail}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   124
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   125
\begin{descr}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   126
\item [$\ALSO~(thms)$] maintains the auxiliary $calculation$ register as
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   127
  follows.  The first occurrence of $\ALSO$ in some calculational thread
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   128
  initialises $calculation$ by $facts$. Any subsequent $\ALSO$ on the
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   129
  \emph{same} level of block-structure updates $calculation$ by some
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   130
  transitivity rule applied to $calculation$ and $facts$ (in that order).
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   131
  Transitivity rules are picked from the current context plus those given as
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   132
  $thms$ (the latter have precedence).
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   133
  
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   134
\item [$\FINALLY~(thms)$] maintaining $calculation$ in the same way as
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   135
  $\ALSO$, and concludes the current calculational thread.  The final result
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   136
  is exhibited as fact for forward chaining towards the next goal. Basically,
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   137
  $\FINALLY$ just abbreviates $\ALSO~\FROM{calculation}$.  A typical proof
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   138
  idiom is $\FINALLY~\SHOW~\VVar{thesis}~\DOT$.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   139
  
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   140
\item [Attribute $trans$] maintains the set of transitivity rules of the
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   141
  theory or proof context, by adding or deleting the theorems provided as
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   142
  arguments.  The default is adding of rules.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   143
\end{descr}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   144
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   145
See theory \texttt{HOL/Isar_examples/Group} for a simple applications of
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   146
calculations for basic equational reasoning.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   147
\texttt{HOL/Isar_examples/KnasterTarski} involves a few more advanced
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   148
calculational steps in combination with natural deduction.
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   149
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   150
7135
wenzelm
parents:
diff changeset
   151
\section{Axiomatic Type Classes}\label{sec:axclass}
wenzelm
parents:
diff changeset
   152
wenzelm
parents:
diff changeset
   153
\indexisarcmd{axclass}\indexisarcmd{instance}
wenzelm
parents:
diff changeset
   154
\begin{matharray}{rcl}
wenzelm
parents:
diff changeset
   155
  \isarcmd{axclass} & : & \isartrans{theory}{theory} \\
wenzelm
parents:
diff changeset
   156
  \isarcmd{instance} & : & \isartrans{theory}{proof(prove)} \\
wenzelm
parents:
diff changeset
   157
\end{matharray}
wenzelm
parents:
diff changeset
   158
wenzelm
parents:
diff changeset
   159
Axiomatic type classes are provided by Isabelle/Pure as a purely
wenzelm
parents:
diff changeset
   160
\emph{definitional} interface to type classes (cf.~\S\ref{sec:classes}).  Thus
wenzelm
parents:
diff changeset
   161
any object logic may make use of this light-weight mechanism for abstract
wenzelm
parents:
diff changeset
   162
theories.  See \cite{Wenzel:1997:TPHOL} for more information.  There is also a
wenzelm
parents:
diff changeset
   163
tutorial on \emph{Using Axiomatic Type Classes in Isabelle} that is part of
wenzelm
parents:
diff changeset
   164
the standard Isabelle documentation.
wenzelm
parents:
diff changeset
   165
wenzelm
parents:
diff changeset
   166
\begin{rail}
wenzelm
parents:
diff changeset
   167
  'axclass' classdecl (axmdecl prop comment? +)
wenzelm
parents:
diff changeset
   168
  ;
wenzelm
parents:
diff changeset
   169
  'instance' (nameref '<' nameref | nameref '::' simplearity) comment?
wenzelm
parents:
diff changeset
   170
  ;
wenzelm
parents:
diff changeset
   171
\end{rail}
wenzelm
parents:
diff changeset
   172
7167
wenzelm
parents: 7141
diff changeset
   173
\begin{descr}
7135
wenzelm
parents:
diff changeset
   174
\item [$\isarkeyword{axclass}~$] FIXME
wenzelm
parents:
diff changeset
   175
\item [$\isarkeyword{instance}~c@1 < c@2$ and $\isarkeyword{instance}~c@1 <
wenzelm
parents:
diff changeset
   176
  c@2$] setup up a goal stating the class relation or type arity.  The proof
wenzelm
parents:
diff changeset
   177
  would usually proceed by the $expand_classes$ method, and then establish the
7141
a67dde8820c0 even more stuff;
wenzelm
parents: 7135
diff changeset
   178
  characteristic theorems of the type classes involved.  After finishing the
a67dde8820c0 even more stuff;
wenzelm
parents: 7135
diff changeset
   179
  proof the theory will be augmented by a type signature declaration
7135
wenzelm
parents:
diff changeset
   180
  corresponding to the resulting theorem.
7167
wenzelm
parents: 7141
diff changeset
   181
\end{descr}
7135
wenzelm
parents:
diff changeset
   182
wenzelm
parents:
diff changeset
   183
wenzelm
parents:
diff changeset
   184
wenzelm
parents:
diff changeset
   185
\section{The Simplifier}
wenzelm
parents:
diff changeset
   186
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   187
\subsection{Simplification methods}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   188
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   189
\indexisarmeth{simp}\indexisarmeth{asm_simp}\indexisaratt{simp}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   190
\begin{matharray}{rcl}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   191
  simp & : & \isarmeth \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   192
  asm_simp & : & \isarmeth \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   193
  simp & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   194
\end{matharray}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   195
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   196
\begin{rail}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   197
  'simp' (simpmod+)?
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   198
  ;
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   199
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   200
  simpmod: ('add' | 'del' | 'only' | 'other') ':' thmrefs
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   201
  ;
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   202
\end{rail}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   203
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   204
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   205
\subsection{Forward simplification}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   206
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   207
\indexisaratt{simplify}\indexisaratt{asm_simplify}\indexisaratt{full_simplify}\indexisaratt{asm_full_simplify}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   208
\begin{matharray}{rcl}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   209
  simplify & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   210
  asm_simplify & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   211
  full_simplify & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   212
  asm_full_simplify & : & \isaratt \\
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   213
\end{matharray}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   214
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   215
FIXME
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   216
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   217
7135
wenzelm
parents:
diff changeset
   218
\section{The Classical Reasoner}
wenzelm
parents:
diff changeset
   219
7315
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   220
\subsection{Single step methods}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   221
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   222
\subsection{Automatic methods}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   223
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   224
\subsection{Combined automatic methods}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   225
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   226
\subsection{Modifying the context}
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   227
76a39a3784b5 checkpoint;
wenzelm
parents: 7175
diff changeset
   228
7135
wenzelm
parents:
diff changeset
   229
wenzelm
parents:
diff changeset
   230
%\indexisarcmd{}
wenzelm
parents:
diff changeset
   231
%\begin{matharray}{rcl}
wenzelm
parents:
diff changeset
   232
%  \isarcmd{} & : & \isartrans{}{} \\
wenzelm
parents:
diff changeset
   233
%\end{matharray}
wenzelm
parents:
diff changeset
   234
wenzelm
parents:
diff changeset
   235
%\begin{rail}
wenzelm
parents:
diff changeset
   236
  
wenzelm
parents:
diff changeset
   237
%\end{rail}
wenzelm
parents:
diff changeset
   238
7167
wenzelm
parents: 7141
diff changeset
   239
%\begin{descr}
7135
wenzelm
parents:
diff changeset
   240
%\item [$ $]
7167
wenzelm
parents: 7141
diff changeset
   241
%\end{descr}
7135
wenzelm
parents:
diff changeset
   242
wenzelm
parents:
diff changeset
   243
wenzelm
parents:
diff changeset
   244
%%% Local Variables: 
wenzelm
parents:
diff changeset
   245
%%% mode: latex
wenzelm
parents:
diff changeset
   246
%%% TeX-master: "isar-ref"
wenzelm
parents:
diff changeset
   247
%%% End: