src/HOL/Tools/BNF/bnf_fp_n2m_sugar.ML
changeset 58458 0c9d59cb3af9
parent 58457 01d9908477b3
child 58459 f70bffabd7cf
equal deleted inserted replaced
58457:01d9908477b3 58458:0c9d59cb3af9
   291 
   291 
   292         val phi = Proof_Context.export_morphism names_lthy no_defs_lthy;
   292         val phi = Proof_Context.export_morphism names_lthy no_defs_lthy;
   293 
   293 
   294         fun mk_target_fp_sugar T X kk pre_bnf absT_info ctrXs_Tss ctr_defs ctr_sugar co_rec
   294         fun mk_target_fp_sugar T X kk pre_bnf absT_info ctrXs_Tss ctr_defs ctr_sugar co_rec
   295             co_rec_def maps co_inducts co_rec_thms co_rec_disc_thms co_rec_sel_thmss
   295             co_rec_def maps co_inducts co_rec_thms co_rec_disc_thms co_rec_sel_thmss
   296             ({rel_injects, rel_distincts, ...} : fp_sugar) =
   296             ({fp_bnf_sugar = {rel_injects, rel_distincts, ...}, ...} : fp_sugar) =
   297           {T = T, BT = T (*wrong but harmless*), X = X, fp = fp, fp_res = fp_res, fp_res_index = kk,
   297           {T = T, BT = T (*wrong but harmless*), X = X, fp = fp, fp_res = fp_res, fp_res_index = kk,
   298            pre_bnf = pre_bnf, absT_info = absT_info, fp_nesting_bnfs = fp_nesting_bnfs,
   298            pre_bnf = pre_bnf, absT_info = absT_info, fp_nesting_bnfs = fp_nesting_bnfs,
   299            live_nesting_bnfs = live_nesting_bnfs, ctrXs_Tss = ctrXs_Tss, ctr_defs = ctr_defs,
   299            live_nesting_bnfs = live_nesting_bnfs, ctrXs_Tss = ctrXs_Tss, ctr_defs = ctr_defs,
   300            ctr_sugar = ctr_sugar, co_rec = co_rec, co_rec_def = co_rec_def, maps = maps,
   300            ctr_sugar = ctr_sugar, co_rec = co_rec, co_rec_def = co_rec_def, maps = maps,
   301            common_co_inducts = common_co_inducts, co_inducts = co_inducts,
   301            common_co_inducts = common_co_inducts, co_inducts = co_inducts,
   302            co_rec_thms = co_rec_thms, co_rec_discs = co_rec_disc_thms,
   302            co_rec_thms = co_rec_thms, co_rec_discs = co_rec_disc_thms,
   303            co_rec_selss = co_rec_sel_thmss, rel_injects = rel_injects,
   303            co_rec_selss = co_rec_sel_thmss, fp_ctr_sugar = {},
   304            rel_distincts = rel_distincts, fp_ctr_sugar = {}, fp_bnf_sugar = {},
   304            fp_bnf_sugar = {rel_injects = rel_injects, rel_distincts = rel_distincts},
   305            fp_co_induct_sugar = {}}
   305            fp_co_induct_sugar = {}}
   306           |> morph_fp_sugar phi;
   306           |> morph_fp_sugar phi;
   307 
   307 
   308         val target_fp_sugars =
   308         val target_fp_sugars =
   309           map16 mk_target_fp_sugar fpTs Xs kks pre_bnfs absT_infos ctrXs_Tsss ctr_defss ctr_sugars
   309           map16 mk_target_fp_sugar fpTs Xs kks pre_bnfs absT_infos ctrXs_Tsss ctr_defss ctr_sugars