Я намеревался создать новый экземпляр вектора типа Vector в следующем коде.Однако изначально тип векторной записи имеет зависимые идентификаторы.Как и второй ident binder' or the second field -- 'proof' was dependent on the first
идент-биндер '-' mpOf '.Когда я пытаюсь определить вычитание двух точек массы, я считаю невозможным пройти ядро coq.
Require Export Coq.Reals.Reals.
Open Scope R_scope.
Definition Point:= Type.
Record massPoint: Type := cons{number: R; point: Point}.
Definition isVector (v:massPoint) := exists A B : Point, v = add_MP(cons (-1) A)(cons 1 B).
Record Vector : Type := vecCons { mpOf : massPoint ; proof : isVector mpOf}.
Variable sub_MP: massPoint -> massPoint -> massPoint.
Definition point_sub (p1 p2: massPoint):Vector:=
vecCons (sub_MP p1 p2) proof (sub_MP p1 p2). (* errorsome definition*)
Кто-нибудь знает, как определить point_sub?