@@ -180,7 +180,7 @@ begin
180
180
tfae_finish
181
181
end
182
182
183
- lemma uniformity_basis_dist_pow_of_lt_1 {α : Type *} [metric_space α]
183
+ lemma uniformity_basis_dist_pow_of_lt_1 {α : Type *} [pseudo_metric_space α]
184
184
{r : ℝ} (h₀ : 0 < r) (h₁ : r < 1 ) :
185
185
(𝓤 α).has_basis (λ k : ℕ, true) (λ k, {p : α × α | dist p.1 p.2 < r ^ k}) :=
186
186
metric.mk_uniformity_basis (λ i _, pow_pos h₀ _) $ λ ε ε0 ,
@@ -477,7 +477,7 @@ decaying terms.
477
477
-/
478
478
section edist_le_geometric
479
479
480
- variables [emetric_space α] (r C : ℝ≥0 ∞) (hr : r < 1 ) (hC : C ≠ ⊤) {f : ℕ → α}
480
+ variables [pseudo_emetric_space α] (r C : ℝ≥0 ∞) (hr : r < 1 ) (hC : C ≠ ⊤) {f : ℕ → α}
481
481
(hu : ∀n, edist (f n) (f (n+1 )) ≤ C * r^n)
482
482
483
483
include hr hC hu
@@ -513,7 +513,7 @@ end edist_le_geometric
513
513
514
514
section edist_le_geometric_two
515
515
516
- variables [emetric_space α] (C : ℝ≥0 ∞) (hC : C ≠ ⊤) {f : ℕ → α}
516
+ variables [pseudo_emetric_space α] (C : ℝ≥0 ∞) (hC : C ≠ ⊤) {f : ℕ → α}
517
517
(hu : ∀n, edist (f n) (f (n+1 )) ≤ C / 2 ^n) {a : α} (ha : tendsto f at_top (𝓝 a))
518
518
519
519
include hC hu
@@ -550,7 +550,7 @@ end edist_le_geometric_two
550
550
551
551
section le_geometric
552
552
553
- variables [metric_space α] {r C : ℝ} (hr : r < 1 ) {f : ℕ → α}
553
+ variables [pseudo_metric_space α] {r C : ℝ} (hr : r < 1 ) {f : ℕ → α}
554
554
(hu : ∀n, dist (f n) (f (n+1 )) ≤ C * r^n)
555
555
556
556
include hr hu
@@ -620,7 +620,11 @@ end le_geometric
620
620
621
621
section summable_le_geometric
622
622
623
- variables [normed_group α] {r C : ℝ} {f : ℕ → α}
623
+ variables [semi_normed_group α] {r C : ℝ} {f : ℕ → α}
624
+
625
+ lemma semi_normed_group.cauchy_seq_of_le_geometric {C : ℝ} {r : ℝ} (hr : r < 1 )
626
+ {u : ℕ → α} (h : ∀ n, ∥u n - u (n + 1 )∥ ≤ C*r^n) : cauchy_seq u :=
627
+ cauchy_seq_of_le_geometric r C hr (by simpa [dist_eq_norm] using h)
624
628
625
629
lemma dist_partial_sum_le_of_le_geometric (hf : ∀n, ∥f n∥ ≤ C * r^n) (n : ℕ) :
626
630
dist (∑ i in range n, f i) (∑ i in range (n+1 ), f i) ≤ C * r ^ n :=
@@ -648,6 +652,63 @@ begin
648
652
exact ha.tendsto_sum_nat
649
653
end
650
654
655
+ @[simp] lemma dist_partial_sum (u : ℕ → α) (n : ℕ) :
656
+ dist (∑ k in range (n + 1 ), u k) (∑ k in range n, u k) = ∥u n∥ :=
657
+ by simp [dist_eq_norm, sum_range_succ]
658
+
659
+ @[simp] lemma dist_partial_sum' (u : ℕ → α) (n : ℕ) :
660
+ dist (∑ k in range n, u k) (∑ k in range (n+1 ), u k) = ∥u n∥ :=
661
+ by simp [dist_eq_norm', sum_range_succ]
662
+
663
+ lemma cauchy_series_of_le_geometric {C : ℝ} {u : ℕ → α}
664
+ {r : ℝ} (hr : r < 1 ) (h : ∀ n, ∥u n∥ ≤ C*r^n) : cauchy_seq (λ n, ∑ k in range n, u k) :=
665
+ cauchy_seq_of_le_geometric r C hr (by simp [h])
666
+
667
+ lemma normed_group.cauchy_series_of_le_geometric' {C : ℝ} {u : ℕ → α} {r : ℝ} (hr : r < 1 )
668
+ (h : ∀ n, ∥u n∥ ≤ C*r^n) : cauchy_seq (λ n, ∑ k in range (n + 1 ), u k) :=
669
+ begin
670
+ by_cases hC : C = 0 ,
671
+ { subst hC,
672
+ simp at h,
673
+ exact cauchy_seq_of_le_geometric 0 0 zero_lt_one (by simp [h]) },
674
+ have : 0 ≤ C,
675
+ { simpa using (norm_nonneg _).trans (h 0 ) },
676
+ replace hC : 0 < C,
677
+ from (ne.symm hC).le_iff_lt.mp this ,
678
+ have : 0 ≤ r,
679
+ { have := (norm_nonneg _).trans (h 1 ),
680
+ rw pow_one at this ,
681
+ exact (zero_le_mul_left hC).mp this },
682
+ simp_rw finset.sum_range_succ_comm,
683
+ have : cauchy_seq u,
684
+ { apply tendsto.cauchy_seq,
685
+ apply squeeze_zero_norm h,
686
+ rw show 0 = C*0 , by simp,
687
+ exact tendsto_const_nhds.mul (tendsto_pow_at_top_nhds_0_of_lt_1 this hr) },
688
+ exact this.add (cauchy_series_of_le_geometric hr h),
689
+ end
690
+
691
+ lemma normed_group.cauchy_series_of_le_geometric'' {C : ℝ} {u : ℕ → α} {N : ℕ} {r : ℝ}
692
+ (hr₀ : 0 < r) (hr₁ : r < 1 )
693
+ (h : ∀ n ≥ N, ∥u n∥ ≤ C*r^n) : cauchy_seq (λ n, ∑ k in range (n + 1 ), u k) :=
694
+ begin
695
+ set v : ℕ → α := λ n, if n < N then 0 else u n,
696
+ have hC : 0 ≤ C,
697
+ from (zero_le_mul_right $ pow_pos hr₀ N).mp ((norm_nonneg _).trans $ h N $ le_refl N),
698
+ have : ∀ n ≥ N, u n = v n,
699
+ { intros n hn,
700
+ simp [v, hn, if_neg (not_lt.mpr hn)] },
701
+ refine cauchy_seq_sum_of_eventually_eq this (normed_group.cauchy_series_of_le_geometric' hr₁ _),
702
+ { exact C },
703
+ intro n,
704
+ dsimp [v],
705
+ split_ifs with H H,
706
+ { rw norm_zero,
707
+ exact mul_nonneg hC (pow_nonneg hr₀.le _) },
708
+ { push_neg at H,
709
+ exact h _ H }
710
+ end
711
+
651
712
end summable_le_geometric
652
713
653
714
section normed_ring_geometric
0 commit comments