【发布时间】:2017-01-08 22:48:32
【问题描述】:
我想证明,对于每个组,都存在一个减法函数,它接受组中的一个元素并返回它的负数。
我的 Coq 代码如下:
Record Group:Type := {
G:Set;
plus: G->G->G;
O:G;
assoc: forall x y z:G, plus x (plus y z)=plus (plus x y) z;
neut: forall x:G, plus x O=x /\ plus O x=x;
neg: forall x:G, exists y:G, plus x y=O
}.
Lemma minus_exists(H:Group):exists minus_func:G H->G H, (forall x:G H, plus H x (minus_func(x))=O H).
eapply ex_intro.
最后一个策略产生以下输出:
H : Group
============================
forall x : G H, plus H x (?12 x) = O H
我的第一个问题是?12,我认为它可能是一个显示不佳的角色。这是什么意思,有没有办法让它可读。
我的第二个问题是如何完成证明,回答完第一个问题后可能会更清楚。
【问题讨论】:
-
技术信息:我在 Ubuntu 16.04 的终端下运行 coqtop,在华硕 X556-XJ 笔记本电脑上运行。使用 coqide 不会改变所描述的现象。
-
如果您可以发布单独的问题而不是将您的问题合并为一个问题,则最好。这样,它可以帮助人们回答您的问题,也可以帮助其他人至少寻找您的一个问题。谢谢!
-
这里我们通常需要的唯一技术信息是 Coq 的版本。但我确实理解,因为您认为
?12是打印错误,所以您提供了有关系统类型的一些详细信息。 -
您的第二个问题值得单独提出。简短回答:您无法完成证明,您需要将
neg : G -> G及其属性neg_prop: forall x:G, exists y:G, plus x (neg x) = O /\ plus (neg x) x = O;添加到记录的定义中。 -
@AntonTrunov 或者使用公理。
标签: coq