src/HOL/Tools/BNF/bnf_def_tactics.ML
changeset 75276 686a6d7d0991
parent 74545 6c123914883a
equal deleted inserted replaced
75275:cdb9c7d41a41 75276:686a6d7d0991
    14   val mk_in_mono_tac: Proof.context -> int -> tactic
    14   val mk_in_mono_tac: Proof.context -> int -> tactic
    15   val mk_inj_map_strong_tac: Proof.context -> thm -> thm list -> thm -> tactic
    15   val mk_inj_map_strong_tac: Proof.context -> thm -> thm list -> thm -> tactic
    16   val mk_inj_map_tac: Proof.context -> int -> thm -> thm -> thm -> thm -> tactic
    16   val mk_inj_map_tac: Proof.context -> int -> thm -> thm -> thm -> thm -> tactic
    17   val mk_map_id: thm -> thm
    17   val mk_map_id: thm -> thm
    18   val mk_map_ident: Proof.context -> thm -> thm
    18   val mk_map_ident: Proof.context -> thm -> thm
       
    19   val mk_map_ident_strong: Proof.context -> thm -> thm -> thm
    19   val mk_map_comp: thm -> thm
    20   val mk_map_comp: thm -> thm
    20   val mk_map_cong_tac: Proof.context -> thm -> tactic
    21   val mk_map_cong_tac: Proof.context -> thm -> tactic
    21   val mk_set_map: thm -> thm
    22   val mk_set_map: thm -> thm
    22 
    23 
    23   val mk_rel_Grp_tac: Proof.context -> thm list -> thm -> thm -> thm -> thm -> thm list -> tactic
    24   val mk_rel_Grp_tac: Proof.context -> thm list -> thm -> thm -> thm -> thm -> thm list -> tactic
    54 val ord_le_eq_trans = @{thm ord_le_eq_trans};
    55 val ord_le_eq_trans = @{thm ord_le_eq_trans};
    55 val conversep_shift = @{thm conversep_le_swap} RS iffD1;
    56 val conversep_shift = @{thm conversep_le_swap} RS iffD1;
    56 
    57 
    57 fun mk_map_id id = mk_trans (fun_cong OF [id]) @{thm id_apply};
    58 fun mk_map_id id = mk_trans (fun_cong OF [id]) @{thm id_apply};
    58 fun mk_map_ident ctxt = unfold_thms ctxt @{thms id_def};
    59 fun mk_map_ident ctxt = unfold_thms ctxt @{thms id_def};
       
    60 fun mk_map_ident_strong ctxt map_cong0 map_id =
       
    61   (trans OF [map_cong0, map_id])
       
    62   |> unfold_thms ctxt @{thms id_apply}
    59 fun mk_map_comp comp = @{thm comp_eq_dest_lhs} OF [mk_sym comp];
    63 fun mk_map_comp comp = @{thm comp_eq_dest_lhs} OF [mk_sym comp];
    60 fun mk_map_cong_tac ctxt cong0 =
    64 fun mk_map_cong_tac ctxt cong0 =
    61   (hyp_subst_tac ctxt THEN' rtac ctxt cong0 THEN'
    65   (hyp_subst_tac ctxt THEN' rtac ctxt cong0 THEN'
    62    REPEAT_DETERM o (dtac ctxt meta_spec THEN' etac ctxt meta_mp THEN' assume_tac ctxt)) 1;
    66    REPEAT_DETERM o (dtac ctxt meta_spec THEN' etac ctxt meta_mp THEN' assume_tac ctxt)) 1;
    63 fun mk_set_map set_map0 = set_map0 RS @{thm comp_eq_dest};
    67 fun mk_set_map set_map0 = set_map0 RS @{thm comp_eq_dest};