End FieldOver.
(* Changing the reference field to a smaller field. *)
Section BaseField.
Variables (F0 : fieldType) (F : fieldExtType F0) (L : fieldExtType F).
Definition baseField_type of phant L : Type := L.
Notation L0 := (baseField_type (Phant (FieldExt.sort L))).
Canonical baseField_eqType := [eqType of L0].
Canonical baseField_choiceType := [choiceType of L0].
Canonical baseField_zmodType := [zmodType of L0].
Canonical baseField_ringType := [ringType of L0].
Canonical baseField_unitRingType := [unitRingType of L0].
Canonical baseField_comRingType := [comRingType of L0].
Canonical baseField_comUnitRingType := [comUnitRingType of L0].
Canonical baseField_idomainType := [idomainType of L0].
Canonical baseField_fieldType := [fieldType of L0].
Definition baseField_scale (a : F0) (u : L0) : L0 := in_alg F a *: u.
Local Infix "*F0:" := baseField_scale (at level 40).
Fact baseField_scaleA a b u : a *F0: (b *F0: u) = (a * b) *F0: u.
Canonical baseField_vectType := VectType F0 L0 baseField_vectMixin.
Canonical baseField_FalgType := [FalgType F0 of L0].
Canonical baseField_extFieldType := [fieldExtType F0 of L0].
Let F0ZEZ a x v : a *: ((x *: v : L) : L0)  = (a *: x) *: v.

(* Specifications: *)
Lemma dim_baseVspace V : \dim (baseVspace V) = (\dim V * n)%N.
Fact baseAspace_suproof (E : {subfield L}) : is_aspace (baseVspace E).