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 |