src/HOL/Tools/datatype_abs_proofs.ML
changeset 10214 77349ed89f45
parent 10212 33fe2d701ddd
child 10911 eb5721204b38
equal deleted inserted replaced
10213:01c2744a3786 10214:77349ed89f45
   415     val thy1 = add_path flat_names big_name thy;
   415     val thy1 = add_path flat_names big_name thy;
   416 
   416 
   417     val descr' = flat descr;
   417     val descr' = flat descr;
   418     val recTs = get_rec_types descr' sorts;
   418     val recTs = get_rec_types descr' sorts;
   419 
   419 
   420     val size_name = Sign.intern_const (Theory.sign_of (theory "Arithmetic")) "size";
   420     val size_name = Sign.intern_const (Theory.sign_of (theory "NatArith")) "size";
   421     val size_names = replicate (length (hd descr)) size_name @
   421     val size_names = replicate (length (hd descr)) size_name @
   422       map (Sign.full_name (Theory.sign_of thy1)) (DatatypeProp.indexify_names
   422       map (Sign.full_name (Theory.sign_of thy1)) (DatatypeProp.indexify_names
   423         (map (fn T => name_of_typ T ^ "_size") (drop (length (hd descr), recTs))));
   423         (map (fn T => name_of_typ T ^ "_size") (drop (length (hd descr), recTs))));
   424     val def_names = map (fn s => s ^ "_def") (DatatypeProp.indexify_names
   424     val def_names = map (fn s => s ^ "_def") (DatatypeProp.indexify_names
   425       (map (fn T => name_of_typ T ^ "_size") recTs));
   425       (map (fn T => name_of_typ T ^ "_size") recTs));