src/HOL/Tools/BNF/bnf_fp_def_sugar.ML
changeset 63239 d562c9948dee
parent 63222 fe92356ade42
child 63551 679402a894ae
equal deleted inserted replaced
63238:7c593d4f1f89 63239:d562c9948dee
  1144             |> map (unfold_thms lthy [@{thm conj_assoc}])
  1144             |> map (unfold_thms lthy [@{thm conj_assoc}])
  1145             |> map predify_rel_inject
  1145             |> map predify_rel_inject
  1146             |> Proof_Context.export names_lthy lthy
  1146             |> Proof_Context.export names_lthy lthy
  1147           end;
  1147           end;
  1148 
  1148 
  1149         val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib] else [];
  1149         val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib Code.Equation] else [];
  1150 
  1150 
  1151         val anonymous_notes =
  1151         val anonymous_notes =
  1152           [(rel_code_thms, code_attrs @ nitpicksimp_attrs)]
  1152           [(rel_code_thms, code_attrs @ nitpicksimp_attrs)]
  1153           |> map (fn (thms, attrs) => ((Binding.empty, attrs), [(thms, [])]));
  1153           |> map (fn (thms, attrs) => ((Binding.empty, attrs), [(thms, [])]));
  1154 
  1154 
  1575         map2 (map2 prove) goalss tacss
  1575         map2 (map2 prove) goalss tacss
  1576       end;
  1576       end;
  1577 
  1577 
  1578     val rec_thmss = mk_rec_thmss (the rec_args_typess) recs rec_defs ctor_rec_thms;
  1578     val rec_thmss = mk_rec_thmss (the rec_args_typess) recs rec_defs ctor_rec_thms;
  1579 
  1579 
  1580     val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib] else [];
  1580     val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib Code.Equation] else [];
  1581   in
  1581   in
  1582     ((induct_thms, induct_thm, mk_induct_attrs ctrss),
  1582     ((induct_thms, induct_thm, mk_induct_attrs ctrss),
  1583      (rec_thmss, code_attrs @ nitpicksimp_attrs @ simp_attrs))
  1583      (rec_thmss, code_attrs @ nitpicksimp_attrs @ simp_attrs))
  1584   end;
  1584   end;
  1585 
  1585 
  2232     val dtors = map (mk_dtor As) dtors0;
  2232     val dtors = map (mk_dtor As) dtors0;
  2233 
  2233 
  2234     val fpTs = map (domain_type o fastype_of) dtors;
  2234     val fpTs = map (domain_type o fastype_of) dtors;
  2235     val fpBTs = map B_ify_T fpTs;
  2235     val fpBTs = map B_ify_T fpTs;
  2236 
  2236 
  2237     val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib] else [];
  2237     val code_attrs = if plugins code_plugin then [Code.add_default_eqn_attrib Code.Equation] else [];
  2238 
  2238 
  2239     val ctr_Tsss = map (map (map (Term.typ_subst_atomic (Xs ~~ fpTs)))) ctrXs_Tsss;
  2239     val ctr_Tsss = map (map (map (Term.typ_subst_atomic (Xs ~~ fpTs)))) ctrXs_Tsss;
  2240     val ns = map length ctr_Tsss;
  2240     val ns = map length ctr_Tsss;
  2241     val kss = map (fn n => 1 upto n) ns;
  2241     val kss = map (fn n => 1 upto n) ns;
  2242     val mss = map (map length) ctr_Tsss;
  2242     val mss = map (map length) ctr_Tsss;