使用关键字 `exists` 在 coq 中定义
Definition in coq using keyword `exists`
我正在尝试使用以下语法
定义一个名为 isVector
的实体
Require Export Setoid.
Require Export Coq.Reals.Reals.
Require Export ArithRing.
Definition Point := Type.
Record MassPoint:Type:= cons{number : R ; point: Point}.
Variable add_MP : MassPoint -> MassPoint -> MassPoint .
Variable mult_MP : R -> MassPoint -> MassPoint .
Variable orthogonalProjection : Point -> Point -> Point -> Point.
Definition isVector (v:MassPoint):= exists A, B :Point , v= add_MP((−1)A)(1B).
并且 Coq IDE 一直抱怨定义存在语法错误。目前,我还没弄明白。
这里有很多问题。
首先,你要写:
exists A B : Point, …
不同变量之间没有逗号。
但是,您的右侧也有语法错误。首先,我不确定那些 1 和 -1 操作是否存在。其次,函数调用会这样写:
add_MP A B
你可以按照你的方式来写:
add_MP(A)(B)
但是在较长的 运行 中,您可能应该习惯函数调用的语法只是一个空格!您可能需要以公理化其他操作的方式公理化此 -1
操作,除非它们是您在某处定义但未在此处 post 的符号。
感谢您的帮助。
经过一点点试验。以下是有效的解决方案。
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).
我正在尝试使用以下语法
定义一个名为isVector
的实体
Require Export Setoid.
Require Export Coq.Reals.Reals.
Require Export ArithRing.
Definition Point := Type.
Record MassPoint:Type:= cons{number : R ; point: Point}.
Variable add_MP : MassPoint -> MassPoint -> MassPoint .
Variable mult_MP : R -> MassPoint -> MassPoint .
Variable orthogonalProjection : Point -> Point -> Point -> Point.
Definition isVector (v:MassPoint):= exists A, B :Point , v= add_MP((−1)A)(1B).
并且 Coq IDE 一直抱怨定义存在语法错误。目前,我还没弄明白。
这里有很多问题。
首先,你要写:
exists A B : Point, …
不同变量之间没有逗号。
但是,您的右侧也有语法错误。首先,我不确定那些 1 和 -1 操作是否存在。其次,函数调用会这样写:
add_MP A B
你可以按照你的方式来写:
add_MP(A)(B)
但是在较长的 运行 中,您可能应该习惯函数调用的语法只是一个空格!您可能需要以公理化其他操作的方式公理化此 -1
操作,除非它们是您在某处定义但未在此处 post 的符号。
感谢您的帮助。 经过一点点试验。以下是有效的解决方案。
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).