使用关键字`exists`在coq中定义

时间:2018-11-24 20:36:11

标签: coq exists definition

我正在尝试使用以下语法定义名为@SRR6750041.1的实体

isVector

并且Coq IDE一直抱怨该定义存在语法错误。目前,我还没有弄清楚。

2 个答案:

答案 0 :(得分:3)

这里有很多问题。

首先,你要写:

exists A B : Point, …

不同变量之间没有逗号。

但是,在右侧,您还会遇到语法错误。首先,我不确定这1和-1操作是否存在。其次,函数调用将以这种方式编写:

add_MP A B

您可以按照自己的方式编写它们:

add_MP(A)(B)

但是从长远来看,您可能应该习惯于函数调用的语法只是空白!您可能需要按照公理化其他操作的方式来公化此-1操作,除非它们是您在某处定义但未在此处发布的符号。

答案 1 :(得分:1)

感谢您的帮助。 经过一点实验。以下是有效的解决方案。

Definition Point:= Type.

Record massPoint: Type := cons{number: R; point: Point}.

Variable add_MP: massPoint -> massPoint -> massPoint.
Variable mult_MP: R        -> massPoint -> massPoint.


Definition tp (p:Point) := cons (-1) p.

Definition isVector(v:massPoint):= exists A B : Point, v = add_MP(cons (-1) A)(cons 1 B).