Add Field Kfth : FT.(******************************************************************************)
(*   Instanciation of Grassman for n = 3                                      *)
(******************************************************************************)

Definition Pp: params :=  {| dim := 3; K := F |}.SubClass point := Kn Pp.SubClass vect := Vect Pp.Definition Vjoin (x y : vect): vect := Vjoin Pp x y.Notation "x '∨' y" := (Vjoin _ x y) (at level 40, left associativity).Definition Vadd (x y : vect): vect := Vadd Pp x y.Notation "x + y" := (Vadd _ x y).Definition Vsub (x y : vect): vect := sub Pp Pp x y.Notation "x - y" := (Vsub _ x y).Definition Vscal (k : F) (x : vect): vect := Vscal Pp k x.Notation "k .* x" := (Vscal _ k x).Definition Vmeet (x y : vect): vect := Vmeet Pp x y.Notation "x '∧' y" := (Vmeet _ x y) (at level 45, left associativity).Definition Vdual (x : vect): vect := Vdual Pp x.Notation "'@  x" := (Vdual _ x) (at level 9).Definition Veq (x y : vect): bool := Veq Pp x y.Notation "x ?= y" := (Veq _ x y).Definition Vgenk (k : F): vect := (Vgenk Pp k).Notation "0" := (Vgenk _ 0%f).Notation "1" := (Vgenk _ 1%f).Definition hom (n: nat) (x : vect) := (hom Pp Pp n x).Notation "'dC[ x ]" := (dconst _ _ 3 x).Notation "'C[ x ]" := (const _ _ 3 x).Notation "'E'" := (all _ _ 3: vect).Coercion p2v (x : point) := (K2G Pp x): vect.Notation "'[ x , y , z ]" := (bracket _ x y z).

(* Specifications: *)
Lemma hom3E: hom 3 E.
Lemma hom1p (x : point) : hom 1 x.
Lemma hom01 : hom 0 1.