src/Doc/Codegen/Refinement.thy
changeset 53015 a1119cf551e8
parent 52637 1501ebe39711
child 53125 f4c6f8f6515b
equal deleted inserted replaced
53009:bb18eed53ed6 53015:a1119cf551e8
   114   is defined in terms of @{text "Queue"} and interprets its arguments
   114   is defined in terms of @{text "Queue"} and interprets its arguments
   115   according to what the \emph{content} of an amortised queue is supposed
   115   according to what the \emph{content} of an amortised queue is supposed
   116   to be.
   116   to be.
   117 
   117 
   118   The prerequisite for datatype constructors is only syntactical: a
   118   The prerequisite for datatype constructors is only syntactical: a
   119   constructor must be of type @{text "\<tau> = \<dots> \<Rightarrow> \<kappa> \<alpha>\<^isub>1 \<dots> \<alpha>\<^isub>n"} where @{text
   119   constructor must be of type @{text "\<tau> = \<dots> \<Rightarrow> \<kappa> \<alpha>\<^sub>1 \<dots> \<alpha>\<^sub>n"} where @{text
   120   "{\<alpha>\<^isub>1, \<dots>, \<alpha>\<^isub>n}"} is exactly the set of \emph{all} type variables in
   120   "{\<alpha>\<^sub>1, \<dots>, \<alpha>\<^sub>n}"} is exactly the set of \emph{all} type variables in
   121   @{text "\<tau>"}; then @{text "\<kappa>"} is its corresponding datatype.  The
   121   @{text "\<tau>"}; then @{text "\<kappa>"} is its corresponding datatype.  The
   122   HOL datatype package by default registers any new datatype with its
   122   HOL datatype package by default registers any new datatype with its
   123   constructors, but this may be changed using @{command_def
   123   constructors, but this may be changed using @{command_def
   124   code_datatype}; the currently chosen constructors can be inspected
   124   code_datatype}; the currently chosen constructors can be inspected
   125   using the @{command print_codesetup} command.
   125   using the @{command print_codesetup} command.