Coq 对变量应用减缩 我们假设我是一个证据,我有这样的假设: a : nat b : nat c : nat H : somePred a b
somePred的定义是:Coq 对变量应用减缩 我们假设我是一个证据,我有这样的假设: a : nat b : nat c : nat H : somePred a b,coq,proof,predicates,Coq,Proof,Predicates,somePred的定义是: Definition somePred (p:nat) (q:nat) : Prop := forall (x : nat), P(x, p, q). 如何将H应用于c并获得p(c,a,b)?答案是: specialize H with c. 如何获取变量H:somePred a b?是不是应该是H:Prop?@AaditMShah,我试图证明类似于forall(a:nat)(b:nat)(c:nat)(somePred a b)->的东西,所以我用了简介a b
Definition somePred (p:nat) (q:nat) : Prop := forall (x : nat), P(x, p, q).
如何将H
应用于c
并获得p(c,a,b)
?答案是:
specialize H with c.
如何获取变量
H:somePred a b
?是不是应该是H:Prop
?@AaditMShah,我试图证明类似于forall(a:nat)(b:nat)(c:nat)(somePred a b)->的东西,所以我用了简介a b c H。你不会得到P(c,b,c)
而不是P(c,a,b)
?somePred
中的p
的定义根本不能使用。@Vinz抱歉,这是一个拼写错误-现在已修复。您可能需要在H中展开somePred。
。或者,如果您需要保持H
的原样,您可以使用assert(foo:=hc)。
或assert(foo:P(c,a,b))通过apply H断言一条新语句。
。