src/HOL/Nominal/nominal_datatype.ML
changeset 33063 4d462963a7db
parent 33040 cffdb7b28498
child 33171 292970b42770
equal deleted inserted replaced
33062:542b34b178ec 33063:4d462963a7db
   100 
   100 
   101 
   101 
   102 (**** make datatype info ****)
   102 (**** make datatype info ****)
   103 
   103 
   104 fun make_dt_info descr sorts induct reccomb_names rec_thms
   104 fun make_dt_info descr sorts induct reccomb_names rec_thms
   105     (((i, (_, (tname, _, _))), distinct), inject) =
   105     (i, (((_, (tname, _, _)), distinct), inject)) =
   106   (tname,
   106   (tname,
   107    {index = i,
   107    {index = i,
   108     descr = descr,
   108     descr = descr,
   109     sorts = sorts,
   109     sorts = sorts,
   110     rec_names = reccomb_names,
   110     rec_names = reccomb_names,
  2043              resolve_tac rec_intrs 1,
  2043              resolve_tac rec_intrs 1,
  2044              REPEAT (solve (prems @ rec_total_thms) prems 1)])
  2044              REPEAT (solve (prems @ rec_total_thms) prems 1)])
  2045       end) (rec_eq_prems ~~
  2045       end) (rec_eq_prems ~~
  2046         DatatypeProp.make_primrecs new_type_names descr' sorts thy12);
  2046         DatatypeProp.make_primrecs new_type_names descr' sorts thy12);
  2047 
  2047 
  2048     val dt_infos = map (make_dt_info pdescr sorts induct reccomb_names rec_thms)
  2048     val dt_infos = map_index (make_dt_info pdescr sorts induct reccomb_names rec_thms)
  2049       ((0 upto length descr1 - 1) ~~ descr1 ~~ distinct_thms ~~ inject_thms);
  2049       (descr1 ~~ distinct_thms ~~ inject_thms);
  2050 
  2050 
  2051     (* FIXME: theorems are stored in database for testing only *)
  2051     (* FIXME: theorems are stored in database for testing only *)
  2052     val (_, thy13) = thy12 |>
  2052     val (_, thy13) = thy12 |>
  2053       PureThy.add_thmss
  2053       PureThy.add_thmss
  2054         [((Binding.name "rec_equiv", flat rec_equiv_thms), []),
  2054         [((Binding.name "rec_equiv", flat rec_equiv_thms), []),