La chose à savoir est que Coq, une négation est une fonction qui implique False
, de sorte que le S m <> S n
est vraiment S m = S n -> False
. Ainsi, au lieu de prouver n <> m
nous pouvons introduire le n = m
(nous pouvons soit déplier not
ou dire intros
explicitement de le faire) et obtenir l'objectif False
à la place. Mais avec n = m
dans le contexte que nous pouvons réécrire HS: S n <> S m
dans HS: S n <> S n
, qui peut être manipulé par auto
, ou bien d'autres tactiques telles que apply HS. reflexivity.
ou congruence.
etc.
Lemma not_eq_S2: forall m n, S m <> S n -> m <> n.
Proof. intros m n HS HC.
rewrite HC in HS. auto.
Qed.