doc-src/IsarRef/generic.tex
changeset 7319 3907d597cae6
parent 7315 76a39a3784b5
child 7321 b4dcc32310fb
equal deleted inserted replaced
7318:768fab6dae74 7319:3907d597cae6
   152 
   152 
   153 \indexisarcmd{axclass}\indexisarcmd{instance}
   153 \indexisarcmd{axclass}\indexisarcmd{instance}
   154 \begin{matharray}{rcl}
   154 \begin{matharray}{rcl}
   155   \isarcmd{axclass} & : & \isartrans{theory}{theory} \\
   155   \isarcmd{axclass} & : & \isartrans{theory}{theory} \\
   156   \isarcmd{instance} & : & \isartrans{theory}{proof(prove)} \\
   156   \isarcmd{instance} & : & \isartrans{theory}{proof(prove)} \\
       
   157   expand_classes & : & \isarmeth \\
   157 \end{matharray}
   158 \end{matharray}
   158 
   159 
   159 Axiomatic type classes are provided by Isabelle/Pure as a purely
   160 Axiomatic type classes are provided by Isabelle/Pure as a purely
   160 \emph{definitional} interface to type classes (cf.~\S\ref{sec:classes}).  Thus
   161 \emph{definitional} interface to type classes (cf.~\S\ref{sec:classes}).  Thus
   161 any object logic may make use of this light-weight mechanism for abstract
   162 any object logic may make use of this light-weight mechanism for abstract
   176   c@2$] setup up a goal stating the class relation or type arity.  The proof
   177   c@2$] setup up a goal stating the class relation or type arity.  The proof
   177   would usually proceed by the $expand_classes$ method, and then establish the
   178   would usually proceed by the $expand_classes$ method, and then establish the
   178   characteristic theorems of the type classes involved.  After finishing the
   179   characteristic theorems of the type classes involved.  After finishing the
   179   proof the theory will be augmented by a type signature declaration
   180   proof the theory will be augmented by a type signature declaration
   180   corresponding to the resulting theorem.
   181   corresponding to the resulting theorem.
   181 \end{descr}
   182 \item [Method $expand_classes$] iteratively expands the class introduction
   182 
   183   rules
       
   184 \end{descr}
       
   185 
       
   186 See theory \texttt{HOL/Isar_examples/Group} for a simple example of using
       
   187 axiomatic type classes, including instantiation proofs.
   183 
   188 
   184 
   189 
   185 \section{The Simplifier}
   190 \section{The Simplifier}
   186 
   191 
   187 \subsection{Simplification methods}
   192 \subsection{Simplification methods}
   192   asm_simp & : & \isarmeth \\
   197   asm_simp & : & \isarmeth \\
   193   simp & : & \isaratt \\
   198   simp & : & \isaratt \\
   194 \end{matharray}
   199 \end{matharray}
   195 
   200 
   196 \begin{rail}
   201 \begin{rail}
   197   'simp' (simpmod+)?
   202   'simp' (simpmod * )
   198   ;
   203   ;
   199 
   204 
   200   simpmod: ('add' | 'del' | 'only' | 'other') ':' thmrefs
   205   simpmod: ('add' | 'del' | 'only' | 'other') ':' thmrefs
   201   ;
   206   ;
   202 \end{rail}
   207 \end{rail}
       
   208 
       
   209 FIXME
   203 
   210 
   204 
   211 
   205 \subsection{Forward simplification}
   212 \subsection{Forward simplification}
   206 
   213 
   207 \indexisaratt{simplify}\indexisaratt{asm_simplify}\indexisaratt{full_simplify}\indexisaratt{asm_full_simplify}
   214 \indexisaratt{simplify}\indexisaratt{asm_simplify}\indexisaratt{full_simplify}\indexisaratt{asm_full_simplify}