equal
deleted
inserted
replaced
2234 |> Thm.close_derivation |
2234 |> Thm.close_derivation |
2235 end; |
2235 end; |
2236 |
2236 |
2237 val timer = time (timer "map functions for the new codatatypes"); |
2237 val timer = time (timer "map functions for the new codatatypes"); |
2238 |
2238 |
2239 val bd = mk_cexp sbd sbd; |
|
2240 |
|
2241 val timer = time (timer "bounds for the new codatatypes"); |
|
2242 |
|
2243 val setss_by_bnf = map (fn i => map2 (mk_hset dtors i) ls passiveAs) ks; |
2239 val setss_by_bnf = map (fn i => map2 (mk_hset dtors i) ls passiveAs) ks; |
2244 val setss_by_bnf' = map (fn i => map2 (mk_hset dtor's i) ls passiveBs) ks; |
2240 val setss_by_bnf' = map (fn i => map2 (mk_hset dtor's i) ls passiveBs) ks; |
2245 val setss_by_range = transpose setss_by_bnf; |
2241 val setss_by_range = transpose setss_by_bnf; |
2246 |
2242 |
2247 val dtor_set_thmss = |
2243 val dtor_set_thmss = |
2474 val map_comp0_tacs = map (fn thm => K (rtac (thm RS sym) 1)) map_comp0_thms; |
2470 val map_comp0_tacs = map (fn thm => K (rtac (thm RS sym) 1)) map_comp0_thms; |
2475 val map_cong0_tacs = map (mk_map_cong0_tac m) map_cong0_thms; |
2471 val map_cong0_tacs = map (mk_map_cong0_tac m) map_cong0_thms; |
2476 val set_nat_tacss = |
2472 val set_nat_tacss = |
2477 map2 (map2 (K oo mk_set_map0_tac)) hset_defss (transpose col_natural_thmss); |
2473 map2 (map2 (K oo mk_set_map0_tac)) hset_defss (transpose col_natural_thmss); |
2478 |
2474 |
2479 val bd_co_tacs = replicate n (K (mk_bd_card_order_tac sbd_card_order)); |
2475 val bd_co_tacs = replicate n (K (rtac sbd_card_order 1)); |
2480 val bd_cinf_tacs = replicate n (K (mk_bd_cinfinite_tac sbd_Cinfinite)); |
2476 val bd_cinf_tacs = replicate n (K (rtac (sbd_Cinfinite RS conjunct1) 1)); |
2481 |
2477 |
2482 val set_bd_tacss = |
2478 val set_bd_tacss = |
2483 map2 (map2 (K oo mk_set_bd_tac sbd_Cinfinite)) hset_defss (transpose col_bd_thmss); |
2479 map2 (map2 (K oo mk_set_bd_tac sbd_Cinfinite)) hset_defss (transpose col_bd_thmss); |
2484 |
2480 |
2485 val map_wpull_tacs = |
2481 val map_wpull_tacs = |
2680 val (Jbnfs, lthy) = |
2676 val (Jbnfs, lthy) = |
2681 fold_map9 (fn tacs => fn b => fn map_b => fn rel_b => fn set_bs => fn mapx => fn sets => |
2677 fold_map9 (fn tacs => fn b => fn map_b => fn rel_b => fn set_bs => fn mapx => fn sets => |
2682 fn T => fn (thms, wits) => fn lthy => |
2678 fn T => fn (thms, wits) => fn lthy => |
2683 bnf_def Dont_Inline (user_policy Note_Some) I tacs (wit_tac thms) (SOME deads) map_b |
2679 bnf_def Dont_Inline (user_policy Note_Some) I tacs (wit_tac thms) (SOME deads) map_b |
2684 rel_b set_bs |
2680 rel_b set_bs |
2685 ((((((b, T), fold_rev Term.absfree fs' mapx), sets), bd), wits), NONE) lthy |
2681 ((((((b, T), fold_rev Term.absfree fs' mapx), sets), sbd), wits), NONE) lthy |
2686 |> register_bnf (Local_Theory.full_name lthy b)) |
2682 |> register_bnf (Local_Theory.full_name lthy b)) |
2687 tacss bs map_bs rel_bs set_bss fs_maps setss_by_bnf Ts all_witss lthy; |
2683 tacss bs map_bs rel_bs set_bss fs_maps setss_by_bnf Ts all_witss lthy; |
2688 |
2684 |
2689 val fold_maps = fold_thms lthy (map (fn bnf => |
2685 val fold_maps = fold_thms lthy (map (fn bnf => |
2690 mk_unabs_def m (map_def_of_bnf bnf RS meta_eq_to_obj_eq)) Jbnfs); |
2686 mk_unabs_def m (map_def_of_bnf bnf RS meta_eq_to_obj_eq)) Jbnfs); |