doc-src/IsarAdvanced/Codegen/Thy/Codegen.thy
changeset 22046 ce84c9887e2d
parent 22015 12b94d7f7e1f
child 22060 8a37090726e8
equal deleted inserted replaced
22045:ce5daf09ebfe 22046:ce84c9887e2d
  1169   @{index_ML CodegenData.add_func: "thm -> theory -> theory"} \\
  1169   @{index_ML CodegenData.add_func: "thm -> theory -> theory"} \\
  1170   @{index_ML CodegenData.del_func: "thm -> theory -> theory"} \\
  1170   @{index_ML CodegenData.del_func: "thm -> theory -> theory"} \\
  1171   @{index_ML CodegenData.add_funcl: "CodegenConsts.const * thm list Susp.T -> theory -> theory"} \\
  1171   @{index_ML CodegenData.add_funcl: "CodegenConsts.const * thm list Susp.T -> theory -> theory"} \\
  1172   @{index_ML CodegenData.add_inline: "thm -> theory -> theory"} \\
  1172   @{index_ML CodegenData.add_inline: "thm -> theory -> theory"} \\
  1173   @{index_ML CodegenData.del_inline: "thm -> theory -> theory"} \\
  1173   @{index_ML CodegenData.del_inline: "thm -> theory -> theory"} \\
  1174   @{index_ML CodegenData.add_inline_proc: "(theory -> cterm list -> thm list)
  1174   @{index_ML CodegenData.add_inline_proc: "string * (theory -> cterm list -> thm list)
  1175     -> theory -> theory"} \\
  1175     -> theory -> theory"} \\
  1176   @{index_ML CodegenData.add_preproc: "(theory -> thm list -> thm list)
  1176   @{index_ML CodegenData.del_inline_proc: "string -> theory -> theory"} \\
       
  1177   @{index_ML CodegenData.add_preproc: "string * (theory -> thm list -> thm list)
  1177     -> theory -> theory"} \\
  1178     -> theory -> theory"} \\
       
  1179   @{index_ML CodegenData.del_preproc: "string -> theory -> theory"} \\
  1178   @{index_ML CodegenData.add_datatype: "string * (((string * sort) list * (string * typ list) list)
  1180   @{index_ML CodegenData.add_datatype: "string * (((string * sort) list * (string * typ list) list)
  1179     * thm list Susp.T) -> theory -> theory"} \\
  1181     * thm list Susp.T) -> theory -> theory"} \\
  1180   @{index_ML CodegenData.del_datatype: "string -> theory -> theory"} \\
  1182   @{index_ML CodegenData.del_datatype: "string -> theory -> theory"} \\
  1181   @{index_ML CodegenData.get_datatype: "theory -> string
  1183   @{index_ML CodegenData.get_datatype: "theory -> string
  1182     -> ((string * sort) list * (string * typ list) list) option"} \\
  1184     -> ((string * sort) list * (string * typ list) list) option"} \\
  1199      inlining theorem @{text thm} to executable content.
  1201      inlining theorem @{text thm} to executable content.
  1200 
  1202 
  1201   \item @{ML CodegenData.del_inline}~@{text "thm"}~@{text "thy"} remove
  1203   \item @{ML CodegenData.del_inline}~@{text "thm"}~@{text "thy"} remove
  1202      inlining theorem @{text thm} from executable content, if present.
  1204      inlining theorem @{text thm} from executable content, if present.
  1203 
  1205 
  1204   \item @{ML CodegenData.add_inline_proc}~@{text "f"}~@{text "thy"} adds
  1206   \item @{ML CodegenData.add_inline_proc}~@{text "(name, f)"}~@{text "thy"} adds
  1205      inline procedure @{text f} to executable content;
  1207      inline procedure @{text f} (named @{text name}) to executable content;
  1206      @{text f} is a computation of rewrite rules dependent on
  1208      @{text f} is a computation of rewrite rules dependent on
  1207      the current theory context and the list of all arguments
  1209      the current theory context and the list of all arguments
  1208      and right hand sides of the function equations belonging
  1210      and right hand sides of the function equations belonging
  1209      to a certain function definition.
  1211      to a certain function definition.
  1210 
  1212 
  1211   \item @{ML CodegenData.add_preproc}~@{text "f"}~@{text "thy"} adds
  1213   \item @{ML CodegenData.del_inline_proc}~@{text "name"}~@{text "thy"} removes
  1212      generic preprocessor @{text f} to executable content;
  1214      inline procedure named @{text name} from executable content.
       
  1215 
       
  1216   \item @{ML CodegenData.add_preproc}~@{text "(name, f)"}~@{text "thy"} adds
       
  1217      generic preprocessor @{text f} (named @{text name}) to executable content;
  1213      @{text f} is a transformation of the function equations belonging
  1218      @{text f} is a transformation of the function equations belonging
  1214      to a certain function definition, depending on the
  1219      to a certain function definition, depending on the
  1215      current theory context.
  1220      current theory context.
       
  1221 
       
  1222   \item @{ML CodegenData.del_prepproc}~@{text "name"}~@{text "thy"} removes
       
  1223      generic preprcoessor named @{text name} from executable content.
  1216 
  1224 
  1217   \item @{ML CodegenData.add_datatype}~@{text "(name, (spec, cert))"}~@{text "thy"} adds
  1225   \item @{ML CodegenData.add_datatype}~@{text "(name, (spec, cert))"}~@{text "thy"} adds
  1218      a datatype to executable content, with type constructor
  1226      a datatype to executable content, with type constructor
  1219      @{text name} and specification @{text spec}; @{text spec} is
  1227      @{text name} and specification @{text spec}; @{text spec} is
  1220      a pair consisting of a list of type variable with sort
  1228      a pair consisting of a list of type variable with sort