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)).
End prod_ModuleSpace.
Definition prod_ModuleSpace_mixin (K : Ring) (U V : ModuleSpace K) :=
ModuleSpace.Mixin K _ _ (@prod_scal_assoc K U V) prod_scal_one prod_scal_distr_l prod_scal_distr_r.
Canonical prod_ModuleSpace (K : Ring) (U V : ModuleSpace K) :=
ModuleSpace.Pack K (U * V) (ModuleSpace.Class _ _ _ (prod_ModuleSpace_mixin K U V)) (U * V).
Canonical prod_NormedModuleAux (K : AbsRing) (U V : NormedModuleAux K) :=
NormedModuleAux.Pack K (U * V) (NormedModuleAux.Class _ _ (ModuleSpace.class K _) (UniformSpace.class (prod_UniformSpace U V))) (U * V).

Lemma sqrt_plus_sqr :
forall x y : R, Rmax (Rabs x) (Rabs y) <= sqrt (x ^ 2 + y ^ 2) <= sqrt 2 * Rmax (Rabs x) (Rabs y).