equal
deleted
inserted
replaced
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} *} |