我有一个定理,其中我表明存在满足某些属性的对象。我通过构造对象证明了这个定理。然后,在另一个证明中,我想参考第二定理陈述中第一个定理中定义的对象。我知道如果我使用Defined而不是Qed关闭我的证明,该对象应该是可访问的,但我不知道如何访问它。例如:
定理T1:存在x,P x。 证明。 ......定义。
定理T2:对于在T1中构造的相同x,Q x \ / R x。 证明。 ...... Qed。
如何在Coq中表达这一点?
答案 0 :(得分:2)
在这种情况下,您应该使用定义来定义对象(x)。
Definition object : (...) :=
...
Theorem T1 : exists x, P x.
Proof.
exists object.
...
Qed.
Theorem T2 : ...
T2的证明使用同一个对象。您可能会发现某些策略(即,确切地说,如果这是生活在Prop中的东西那么加倍)会帮助您,因为它们可以让您更轻松地操作原始证明对象。