src/HOL/Tools/BNF/bnf_fp_rec_sugar_transfer.ML
changeset 63859 dca6fabd8060
parent 63801 83841a5c0897
child 69593 3dda49e08b9d
equal deleted inserted replaced
63858:0f5e735e3640 63859:dca6fabd8060
   155                    insert Thm.eq_thm case_cong case_congs0))))
   155                    insert Thm.eq_thm case_cong case_congs0))))
   156            (fastype_of f) ([], [], [], []);
   156            (fastype_of f) ([], [], [], []);
   157      in
   157      in
   158        Goal.prove lthy vars [] goal (fn {context = ctxt, prems = _} =>
   158        Goal.prove lthy vars [] goal (fn {context = ctxt, prems = _} =>
   159          mk_gfp_rec_sugar_transfer_tac ctxt def
   159          mk_gfp_rec_sugar_transfer_tac ctxt def
   160            (#co_rec_def (#fp_co_induct_sugar (nth fp_sugars kk)))
   160            (#co_rec_def (the (#fp_co_induct_sugar (nth fp_sugars kk))))
   161            (map (#type_definition o #absT_info) fp_sugars)
   161            (map (#type_definition o #absT_info) fp_sugars)
   162            (maps (#xtor_co_rec_transfers o #fp_res) fp_sugars)
   162            (maps (#xtor_co_rec_transfers o #fp_res) fp_sugars)
   163            (map (rel_def_of_bnf o #pre_bnf) fp_sugars)
   163            (map (rel_def_of_bnf o #pre_bnf) fp_sugars)
   164            disc_eq_cases case_thms case_distribs case_congs)
   164            disc_eq_cases case_thms case_distribs case_congs)
   165        |> Thm.close_derivation
   165        |> Thm.close_derivation