我正在努力证明
Theorem T20d :forall (x y:R), (0<x /\ 0<y) -> 0 < Rmin x y.
带
Lemma min_glb_lt n m p : p < n -> p < m -> p < min n m.
位于Coq.Structures.GenericMinMax
中我使用Require Import Coq.Structures.GenericMinMax
导入然而,当我尝试使用它时,仍然没有找到“参考min_glb_lt”?我怀疑我需要打开一个范围,但我不知道哪个范围。
答案 0 :(得分:3)
首先,GenericMinMax
库定义了泛型结构,因此您无法直接使用它们来解决具体的问题。该库主要包含仿函数。换句话说,它提供了您需要实现的接口才能使用它们。
在我们的例子中,我们需要实现MinMaxLogicalProperties
仿函数(或包含此仿函数的其他仿函数),因为它包含了所需的引理。
几个Coq标准库提供了这样的实现。对我们来说幸运的是,已经为模块Rminmax.v
内的文件R
中的实数完成了这一行,具体来说这一行:
object[]
所以,我们可以像这样使用它:
Include UsualMinMaxProperties R_as_OT RHasMinMax.
或者,我们可以通过其限定名称Require Import Reals.
Require Import Rminmax. Import R.
Local Open Scope R_scope.
Theorem T20d (x y : R) :
(0 < x /\ 0 < y) -> 0 < Rmin x y.
Proof.
intros [? ?].
now apply min_glb_lt.
Qed.
引用引理 - 这将让我们摆脱R.min_glb_lt
。