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_assoc :
forall (x y : K) (u : U * V),
prod_scal x (prod_scal y u) = prod_scal (mult x y) u.