@@ -400,6 +400,18 @@ Arguments cvgr0_norm_le {_ _ _ F FF}.
400400#[global] Hint Extern 0 (is_true (`|?x| <= _)) => match goal with
401401 H : x \is_near _ |- _ => solve[near: x; now apply: cvgr0_norm_le] end : core.
402402
403+ Section pseudoMetricNormedZmod_realDomainType.
404+
405+ Lemma le0_ball0 (R : realDomainType) (V : pseudoMetricNormedZmodType R) (a : V) (r : R) :
406+ r <= 0 -> ball a r = set0.
407+ Proof .
408+ move=> r0; rewrite -subset0 => y.
409+ rewrite -ball_normE /ball_/= ltNge => /negP; apply.
410+ by rewrite (le_trans r0).
411+ Qed .
412+
413+ End pseudoMetricNormedZmod_realDomainType.
414+
403415Section pseudoMetricNormedZmod_numFieldType.
404416Variables (R : numFieldType) (V : pseudoMetricNormedZmodType R).
405417
@@ -420,10 +432,11 @@ Local Hint Extern 0 (hausdorff_space _) => solve[apply: norm_hausdorff] : core.
420432(* i.e. where the generic lemma is applied, *)
421433(* check that norm_hausdorff is not used in a hard way *)
422434
423- Lemma norm_closeE (x y : V): close x y = (x = y). Proof . exact: closeE. Qed .
435+ Lemma norm_closeE (x y : V) : close x y = (x = y). Proof . exact: closeE. Qed .
424436Lemma norm_close_eq (x y : V) : close x y -> x = y. Proof . exact: close_eq. Qed .
425437
426- Lemma norm_cvg_unique {F} {FF : ProperFilter F} : is_subset1 [set x : V | F --> x].
438+ Lemma norm_cvg_unique {F} {FF : ProperFilter F} :
439+ is_subset1 [set x : V | F --> x].
427440Proof . exact: cvg_unique. Qed .
428441
429442Lemma norm_cvg_eq (x y : V) : x --> y -> x = y. Proof . exact: (@cvg_eq V). Qed .
@@ -1210,38 +1223,43 @@ Definition closed_ball_ (R : numDomainType) (V : zmodType) (norm : V -> R)
12101223Definition closed_ball (R : numDomainType) (V : pseudoMetricType R)
12111224 (x : V) (e : R) := closure (ball x e).
12121225
1213- Lemma closed_ball0 (R : realFieldType) (a r : R) :
1214- r <= 0 -> closed_ball a r = set0.
1226+ Lemma closure_ballE (R : numDomainType) (V : pseudoMetricType R)
1227+ (c : V) (r : R) : closure (ball c r) = closed_ball c r.
1228+ Proof . by []. Qed .
1229+
1230+ Lemma closed_ball0 (R : realDomainType) (V : pseudoMetricNormedZmodType R)
1231+ (v : V) (r : R) : r <= 0 -> closed_ball v r = set0.
12151232Proof .
1216- move=> /ball0 r0; apply/seteqP; split => // y.
1217- by rewrite /closed_ball r0 closure0.
1233+ by move=> r0; rewrite -subset0 => w; rewrite /closed_ball le0_ball0// closure0.
12181234Qed .
12191235
12201236Lemma closed_ballxx (R : numDomainType) (V : pseudoMetricType R) (x : V)
12211237 (e : R) : 0 < e -> closed_ball x e x.
12221238Proof . by move=> ?; exact/subset_closure/ballxx. Qed .
12231239
1224- Lemma closed_ball_closed (R : realFieldType ) (V : pseudoMetricType R) (x : V)
1240+ Lemma closed_ball_closed (R : numDomainType ) (V : pseudoMetricType R) (x : V)
12251241 (r : R) : closed (closed_ball x r).
12261242Proof . exact: closed_closure. Qed .
12271243
1228- Lemma subset_closed_ball (R : realFieldType ) (V : pseudoMetricType R) (x : V)
1244+ Lemma subset_closed_ball (R : numDomainType ) (V : pseudoMetricType R) (x : V)
12291245 (r : R) : ball x r `<=` closed_ball x r.
12301246Proof . exact: subset_closure. Qed .
12311247
1232- Lemma subset_closure_half (R : realFieldType ) (V : pseudoMetricType R) (x : V)
1248+ Lemma subset_closure_half (R : numFieldType ) (V : pseudoMetricType R) (x : V)
12331249 (r : R) : 0 < r -> closed_ball x (r / 2) `<=` ball x r.
12341250Proof .
12351251move:r => _/posnumP[r] z /(_ (ball z ((r%:num/2)%:pos)%:num)) [].
12361252 exact: nbhsx_ballx.
12371253by move=> y [+/ball_sym]; rewrite [t in ball x t z]splitr; apply: ball_triangle.
12381254Qed .
12391255
1240- Lemma le_closed_ball (R : numFieldType) (M : pseudoMetricNormedZmodType R)
1256+ Lemma le_closed_ball (R : numFieldType) (M : pseudoMetricType R)
12411257 (x : M) (e1 e2 : R) : (e1 <= e2)%O -> closed_ball x e1 `<=` closed_ball x e2.
12421258Proof . by rewrite /closed_ball => le; apply/closure_subset/le_ball. Qed .
12431259
12441260End Closed_Ball.
1261+ #[deprecated(since="mathcomp-analysis 1.14.0", note="renamed to `closure_ballE`")]
1262+ Notation closure_ball := closure_ballE (only parsing).
12451263
12461264Section limit_composition_pseudometric.
12471265Context {K : numFieldType} {V : pseudoMetricNormedZmodType K} {T : Type}.
0 commit comments