(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* let Heq := fresh "Heq" in (assert (Heq : X2 = X1); [ congruence | rewrite Heq; exact H ]) | H:?X1,G:(?X2 -> ?X3) |- _ => let Heq := fresh "Heq" in (assert (Heq : X2 = X1); [ congruence | rewrite Heq in G; generalize (G H); clear G; intro G ]) end.