(* Centralisers and centers. *)
Local Notation "'C [ u ]" := (centraliser1_vspace u) : vspace_scope.
Definition centraliser_vspace V := (\bigcap_i 'C[tnth (vbasis V) i])%VS.
Local Notation "'C ( V )" := (centraliser_vspace V) : vspace_scope.
Definition center_vspace V := (V :&: 'C(V))%VS.
Local Notation "'Z ( V )" := (center_vspace V) : vspace_scope.

(* Specifications: *)
Lemma cent1vP u v : reflect (u * v = v * u) (u \in 'C[v]%VS).
Lemma centvsP U V : reflect {in U & V, commutative *%R} (U <= 'C(V))%VS.
Lemma centv1 V : 1 \in 'C(V)%VS.
Definition has_algid : pred {vspace aT} := algid_decidable.
Lemma has_algidP {U} : reflect (exists e, is_algid e U) (has_algid U).
Definition is_aspace U := has_algid U && (U * U <= U)%VS.