store theorem about composition of fold and map in fp_result
authortraytel
Thu, 22 Aug 2013 11:30:14 +0200
changeset 542754ef7d52cc5a0
parent 54274 a33298b49d9f
child 54276 07a6e11f1631
store theorem about composition of fold and map in fp_result
src/HOL/BNF/Tools/bnf_fp_util.ML
src/HOL/BNF/Tools/bnf_gfp.ML
src/HOL/BNF/Tools/bnf_lfp.ML
     1.1 --- a/src/HOL/BNF/Tools/bnf_fp_util.ML	Thu Aug 22 08:42:27 2013 +0200
     1.2 +++ b/src/HOL/BNF/Tools/bnf_fp_util.ML	Thu Aug 22 11:30:14 2013 +0200
     1.3 @@ -25,6 +25,7 @@
     1.4       xtor_set_thmss: thm list list,
     1.5       xtor_rel_thms: thm list,
     1.6       xtor_co_iter_thmss: thm list list,
     1.7 +     xtor_co_iter_o_map_thmss: thm list list,
     1.8       rel_co_induct_thm: thm}
     1.9  
    1.10    val morph_fp_result: morphism -> fp_result -> fp_result
    1.11 @@ -211,11 +212,12 @@
    1.12     xtor_set_thmss: thm list list,
    1.13     xtor_rel_thms: thm list,
    1.14     xtor_co_iter_thmss: thm list list,
    1.15 +   xtor_co_iter_o_map_thmss: thm list list,
    1.16     rel_co_induct_thm: thm};
    1.17  
    1.18  fun morph_fp_result phi {Ts, bnfs, ctors, dtors, xtor_co_iterss, xtor_co_induct, dtor_ctors,
    1.19      ctor_dtors, ctor_injects, xtor_map_thms, xtor_set_thmss, xtor_rel_thms, xtor_co_iter_thmss,
    1.20 -    rel_co_induct_thm} =
    1.21 +    xtor_co_iter_o_map_thmss, rel_co_induct_thm} =
    1.22    {Ts = map (Morphism.typ phi) Ts,
    1.23     bnfs = map (morph_bnf phi) bnfs,
    1.24     ctors = map (Morphism.term phi) ctors,
    1.25 @@ -229,6 +231,7 @@
    1.26     xtor_set_thmss = map (map (Morphism.thm phi)) xtor_set_thmss,
    1.27     xtor_rel_thms = map (Morphism.thm phi) xtor_rel_thms,
    1.28     xtor_co_iter_thmss = map (map (Morphism.thm phi)) xtor_co_iter_thmss,
    1.29 +   xtor_co_iter_o_map_thmss = map (map (Morphism.thm phi)) xtor_co_iter_o_map_thmss,
    1.30     rel_co_induct_thm = Morphism.thm phi rel_co_induct_thm};
    1.31  
    1.32  fun eq_fp_result ({bnfs = bnfs1, ...} : fp_result, {bnfs = bnfs2, ...} : fp_result) =
     2.1 --- a/src/HOL/BNF/Tools/bnf_gfp.ML	Thu Aug 22 08:42:27 2013 +0200
     2.2 +++ b/src/HOL/BNF/Tools/bnf_gfp.ML	Thu Aug 22 11:30:14 2013 +0200
     2.3 @@ -2902,6 +2902,7 @@
     2.4        xtor_map_thms = folded_dtor_map_thms, xtor_set_thmss = folded_dtor_set_thmss',
     2.5        xtor_rel_thms = dtor_Jrel_thms,
     2.6        xtor_co_iter_thmss = transpose [ctor_dtor_unfold_thms, ctor_dtor_corec_thms],
     2.7 +      xtor_co_iter_o_map_thmss = transpose [dtor_unfold_o_map_thms, dtor_corec_o_map_thms],
     2.8        rel_co_induct_thm = Jrel_coinduct_thm},
     2.9       lthy |> Local_Theory.notes (common_notes @ notes) |> snd)
    2.10    end;
     3.1 --- a/src/HOL/BNF/Tools/bnf_lfp.ML	Thu Aug 22 08:42:27 2013 +0200
     3.2 +++ b/src/HOL/BNF/Tools/bnf_lfp.ML	Thu Aug 22 11:30:14 2013 +0200
     3.3 @@ -1862,6 +1862,7 @@
     3.4        ctor_injects = ctor_inject_thms, xtor_map_thms = folded_ctor_map_thms,
     3.5        xtor_set_thmss = folded_ctor_set_thmss', xtor_rel_thms = ctor_Irel_thms,
     3.6        xtor_co_iter_thmss = transpose [ctor_fold_thms, ctor_rec_thms],
     3.7 +      xtor_co_iter_o_map_thmss = transpose [ctor_fold_o_map_thms, ctor_rec_o_map_thms],
     3.8        rel_co_induct_thm = Irel_induct_thm},
     3.9       lthy |> Local_Theory.notes (common_notes @ notes) |> snd)
    3.10    end;