src/HOL/Tools/BNF/bnf_fp_def_sugar.ML
changeset 58584 b6492a7abb59
parent 58583 1dd83cbba636
child 58585 efc8b2c54a38
equal deleted inserted replaced
58583:1dd83cbba636 58584:b6492a7abb59
  1932       map_filter (fn (A, set_bos) => if exists is_none set_bos then SOME A else NONE)
  1932       map_filter (fn (A, set_bos) => if exists is_none set_bos then SOME A else NONE)
  1933         (unsorted_As ~~ transpose set_boss);
  1933         (unsorted_As ~~ transpose set_boss);
  1934 
  1934 
  1935     val ((pre_bnfs, absT_infos), (fp_res as {bnfs = fp_bnfs as any_fp_bnf :: _, ctors = ctors0,
  1935     val ((pre_bnfs, absT_infos), (fp_res as {bnfs = fp_bnfs as any_fp_bnf :: _, ctors = ctors0,
  1936              dtors = dtors0, xtor_co_recs = xtor_co_recs0, xtor_co_induct, dtor_ctors,
  1936              dtors = dtors0, xtor_co_recs = xtor_co_recs0, xtor_co_induct, dtor_ctors,
  1937              ctor_dtors, ctor_injects, dtor_injects, xtor_maps, xtor_set_thmss, xtor_rel_thms,
  1937              ctor_dtors, ctor_injects, dtor_injects, xtor_maps, xtor_setss, xtor_rel_thms,
  1938              xtor_co_rec_thms, xtor_rel_co_induct, dtor_set_inducts,
  1938              xtor_co_rec_thms, xtor_rel_co_induct, dtor_set_inducts,
  1939              xtor_co_rec_transfers, ...},
  1939              xtor_co_rec_transfers, ...},
  1940            lthy)) =
  1940            lthy)) =
  1941       fp_bnf (construct_fp mixfixes map_bs rel_bs set_bss) fp_bs (map dest_TFree unsorted_As)
  1941       fp_bnf (construct_fp mixfixes map_bs rel_bs set_bss) fp_bs (map dest_TFree unsorted_As)
  1942         (map dest_TFree killed_As) fp_eqs no_defs_lthy
  1942         (map dest_TFree killed_As) fp_eqs no_defs_lthy
  2358 
  2358 
  2359     val lthy'' = lthy'
  2359     val lthy'' = lthy'
  2360       |> live > 0 ? fold2 (fn Type (s, _) => fn bnf => register_bnf_raw s bnf) fpTs fp_bnfs
  2360       |> live > 0 ? fold2 (fn Type (s, _) => fn bnf => register_bnf_raw s bnf) fpTs fp_bnfs
  2361       |> fold_map define_ctrs_dtrs_for_type (fp_bnfs ~~ fp_bs ~~ fpTs ~~ ctors ~~ dtors ~~
  2361       |> fold_map define_ctrs_dtrs_for_type (fp_bnfs ~~ fp_bs ~~ fpTs ~~ ctors ~~ dtors ~~
  2362         xtor_co_recs ~~ ctor_dtors ~~ dtor_ctors ~~ ctor_injects ~~ pre_map_defs ~~ pre_set_defss ~~
  2362         xtor_co_recs ~~ ctor_dtors ~~ dtor_ctors ~~ ctor_injects ~~ pre_map_defs ~~ pre_set_defss ~~
  2363         pre_rel_defs ~~ xtor_maps ~~ xtor_set_thmss ~~ xtor_rel_thms ~~ ns ~~ kss ~~ mss ~~
  2363         pre_rel_defs ~~ xtor_maps ~~ xtor_setss ~~ xtor_rel_thms ~~ ns ~~ kss ~~ mss ~~
  2364         abss ~~ abs_injects ~~ abs_inverses ~~ type_definitions ~~ ctr_bindingss ~~ ctr_mixfixess ~~
  2364         abss ~~ abs_injects ~~ abs_inverses ~~ type_definitions ~~ ctr_bindingss ~~ ctr_mixfixess ~~
  2365         ctr_Tsss ~~ disc_bindingss ~~ sel_bindingsss ~~ raw_sel_default_eqss)
  2365         ctr_Tsss ~~ disc_bindingss ~~ sel_bindingsss ~~ raw_sel_default_eqss)
  2366       |> wrap_ctrs_derive_map_set_rel_thms_define_co_rec_for_types
  2366       |> wrap_ctrs_derive_map_set_rel_thms_define_co_rec_for_types
  2367       |> case_fp fp derive_note_induct_recs_thms_for_types
  2367       |> case_fp fp derive_note_induct_recs_thms_for_types
  2368            derive_note_coinduct_corecs_thms_for_types;
  2368            derive_note_coinduct_corecs_thms_for_types;