Rbar / Rbar_le / 外稃罂粟
Rbar / Rbar_le / coquelicot lemma
我正在通过 Coq 8.12.0 参考手册学习 Coq,但无法证明以下引理。
From Coq Require Import Lia Reals Lra List.
Lemma lemma1 : forall (x y:Rbar), Rbar_le x 0 -> Rbar_le y 0
-> Rbar_le (Rbar_plus x y) 0.
Proof.
destruct x ; destruct y ; simpl ; intuition.
destruct H.
destruct H0.
unfold Rle.
auto with real.
right.
...
然后我就卡住了,无法完成证明。有什么想法吗?
当您输入策略 right
时,您在证明中做出了一个选择,但您的假设中并没有被事实证实。你应该去掉这一行,并尝试找到另一种方法来证明你最初的猜想,这似乎真的可以证明。
实际上,如果您开始展开 Rle
的定义并使用 destruct
,那么您进入的细节太多了。 ...; intuition
后的目标如下:
1 subgoal (ID 207)
r, r0 : R
H : r <= 0
H0 : r0 <= 0
============================
r + r0 <= 0
这是简单线性算术的目标(因为我们只是将变量加在一起,使用简单的比较)。这是通过称为 lra
的强大策略解决的。就叫它吧。证明的完整脚本在这里:
Lemma lemma1 : forall (x y:Rbar), Rbar_le x 0 -> Rbar_le y 0
-> Rbar_le (Rbar_plus x y) 0.
Proof.
destruct x ; destruct y ; simpl ; intuition.
lra.
Qed.
我正在通过 Coq 8.12.0 参考手册学习 Coq,但无法证明以下引理。
From Coq Require Import Lia Reals Lra List.
Lemma lemma1 : forall (x y:Rbar), Rbar_le x 0 -> Rbar_le y 0
-> Rbar_le (Rbar_plus x y) 0.
Proof.
destruct x ; destruct y ; simpl ; intuition.
destruct H.
destruct H0.
unfold Rle.
auto with real.
right.
...
然后我就卡住了,无法完成证明。有什么想法吗?
当您输入策略 right
时,您在证明中做出了一个选择,但您的假设中并没有被事实证实。你应该去掉这一行,并尝试找到另一种方法来证明你最初的猜想,这似乎真的可以证明。
实际上,如果您开始展开 Rle
的定义并使用 destruct
,那么您进入的细节太多了。 ...; intuition
后的目标如下:
1 subgoal (ID 207)
r, r0 : R
H : r <= 0
H0 : r0 <= 0
============================
r + r0 <= 0
这是简单线性算术的目标(因为我们只是将变量加在一起,使用简单的比较)。这是通过称为 lra
的强大策略解决的。就叫它吧。证明的完整脚本在这里:
Lemma lemma1 : forall (x y:Rbar), Rbar_le x 0 -> Rbar_le y 0
-> Rbar_le (Rbar_plus x y) 0.
Proof.
destruct x ; destruct y ; simpl ; intuition.
lra.
Qed.