use map_id, not map_id', to allow better composition
authorblanchet
Sun, 09 Sep 2012 12:07:15 +0200
changeset 50244d5717b5e2217
parent 50243 e43910ccee74
child 50245 0e551c2d5d8b
use map_id, not map_id', to allow better composition
src/HOL/Codatatype/Tools/bnf_fp_sugar.ML
src/HOL/Codatatype/Tools/bnf_fp_sugar_tactics.ML
     1.1 --- a/src/HOL/Codatatype/Tools/bnf_fp_sugar.ML	Sun Sep 09 10:58:11 2012 +0200
     1.2 +++ b/src/HOL/Codatatype/Tools/bnf_fp_sugar.ML	Sun Sep 09 12:07:15 2012 +0200
     1.3 @@ -440,7 +440,7 @@
     1.4        end;
     1.5  
     1.6      val pre_map_defs = map map_def_of_bnf pre_bnfs;
     1.7 -    val map_id's = map map_id'_of_bnf nested_bnfs;
     1.8 +    val map_ids = map map_id_of_bnf nested_bnfs;
     1.9  
    1.10      fun mk_map Ts Us t =
    1.11        let val (Type (_, Ts0), Type (_, Us0)) = strip_map_type (fastype_of t) |>> List.last in
    1.12 @@ -500,9 +500,9 @@
    1.13              val goal_recss = map5 (map4 o mk_goal_iter_like hss) hrecs xctrss hss xsss hxsss;
    1.14  
    1.15              val iter_tacss =
    1.16 -              map2 (map o mk_iter_like_tac pre_map_defs map_id's iter_defs) fp_iter_thms ctr_defss;
    1.17 +              map2 (map o mk_iter_like_tac pre_map_defs map_ids iter_defs) fp_iter_thms ctr_defss;
    1.18              val rec_tacss =
    1.19 -              map2 (map o mk_iter_like_tac pre_map_defs map_id's rec_defs) fp_rec_thms ctr_defss;
    1.20 +              map2 (map o mk_iter_like_tac pre_map_defs map_ids rec_defs) fp_rec_thms ctr_defss;
    1.21            in
    1.22              (map2 (map2 (fn goal => fn tac => Skip_Proof.prove lthy [] [] goal (tac o #context)))
    1.23                 goal_iterss iter_tacss,
    1.24 @@ -549,7 +549,7 @@
    1.25                map7 (map3 oooo mk_goal_coiter_like phss) cs cpss hcorecs ns kss ctrss chsss;
    1.26  
    1.27              val coiter_tacss =
    1.28 -              map3 (map oo mk_coiter_like_tac coiter_defs map_id's) fp_iter_thms pre_map_defs
    1.29 +              map3 (map oo mk_coiter_like_tac coiter_defs map_ids) fp_iter_thms pre_map_defs
    1.30                  ctr_defss;
    1.31            in
    1.32              (map2 (map2 (fn goal => fn tac => Skip_Proof.prove lthy [] [] goal (tac o #context)))
     2.1 --- a/src/HOL/Codatatype/Tools/bnf_fp_sugar_tactics.ML	Sun Sep 09 10:58:11 2012 +0200
     2.2 +++ b/src/HOL/Codatatype/Tools/bnf_fp_sugar_tactics.ML	Sun Sep 09 12:07:15 2012 +0200
     2.3 @@ -54,16 +54,16 @@
     2.4    @{thms case_unit comp_def convol_def id_apply map_pair_def sum.simps(5,6) sum_map.simps
     2.5        split_conv};
     2.6  
     2.7 -fun mk_iter_like_tac pre_map_defs map_id's iter_like_defs fld_iter_like ctr_def ctxt =
     2.8 -  Local_Defs.unfold_tac ctxt (ctr_def :: fld_iter_like :: iter_like_defs @ pre_map_defs @ map_id's @
     2.9 +fun mk_iter_like_tac pre_map_defs map_ids iter_like_defs fld_iter_like ctr_def ctxt =
    2.10 +  Local_Defs.unfold_tac ctxt (ctr_def :: fld_iter_like :: iter_like_defs @ pre_map_defs @ map_ids @
    2.11      iter_like_thms) THEN rtac refl 1;
    2.12  
    2.13  val coiter_like_ss = ss_only @{thms if_True if_False};
    2.14  val coiter_like_thms = @{thms id_apply map_pair_def sum_map.simps prod.cases};
    2.15  
    2.16 -fun mk_coiter_like_tac coiter_like_defs map_id's fld_unf_coiter_like pre_map_def ctr_def ctxt =
    2.17 +fun mk_coiter_like_tac coiter_like_defs map_ids fld_unf_coiter_like pre_map_def ctr_def ctxt =
    2.18    Local_Defs.unfold_tac ctxt (ctr_def :: coiter_like_defs) THEN
    2.19    subst_tac ctxt [fld_unf_coiter_like] 1 THEN asm_simp_tac coiter_like_ss 1 THEN
    2.20 -  Local_Defs.unfold_tac ctxt (pre_map_def :: coiter_like_thms @ map_id's) THEN rtac refl 1;
    2.21 +  Local_Defs.unfold_tac ctxt (pre_map_def :: coiter_like_thms @ map_ids) THEN rtac refl 1;
    2.22  
    2.23  end;