src/HOL/Tools/BNF/bnf_lfp.ML
changeset 56016 8875cdcfc85b
parent 55901 8c6d49dd8ae1
child 56114 bc7335979247
equal deleted inserted replaced
56015:57e2cfba9c6e 56016:8875cdcfc85b
  1481           end;
  1481           end;
  1482 
  1482 
  1483         val (Ibnf_consts, lthy) =
  1483         val (Ibnf_consts, lthy) =
  1484           fold_map8 (fn b => fn map_b => fn rel_b => fn set_bs => fn mapx => fn sets => fn wits =>
  1484           fold_map8 (fn b => fn map_b => fn rel_b => fn set_bs => fn mapx => fn sets => fn wits =>
  1485               fn T => fn lthy =>
  1485               fn T => fn lthy =>
  1486             define_bnf_consts Dont_Inline (user_policy Note_Some lthy) (SOME deads)
  1486             define_bnf_consts Dont_Inline (user_policy Note_Some lthy) false (SOME deads)
  1487               map_b rel_b set_bs
  1487               map_b rel_b set_bs
  1488               ((((((b, T), fold_rev Term.absfree fs' mapx), sets), sbd), wits), NONE) lthy)
  1488               ((((((b, T), fold_rev Term.absfree fs' mapx), sets), sbd), wits), NONE) lthy)
  1489           bs map_bs rel_bs set_bss fs_maps setss_by_bnf ctor_witss Ts lthy;
  1489           bs map_bs rel_bs set_bss fs_maps setss_by_bnf ctor_witss Ts lthy;
  1490 
  1490 
  1491         val (_, Iconsts, Iconst_defs, mk_Iconsts) = split_list4 Ibnf_consts;
  1491         val (_, Iconsts, Iconst_defs, mk_Iconsts) = split_list4 Ibnf_consts;
  1767         fun wit_tac ctxt = unfold_thms_tac ctxt (flat Iwit_defss) THEN
  1767         fun wit_tac ctxt = unfold_thms_tac ctxt (flat Iwit_defss) THEN
  1768           mk_wit_tac ctxt n (flat ctor_Iset_thmss) (maps wit_thms_of_bnf bnfs);
  1768           mk_wit_tac ctxt n (flat ctor_Iset_thmss) (maps wit_thms_of_bnf bnfs);
  1769 
  1769 
  1770         val (Ibnfs, lthy) =
  1770         val (Ibnfs, lthy) =
  1771           fold_map6 (fn b => fn tacs => fn map_b => fn rel_b => fn set_bs => fn consts => fn lthy =>
  1771           fold_map6 (fn b => fn tacs => fn map_b => fn rel_b => fn set_bs => fn consts => fn lthy =>
  1772             bnf_def Do_Inline (user_policy Note_Some) I tacs wit_tac (SOME deads)
  1772             bnf_def Do_Inline (user_policy Note_Some) false I tacs wit_tac (SOME deads)
  1773               map_b rel_b set_bs consts lthy
  1773               map_b rel_b set_bs consts lthy
  1774             |> register_bnf (Local_Theory.full_name lthy b))
  1774             |> register_bnf (Local_Theory.full_name lthy b))
  1775           bs tacss map_bs rel_bs set_bss
  1775           bs tacss map_bs rel_bs set_bss
  1776             ((((((bs ~~ Ts) ~~ Imaps) ~~ Isetss_by_bnf) ~~ Ibds) ~~ Iwitss) ~~ map SOME Irels)
  1776             ((((((bs ~~ Ts) ~~ Imaps) ~~ Isetss_by_bnf) ~~ Ibds) ~~ Iwitss) ~~ map SOME Irels)
  1777             lthy;
  1777             lthy;