Coq证明p <q或p> = q

时间:2020-02-01 08:15:23

标签: coq

我正在尝试证明以下琐碎的引理:

Lemma lt_or_ge: forall a b : nat,
  ((a <? b) = false) -> (b <= a).
Proof.
  intros a0 b0 H.

我需要类似的东西:

((a <? b) = false) -> (a >= b)

但是在Coq库中似乎找不到它。 谢谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

Search命令仅考虑了导入的模块,这意味着您需要导入Arith模块才能访问许多有用的(现在可搜索的)引理。

类似于以下内容的搜索查询

From Coq Require Import Arith.
(* queries separated by whitespace mean boolean "and" *)
Search (_ <? _) false (_ <= _).

将立即为您提供所需的东西:

lt_or_ge: forall a b : nat, (a <? b) = false -> b <= a
Nat.ltb_ge: forall x y : nat, (x <? y) = false <-> y <= x