src/HOL/Tools/BNF/bnf_def_tactics.ML
changeset 75276 686a6d7d0991
parent 74545 6c123914883a
--- a/src/HOL/Tools/BNF/bnf_def_tactics.ML	Fri Mar 11 09:23:05 2022 +0100
+++ b/src/HOL/Tools/BNF/bnf_def_tactics.ML	Fri Mar 11 11:19:38 2022 +0100
@@ -16,6 +16,7 @@
   val mk_inj_map_tac: Proof.context -> int -> thm -> thm -> thm -> thm -> tactic
   val mk_map_id: thm -> thm
   val mk_map_ident: Proof.context -> thm -> thm
+  val mk_map_ident_strong: Proof.context -> thm -> thm -> thm
   val mk_map_comp: thm -> thm
   val mk_map_cong_tac: Proof.context -> thm -> tactic
   val mk_set_map: thm -> thm
@@ -56,6 +57,9 @@
 
 fun mk_map_id id = mk_trans (fun_cong OF [id]) @{thm id_apply};
 fun mk_map_ident ctxt = unfold_thms ctxt @{thms id_def};
+fun mk_map_ident_strong ctxt map_cong0 map_id =
+  (trans OF [map_cong0, map_id])
+  |> unfold_thms ctxt @{thms id_apply}
 fun mk_map_comp comp = @{thm comp_eq_dest_lhs} OF [mk_sym comp];
 fun mk_map_cong_tac ctxt cong0 =
   (hyp_subst_tac ctxt THEN' rtac ctxt cong0 THEN'