equal
deleted
inserted
replaced
276 |
276 |
277 val descr' = flat descr; |
277 val descr' = flat descr; |
278 val recTs = Datatype_Aux.get_rec_types descr'; |
278 val recTs = Datatype_Aux.get_rec_types descr'; |
279 val used = fold Term.add_tfree_namesT recTs []; |
279 val used = fold Term.add_tfree_namesT recTs []; |
280 val newTs = take (length (hd descr)) recTs; |
280 val newTs = take (length (hd descr)) recTs; |
281 val T' = TFree (singleton (Name.variant_list used) "'t", HOLogic.typeS); |
281 val T' = TFree (singleton (Name.variant_list used) "'t", @{sort type}); |
282 |
282 |
283 fun mk_dummyT dt = binder_types (Datatype_Aux.typ_of_dtyp descr' dt) ---> T'; |
283 fun mk_dummyT dt = binder_types (Datatype_Aux.typ_of_dtyp descr' dt) ---> T'; |
284 |
284 |
285 val case_dummy_fns = |
285 val case_dummy_fns = |
286 map (fn (_, (_, _, constrs)) => map (fn (_, cargs) => |
286 map (fn (_, (_, _, constrs)) => map (fn (_, cargs) => |