1434 Library.foldl (fn (x, ((((d, d'), T), p), rec_set)) => |
1434 Library.foldl (fn (x, ((((d, d'), T), p), rec_set)) => |
1435 Library.foldl (make_rec_intr T p rec_set) (x, #3 (snd d) ~~ snd d')) |
1435 Library.foldl (make_rec_intr T p rec_set) (x, #3 (snd d) ~~ snd d')) |
1436 (([], [], [], [], 0), descr'' ~~ ndescr ~~ recTs ~~ rec_preds ~~ rec_sets'); |
1436 (([], [], [], [], 0), descr'' ~~ ndescr ~~ recTs ~~ rec_preds ~~ rec_sets'); |
1437 |
1437 |
1438 val (thy11, {intrs = rec_intrs, elims = rec_elims, raw_induct = rec_induct, ...}) = |
1438 val (thy11, {intrs = rec_intrs, elims = rec_elims, raw_induct = rec_induct, ...}) = |
|
1439 thy10 |> |
1439 setmp InductivePackage.quiet_mode (!quiet_mode) |
1440 setmp InductivePackage.quiet_mode (!quiet_mode) |
1440 (TheoryTarget.init NONE #> |
1441 (TheoryTarget.init NONE #> |
1441 InductivePackage.add_inductive_i false big_rec_name false false false |
1442 InductivePackage.add_inductive_i false big_rec_name false false false |
1442 (map (fn (s, T) => (s, SOME T, NoSyn)) (rec_set_names' ~~ rec_set_Ts)) |
1443 (map (fn (s, T) => (s, SOME T, NoSyn)) (rec_set_names' ~~ rec_set_Ts)) |
1443 (map (apsnd SOME o dest_Free) rec_fns) |
1444 (map (apsnd SOME o dest_Free) rec_fns) |
1444 (map (fn x => (("", []), x)) rec_intr_ts) [] #> |
1445 (map (fn x => (("", []), x)) rec_intr_ts) [] #> |
1445 apfst (snd o LocalTheory.exit false)) thy10; |
1446 apfst (snd o LocalTheory.exit false)) |>> |
|
1447 PureThy.hide_thms true [NameSpace.append |
|
1448 (Sign.full_name thy10 big_rec_name) "induct"]; |
1446 |
1449 |
1447 (** equivariance **) |
1450 (** equivariance **) |
1448 |
1451 |
1449 val fresh_bij = PureThy.get_thms thy11 (Name "fresh_bij"); |
1452 val fresh_bij = PureThy.get_thms thy11 (Name "fresh_bij"); |
1450 val perm_bij = PureThy.get_thms thy11 (Name "perm_bij"); |
1453 val perm_bij = PureThy.get_thms thy11 (Name "perm_bij"); |