31 fun trivial_fp_result_of fp_bnf fpT C xtor_map xtor_sets xtor_rel ctor_rec_o_map xtor_rel_induct = |
31 fun trivial_fp_result_of fp_bnf fpT C xtor_map xtor_sets xtor_rel ctor_rec_o_map xtor_rel_induct = |
32 let |
32 let |
33 val xtors = [Const (@{const_name xtor}, fpT --> fpT)]; |
33 val xtors = [Const (@{const_name xtor}, fpT --> fpT)]; |
34 val co_recs = [Const (@{const_name ctor_rec}, (fpT --> C) --> (fpT --> C))]; |
34 val co_recs = [Const (@{const_name ctor_rec}, (fpT --> C) --> (fpT --> C))]; |
35 val co_rec_thms = [map_id0_of_bnf fp_bnf RS @{thm ctor_rec}]; |
35 val co_rec_thms = [map_id0_of_bnf fp_bnf RS @{thm ctor_rec}]; |
|
36 val co_rec_unique_thm = map_id0_of_bnf fp_bnf RS @{thm ctor_rec_unique}; |
36 in |
37 in |
37 {Ts = [fpT], bnfs = [fp_bnf], pre_bnfs = [ID_bnf], absT_infos = [trivial_absT_info_of fpT], |
38 {Ts = [fpT], bnfs = [fp_bnf], pre_bnfs = [ID_bnf], absT_infos = [trivial_absT_info_of fpT], |
38 ctors = xtors, dtors = xtors, xtor_un_folds_legacy = co_recs, |
39 ctors = xtors, dtors = xtors, xtor_un_folds_legacy = co_recs, |
39 xtor_co_recs = co_recs, xtor_co_induct = @{thm xtor_induct}, dtor_ctors = @{thms xtor_xtor}, |
40 xtor_co_recs = co_recs, xtor_co_induct = @{thm xtor_induct}, dtor_ctors = @{thms xtor_xtor}, |
40 ctor_dtors = @{thms xtor_xtor}, ctor_injects = @{thms xtor_inject}, |
41 ctor_dtors = @{thms xtor_xtor}, ctor_injects = @{thms xtor_inject}, |
41 dtor_injects = @{thms xtor_inject}, xtor_maps = [xtor_map], xtor_map_uniques = [], |
42 dtor_injects = @{thms xtor_inject}, xtor_maps = [xtor_map], |
42 xtor_setss = [xtor_sets], xtor_rels = [xtor_rel], xtor_un_fold_thms_legacy = co_rec_thms, |
43 xtor_map_unique = @{thm xtor_map_unique}, xtor_setss = [xtor_sets], xtor_rels = [xtor_rel], |
43 xtor_co_rec_thms = co_rec_thms, xtor_un_fold_uniques_legacy = [], xtor_co_rec_uniques = [], |
44 xtor_un_fold_thms_legacy = co_rec_thms, xtor_co_rec_thms = co_rec_thms, |
|
45 xtor_un_fold_unique_legacy = co_rec_unique_thm, xtor_co_rec_unique = co_rec_unique_thm, |
44 xtor_un_fold_o_maps_legacy = [ctor_rec_o_map], xtor_co_rec_o_maps = [ctor_rec_o_map], |
46 xtor_un_fold_o_maps_legacy = [ctor_rec_o_map], xtor_co_rec_o_maps = [ctor_rec_o_map], |
45 xtor_un_fold_transfers_legacy = [], xtor_co_rec_transfers = [], |
47 xtor_un_fold_transfers_legacy = [], xtor_co_rec_transfers = [], |
46 xtor_rel_co_induct = xtor_rel_induct, dtor_set_inducts = []} |
48 xtor_rel_co_induct = xtor_rel_induct, dtor_set_inducts = []} |
47 end; |
49 end; |
48 |
50 |