@@ -3,13 +3,13 @@ From HB Require Import structures.
33From mathcomp Require Import all_ssreflect all_algebra all_classical.
44From mathcomp Require Import interval_inference reals topology_structure.
55From mathcomp Require Import uniform_structure pseudometric_structure.
6- From mathcomp Require Import order_topology.
6+ From mathcomp Require Import order_topology matrix_topology .
77
88(**md************************************************************************* *)
99(* # Topological notions for numerical types *)
1010(* *)
1111(* We endow `numFieldType` with the types of topological notions (accessible *)
12- (* with `Import numFieldTopology.Exports). *)
12+ (* with `Import numFieldTopology.Exports`). *)
1313(* *)
1414(***************************************************************************** *)
1515
@@ -378,3 +378,19 @@ have inj_nat_of_rat : injective nat_of_rat.
378378 exact/bij_inj.
379379by exists (nat_of_rat \o f) => i j Di Dj /inj_nat_of_rat/inj_f; exact.
380380Qed .
381+
382+ Lemma continuous_rsubmx {R : numFieldType} m {n1 n2} :
383+ continuous (rsubmx : 'M[R]_(m, n1 + n2) -> 'M[R]_(m, n2)).
384+ Proof .
385+ move=> u A /nbhs_ballP[e /= e0 eA].
386+ apply/nbhs_ballP; exists e => //= v [_ uv]; apply: eA; split => // i j.
387+ by apply: (le_lt_trans _ (uv i (rshift n1 j))); rewrite !mxE.
388+ Qed .
389+
390+ Lemma continuous_lsubmx {R : numFieldType} m {n1 n2} :
391+ continuous (lsubmx : 'M[R]_(m, n1 + n2) -> 'M[R]_(m, n1)).
392+ Proof .
393+ move=> u A /nbhs_ballP[e /= e0 eA].
394+ apply/nbhs_ballP; exists e => //= v [_ uv]; apply: eA; split => // i j.
395+ by apply: (le_lt_trans _ (uv i (lshift n2 j))); rewrite !mxE.
396+ Qed .
0 commit comments