Coq:理由不足错误

标签 coq

我是 Coq 的新手,对于假设 H3,我收到了一个 Insufficient Justification 错误。我尝试重写了几次,但错误仍然存​​在。有人可以解释一下为什么吗?谢谢。

Section GroupTheory.
Variable G: Set.
Variable operation: G -> G -> G.
Variable e : G.
Variable inv : G -> G.
Infix "*" := operation.

Hypothesis associativity : forall x y z : G, (x * y) * z = x * (y * z).
Hypothesis identity : forall x : G, exists e : G, (x * e = x) /\ (e * x = x).
Hypothesis inverse : forall x : G, (x * inv x = e) /\ (inv x * x = e).

Theorem latin_square_property : 
  forall a b : G, exists x : G, a * x = b.
proof.
  let a : G, b : G.
  take (inv a * b).
  have H1:(a * (inv a * b) = (a * inv a) * b) by associativity.
  have H2:(a * inv a = e) by inverse.
  have H3:(e * b = b) by identity.
  have (a * (inv a * b) = (a * inv a) * b) by H1.
                       ~= (e * b) by H2.
                       ~= (b) by H3.
hence thesis.
end proof.
Qed.
End GroupTheory.

最佳答案

原因是您的identity公理独立于本节中定义的单位e,因为您已将e恒等公理定义中的存在量词。

我们可以修改identity,去掉定义中的exists e:

Hypothesis identity : forall x : G, (x * e = x) /\ (e * x = x).

之后您就可以完成证明。

关于Coq:理由不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793698/

相关文章:

functional-programming - 在 Coq 中构建类层次结构?

coq - 在 Coq 中形式化组的好方法

typeclass - Coq:展开类实例

coq - 如何证明偏序归纳谓词的可判定性?

coq - 没有基数参数的类型不等式

coq - 如何匹配 "match"表达式?

coq - 通过修复减少条款。 (柯克)

coq - IndProp : prove that Prop is not provable

coq - 为什么 'intuition' 在 Coq 的例子中有效?

dictionary - 在 Coq 8.6 中使用 FMap 的正确方法?