@@ -170,7 +170,8 @@ move=> /diff_locallyP [dfc]; rewrite -addrA.
170170rewrite (littleo_bigO_eqo (cst (1 : R^o))); last first.
171171 apply/eqOP; near=> k; rewrite /cst [`|1 : R^o|]normr1 mulr1.
172172 near=> y; rewrite ltW //; near: y; apply/nbhs_normP.
173- by exists k; [near: k; exists 0; rewrite real0|move=> ? /=; rewrite sub0r normrN].
173+ exists k; first by near: k; exists 0; rewrite real0.
174+ by move=> ? /=; rewrite -ball_normE /= sub0r normrN.
174175rewrite addfo; first by move=> /eqolim; rewrite cvg_shift add0r.
175176by apply/eqolim0P; apply: (cvg_trans (dfc 0)); rewrite linear0.
176177Grab Existential Variables. all: end_near. Qed .
@@ -303,15 +304,15 @@ pose g2 : R -> W := fun h : R => h^-1 *: k (h *: v ).
303304rewrite (_ : g = g1 + g2) ?funeqE // -(addr0 (_ _ v)); apply: (@cvgD _ _ [topologicalType of R^o]).
304305 rewrite -(scale1r (_ _ v)); apply: cvgZl => /= X [e e0].
305306 rewrite /ball_ /= => eX.
306- apply/nbhsP; rewrite nbhs_E .
307+ apply/nbhs_ballP .
307308 by exists e => //= x _ x0; apply eX; rewrite mulVr // ?unitfE // subrr normr0.
308309rewrite /g2.
309310have [/eqP ->|v0] := boolP (v == 0).
310311 rewrite (_ : (fun _ => _) = cst 0); first exact: cvg_cst.
311312 by rewrite funeqE => ?; rewrite scaler0 /k littleo_lim0 // scaler0.
312313apply/cvg_distP => e e0.
313- rewrite nearE /=; apply/nbhsP; rewrite nbhs_E .
314- have /(littleoP [littleo of k]) /nbhsP [i i0 Hi] : 0 < e / (2 * `|v|).
314+ rewrite nearE /=; apply/nbhs_ballP .
315+ have /(littleoP [littleo of k]) /nbhs_ballP [i i0 Hi] : 0 < e / (2 * `|v|).
315316 by rewrite divr_gt0 // pmulr_rgt0 // normr_gt0.
316317exists (i / `|v|); first by rewrite divr_gt0 // normr_gt0.
317318move=> /= j; rewrite /ball /= /ball_ add0r normrN.
@@ -447,13 +448,13 @@ Proof.
447448apply/eqoP => _ /posnumP[e].
448449have /bigO_exP [_ /posnumP[k]] := bigOP [bigO of [O_ (0 : U) id of f]].
449450have := littleoP [littleo of [o_ (0 : V') id of g]].
450- move=> /(_ (e%:num / k%:num)) /(_ _) /nbhsP [//|_ /posnumP[d] hd].
451+ move=> /(_ (e%:num / k%:num)) /(_ _) /nbhs_ballP [//|_ /posnumP[d] hd].
451452apply: filter_app; near=> x => leOxkx; apply: le_trans (hd _ _) _; last first.
452453 rewrite -ler_pdivl_mull //; apply: le_trans leOxkx _.
453454 by rewrite invf_div mulrA -[_ / _ * _]mulrA mulVf // mulr1.
454455rewrite -ball_normE /= distrC subr0 (le_lt_trans leOxkx) //.
455456rewrite -ltr_pdivl_mull //; near: x; rewrite /= !nbhs_simpl.
456- apply/nbhsP ; exists (k%:num ^-1 * d%:num)=> // x.
457+ apply/nbhs_ballP ; exists (k%:num ^-1 * d%:num)=> // x.
457458by rewrite -ball_normE /= distrC subr0.
458459Grab Existential Variables. all: end_near. Qed .
459460
@@ -469,14 +470,14 @@ Lemma compOo_eqo (U V' W' : normedModType R) (f : U -> V')
469470Proof .
470471apply/eqoP => _ /posnumP[e].
471472have /bigO_exP [_ /posnumP[k]] := bigOP [bigO of [O_ (0 : V') id of g]].
472- move=> /nbhsP [_ /posnumP[d] hd].
473+ move=> /nbhs_ballP [_ /posnumP[d] hd].
473474have ekgt0 : e%:num / k%:num > 0 by [].
474475have /(_ _ ekgt0) := littleoP [littleo of [o_ (0 : U) id of f]].
475476apply: filter_app; near=> x => leoxekx; apply: le_trans (hd _ _) _; last first.
476477 by rewrite -ler_pdivl_mull // mulrA [_^-1 * _]mulrC.
477478rewrite -ball_normE /= distrC subr0; apply: le_lt_trans leoxekx _.
478479rewrite -ltr_pdivl_mull //; near: x; rewrite /= nbhs_simpl.
479- apply/nbhsP ; exists ((e%:num / k%:num) ^-1 * d%:num)=> // x.
480+ apply/nbhs_ballP ; exists ((e%:num / k%:num) ^-1 * d%:num)=> // x.
480481by rewrite -ball_normE /= distrC subr0.
481482Grab Existential Variables. all: end_near. Qed .
482483
@@ -493,7 +494,7 @@ rewrite funeqE => x; apply/eqP; case: (ler0P `|x|) => [|xn0].
493494 by rewrite normr_le0 => /eqP ->; rewrite linear0.
494495rewrite -normr_le0 -(mul0r `|x|) -ler_pdivr_mulr //.
495496apply/ler0_addgt0P => _ /posnumP[e]; rewrite ler_pdivr_mulr //.
496- have /oid /nbhsP [_ /posnumP[d] dfe] := posnum_gt0 e.
497+ have /oid /nbhs_ballP [_ /posnumP[d] dfe] := posnum_gt0 e.
497498set k := ((d%:num / 2) / (PosNum xn0)%:num)^-1.
498499rewrite -{1}(@scalerKV _ _ k _ x) // linearZZ normmZ.
499500rewrite -ler_pdivl_mull; last by rewrite gtr0_norm.
675676Lemma linear_lipschitz (V' W' : normedModType R) (f : {linear V' -> W'}) :
676677 continuous f -> exists2 k, k > 0 & forall x, `|f x| <= k * `|x|.
677678Proof .
678- move=> /(_ 0); rewrite linear0 => /(_ _ (nbhs_ball 0 1%:pos)).
679- move=> /nbhsP [_ /posnumP[e] he]; exists (2 / e%:num) => // x.
679+ move=> /(_ 0); rewrite linear0 => /(_ _ (nbhsx_ballx 0 1%:pos)).
680+ move=> /nbhs_ballP [_ /posnumP[e] he]; exists (2 / e%:num) => // x.
680681case: (lerP `|x| 0) => [|xn0].
681682 by rewrite normr_le0 => /eqP->; rewrite linear0 !normr0 mulr0.
682683set k := 2 / e%:num * (PosNum xn0)%:num.
@@ -744,8 +745,8 @@ Lemma bilinear_schwarz (U V' W' : normedModType R)
744745 (f : {bilinear U -> V' -> W'}) : continuous (fun p => f p.1 p.2) ->
745746 exists2 k, k > 0 & forall u v, `|f u v| <= k * `|u| * `|v|.
746747Proof .
747- move=> /(_ 0); rewrite linear0r => /(_ _ (nbhs_ball 0 1%:pos)).
748- move=> /nbhsP [_ /posnumP[e] he]; exists ((2 / e%:num) ^+2) => // u v.
748+ move=> /(_ 0); rewrite linear0r => /(_ _ (nbhsx_ballx 0 1%:pos)).
749+ move=> /nbhs_ballP [_ /posnumP[e] he]; exists ((2 / e%:num) ^+2) => // u v.
749750case: (lerP `|u| 0) => [|un0].
750751 by rewrite normr_le0 => /eqP->; rewrite linear0l !normr0 mulr0 mul0r.
751752case: (lerP `|v| 0) => [|vn0].
@@ -780,7 +781,7 @@ rewrite ler_pmul ?pmulr_rge0 //; last by rewrite nng_le_maxr /= lexx orbT.
780781rewrite -ler_pdivl_mull //.
781782suff : `|x| <= k%:num ^-1 * e%:num by apply: le_trans; rewrite nng_le_maxr /= lexx.
782783near: x; rewrite !near_simpl; apply/nbhs_le_nbhs_norm.
783- by exists (k%:num ^-1 * e%:num) => // ? /=; rewrite distrC subr0 => /ltW.
784+ by exists (k%:num ^-1 * e%:num) => // ? /=; rewrite -ball_normE /= distrC subr0 => /ltW.
784785Grab Existential Variables. all: end_near. Qed .
785786
786787Fact dbilin (U V' W' : normedModType R) (f : {bilinear U -> V' -> W'}) p :
@@ -791,8 +792,8 @@ Fact dbilin (U V' W' : normedModType R) (f : {bilinear U -> V' -> W'}) p :
791792Proof .
792793move=> fc; split=> [q|].
793794 by apply: (@continuousD _ _ _ (fun q => f p.1 q.2) (fun q => f q.1 p.2));
794- move=> A /(fc (_.1, _.2)) /= /nbhsP [_ /posnumP[e] fpqe_A];
795- apply/nbhsP ; exists e%:num => // r [??]; exact: (fpqe_A (_.1, _.2)).
795+ move=> A /(fc (_.1, _.2)) /= /nbhs_ballP [_ /posnumP[e] fpqe_A];
796+ apply/nbhs_ballP ; exists e%:num => // r [??]; exact: (fpqe_A (_.1, _.2)).
796797apply/eqaddoE; rewrite funeqE => q /=.
797798rewrite linearDl !linearDr addrA addrC.
798799rewrite -[f q.1 _ + _ + _]addrA [f q.1 _ + _]addrC addrA [f q.1 _ + _]addrC.
@@ -933,7 +934,7 @@ rewrite mulrA mulf_div mulr1.
933934have hDx_neq0 : h + x != 0.
934935 near: h; rewrite !nbhs_simpl; apply/nbhs_normP.
935936 exists `|x|; first by rewrite normr_gt0.
936- move=> h /=; rewrite distrC subr0 -subr_gt0 => lthx.
937+ move=> h /=; rewrite -ball_normE /= distrC subr0 -subr_gt0 => lthx.
937938 rewrite -(normr_gt0 (h + x : R^o)) addrC -[h]opprK.
938939 apply: lt_le_trans (ler_dist_dist _ _).
939940 by rewrite ger0_norm normrN //; apply: ltW.
@@ -1357,7 +1358,7 @@ Proof.
13571358move=> cvfx; apply/Logic.eq_sym.
13581359(* should be inferred *)
13591360have atrF := at_right_proper_filter x.
1360- apply: (@cvg_map_lim _ _ _ (at_right _)) => // A /cvfx /nbhsP [_ /posnumP[e] xe_A].
1361+ apply: (@cvg_map_lim _ _ _ (at_right _)) => // A /cvfx /nbhs_ballP [_ /posnumP[e] xe_A].
13611362by exists e%:num => // y xe_y; rewrite lt_def => /andP [xney _]; apply: xe_A.
13621363Qed .
13631364
@@ -1367,7 +1368,7 @@ Proof.
13671368move=> cvfx; apply/Logic.eq_sym.
13681369(* should be inferred *)
13691370have atrF := at_left_proper_filter x.
1370- apply: (@cvg_map_lim _ _ _ (at_left _)) => // A /cvfx /nbhsP [_ /posnumP[e] xe_A].
1371+ apply: (@cvg_map_lim _ _ _ (at_left _)) => // A /cvfx /nbhs_ballP [_ /posnumP[e] xe_A].
13711372exists e%:num => // y xe_y; rewrite lt_def => /andP [xney _].
13721373by apply: xe_A => //; rewrite eq_sym.
13731374Qed .
0 commit comments