我正在通过书中的软件基础学习Coq,并且很难证明下面的引理(我需要证明其他定理)。这就是我被困的地方。我不能对命题进行分解,虽然我可以apply E2 in E1,但它会生成两个子目标(我不明白为什么),第二个子目标在逻辑上是不正确的。请帮帮忙。在,外,歧视,注入,分裂,左,右,介绍,展开,断言,重写。
Q2:另一个类似的问题。我需要利用上述证明引理来证明其他定理
所以在学习Coq的时候,我做了一个简单的例子:纸,剪刀,石头。我定义了一个数据类型。Definition compose {A B C} (g : B -> C) (f : A -> B) : (A -> C) :=为什么仅仅通过应用intros和reflexivity就可以证明Instance MSP
我的问题是:为什么‘直觉’在我的例子中起作用?Lemma eqb_false : forall n m : nat, eqb n m = false -> n <> m.m) = false -> S n <> S m但为什么要起作用呢?Coq手册上说他们会做一些搜索工作。这是否意味着它可以用其他简单的策略
我不能用Ssreflect用setoids重写。虽然我不认为这些信息与解决问题相关,但我在coq:中使用了这个范畴理论的公式。据我所知,如果能够解决合适的RewriteRelation Typeclass实例,defined的重写可以使用用户定义的等价关系。 (* Fails: not a rewritable relation: (a ≈ b) in rule __top_as