Ssreflect中空范围的Coq证明
我必须以以下形式证明目标:Ssreflect中空范围的Coq证明,coq,ssreflect,Coq,Ssreflect,我必须以以下形式证明目标: forall x: ordinal_finType m, P x 我目前的情况是,我的堆栈中有Hm:m=0,因此这本质上是一个空集合上的forall。在这种情况下,我如何处理? 使用 留给我 forall i : (x < m)%N, P i forall i:(x
forall x: ordinal_finType m, P x
我目前的情况是,我的堆栈中有Hm:m=0
,因此这本质上是一个空集合上的forall
。在这种情况下,我如何处理?
使用
留给我
forall i : (x < m)%N, P i
forall i:(x
但是当然,我不能使用重写Hm,因为它会因依赖类型错误而失败。你需要重写零假设,实际上,由于
调用的计算性质,空性的证明是微不足道的,依赖重写错误通常是由于没有重写P
本身的定义而发生的。
forall i : (x < m)%N, P i
Lemma ordinal0P P : 'I_0 -> P.
Proof. by case. Qed.
Lemma avoid_rewrite_error: forall P m, m = 0 -> forall (i : 'I_m), P.
Proof. by move=> ? ? -> []. Qed.