src/Doc/Datatypes/Datatypes.thy
changeset 59299 74202654e4ee
parent 59298 fd3b0135bc59
child 59300 7009e5fa5cd3
equal deleted inserted replaced
59298:fd3b0135bc59 59299:74202654e4ee
  2979 
  2979 
  2980 subsection {* Code Generator
  2980 subsection {* Code Generator
  2981   \label{ssec:code-generator} *}
  2981   \label{ssec:code-generator} *}
  2982 
  2982 
  2983 text {*
  2983 text {*
  2984 The \hthm{code} plugin registers (co)datatypes and other freely generated types
  2984 The \hthm{code} plugin registers freely generated types, including
  2985 for code generation. No distinction is made between datatypes and codatatypes.
  2985 (co)datatypes, and (co)recursive functions for code generation. No distinction
  2986 This means that for target languages with a strict evaluation strategy (e.g.,
  2986 is made between datatypes and codatatypes. This means that for target languages
  2987 Standard ML), programs that attempt to produce infinite codatatype values will
  2987 with a strict evaluation strategy (e.g., Standard ML), programs that attempt to
  2988 not terminate.
  2988 produce infinite codatatype values will not terminate.
  2989 
  2989 
  2990 The plugin derives the following properties:
  2990 For types, the plugin derives the following properties:
  2991 
  2991 
  2992 \begin{indentblock}
  2992 \begin{indentblock}
  2993 \begin{description}
  2993 \begin{description}
  2994 
  2994 
  2995 \item[@{text "t."}\hthm{eq.refl} @{text "[code nbe]"}\rm:] ~ \\
  2995 \item[@{text "t."}\hthm{eq.refl} @{text "[code nbe]"}\rm:] ~ \\
  3005 
  3005 
  3006 \end{description}
  3006 \end{description}
  3007 \end{indentblock}
  3007 \end{indentblock}
  3008 
  3008 
  3009 In addition, the plugin sets the @{text "[code]"} attribute on a number of
  3009 In addition, the plugin sets the @{text "[code]"} attribute on a number of
  3010 properties of (co)datatypes and other freely generated types, as documented in
  3010 properties of freely generated types and of (co)recursive functions, as
  3011 Sections \ref{ssec:datatype-generated-theorems} and
  3011 documented in Sections \ref{ssec:datatype-generated-theorems},
  3012 \ref{ssec:codatatype-generated-theorems}.
  3012 \ref{ssec:primrec-generated-theorems}, \ref{ssec:codatatype-generated-theorems},
       
  3013 and~\ref{ssec:primcorec-generated-theorems}.
  3013 *}
  3014 *}
  3014 
  3015 
  3015 
  3016 
  3016 subsection {* Size
  3017 subsection {* Size
  3017   \label{ssec:size} *}
  3018   \label{ssec:size} *}