src/HOL/Tools/datatype_abs_proofs.ML
changeset 28083 103d9282a946
parent 27691 ce171cbd4b93
child 28084 a05ca48ef263
equal deleted inserted replaced
28082:37350f301128 28083:103d9282a946
   154         (([], 0), descr' ~~ recTs ~~ rec_sets');
   154         (([], 0), descr' ~~ recTs ~~ rec_sets');
   155 
   155 
   156     val ({intrs = rec_intrs, elims = rec_elims, ...}, thy1) =
   156     val ({intrs = rec_intrs, elims = rec_elims, ...}, thy1) =
   157         InductivePackage.add_inductive_global (serial_string ())
   157         InductivePackage.add_inductive_global (serial_string ())
   158           {quiet_mode = ! quiet_mode, verbose = false, kind = Thm.internalK,
   158           {quiet_mode = ! quiet_mode, verbose = false, kind = Thm.internalK,
   159             alt_name = big_rec_name', coind = false, no_elim = false, no_ind = true,
   159             alt_name = Name.binding big_rec_name', coind = false, no_elim = false, no_ind = true,
   160             skip_mono = true}
   160             skip_mono = true}
   161           (map (fn (s, T) => ((s, T), NoSyn)) (rec_set_names' ~~ rec_set_Ts))
   161           (map (fn (s, T) => ((Name.binding s, T), NoSyn)) (rec_set_names' ~~ rec_set_Ts))
   162           (map dest_Free rec_fns)
   162           (map dest_Free rec_fns)
   163           (map (fn x => (("", []), x)) rec_intr_ts) [] thy0;
   163           (map (fn x => ((Name.no_binding, []), x)) rec_intr_ts) [] thy0;
   164 
   164 
   165     (* prove uniqueness and termination of primrec combinators *)
   165     (* prove uniqueness and termination of primrec combinators *)
   166 
   166 
   167     val _ = message "Proving termination and uniqueness of primrec functions ...";
   167     val _ = message "Proving termination and uniqueness of primrec functions ...";
   168 
   168