doc-src/IsarRef/hol.tex
changeset 7990 0a604b2fc2b1
parent 7987 d9aef93c0e32
child 8449 f8ff23736465
equal deleted inserted replaced
7989:50ca726466c6 7990:0a604b2fc2b1
     1 
     1 
     2 \chapter{Isabelle/HOL Tools and Packages}\label{ch:hol-tools}
     2 \chapter{Isabelle/HOL Tools and Packages}\label{ch:hol-tools}
       
     3 
       
     4 \section{Miscellaneous attributes}
       
     5 
       
     6 \indexisaratt{rulify}\indexisaratt{rulify-prems}
       
     7 \begin{matharray}{rcl}
       
     8   rulify & : & \isaratt \\
       
     9   rulify_prems & : & \isaratt \\
       
    10 \end{matharray}
       
    11 
       
    12 \begin{descr}
       
    13 
       
    14 \item [$rulify$] puts a theorem into object-rule form, replacing implication
       
    15   and universal quantification of HOL by the corresponding meta-logical
       
    16   connectives.  This is the same operation as performed by the
       
    17   \texttt{qed_spec_mp} ML function.
       
    18   
       
    19 \item [$rulify_prems$] is similar to $rulify$, but acts on the premises of a
       
    20   rule.
       
    21 
       
    22 \end{descr}
       
    23 
     3 
    24 
     4 \section{Primitive types}
    25 \section{Primitive types}
     5 
    26 
     6 \indexisarcmd{typedecl}\indexisarcmd{typedef}
    27 \indexisarcmd{typedecl}\indexisarcmd{typedef}
     7 \begin{matharray}{rcl}
    28 \begin{matharray}{rcl}
   117 
   138 
   118 
   139 
   119 \section{(Co)Inductive sets}
   140 \section{(Co)Inductive sets}
   120 
   141 
   121 \indexisarcmd{inductive}\indexisarcmd{coinductive}\indexisarcmd{inductive-cases}
   142 \indexisarcmd{inductive}\indexisarcmd{coinductive}\indexisarcmd{inductive-cases}
       
   143 \indexisaratt{mono}
   122 \begin{matharray}{rcl}
   144 \begin{matharray}{rcl}
   123   \isarcmd{inductive} & : & \isartrans{theory}{theory} \\
   145   \isarcmd{inductive} & : & \isartrans{theory}{theory} \\
   124   \isarcmd{coinductive} & : & \isartrans{theory}{theory} \\
   146   \isarcmd{coinductive} & : & \isartrans{theory}{theory} \\
       
   147   mono & : & \isaratt \\
   125   \isarcmd{inductive_cases} & : & \isartrans{theory}{theory} \\
   148   \isarcmd{inductive_cases} & : & \isartrans{theory}{theory} \\
   126 \end{matharray}
   149 \end{matharray}
   127 
   150 
   128 \railalias{condefs}{con\_defs}
   151 \railalias{condefs}{con\_defs}
   129 \railalias{indcases}{inductive\_cases}
   152 \railalias{indcases}{inductive\_cases}
   134     'intrs' attributes? (thmdecl? prop comment? +) \\
   157     'intrs' attributes? (thmdecl? prop comment? +) \\
   135     'monos' thmrefs comment? \\ condefs thmrefs comment?
   158     'monos' thmrefs comment? \\ condefs thmrefs comment?
   136   ;
   159   ;
   137   indcases thmdef? nameref ':' \\ (prop +) comment?
   160   indcases thmdef? nameref ':' \\ (prop +) comment?
   138   ;
   161   ;
       
   162   'mono' (() | 'add' | 'del')
       
   163   ;
   139 \end{rail}
   164 \end{rail}
   140 
   165 
   141 \begin{descr}
   166 \begin{descr}
   142 \item [$\isarkeyword{inductive}$ and $\isarkeyword{coinductive}$] define
   167 \item [$\isarkeyword{inductive}$ and $\isarkeyword{coinductive}$] define
   143   (co)inductive sets from the given introduction rules.
   168   (co)inductive sets from the given introduction rules.
       
   169 \item [$mono$] adds or deletes monotonicity rules from the theory or proof
       
   170   context (the default is to add).  These rule are involved in the automated
       
   171   monotonicity proof of $\isarkeyword{inductive}$.
   144 \item [$\isarkeyword{inductive_cases}$] creates simplified instances of
   172 \item [$\isarkeyword{inductive_cases}$] creates simplified instances of
   145   elimination rules of (co)inductive sets.
   173   elimination rules of (co)inductive sets.
   146 \end{descr}
   174 \end{descr}
   147 
   175 
   148 See \cite{isabelle-HOL} for more information.  Note that
   176 See \cite{isabelle-HOL} for more information.  Note that