156 ([induct], fold_thmss, rec_thmss, [], [], [], [])) |
156 ([induct], fold_thmss, rec_thmss, [], [], [], [])) |
157 else |
157 else |
158 derive_coinduct_coiters_thms_for_types pre_bnfs (the coiters_args_types) xtor_co_induct |
158 derive_coinduct_coiters_thms_for_types pre_bnfs (the coiters_args_types) xtor_co_induct |
159 dtor_injects dtor_ctors xtor_co_iter_thmss nesting_bnfs fpTs Cs kss mss ns ctr_defss |
159 dtor_injects dtor_ctors xtor_co_iter_thmss nesting_bnfs fpTs Cs kss mss ns ctr_defss |
160 ctr_sugars co_iterss co_iter_defss (Proof_Context.export lthy no_defs_lthy) lthy |
160 ctr_sugars co_iterss co_iter_defss (Proof_Context.export lthy no_defs_lthy) lthy |
161 |> (fn ((coinduct_thms_pairs, _), (unfold_thmss, corec_thmss, _), _, _, |
161 |> (fn ((coinduct_thms_pairs, _), (unfold_thmss, corec_thmss, _), _, |
162 (disc_unfold_thmss, disc_corec_thmss, _), |
162 (disc_unfold_thmss, disc_corec_thmss, _), _, |
163 (sel_unfold_thmsss, sel_corec_thmsss, _)) => |
163 (sel_unfold_thmsss, sel_corec_thmsss, _)) => |
164 (map snd coinduct_thms_pairs, unfold_thmss, corec_thmss, disc_unfold_thmss, |
164 (map snd coinduct_thms_pairs, unfold_thmss, corec_thmss, disc_unfold_thmss, |
165 disc_corec_thmss, sel_unfold_thmsss, sel_corec_thmsss)); |
165 disc_corec_thmss, sel_unfold_thmsss, sel_corec_thmsss)); |
166 |
166 |
167 val phi = Proof_Context.export_morphism no_defs_lthy no_defs_lthy0; |
167 val phi = Proof_Context.export_morphism no_defs_lthy no_defs_lthy0; |