如何在 Coq 中证明 (forall n m : nat, (n <? m) = false -> m <= n)?
How to prove (forall n m : nat, (n <? m) = false -> m <= n) in Coq?
如何在 Coq 中证明 forall n m : nat, (n <? m) = false -> m <= n
?
我使用 apply Nat.nlt_ge
把结论变成了 ~ n < m
。
执行 SearchAbout ltb
会产生 ltb_lt: forall n m : nat, (n <? m) = true <-> n < m
,但我不知道如何应用它,因为它只处理 (n <? m) = true
,而不处理 (n <? m) = false
。
这是对 n 使用归纳法的证明。
Require Import NPeano.
Theorem my_thm: forall n m, (n <? m) = false -> m <= n.
induction n; destruct m; intros ; auto using (Le.le_n_S); discriminate.
Qed.
如何在 Coq 中证明 forall n m : nat, (n <? m) = false -> m <= n
?
我使用 apply Nat.nlt_ge
把结论变成了 ~ n < m
。
执行 SearchAbout ltb
会产生 ltb_lt: forall n m : nat, (n <? m) = true <-> n < m
,但我不知道如何应用它,因为它只处理 (n <? m) = true
,而不处理 (n <? m) = false
。
这是对 n 使用归纳法的证明。
Require Import NPeano.
Theorem my_thm: forall n m, (n <? m) = false -> m <= n.
induction n; destruct m; intros ; auto using (Le.le_n_S); discriminate.
Qed.