我试图在Coq中证明以下引理:
Lemma not_eq_S2: forall m n, S m <> S n -> m <> n.
这似乎很容易,但我找不到如何完成证明。请有人帮帮我吗?
谢谢。
答案 0 :(得分:4)
要知道的是,在Coq中,否定是一个隐含False
的函数,因此S m <> S n
实际上是S m = S n -> False
。因此,我们可以引入n <> m
(我们可以展开n = m
或明确告诉not
)而不是证明intros
,而是取代目标False
。但是在上下文中n = m
我们可以将HS: S n <> S m
重写为HS: S n <> S n
,这可以由auto
或其他许多策略处理,例如apply HS. reflexivity.
或{{ 1}}等等。
congruence.
答案 1 :(得分:1)
这很容易(但否定会使它有点混乱)。
foreach(int i in lista)