doc-src/IsarRef/hol.tex
changeset 7335 abba35b98892
parent 7319 3907d597cae6
child 7390 f819265e267c
equal deleted inserted replaced
7334:a90fc1e5fb19 7335:abba35b98892
    22   also declares type arity $t :: (term, \dots, term) term$, making $t$ an
    22   also declares type arity $t :: (term, \dots, term) term$, making $t$ an
    23   actual HOL type constructor.
    23   actual HOL type constructor.
    24 \item [$\isarkeyword{typedef}~(\vec\alpha)t = A$] sets up a goal stating
    24 \item [$\isarkeyword{typedef}~(\vec\alpha)t = A$] sets up a goal stating
    25   non-emptiness of the set $A$.  After finishing the proof, the theory will be
    25   non-emptiness of the set $A$.  After finishing the proof, the theory will be
    26   augmented by a Gordon/HOL-style type definition.  See \cite{isabelle-HOL}
    26   augmented by a Gordon/HOL-style type definition.  See \cite{isabelle-HOL}
    27   for more information.  Note that user-level work usually does not directly
    27   for more information.  Note that user-level theories usually do not directly
    28   refer to the HOL $\isarkeyword{typedef}$ primitive, but uses more advanced
    28   refer to the HOL $\isarkeyword{typedef}$ primitive, but use more advanced
    29   packages such as $\isarkeyword{record}$ (see \S\ref{sec:record}) or
    29   packages such as $\isarkeyword{record}$ (see \S\ref{sec:record}) and
    30   $\isarkeyword{datatype}$ (see \S\ref{sec:datatype}).
    30   $\isarkeyword{datatype}$ (see \S\ref{sec:datatype}).
    31 \end{descr}
    31 \end{descr}
    32 
    32 
    33 
    33 
    34 \section{Records}\label{sec:record}
    34 \section{Records}\label{sec:record}
    49 
    49 
    50 \begin{descr}
    50 \begin{descr}
    51 \item [$\isarkeyword{record}~(\vec\alpha)t = \tau + \vec c :: \vec\sigma$]
    51 \item [$\isarkeyword{record}~(\vec\alpha)t = \tau + \vec c :: \vec\sigma$]
    52   defines extensible record type $(\vec\alpha)t$, derived from the optional
    52   defines extensible record type $(\vec\alpha)t$, derived from the optional
    53   parent record $\tau$ by adding new field components $\vec c :: \vec\sigma$.
    53   parent record $\tau$ by adding new field components $\vec c :: \vec\sigma$.
       
    54   See \cite{isabelle-HOL,NaraschewskiW-TPHOLs98} for more information only
       
    55   simply-typed extensible records.
    54 \end{descr}
    56 \end{descr}
    55 
       
    56 See \cite{isabelle-HOL,NaraschewskiW-TPHOLs98} for more information only
       
    57 simply-typed extensible records.
       
    58 
    57 
    59 
    58 
    60 \section{Datatypes}\label{sec:datatype}
    59 \section{Datatypes}\label{sec:datatype}
    61 
    60 
    62 \indexisarcmd{datatype}\indexisarcmd{rep-datatype}
    61 \indexisarcmd{datatype}\indexisarcmd{rep-datatype}
    84   ones, generating the standard infrastructure of derived concepts (primitive
    83   ones, generating the standard infrastructure of derived concepts (primitive
    85   recursion etc.).
    84   recursion etc.).
    86 \end{descr}
    85 \end{descr}
    87 
    86 
    88 See \cite{isabelle-HOL} for more details on datatypes.  Note that the theory
    87 See \cite{isabelle-HOL} for more details on datatypes.  Note that the theory
    89 syntax above has been slightly simplified over the old version.
    88 syntax above has been slightly simplified over the old version, usually
       
    89 requiring more quotes and less parentheses.
    90 
    90 
    91 
    91 
    92 \section{Recursive functions}
    92 \section{Recursive functions}
    93 
    93 
    94 \indexisarcmd{primrec}\indexisarcmd{recdef}
    94 \indexisarcmd{primrec}\indexisarcmd{recdef}
   111   datatypes.
   111   datatypes.
   112 \item [$\isarkeyword{recdef}$] defines general well-founded recursive
   112 \item [$\isarkeyword{recdef}$] defines general well-founded recursive
   113   functions (using the TFL package).
   113   functions (using the TFL package).
   114 \end{descr}
   114 \end{descr}
   115 
   115 
   116 See \cite{isabelle-HOL} for more information.
   116 See \cite{isabelle-HOL} for more information on both mechanisms.
   117 
   117 
   118 
   118 
   119 \section{(Co)Inductive sets}
   119 \section{(Co)Inductive sets}
   120 
   120 
   121 \indexisarcmd{inductive}\indexisarcmd{coinductive}\indexisarcmd{inductive-cases}
   121 \indexisarcmd{inductive}\indexisarcmd{coinductive}\indexisarcmd{inductive-cases}
   176 \item [$induct~insts~kind$] abbreviates method $rule~R$, where $R$ is the
   176 \item [$induct~insts~kind$] abbreviates method $rule~R$, where $R$ is the
   177   induction rule of the type/set/function specified by $kind$ and instantiated
   177   induction rule of the type/set/function specified by $kind$ and instantiated
   178   by $insts$.  The latter either consists of pairs $P$ $x$ (induction
   178   by $insts$.  The latter either consists of pairs $P$ $x$ (induction
   179   predicate and variable), where $P$ is optional.  If $kind$ is omitted, the
   179   predicate and variable), where $P$ is optional.  If $kind$ is omitted, the
   180   default is to pick a datatype induction rule according to the type of some
   180   default is to pick a datatype induction rule according to the type of some
   181   induction variable (at least one has to be given in that case).
   181   induction variable, which may not be omitted that case.
   182 \end{descr}
   182 \end{descr}
   183 
   183 
   184 
   184 
   185 %%% Local Variables: 
   185 %%% Local Variables: 
   186 %%% mode: latex
   186 %%% mode: latex