如果这显然是在某个地方发布的,我深表歉意,但我一直在尝试谷歌搜索和 SO 搜索,但对此一无所获。
A部分。
是否有用于在 Coq 中定义 R^2 和 R^3 中的坐标/向量和点的标准库?我非常想做标准的东西,比如添加向量、叉积、缩放等。
如果没有,这是如何开始的:
Require Import Coq.Reals.Reals.
Inductive Coordinate2 : Type := Point2: R -> R -> Coordinate2.
Definition R2plus (u:Coordinate2) (v:Coordinate2) : Coordinate2 :=
match u, v with
| (Point2 ux uy),(Point2 vx vy)=>(Point2 ((ux+vx)%R) ((uy+vy)%R))
end.
(* etc. *)
Notation "x + y" := (R2plus x y).
另外,为什么当我运行时:
Eval compute in ((2%R) < (3%R))%R.
我得到
= (2 < 3)%R
: Prop
而不是
True
或者其他的东西?
B 部分。
这甚至是个好主意吗?我想构建一个使用实数计算一些东西的算法,并在 Coq 中证明该算法是正确的。Coq.Reals.Reals 是正确的使用方法,还是它真的太抽象了?