End prod_UniformSpace.
Definition prod_UniformSpace_mixin (U V : UniformSpace) :=
UniformSpace.Mixin (U * V) _ prod_ball_center prod_ball_sym prod_ball_triangle.
Canonical prod_UniformSpace (U V : UniformSpace) :=
UniformSpace.Pack (U * V) (prod_UniformSpace_mixin U V) (U * V).
Section prod_ModuleSpace.
Context {K : Ring} {U V : ModuleSpace K}.
Definition prod_scal (x : K) (u : U * V) :=
(scal x (fst u), scal x (snd u)).

Lemma prod_scal_distr_l :
forall (x : K) (u v : U * V),
prod_scal x (prod_plus u v) = prod_plus (prod_scal x u) (prod_scal x v).