我试图在Coq中证明一个定理,但我无法解决发生的问题。我想解决:
forall A B C: Prop, A\/(B\/C)->(A\/B)\/C.
Proof.
intros.
destruct H as [H1 | [H2 | H3 ]].
Case H1.
and in this last line I get the following error "Error: The reference Case was not found in the current environment."
我是Coq的新手,所以我不知道这究竟意味着什么。我在互联网上做了一些研究,但我没有找到解决方案。有没有人知道这个问题来自什么?
答案 0 :(得分:2)
你已经破坏了这个假设,所以你已经在分析每个案例了。
使用left
和right
来操纵结论中的分离,并在假设和结论相同时使用assumption
。
答案 1 :(得分:1)
您正在使用并且可能已在其他地方使用的Case
不是在Coq中构建的,而是在Coq生态系统中浮动的库。
我可以在这里找到对它的引用:http://coq.inria.fr/cocorico/Case%20(tactic)
我也亲自使用过它。要使用它,您需要复制文件中某个位置的链接中的定义,或者导入的另一个文件MyCaseModule.v
:
Require Import MyCaseModule.
作为旁注,Coq 8.4似乎提供了另一种使用子弹来构建校样的方法。我不确切知道细节,因为我因其他原因而无法使用8.3。但是,您可能仍然更喜欢Case / SCase / ...因为它能够为不同的案例命名。