src/HOL/Tools/BNF/bnf_lfp_basic_sugar.ML
changeset 62863 e0b894bba6ff
parent 62721 f3248e77c960
child 62907 9ad0bac25a84
equal deleted inserted replaced
62862:007c454d0d0f 62863:e0b894bba6ff
    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