Skip to content

Commit 86963af

Browse files
authored
fixes #1463 (#1663)
1 parent da38745 commit 86963af

7 files changed

Lines changed: 99 additions & 53 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,22 @@
241241
- in `lebesgue_integral_fubiniv.`:
242242
+ `fubini1` -> `integral12_prod_meas1`
243243
+ `fubini2` -> `integral21_prod_meas1`
244+
- in `normed_module.v`:
245+
+ `cvgZl` -> `cvgZr_tmp`
246+
+ `is_cvgZl` -> `is_cvgZr_tmp`
247+
+ `cvgZr` -> `cvgZl_tmp`
248+
+ `is_cvgZr` -> `is_cvgZl_tmp`
249+
+ `is_cvgZrE` -> `is_cvgZlE`
250+
+ `cvgMl` -> `cvgMr_tmp`
251+
+ `cvgMr` -> `cvgMl_tmp`
252+
+ `is_cvgMr` -> `is_cvgMl_tmp`
253+
+ `is_cvgMrE` -> `is_cvgMlE_tmp`
254+
+ `is_cvgMl` -> `is_cvgMr_tmp`
255+
+ `is_cvgMlE` -> `is_cvgMrE_tmp`
256+
+ `limZl` -> `limZr_tmp`
257+
+ `limZr` -> `limZl_tmp`
258+
+ `continuousZr` -> `continuousZl_tmp`
259+
+ `continuousZl` -> `continuousZr_tmp`
244260

245261
### Generalized
246262

