Coq:不充分的对正错误

Coq:不充分的对正错误,coq,Coq,我是Coq新手,假设H3的理由不足。我试着重写了好几次,但错误依然存在。有人能解释一下原因吗?谢谢 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

我是Coq新手,假设H3的理由不足。我试着重写了好几次,但错误依然存在。有人能解释一下原因吗?谢谢

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.

原因是您的
身份
公理独立于本节中定义的单位
e
,因为您已将
e
身份
公理定义中的存在量词绑定

我们可以修改
identity
,去掉定义中存在的
e

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

然后你就可以完成你的证明了。

就是这样。谢谢