在Coq中执行通用实例化的最佳方法

时间:2014-09-05 14:17:11

标签: coq quantifiers

假设我在上下文中有一个假设H : forall ( x : X ), P x和一个变量x : X。我想执行通用实例化并获得一个新的假设H' : P x。什么是最无痛的方法呢?显然apply H in x不起作用。 assert ( P x )后跟apply H,但如果P很复杂,可能会非常混乱。

similar question似乎有点相关。但不确定是否可以在这里应用。

3 个答案:

答案 0 :(得分:4)

pose proof (H x) as H'.

括号是可选的。

答案 1 :(得分:3)

如果您想要新的假设,可以使用@ Ptival的答案,或

assert (H' := H x).

如果可以替换现有的假设

specialize (H x).

答案 2 :(得分:1)

您可以使用generalize (H x); intros Hx之类的内容:generalize会在当前目标前添加(H x)作为新的含义,intros会将其置于您的假设之​​中。