theories/derive.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ apply: cvg_lim => //.
322322
pose g1 : R -> W := fun h => (h^-1 * h) *: 'd f a v.
323323
pose g2 : R -> W := fun h : R => h^-1 *: k (h *: v ).
324324
rewrite (_ : g = g1 + g2) ?funeqE // -(addr0 (_ _ v)); apply: cvgD.
325-
rewrite -(scale1r (_ _ v)); apply: cvgZl => /= X [e e0].
325+
rewrite -(scale1r (_ _ v)); apply: cvgZr_tmp => /= X [e e0].
326326
rewrite /ball_ /= => eX.
327327
apply/nbhs_ballP.
328328
by exists e => //= x _ x0; apply eX; rewrite mulVr // ?unitfE //= subrr normr0.
@@ -434,7 +434,7 @@ Fact dscale (f : V -> W) k x :
434434
differentiable f x -> continuous (k \*: 'd f x) /\
435435
(k *: f) \o shift x = cst ((k *: f) x) + k \*: 'd f x +o_ 0 id.
436436
Proof.
437-
move=> df; split; first by move=> ?; apply: continuousZr.
437+
move=> df; split; first by move=> ?; apply: continuousZl_tmp.
438438
apply/eqaddoE; rewrite funeqE => y /=.
439439
by rewrite -[(k *: f) _]/(_ *: _) diff_locallyx // !scalerDr scaleox.
440440
Qed.
@@ -447,7 +447,7 @@ Fact dscalel (k : V -> R) (f : W) x :
447447
cst (k x *: f) + (fun z => 'd k x z *: f) +o_ 0 id.
448448
Proof.
449449
move=> df; split.
450-
move=> ?; exact/continuousZl/diff_continuous.
450+
move=> ?; exact/continuousZr_tmp/diff_continuous.
451451
apply/eqaddoE; rewrite funeqE => y /=.
452452
by rewrite diff_locallyx //= !scalerDl scaleolx.
453453
Qed.
@@ -945,7 +945,7 @@ move=> xn0; suff: continuous (fun h : R => - (1 / x) ^+ 2 *: h) /\
945945
rewrite !mul1r !GRing.exprVn.
946946
rewrite (_ : (fun x => x^-1) = (fun x => 1 / x ))//.
947947
by rewrite funeqE => y; rewrite mul1r.
948-
split; first by move=> ?; apply: continuousZr.
948+
split; first by move=> ?; exact: continuousZl_tmp.
949949
apply/eqaddoP => _ /posnumP[e]; near=> h.
950950
rewrite -[(_ + _ : R -> R) h]/(_ + _) -[(- _ : R -> R) h]/(- _) /=.
951951
rewrite opprD scaleNr opprK /cst /=.
@@ -1222,7 +1222,7 @@ Proof.
12221222
move=> df; evar (h : R -> W); rewrite [X in X @ _](_ : _ = h) /=; last first.
12231223
rewrite funeqE => r.
12241224
by rewrite scalerBr !scalerA mulrC -!scalerA -!scalerBr /h.
1225-
exact: cvgZr.
1225+
exact: cvgZl_tmp.
12261226
Qed.
12271227

12281228
Lemma deriveZ f (k : R) (x v : V) : derivable f x v ->
@@ -1285,7 +1285,7 @@ evar (fg : R -> R); rewrite [X in X @ _](_ : _ = fg) /=; last first.
12851285
by rewrite !scalerBr -addrA ![g x *: _]mulrC addKr.
12861286
rewrite scalerDr scalerA mulrC -scalerA.
12871287
by rewrite [_ *: (g x *: _)]scalerA mulrC -scalerA /fg.
1288-
apply: cvgD; last exact: cvgZr df.
1288+
apply: cvgD; last exact: cvgZl_tmp df.
12891289
apply: cvg_comp2 (@scale_continuous _ _ (_, _)) => /=; last exact: dg.
12901290
suff : {for 0, continuous (fun h : R => f(h *: v + x))}.
12911291
by move=> /continuous_withinNx; rewrite scale0r add0r.

theories/exp.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ suff Cc : limn (h^-1 *: (series (shx h - sx))) @[h --> 0^'] --> limn (series s).
223223
move=> t; rewrite /ball /= sub0r normrN => H tNZ.
224224
rewrite (lt_le_trans H)// ler_pdivrMr // mulr2n mulrDr mulr1.
225225
by rewrite ler_wpDr // subr_ge0 ltW.
226-
rewrite limZr; last exact/is_cvg_seriesB/Csx.
226+
rewrite limZl_tmp; last exact/is_cvg_seriesB/Csx.
227227
by rewrite lim_seriesB; last exact: Csx.
228228
apply: cvg_zero => /=.
229229
suff Cc : limn

theories/gauss_integral.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ Let continuous_NsqrM x : continuous (fun r : R => - (r * x) ^+ 2).
110110
Proof.
111111
move=> z; apply: cvgN => /=.
112112
apply: (cvg_comp (fun z => z * x) (fun z => z ^+ 2)).
113-
by apply: cvgMl; exact: cvg_id.
113+
by apply: cvgMr_tmp; exact: cvg_id.
114114
exact: exprn_continuous.
115115
Qed.
116116

@@ -127,7 +127,7 @@ Proof.
127127
rewrite /u /= => y; rewrite /continuous_at.
128128
apply: cvgM; last exact: continuous_oneDsqrV.
129129
apply: continuous_comp => /=; last exact: continuous_expR.
130-
by apply: cvgMr; exact: continuous_oneDsqr.
130+
by apply: cvgMl_tmp; exact: continuous_oneDsqr.
131131
Qed.
132132

133133
Definition integral01_u x := \int[mu]_(t in `[0, 1]) u x t.

theories/normedtype_theory/normed_module.v

Lines changed: 67 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -496,25 +496,35 @@ Lemma is_cvgZ s f : cvg (s @ F) ->
496496
cvg (f @ F) -> cvg ((fun x => s x *: f x) @ F).
497497
Proof. by have := cvgP _ (cvgZ _ _); apply. Qed.
498498

499-
Lemma cvgZl s k a : s @ F --> k -> s x *: a @[x --> F] --> k *: a.
499+
Lemma cvgZr_tmp s k a : s @ F --> k -> s x *: a @[x --> F] --> k *: a.
500500
Proof. by move=> ?; apply: cvgZ => //; exact: cvg_cst. Qed.
501501

502-
Lemma is_cvgZl s a : cvg (s @ F) -> cvg ((fun x => s x *: a) @ F).
503-
Proof. by have := cvgP _ (cvgZl _); apply. Qed.
502+
Lemma is_cvgZr_tmp s a : cvg (s @ F) -> cvg ((fun x => s x *: a) @ F).
503+
Proof. by have := cvgP _ (cvgZr_tmp _); apply. Qed.
504504

505-
Lemma cvgZr k f a : f @ F --> a -> k \*: f @ F --> k *: a.
506-
Proof. apply: cvgZ => //; exact: cvg_cst. Qed.
505+
Lemma cvgZl_tmp k f a : f @ F --> a -> k \*: f @ F --> k *: a.
506+
Proof. by apply: cvgZ => //; exact: cvg_cst. Qed.
507507

508-
Lemma is_cvgZr k f : cvg (f @ F) -> cvg (k *: f @ F).
509-
Proof. by have := cvgP _ (cvgZr _); apply. Qed.
508+
Lemma is_cvgZl_tmp k f : cvg (f @ F) -> cvg (k *: f @ F).
509+
Proof. by have := cvgP _ (cvgZl_tmp _); apply. Qed.
510510

511-
Lemma is_cvgZrE k f : k != 0 -> cvg (k *: f @ F) = cvg (f @ F).
511+
Lemma is_cvgZlE k f : k != 0 -> cvg (k *: f @ F) = cvg (f @ F).
512512
Proof.
513-
move=> k_neq0; rewrite propeqE; split => [/(@cvgZr k^-1)|/(@cvgZr k)/cvgP//].
513+
move=> k_neq0; rewrite propeqE; split => [/(@cvgZl_tmp k^-1)|/(@cvgZl_tmp k)/cvgP//].
514514
by under [_ \*: _]funext => x /= do rewrite scalerK//; apply: cvgP.
515515
Qed.
516516

517517
End cvg_composition_normed.
518+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `cvgZr_tmp`")]
519+
Notation cvgZl := cvgZr_tmp (only parsing).
520+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgZr_tmp`")]
521+
Notation is_cvgZl := is_cvgZr_tmp (only parsing).
522+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `cvgZl_tmp`")]
523+
Notation cvgZr := cvgZl_tmp (only parsing).
524+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgZl_tmp`")]
525+
Notation is_cvgZr := is_cvgZl_tmp (only parsing).
526+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgZlE`")]
527+
Notation is_cvgZrE := is_cvgZlE (only parsing).
518528

519529
Section cvg_composition_field.
520530
Context {K : numFieldType} {T : Type}.
@@ -538,61 +548,77 @@ Proof. by move=> /cvgV cvf /cvf /cvgP. Qed.
538548
Lemma cvgM f g a b : f @ F --> a -> g @ F --> b -> (f \* g) @ F --> a * b.
539549
Proof. exact: cvgZ. Qed.
540550

541-
Lemma cvgMl f a b : f @ F --> a -> (f x * b) @[x --> F] --> a * b.
542-
Proof. exact: cvgZl. Qed.
551+
Lemma cvgMr_tmp f a b : f @ F --> a -> f x * b @[x --> F] --> a * b.
552+
Proof. exact: cvgZr_tmp. Qed.
543553

544-
Lemma cvgMr g a b : g @ F --> b -> (a * g x) @[x --> F] --> a * b.
545-
Proof. exact: cvgZr. Qed.
554+
Lemma cvgMl_tmp g a b : g @ F --> b -> a * g x @[x --> F] --> a * b.
555+
Proof. exact: cvgZl_tmp. Qed.
546556

547557
Lemma is_cvgM f g : cvg (f @ F) -> cvg (g @ F) -> cvg (f \* g @ F).
548558
Proof. exact: is_cvgZ. Qed.
549559

550-
Lemma is_cvgMr g a (f := fun=> a) : cvg (g @ F) -> cvg (f \* g @ F).
551-
Proof. exact: is_cvgZr. Qed.
560+
Lemma is_cvgMl_tmp g a (f := fun=> a) : cvg (g @ F) -> cvg (f \* g @ F).
561+
Proof. exact: is_cvgZl_tmp. Qed.
552562

553-
Lemma is_cvgMrE g a (f := fun=> a) : a != 0 -> cvg (f \* g @ F) = cvg (g @ F).
554-
Proof. exact: is_cvgZrE. Qed.
563+
Lemma is_cvgMlE_tmp g a (f := fun=> a) : a != 0 -> cvg (f \* g @ F) = cvg (g @ F).
564+
Proof. exact: is_cvgZlE. Qed.
555565

556-
Lemma is_cvgMl f a (g := fun=> a) : cvg (f @ F) -> cvg (f \* g @ F).
566+
Lemma is_cvgMr_tmp f a (g := fun=> a) : cvg (f @ F) -> cvg (f \* g @ F).
557567
Proof.
558568
move=> f_cvg; have -> : f \* g = g \* f by apply/funeqP=> x; rewrite /= mulrC.
559-
exact: is_cvgMr.
569+
exact: is_cvgMl_tmp.
560570
Qed.
561571

562-
Lemma is_cvgMlE f a (g := fun=> a) : a != 0 -> cvg (f \* g @ F) = cvg (f @ F).
572+
Lemma is_cvgMrE_tmp f a (g := fun=> a) : a != 0 -> cvg (f \* g @ F) = cvg (f @ F).
563573
Proof.
564574
move=> a_neq0; have -> : f \* g = g \* f by apply/funeqP=> x; rewrite /= mulrC.
565-
exact: is_cvgMrE.
575+
exact: is_cvgMlE_tmp.
566576
Qed.
567577

568578
End cvg_composition_field.
579+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `cvgMr_tmp`")]
580+
Notation cvgMl := cvgMr_tmp (only parsing).
581+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `cvgMl_tmp`")]
582+
Notation cvgMr := cvgMl_tmp (only parsing).
583+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgMl_tmp`")]
584+
Notation is_cvgMr := is_cvgMl_tmp (only parsing).
585+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgMr_tmp`")]
586+
Notation is_cvgMl := is_cvgMr_tmp (only parsing).
587+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgMrE_tmp`")]
588+
Notation is_cvgMlE := is_cvgMrE_tmp (only parsing).
589+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `is_cvgMlE_tmp`")]
590+
Notation is_cvgMrE := is_cvgMlE_tmp (only parsing).
569591

570592
Section limit_composition_normed.
571593
Context {K : numFieldType} {V : normedModType K} {T : Type}.
572594
Context (F : set_system T) {FF : ProperFilter F}.
573595
Implicit Types (f g : T -> V) (s : T -> K) (k : K) (x : T) (a : V).
574596

575597
Lemma limZ s f : cvg (s @ F) -> cvg (f @ F) ->
576-
lim ((fun x => s x *: f x) @ F) = lim (s @ F) *: lim (f @ F).
577-
Proof. by move=> ? ?; apply: cvg_lim => //; apply: cvgZ. Qed.
598+
lim ((fun x => s x *: f x) @ F) = lim (s @ F) *: lim (f @ F).
599+
Proof. by move=> ? ?; apply: cvg_lim => //; exact: cvgZ. Qed.
578600

579-
Lemma limZl s a : cvg (s @ F) ->
580-
lim ((fun x => s x *: a) @ F) = lim (s @ F) *: a.
581-
Proof. by move=> ?; apply: cvg_lim => //; apply: cvgZl. Qed.
601+
Lemma limZr_tmp s a : cvg (s @ F) ->
602+
lim ((fun x => s x *: a) @ F) = lim (s @ F) *: a.
603+
Proof. by move=> ?; apply: cvg_lim => //; exact: cvgZr_tmp. Qed.
582604

583-
Lemma limZr k f : cvg (f @ F) -> lim (k *: f @ F) = k *: lim (f @ F).
584-
Proof. by move=> ?; apply: cvg_lim => //; apply: cvgZr. Qed.
605+
Lemma limZl_tmp k f : cvg (f @ F) -> lim (k *: f @ F) = k *: lim (f @ F).
606+
Proof. by move=> ?; apply: cvg_lim => //; exact: cvgZl_tmp. Qed.
585607

586608
End limit_composition_normed.
609+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `limZr_tmp`")]
610+
Notation limZl := limZr_tmp (only parsing).
611+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `limZl_tmp`")]
612+
Notation limZr := limZl_tmp (only parsing).
587613

588614
Section limit_composition_field.
589615
Context {K : numFieldType} {T : Type}.
590616
Context (F : set_system T) {FF : ProperFilter F}.
591617
Implicit Types (f g : T -> K).
592618

593619
Lemma limM f g : cvg (f @ F) -> cvg (g @ F) ->
594-
lim (f \* g @ F) = lim (f @ F) * lim (g @ F).
595-
Proof. by move=> ? ?; apply: cvg_lim => //; apply: cvgM. Qed.
620+
lim (f \* g @ F) = lim (f @ F) * lim (g @ F).
621+
Proof. by move=> ? ?; apply: cvg_lim => //; exact: cvgM. Qed.
596622

597623
End limit_composition_field.
598624

@@ -603,13 +629,13 @@ Implicit Types (f g : T -> K) (a b : K).
603629

604630
Lemma limV f : lim (f @ F) != 0 -> lim (f\^-1 @ F) = (lim (f @ F))^-1.
605631
Proof.
606-
by move=> ?; apply: cvg_lim => //; apply: cvgV => //; apply: cvgNpoint.
632+
by move=> ?; apply: cvg_lim => //; apply: cvgV => //; exact: cvgNpoint.
607633
Qed.
608634

609635
Lemma is_cvgVE f : lim (f @ F) != 0 -> cvg (f\^-1 @ F) = cvg (f @ F).
610636
Proof.
611637
move=> ?; apply/propeqP; split=> /is_cvgV; last exact.
612-
by rewrite inv_funK; apply; rewrite limV ?invr_eq0//.
638+
by rewrite inv_funK; apply; rewrite limV ?invr_eq0.
613639
Qed.
614640

615641
End cvg_composition_field_proper.
@@ -655,24 +681,28 @@ Lemma continuousZ s f x :
655681
{for x, continuous (fun x => s x *: f x)}.
656682
Proof. by move=> ? ?; apply: cvgZ. Qed.
657683

658-
Lemma continuousZr f k x :
684+
Lemma continuousZl_tmp f k x :
659685
{for x, continuous f} -> {for x, continuous (k \*: f)}.
660-
Proof. by move=> ?; apply: cvgZr. Qed.
686+
Proof. by move=> ?; exact: cvgZl_tmp. Qed.
661687

662-
Lemma continuousZl s a x :
688+
Lemma continuousZr_tmp s a x :
663689
{for x, continuous s} -> {for x, continuous (fun z => s z *: a)}.
664-
Proof. by move=> ?; apply: cvgZl. Qed.
690+
Proof. by move=> ?; exact: cvgZr_tmp. Qed.
665691

666692
Lemma continuousM s t x :
667693
{for x, continuous s} -> {for x, continuous t} ->
668694
{for x, continuous (s \* t)}.
669-
Proof. by move=> f_cont g_cont; apply: cvgM. Qed.
695+
Proof. by move=> f_cont g_cont; exact: cvgM. Qed.
670696

671697
Lemma continuousV s x : s x != 0 ->
672698
{for x, continuous s} -> {for x, continuous (fun x => (s x)^-1%R)}.
673699
Proof. by move=> ?; apply: cvgV. Qed.
674700

675701
End local_continuity.
702+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `continuousZl_tmp`")]
703+
Notation continuousZr := continuousZl_tmp (only parsing).
704+
#[deprecated(since="mathcomp-analysis 1.12.0", note="renamed to `continuousZr_tmp`")]
705+
Notation continuousZl := continuousZr_tmp (only parsing).
676706

677707
Section cvg_fin.
678708
Context {R : numFieldType}.

theories/pi_irrational.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ near: n.
395395
have : pi * (pi * a) ^+ n / n`!%:R @[n --> \oo] --> 0.
396396
rewrite -[X in _ --> X](mulr0 pi).
397397
under eq_fun do rewrite -mulrA.
398-
by apply: cvgMr; exact: exp_fact.
398+
by apply: cvgMl_tmp; exact: exp_fact.
399399
move/cvgrPdist_lt => /(_ e e0).
400400
apply: filterS => n.
401401
rewrite sub0r normrN ger0_norm; last first.

theories/sequences.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -554,11 +554,11 @@ Lemma lim_seriesN f : cvg (series f @ \oo) ->
554554
Proof. by move=> cf; rewrite seriesN limN. Qed.
555555

556556
Lemma is_cvg_seriesZ f k : cvgn (series f) -> cvgn (series (k *: f)).
557-
Proof. by move=> cf; rewrite seriesZ; exact: is_cvgZr. Qed.
557+
Proof. by move=> cf; rewrite seriesZ; exact: is_cvgZl_tmp. Qed.
558558

559559
Lemma lim_seriesZ f k : cvgn (series f) ->
560560
limn (series (k *: f)) = k *: limn (series f).
561-
Proof. by move=> cf; rewrite seriesZ limZr. Qed.
561+
Proof. by move=> cf; rewrite seriesZ limZl_tmp. Qed.
562562

563563
Lemma is_cvg_seriesD f g :
564564
cvgn (series f) -> cvgn (series g) -> cvgn (series (f + g)).
@@ -930,7 +930,7 @@ Proof.
930930
move=> Nz_lt1; apply/norm_cvg0P; pose t := (1 - `|z|).
931931
apply: (@squeeze_cvgr _ _ _ _ (cst 0) (t^-1 *: @harmonic R)); last 2 first.
932932
- exact: cvg_cst.
933-
- by rewrite -(scaler0 _ t^-1); exact: (cvgZr cvg_harmonic).
933+
- by rewrite -(scaler0 _ t^-1); exact: (cvgZl_tmp cvg_harmonic).
934934
near=> n; rewrite normr_ge0 normrX/= ler_pdivlMl ?subr_gt0//.
935935
rewrite -(@ler_pM2l _ n.+1%:R)// mulfV// [t * _]mulrC mulr_natl.
936936
have -> : 1 = (`|z| + t) ^+ n.+1 by rewrite addrC addrNK expr1n.
@@ -956,7 +956,7 @@ Lemma cvg_geometric_series (R : archiFieldType) (a z : R) : `|z| < 1 ->
956956
Proof.
957957
move=> Nz_lt1; rewrite geometric_seriesE ?lt_eqF 1?ltr_normlW//.
958958
have -> : a / (1 - z) = (a * (1 - 0)) / (1 - z) by rewrite subr0 mulr1.
959-
by apply: cvgMl; apply: cvgMr; apply: cvgB; [apply: cvg_cst|apply: cvg_expr].
959+
by apply: cvgMr_tmp; apply: cvgMl_tmp; apply: cvgB; [apply: cvg_cst|apply: cvg_expr].
960960
Qed.
961961

962962
Lemma cvg_geometric_series_half (R : archiFieldType) (r : R) n :
@@ -1117,7 +1117,7 @@ Let S0 N n := (N ^ N)%:R * \sum_(N.+1 <= i < n) (x / N%:R) ^+ i.
11171117

11181118
Let is_cvg_S0 N : x < N%:R -> cvgn (S0 N).
11191119
Proof.
1120-
move=> xN; apply: is_cvgZr; rewrite is_cvg_series_restrict exprn_geometric.
1120+
move=> xN; apply: is_cvgZl_tmp; rewrite is_cvg_series_restrict exprn_geometric.
11211121
apply/is_cvg_geometric_series; rewrite normrM normfV.
11221122
by rewrite ltr_pdivrMr ?mul1r !ger0_norm // 1?ltW // (lt_trans x0).
11231123
Qed.
@@ -2809,7 +2809,7 @@ rewrite eqOP; split => [|Bf].
28092809
by near: M.
28102810
Unshelve. all: by end_near. Qed.
28112811

2812-
(* TODO: to be changed once PR#1107 is integrated, and the following put in evt.v *)
2812+
(* TODO: to be changed once PR#1107 is integrated, and the following put in tvs.v *)
28132813

28142814
(* Definition bounded_top (K: realType) (E : normedModType K) (B : set E) :=
28152815
forall (U : set E), nbhs 0 U ->

0 commit comments

Comments
 (0)