用Coq证明一个定理

用Coq证明一个定理,coq,theorem,Coq,Theorem,我试图用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 environmen

我试图用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的新手,所以我不知道这到底意味着什么。我在互联网上做了一些研究,但没有找到解决办法。有人知道这个问题是怎么来的吗?

你已经破坏了这个假设,所以你已经在分析每个案例了


使用
left
right
操纵结论中的析取,当假设和结论相同时,使用
假设

您已经破坏了假设,因此您已经在分析每个案例


使用
操纵结论中的析取,以及
假设
当假设和结论相同时。

编辑:嗯。。。我可能误解了你在这里想做的事实际上


您正在使用并且可能在其他地方看到使用的
案例不是在Coq中构建的,而是在Coq生态系统中浮动的库

我可以在这里找到它的参考:)

我也亲自使用过。要使用它,您需要将该链接中的定义复制到文件中的某个位置,或者复制到导入的另一个文件
MyCaseModule.v

Require Import MyCaseModule.


作为旁注,COQ8.4似乎提供了另一种使用子弹构造证明的方法。我不知道具体细节,因为出于其他原因,我一直在使用8.3。但是,您可能仍然更喜欢Case/SCase/。。。因为它能够为不同的案例命名。

编辑:嗯。。。我可能误解了你在这里想做的事实际上


您正在使用并且可能在其他地方看到使用的
案例不是在Coq中构建的,而是在Coq生态系统中浮动的库

我可以在这里找到它的参考:)

我也亲自使用过。要使用它,您需要将该链接中的定义复制到文件中的某个位置,或者复制到导入的另一个文件
MyCaseModule.v

Require Import MyCaseModule.


作为旁注,COQ8.4似乎提供了另一种使用子弹构造证明的方法。我不知道具体细节,因为出于其他原因,我一直在使用8.3。但是,您可能仍然更喜欢Case/SCase/。。。因为它能够为不同的案例命名。

是的,但是为什么“案例H1”会出现此错误?我该怎么做才能修好它?你想用它做什么?Coq中不存在“Case”,您是否尝试使用“Case”?是的,但为什么我对“Case H1”有此错误?我该怎么做才能修好它?你想用它做什么?Coq中不存在“Case”,您是否尝试使用“Case”?