analysis.calculus.series ⟷ Mathlib.Analysis.NormedSpace.FunctionSeries

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 -/
 import Analysis.Calculus.UniformLimitsDeriv
-import Analysis.Calculus.ContDiff
+import Analysis.Calculus.ContDiff.Basic
 import Data.Nat.Cast.WithTop
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
@@ -31,7 +31,7 @@ open Set Metric TopologicalSpace Function Asymptotics Filter
 
 open scoped Topology NNReal BigOperators
 
-variable {Ξ± Ξ² π•œ E F : Type _} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
+variable {Ξ± Ξ² π•œ E F : Type _} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
   [NormedAddCommGroup F] [CompleteSpace F] {u : Ξ± β†’ ℝ}
 
 /-! ### Continuity -/
@@ -49,7 +49,7 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
   filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
     Summable.of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
-  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (Summable.of_norm A) t, add_sub_cancel']
+  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (Summable.of_norm A) t, add_sub_cancel_left]
   apply lt_of_le_of_lt _ ht
   apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
   exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
Diff
@@ -200,7 +200,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
   Β· rcases h with ⟨xβ‚€, hf0⟩
     intro x
     exact (hasFDerivAt_tsum hu hf hf' hf0 x).DifferentiableAt
-  Β· push_neg at h 
+  Β· push_neg at h
     have : (fun x => βˆ‘' n, f n x) = 0 := by ext1 x; exact tsum_eq_zero_of_not_summable (h x)
     rw [this]
     exact differentiable_const 0
@@ -319,7 +319,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       rw [eventually_all_finset]
       intro i hi
       apply h'f
-      simp only [Finset.mem_range_succ_iff] at hi 
+      simp only [Finset.mem_range_succ_iff] at hi
       exact (WithTop.coe_le_coe.2 hi).trans hm
     eventually_cofinite.2 A
   let T : Finset Ξ± := ht.to_finset
@@ -339,7 +339,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
   rintro k ⟨i, hi⟩ x hk
   dsimp
   simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, Classical.not_forall, not_le,
-    exists_prop, not_exists, not_and, not_lt] at hi 
+    exists_prop, not_exists, not_and, not_lt] at hi
   exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 -/
Diff
@@ -92,7 +92,11 @@ theorem tendstoUniformly_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu :
 function is. -/
 theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set Ξ²}
     (hf : βˆ€ i, ContinuousOn (f i) s) (hu : Summable u) (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
-    ContinuousOn (fun x => βˆ‘' n, f n x) s := by classical
+    ContinuousOn (fun x => βˆ‘' n, f n x) s := by
+  classical
+  refine' (tendstoUniformlyOn_tsum hu hfu).ContinuousOn (eventually_of_forall _)
+  intro t
+  exact continuousOn_finset_sum _ fun i hi => hf i
 #align continuous_on_tsum continuousOn_tsum
 -/
 
@@ -139,7 +143,17 @@ derivatives. -/
 theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€)
-    (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by classical
+    (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
+  classical
+  have A :
+    βˆ€ x : E, x ∈ s β†’ tendsto (fun t : Finset Ξ± => βˆ‘ n in t, f n x) at_top (𝓝 (βˆ‘' n, f n x)) :=
+    by
+    intro y hy
+    apply Summable.hasSum
+    exact summable_of_summable_hasFDerivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
+  apply
+    hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
+  exact HasFDerivAt.sum fun n hn => hf n y hy
 #align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
 -/
 
@@ -292,7 +306,41 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       βˆ€ k : β„•,
         (k : β„•βˆž) ≀ N β†’
           βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±), βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) :
-    ContDiff π•œ N fun x => βˆ‘' i, f i x := by classical
+    ContDiff π•œ N fun x => βˆ‘' i, f i x := by
+  classical
+  apply contDiff_iff_forall_nat_le.2 fun m hm => _
+  let t : Set Ξ± :=
+    {i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i}
+  have ht : Set.Finite t :=
+    haveI A :
+      βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±),
+        βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i :=
+      by
+      rw [eventually_all_finset]
+      intro i hi
+      apply h'f
+      simp only [Finset.mem_range_succ_iff] at hi 
+      exact (WithTop.coe_le_coe.2 hi).trans hm
+    eventually_cofinite.2 A
+  let T : Finset Ξ± := ht.to_finset
+  have :
+    (fun x => βˆ‘' i, f i x) = (fun x => βˆ‘ i in T, f i x) + fun x => βˆ‘' i : { i // i βˆ‰ T }, f i x :=
+    by
+    ext1 x
+    refine' (sum_add_tsum_subtype_compl _ T).symm
+    refine' Summable.of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
+    filter_upwards [h'f 0 (zero_le _)] with i hi
+    simpa only [norm_iteratedFDeriv_zero] using hi x
+  rw [this]
+  apply (ContDiff.sum fun i hi => (hf i).of_le hm).add
+  have h'u : βˆ€ k : β„•, (k : β„•βˆž) ≀ m β†’ Summable (v k ∘ (coe : { i // i βˆ‰ T } β†’ Ξ±)) := fun k hk =>
+    (hv k (hk.trans hm)).Subtype _
+  refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
+  rintro k ⟨i, hi⟩ x hk
+  dsimp
+  simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, Classical.not_forall, not_le,
+    exists_prop, not_exists, not_and, not_lt] at hi 
+  exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 -/
 
Diff
@@ -92,11 +92,7 @@ theorem tendstoUniformly_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu :
 function is. -/
 theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set Ξ²}
     (hf : βˆ€ i, ContinuousOn (f i) s) (hu : Summable u) (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
-    ContinuousOn (fun x => βˆ‘' n, f n x) s := by
-  classical
-  refine' (tendstoUniformlyOn_tsum hu hfu).ContinuousOn (eventually_of_forall _)
-  intro t
-  exact continuousOn_finset_sum _ fun i hi => hf i
+    ContinuousOn (fun x => βˆ‘' n, f n x) s := by classical
 #align continuous_on_tsum continuousOn_tsum
 -/
 
@@ -143,17 +139,7 @@ derivatives. -/
 theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€)
-    (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
-  classical
-  have A :
-    βˆ€ x : E, x ∈ s β†’ tendsto (fun t : Finset Ξ± => βˆ‘ n in t, f n x) at_top (𝓝 (βˆ‘' n, f n x)) :=
-    by
-    intro y hy
-    apply Summable.hasSum
-    exact summable_of_summable_hasFDerivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
-  apply
-    hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
-  exact HasFDerivAt.sum fun n hn => hf n y hy
+    (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by classical
 #align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
 -/
 
@@ -306,41 +292,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       βˆ€ k : β„•,
         (k : β„•βˆž) ≀ N β†’
           βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±), βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) :
-    ContDiff π•œ N fun x => βˆ‘' i, f i x := by
-  classical
-  apply contDiff_iff_forall_nat_le.2 fun m hm => _
-  let t : Set Ξ± :=
-    {i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i}
-  have ht : Set.Finite t :=
-    haveI A :
-      βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±),
-        βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i :=
-      by
-      rw [eventually_all_finset]
-      intro i hi
-      apply h'f
-      simp only [Finset.mem_range_succ_iff] at hi 
-      exact (WithTop.coe_le_coe.2 hi).trans hm
-    eventually_cofinite.2 A
-  let T : Finset Ξ± := ht.to_finset
-  have :
-    (fun x => βˆ‘' i, f i x) = (fun x => βˆ‘ i in T, f i x) + fun x => βˆ‘' i : { i // i βˆ‰ T }, f i x :=
-    by
-    ext1 x
-    refine' (sum_add_tsum_subtype_compl _ T).symm
-    refine' Summable.of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
-    filter_upwards [h'f 0 (zero_le _)] with i hi
-    simpa only [norm_iteratedFDeriv_zero] using hi x
-  rw [this]
-  apply (ContDiff.sum fun i hi => (hf i).of_le hm).add
-  have h'u : βˆ€ k : β„•, (k : β„•βˆž) ≀ m β†’ Summable (v k ∘ (coe : { i // i βˆ‰ T } β†’ Ξ±)) := fun k hk =>
-    (hv k (hk.trans hm)).Subtype _
-  refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
-  rintro k ⟨i, hi⟩ x hk
-  dsimp
-  simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, Classical.not_forall, not_le,
-    exists_prop, not_exists, not_and, not_lt] at hi 
-  exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
+    ContDiff π•œ N fun x => βˆ‘' i, f i x := by classical
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 -/
 
Diff
@@ -48,8 +48,8 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
   refine' tendsto_uniformly_on_iff.2 fun Ξ΅ Ξ΅pos => _
   filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
-    summable_of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
-  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (summable_of_summable_norm A) t, add_sub_cancel']
+    Summable.of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
+  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (Summable.of_norm A) t, add_sub_cancel']
   apply lt_of_le_of_lt _ ht
   apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
   exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
@@ -241,7 +241,7 @@ theorem iteratedFDeriv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
     exact (continuousMultilinearCurryFin0 π•œ E F).symm.toContinuousLinearEquiv.map_tsum
   Β· have h'k : (k : β„•βˆž) < N := lt_of_lt_of_le (WithTop.coe_lt_coe.2 (Nat.lt_succ_self _)) hk
     have A : Summable fun n => iteratedFDeriv π•œ k (f n) 0 :=
-      summable_of_norm_bounded (v k) (hv k h'k.le) fun n => h'f k n 0 h'k.le
+      Summable.of_norm_bounded (v k) (hv k h'k.le) fun n => h'f k n 0 h'k.le
     simp_rw [iteratedFDeriv_succ_eq_comp_left, IH h'k.le]
     rw [fderiv_tsum (hv _ hk) (fun n => (hf n).differentiable_iteratedFDeriv h'k) _ A]
     Β· ext1 x
@@ -328,7 +328,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
     by
     ext1 x
     refine' (sum_add_tsum_subtype_compl _ T).symm
-    refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
+    refine' Summable.of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
     filter_upwards [h'f 0 (zero_le _)] with i hi
     simpa only [norm_iteratedFDeriv_zero] using hi x
   rw [this]
Diff
@@ -338,8 +338,8 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
   refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
   rintro k ⟨i, hi⟩ x hk
   dsimp
-  simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, not_forall, not_le, exists_prop,
-    not_exists, not_and, not_lt] at hi 
+  simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, Classical.not_forall, not_le,
+    exists_prop, not_exists, not_and, not_lt] at hi 
   exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 -/
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 SΓ©bastien GouΓ«zel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 -/
-import Mathbin.Analysis.Calculus.UniformLimitsDeriv
-import Mathbin.Analysis.Calculus.ContDiff
-import Mathbin.Data.Nat.Cast.WithTop
+import Analysis.Calculus.UniformLimitsDeriv
+import Analysis.Calculus.ContDiff
+import Data.Nat.Cast.WithTop
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 SΓ©bastien GouΓ«zel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
-
-! This file was ported from Lean 3 source module analysis.calculus.series
-! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Calculus.UniformLimitsDeriv
 import Mathbin.Analysis.Calculus.ContDiff
 import Mathbin.Data.Nat.Cast.WithTop
 
+#align_import analysis.calculus.series from "leanprover-community/mathlib"@"36938f775671ff28bea1c0310f1608e4afbb22e0"
+
 /-!
 # Smoothness of series
 
Diff
@@ -40,6 +40,7 @@ variable {Ξ± Ξ² π•œ E F : Type _} [IsROrC π•œ] [NormedAddCommGroup E] [NormedS
 /-! ### Continuity -/
 
 
+#print tendstoUniformlyOn_tsum /-
 /-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
 Version relative to a set, with general index set. -/
 theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set Ξ²}
@@ -56,7 +57,9 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
   apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
   exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
 #align tendsto_uniformly_on_tsum tendstoUniformlyOn_tsum
+-/
 
+#print tendstoUniformlyOn_tsum_nat /-
 /-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
 Version relative to a set, with index set `β„•`. -/
 theorem tendstoUniformlyOn_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu : Summable u) {s : Set Ξ²}
@@ -65,14 +68,18 @@ theorem tendstoUniformlyOn_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu
       s :=
   fun v hv => tendsto_finset_range.Eventually (tendstoUniformlyOn_tsum hu hfu v hv)
 #align tendsto_uniformly_on_tsum_nat tendstoUniformlyOn_tsum_nat
+-/
 
+#print tendstoUniformly_tsum /-
 /-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
 Version with general index set. -/
 theorem tendstoUniformly_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) :
     TendstoUniformly (fun t : Finset Ξ± => fun x => βˆ‘ n in t, f n x) (fun x => βˆ‘' n, f n x) atTop :=
   by rw [← tendstoUniformlyOn_univ]; exact tendstoUniformlyOn_tsum hu fun n x hx => hfu n x
 #align tendsto_uniformly_tsum tendstoUniformly_tsum
+-/
 
+#print tendstoUniformly_tsum_nat /-
 /-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
 Version with index set `β„•`. -/
 theorem tendstoUniformly_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu : Summable u)
@@ -81,7 +88,9 @@ theorem tendstoUniformly_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu :
       atTop :=
   fun v hv => tendsto_finset_range.Eventually (tendstoUniformly_tsum hu hfu v hv)
 #align tendsto_uniformly_tsum_nat tendstoUniformly_tsum_nat
+-/
 
+#print continuousOn_tsum /-
 /-- An infinite sum of functions with summable sup norm is continuous on a set if each individual
 function is. -/
 theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set Ξ²}
@@ -92,7 +101,9 @@ theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set 
   intro t
   exact continuousOn_finset_sum _ fun i hi => hf i
 #align continuous_on_tsum continuousOn_tsum
+-/
 
+#print continuous_tsum /-
 /-- An infinite sum of functions with summable sup norm is continuous if each individual
 function is. -/
 theorem continuous_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} (hf : βˆ€ i, Continuous (f i))
@@ -101,6 +112,7 @@ theorem continuous_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} (hf : βˆ€ i,
   simp_rw [continuous_iff_continuousOn_univ] at hf ⊒
   exact continuousOn_tsum hf hu fun n x hx => hfu n x
 #align continuous_tsum continuous_tsum
+-/
 
 /-! ### Differentiability -/
 
@@ -109,6 +121,7 @@ variable [NormedSpace π•œ F]
 
 variable {f : Ξ± β†’ E β†’ F} {f' : Ξ± β†’ E β†’ E β†’L[π•œ] F} {v : β„• β†’ Ξ± β†’ ℝ} {s : Set E} {xβ‚€ x : E} {N : β„•βˆž}
 
+#print summable_of_summable_hasFDerivAt_of_isPreconnected /-
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series converges everywhere on the set. -/
@@ -123,7 +136,9 @@ theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs
   apply cauchy_map_of_uniformCauchySeqOn_fderiv hs h's A (fun t y hy => _) hxβ‚€ hx hf0
   exact HasFDerivAt.sum fun i hi => hf i y hy
 #align summable_of_summable_has_fderiv_at_of_is_preconnected summable_of_summable_hasFDerivAt_of_isPreconnected
+-/
 
+#print hasFDerivAt_tsum_of_isPreconnected /-
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series is differentiable on the set and its derivative is the sum of the
@@ -143,7 +158,9 @@ theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
   exact HasFDerivAt.sum fun n hn => hf n y hy
 #align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
+-/
 
+#print summable_of_summable_hasFDerivAt /-
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series converges everywhere. -/
@@ -157,7 +174,9 @@ theorem summable_of_summable_hasFDerivAt (hu : Summable u)
       is_connected_univ.is_preconnected (fun n x hx => hf n x) (fun n x hx => hf' n x) (mem_univ _)
       hf0 (mem_univ _)
 #align summable_of_summable_has_fderiv_at summable_of_summable_hasFDerivAt
+-/
 
+#print hasFDerivAt_tsum /-
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series is differentiable and its derivative is the sum of the derivatives. -/
@@ -170,7 +189,9 @@ theorem hasFDerivAt_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (f'
     hasFDerivAt_tsum_of_isPreconnected hu isOpen_univ is_connected_univ.is_preconnected
       (fun n x hx => hf n x) (fun n x hx => hf' n x) (mem_univ _) hf0 (mem_univ _)
 #align has_fderiv_at_tsum hasFDerivAt_tsum
+-/
 
+#print differentiable_tsum /-
 /-- Consider a series of functions `βˆ‘' n, f n x`. If all functions in the series are differentiable
 with a summable bound on the derivatives, then the series is differentiable.
 Note that our assumptions do not ensure the pointwise convergence, but if there is no pointwise
@@ -187,22 +208,28 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
     rw [this]
     exact differentiable_const 0
 #align differentiable_tsum differentiable_tsum
+-/
 
+#print fderiv_tsum_apply /-
 theorem fderiv_tsum_apply (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
     (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) (x : E) :
     fderiv π•œ (fun y => βˆ‘' n, f n y) x = βˆ‘' n, fderiv π•œ (f n) x :=
   (hasFDerivAt_tsum hu (fun n x => (hf n x).HasFDerivAt) hf' hf0 _).fderiv
 #align fderiv_tsum_apply fderiv_tsum_apply
+-/
 
+#print fderiv_tsum /-
 theorem fderiv_tsum (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
     (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) {xβ‚€ : E} (hf0 : Summable fun n => f n xβ‚€) :
     (fderiv π•œ fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, fderiv π•œ (f n) x := by ext1 x;
   exact fderiv_tsum_apply hu hf hf' hf0 x
 #align fderiv_tsum fderiv_tsum
+-/
 
 /-! ### Higher smoothness -/
 
 
+#print iteratedFDeriv_tsum /-
 /-- Consider a series of smooth functions, with summable uniform bounds on the successive
 derivatives. Then the iterated derivative of the sum is the sum of the iterated derivative. -/
 theorem iteratedFDeriv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
@@ -228,7 +255,9 @@ theorem iteratedFDeriv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
       simpa only [iteratedFDeriv_succ_eq_comp_left, LinearIsometryEquiv.norm_map] using
         h'f k.succ n x hk
 #align iterated_fderiv_tsum iteratedFDeriv_tsum
+-/
 
+#print iteratedFDeriv_tsum_apply /-
 /-- Consider a series of smooth functions, with summable uniform bounds on the successive
 derivatives. Then the iterated derivative of the sum is the sum of the iterated derivative. -/
 theorem iteratedFDeriv_tsum_apply (hf : βˆ€ i, ContDiff π•œ N (f i))
@@ -238,7 +267,9 @@ theorem iteratedFDeriv_tsum_apply (hf : βˆ€ i, ContDiff π•œ N (f i))
     iteratedFDeriv π•œ k (fun y => βˆ‘' n, f n y) x = βˆ‘' n, iteratedFDeriv π•œ k (f n) x := by
   rw [iteratedFDeriv_tsum hf hv h'f hk]
 #align iterated_fderiv_tsum_apply iteratedFDeriv_tsum_apply
+-/
 
+#print contDiff_tsum /-
 /-- Consider a series of functions `βˆ‘' i, f i x`. Assume that each individual function `f i` is of
 class `C^N`, and moreover there is a uniform summable upper bound on the `k`-th derivative
 for each `k ≀ N`. Then the series is also `C^N`. -/
@@ -266,7 +297,9 @@ theorem contDiff_tsum (hf : βˆ€ i, ContDiff π•œ N (f i)) (hv : βˆ€ k : β„•, (k
     rw [fderiv_iteratedFDeriv, LinearIsometryEquiv.norm_map]
     exact h'f _ _ _ h'm
 #align cont_diff_tsum contDiff_tsum
+-/
 
+#print contDiff_tsum_of_eventually /-
 /-- Consider a series of functions `βˆ‘' i, f i x`. Assume that each individual function `f i` is of
 class `C^N`, and moreover there is a uniform summable upper bound on the `k`-th derivative
 for each `k ≀ N` (except maybe for finitely many `i`s). Then the series is also `C^N`. -/
@@ -312,4 +345,5 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
     not_exists, not_and, not_lt] at hi 
   exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
+-/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 
 ! This file was ported from Lean 3 source module analysis.calculus.series
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 36938f775671ff28bea1c0310f1608e4afbb22e0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Data.Nat.Cast.WithTop
 /-!
 # Smoothness of series
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We show that series of functions are continuous, or differentiable, or smooth, when each individual
 function in the series is and additionally suitable uniform summable bounds are satisfied.
 
Diff
@@ -45,7 +45,7 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
       s :=
   by
   refine' tendsto_uniformly_on_iff.2 fun Ξ΅ Ξ΅pos => _
-  filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos]with t ht x hx
+  filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
     summable_of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
   rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (summable_of_summable_norm A) t, add_sub_cancel']
@@ -85,9 +85,9 @@ theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set 
     (hf : βˆ€ i, ContinuousOn (f i) s) (hu : Summable u) (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
     ContinuousOn (fun x => βˆ‘' n, f n x) s := by
   classical
-    refine' (tendstoUniformlyOn_tsum hu hfu).ContinuousOn (eventually_of_forall _)
-    intro t
-    exact continuousOn_finset_sum _ fun i hi => hf i
+  refine' (tendstoUniformlyOn_tsum hu hfu).ContinuousOn (eventually_of_forall _)
+  intro t
+  exact continuousOn_finset_sum _ fun i hi => hf i
 #align continuous_on_tsum continuousOn_tsum
 
 /-- An infinite sum of functions with summable sup norm is continuous if each individual
@@ -130,15 +130,15 @@ theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€)
     (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
   classical
-    have A :
-      βˆ€ x : E, x ∈ s β†’ tendsto (fun t : Finset Ξ± => βˆ‘ n in t, f n x) at_top (𝓝 (βˆ‘' n, f n x)) :=
-      by
-      intro y hy
-      apply Summable.hasSum
-      exact summable_of_summable_hasFDerivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
-    apply
-      hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
-    exact HasFDerivAt.sum fun n hn => hf n y hy
+  have A :
+    βˆ€ x : E, x ∈ s β†’ tendsto (fun t : Finset Ξ± => βˆ‘ n in t, f n x) at_top (𝓝 (βˆ‘' n, f n x)) :=
+    by
+    intro y hy
+    apply Summable.hasSum
+    exact summable_of_summable_hasFDerivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
+  apply
+    hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
+  exact HasFDerivAt.sum fun n hn => hf n y hy
 #align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
 
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
@@ -179,7 +179,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
   Β· rcases h with ⟨xβ‚€, hf0⟩
     intro x
     exact (hasFDerivAt_tsum hu hf hf' hf0 x).DifferentiableAt
-  Β· push_neg  at h 
+  Β· push_neg at h 
     have : (fun x => βˆ‘' n, f n x) = 0 := by ext1 x; exact tsum_eq_zero_of_not_summable (h x)
     rw [this]
     exact differentiable_const 0
@@ -275,38 +275,38 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
           βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±), βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) :
     ContDiff π•œ N fun x => βˆ‘' i, f i x := by
   classical
-    apply contDiff_iff_forall_nat_le.2 fun m hm => _
-    let t : Set Ξ± :=
-      { i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i }
-    have ht : Set.Finite t :=
-      haveI A :
-        βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±),
-          βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i :=
-        by
-        rw [eventually_all_finset]
-        intro i hi
-        apply h'f
-        simp only [Finset.mem_range_succ_iff] at hi 
-        exact (WithTop.coe_le_coe.2 hi).trans hm
-      eventually_cofinite.2 A
-    let T : Finset Ξ± := ht.to_finset
-    have :
-      (fun x => βˆ‘' i, f i x) = (fun x => βˆ‘ i in T, f i x) + fun x => βˆ‘' i : { i // i βˆ‰ T }, f i x :=
+  apply contDiff_iff_forall_nat_le.2 fun m hm => _
+  let t : Set Ξ± :=
+    {i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i}
+  have ht : Set.Finite t :=
+    haveI A :
+      βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±),
+        βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i :=
       by
-      ext1 x
-      refine' (sum_add_tsum_subtype_compl _ T).symm
-      refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
-      filter_upwards [h'f 0 (zero_le _)]with i hi
-      simpa only [norm_iteratedFDeriv_zero] using hi x
-    rw [this]
-    apply (ContDiff.sum fun i hi => (hf i).of_le hm).add
-    have h'u : βˆ€ k : β„•, (k : β„•βˆž) ≀ m β†’ Summable (v k ∘ (coe : { i // i βˆ‰ T } β†’ Ξ±)) := fun k hk =>
-      (hv k (hk.trans hm)).Subtype _
-    refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
-    rintro k ⟨i, hi⟩ x hk
-    dsimp
-    simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, not_forall, not_le,
-      exists_prop, not_exists, not_and, not_lt] at hi 
-    exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
+      rw [eventually_all_finset]
+      intro i hi
+      apply h'f
+      simp only [Finset.mem_range_succ_iff] at hi 
+      exact (WithTop.coe_le_coe.2 hi).trans hm
+    eventually_cofinite.2 A
+  let T : Finset Ξ± := ht.to_finset
+  have :
+    (fun x => βˆ‘' i, f i x) = (fun x => βˆ‘ i in T, f i x) + fun x => βˆ‘' i : { i // i βˆ‰ T }, f i x :=
+    by
+    ext1 x
+    refine' (sum_add_tsum_subtype_compl _ T).symm
+    refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
+    filter_upwards [h'f 0 (zero_le _)] with i hi
+    simpa only [norm_iteratedFDeriv_zero] using hi x
+  rw [this]
+  apply (ContDiff.sum fun i hi => (hf i).of_le hm).add
+  have h'u : βˆ€ k : β„•, (k : β„•βˆž) ≀ m β†’ Summable (v k ∘ (coe : { i // i βˆ‰ T } β†’ Ξ±)) := fun k hk =>
+    (hv k (hk.trans hm)).Subtype _
+  refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
+  rintro k ⟨i, hi⟩ x hk
+  dsimp
+  simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, not_forall, not_le, exists_prop,
+    not_exists, not_and, not_lt] at hi 
+  exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 
Diff
@@ -95,7 +95,7 @@ function is. -/
 theorem continuous_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} (hf : βˆ€ i, Continuous (f i))
     (hu : Summable u) (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) : Continuous fun x => βˆ‘' n, f n x :=
   by
-  simp_rw [continuous_iff_continuousOn_univ] at hf⊒
+  simp_rw [continuous_iff_continuousOn_univ] at hf ⊒
   exact continuousOn_tsum hf hu fun n x hx => hfu n x
 #align continuous_tsum continuous_tsum
 
@@ -114,7 +114,7 @@ theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€) {x : E}
     (hx : x ∈ s) : Summable fun n => f n x :=
   by
-  rw [summable_iff_cauchySeq_finset] at hf0⊒
+  rw [summable_iff_cauchySeq_finset] at hf0 ⊒
   have A : UniformCauchySeqOn (fun t : Finset Ξ± => fun x => βˆ‘ i in t, f' i x) at_top s :=
     (tendstoUniformlyOn_tsum hu hf').UniformCauchySeqOn
   apply cauchy_map_of_uniformCauchySeqOn_fderiv hs h's A (fun t y hy => _) hxβ‚€ hx hf0
@@ -179,7 +179,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
   Β· rcases h with ⟨xβ‚€, hf0⟩
     intro x
     exact (hasFDerivAt_tsum hu hf hf' hf0 x).DifferentiableAt
-  Β· push_neg  at h
+  Β· push_neg  at h 
     have : (fun x => βˆ‘' n, f n x) = 0 := by ext1 x; exact tsum_eq_zero_of_not_summable (h x)
     rw [this]
     exact differentiable_const 0
@@ -286,7 +286,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
         rw [eventually_all_finset]
         intro i hi
         apply h'f
-        simp only [Finset.mem_range_succ_iff] at hi
+        simp only [Finset.mem_range_succ_iff] at hi 
         exact (WithTop.coe_le_coe.2 hi).trans hm
       eventually_cofinite.2 A
     let T : Finset Ξ± := ht.to_finset
@@ -306,7 +306,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
     rintro k ⟨i, hi⟩ x hk
     dsimp
     simp only [finite.mem_to_finset, mem_set_of_eq, Finset.mem_range, not_forall, not_le,
-      exists_prop, not_exists, not_and, not_lt] at hi
+      exists_prop, not_exists, not_and, not_lt] at hi 
     exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
 
Diff
@@ -202,65 +202,65 @@ theorem fderiv_tsum (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
 
 /-- Consider a series of smooth functions, with summable uniform bounds on the successive
 derivatives. Then the iterated derivative of the sum is the sum of the iterated derivative. -/
-theorem iteratedFderiv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
+theorem iteratedFDeriv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
     (hv : βˆ€ k : β„•, (k : β„•βˆž) ≀ N β†’ Summable (v k))
-    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i) {k : β„•}
+    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) {k : β„•}
     (hk : (k : β„•βˆž) ≀ N) :
-    (iteratedFderiv π•œ k fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, iteratedFderiv π•œ k (f n) x :=
+    (iteratedFDeriv π•œ k fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, iteratedFDeriv π•œ k (f n) x :=
   by
   induction' k with k IH
   Β· ext1 x
-    simp_rw [iteratedFderiv_zero_eq_comp]
+    simp_rw [iteratedFDeriv_zero_eq_comp]
     exact (continuousMultilinearCurryFin0 π•œ E F).symm.toContinuousLinearEquiv.map_tsum
   Β· have h'k : (k : β„•βˆž) < N := lt_of_lt_of_le (WithTop.coe_lt_coe.2 (Nat.lt_succ_self _)) hk
-    have A : Summable fun n => iteratedFderiv π•œ k (f n) 0 :=
+    have A : Summable fun n => iteratedFDeriv π•œ k (f n) 0 :=
       summable_of_norm_bounded (v k) (hv k h'k.le) fun n => h'f k n 0 h'k.le
-    simp_rw [iteratedFderiv_succ_eq_comp_left, IH h'k.le]
-    rw [fderiv_tsum (hv _ hk) (fun n => (hf n).differentiable_iteratedFderiv h'k) _ A]
+    simp_rw [iteratedFDeriv_succ_eq_comp_left, IH h'k.le]
+    rw [fderiv_tsum (hv _ hk) (fun n => (hf n).differentiable_iteratedFDeriv h'k) _ A]
     Β· ext1 x
       exact
         (continuousMultilinearCurryLeftEquiv π•œ (fun i : Fin (k + 1) => E)
               F).toContinuousLinearEquiv.map_tsum
     Β· intro n x
-      simpa only [iteratedFderiv_succ_eq_comp_left, LinearIsometryEquiv.norm_map] using
+      simpa only [iteratedFDeriv_succ_eq_comp_left, LinearIsometryEquiv.norm_map] using
         h'f k.succ n x hk
-#align iterated_fderiv_tsum iteratedFderiv_tsum
+#align iterated_fderiv_tsum iteratedFDeriv_tsum
 
 /-- Consider a series of smooth functions, with summable uniform bounds on the successive
 derivatives. Then the iterated derivative of the sum is the sum of the iterated derivative. -/
-theorem iteratedFderiv_tsum_apply (hf : βˆ€ i, ContDiff π•œ N (f i))
+theorem iteratedFDeriv_tsum_apply (hf : βˆ€ i, ContDiff π•œ N (f i))
     (hv : βˆ€ k : β„•, (k : β„•βˆž) ≀ N β†’ Summable (v k))
-    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i) {k : β„•}
+    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) {k : β„•}
     (hk : (k : β„•βˆž) ≀ N) (x : E) :
-    iteratedFderiv π•œ k (fun y => βˆ‘' n, f n y) x = βˆ‘' n, iteratedFderiv π•œ k (f n) x := by
-  rw [iteratedFderiv_tsum hf hv h'f hk]
-#align iterated_fderiv_tsum_apply iteratedFderiv_tsum_apply
+    iteratedFDeriv π•œ k (fun y => βˆ‘' n, f n y) x = βˆ‘' n, iteratedFDeriv π•œ k (f n) x := by
+  rw [iteratedFDeriv_tsum hf hv h'f hk]
+#align iterated_fderiv_tsum_apply iteratedFDeriv_tsum_apply
 
 /-- Consider a series of functions `βˆ‘' i, f i x`. Assume that each individual function `f i` is of
 class `C^N`, and moreover there is a uniform summable upper bound on the `k`-th derivative
 for each `k ≀ N`. Then the series is also `C^N`. -/
 theorem contDiff_tsum (hf : βˆ€ i, ContDiff π•œ N (f i)) (hv : βˆ€ k : β„•, (k : β„•βˆž) ≀ N β†’ Summable (v k))
-    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i) :
+    (h'f : βˆ€ (k : β„•) (i : Ξ±) (x : E), (k : β„•βˆž) ≀ N β†’ β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) :
     ContDiff π•œ N fun x => βˆ‘' i, f i x :=
   by
   rw [contDiff_iff_continuous_differentiable]
   constructor
   Β· intro m hm
-    rw [iteratedFderiv_tsum hf hv h'f hm]
+    rw [iteratedFDeriv_tsum hf hv h'f hm]
     refine' continuous_tsum _ (hv m hm) _
     Β· intro i
-      exact ContDiff.continuous_iteratedFderiv hm (hf i)
+      exact ContDiff.continuous_iteratedFDeriv hm (hf i)
     Β· intro n x
       exact h'f _ _ _ hm
   Β· intro m hm
     have h'm : ((m + 1 : β„•) : β„•βˆž) ≀ N := by
       simpa only [ENat.coe_add, Nat.cast_withBot, ENat.coe_one] using ENat.add_one_le_of_lt hm
-    rw [iteratedFderiv_tsum hf hv h'f hm.le]
+    rw [iteratedFDeriv_tsum hf hv h'f hm.le]
     have A :
-      βˆ€ n x, HasFDerivAt (iteratedFderiv π•œ m (f n)) (fderiv π•œ (iteratedFderiv π•œ m (f n)) x) x :=
-      fun n x => (ContDiff.differentiable_iteratedFderiv hm (hf n)).DifferentiableAt.HasFDerivAt
+      βˆ€ n x, HasFDerivAt (iteratedFDeriv π•œ m (f n)) (fderiv π•œ (iteratedFDeriv π•œ m (f n)) x) x :=
+      fun n x => (ContDiff.differentiable_iteratedFDeriv hm (hf n)).DifferentiableAt.HasFDerivAt
     apply differentiable_tsum (hv _ h'm) A fun n x => _
-    rw [fderiv_iteratedFderiv, LinearIsometryEquiv.norm_map]
+    rw [fderiv_iteratedFDeriv, LinearIsometryEquiv.norm_map]
     exact h'f _ _ _ h'm
 #align cont_diff_tsum contDiff_tsum
 
@@ -272,16 +272,16 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
     (h'f :
       βˆ€ k : β„•,
         (k : β„•βˆž) ≀ N β†’
-          βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±), βˆ€ x : E, β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i) :
+          βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±), βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i) :
     ContDiff π•œ N fun x => βˆ‘' i, f i x := by
   classical
     apply contDiff_iff_forall_nat_le.2 fun m hm => _
     let t : Set Ξ± :=
-      { i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i }
+      { i : Ξ± | Β¬βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i }
     have ht : Set.Finite t :=
       haveI A :
         βˆ€αΆ  i in (Filter.cofinite : Filter Ξ±),
-          βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFderiv π•œ k (f i) xβ€– ≀ v k i :=
+          βˆ€ k : β„•, k ∈ Finset.range (m + 1) β†’ βˆ€ x : E, β€–iteratedFDeriv π•œ k (f i) xβ€– ≀ v k i :=
         by
         rw [eventually_all_finset]
         intro i hi
@@ -297,7 +297,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       refine' (sum_add_tsum_subtype_compl _ T).symm
       refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
       filter_upwards [h'f 0 (zero_le _)]with i hi
-      simpa only [norm_iteratedFderiv_zero] using hi x
+      simpa only [norm_iteratedFDeriv_zero] using hi x
     rw [this]
     apply (ContDiff.sum fun i hi => (hf i).of_le hm).add
     have h'u : βˆ€ k : β„•, (k : β„•βˆž) ≀ m β†’ Summable (v k ∘ (coe : { i // i βˆ‰ T } β†’ Ξ±)) := fun k hk =>
Diff
@@ -29,7 +29,7 @@ We also give versions of these statements which are localized to a set.
 
 open Set Metric TopologicalSpace Function Asymptotics Filter
 
-open Topology NNReal BigOperators
+open scoped Topology NNReal BigOperators
 
 variable {Ξ± Ξ² π•œ E F : Type _} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
   [NormedAddCommGroup F] [CompleteSpace F] {u : Ξ± β†’ ℝ}
Diff
@@ -67,9 +67,7 @@ theorem tendstoUniformlyOn_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu
 Version with general index set. -/
 theorem tendstoUniformly_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) :
     TendstoUniformly (fun t : Finset Ξ± => fun x => βˆ‘ n in t, f n x) (fun x => βˆ‘' n, f n x) atTop :=
-  by
-  rw [← tendstoUniformlyOn_univ]
-  exact tendstoUniformlyOn_tsum hu fun n x hx => hfu n x
+  by rw [← tendstoUniformlyOn_univ]; exact tendstoUniformlyOn_tsum hu fun n x hx => hfu n x
 #align tendsto_uniformly_tsum tendstoUniformly_tsum
 
 /-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
@@ -182,9 +180,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
     intro x
     exact (hasFDerivAt_tsum hu hf hf' hf0 x).DifferentiableAt
   Β· push_neg  at h
-    have : (fun x => βˆ‘' n, f n x) = 0 := by
-      ext1 x
-      exact tsum_eq_zero_of_not_summable (h x)
+    have : (fun x => βˆ‘' n, f n x) = 0 := by ext1 x; exact tsum_eq_zero_of_not_summable (h x)
     rw [this]
     exact differentiable_const 0
 #align differentiable_tsum differentiable_tsum
@@ -197,9 +193,7 @@ theorem fderiv_tsum_apply (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f
 
 theorem fderiv_tsum (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
     (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) {xβ‚€ : E} (hf0 : Summable fun n => f n xβ‚€) :
-    (fderiv π•œ fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, fderiv π•œ (f n) x :=
-  by
-  ext1 x
+    (fderiv π•œ fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, fderiv π•œ (f n) x := by ext1 x;
   exact fderiv_tsum_apply hu hf hf' hf0 x
 #align fderiv_tsum fderiv_tsum
 
Diff
@@ -111,8 +111,8 @@ variable {f : Ξ± β†’ E β†’ F} {f' : Ξ± β†’ E β†’ E β†’L[π•œ] F} {v : β„• β†’ Ξ±
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series converges everywhere on the set. -/
-theorem summable_of_summable_hasFderivAt_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
-    (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFderivAt (f n) (f' n x) x)
+theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
+    (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€) {x : E}
     (hx : x ∈ s) : Summable fun n => f n x :=
   by
@@ -120,67 +120,67 @@ theorem summable_of_summable_hasFderivAt_of_isPreconnected (hu : Summable u) (hs
   have A : UniformCauchySeqOn (fun t : Finset Ξ± => fun x => βˆ‘ i in t, f' i x) at_top s :=
     (tendstoUniformlyOn_tsum hu hf').UniformCauchySeqOn
   apply cauchy_map_of_uniformCauchySeqOn_fderiv hs h's A (fun t y hy => _) hxβ‚€ hx hf0
-  exact HasFderivAt.sum fun i hi => hf i y hy
-#align summable_of_summable_has_fderiv_at_of_is_preconnected summable_of_summable_hasFderivAt_of_isPreconnected
+  exact HasFDerivAt.sum fun i hi => hf i y hy
+#align summable_of_summable_has_fderiv_at_of_is_preconnected summable_of_summable_hasFDerivAt_of_isPreconnected
 
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series is differentiable on the set and its derivative is the sum of the
 derivatives. -/
-theorem hasFderivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
-    (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFderivAt (f n) (f' n x) x)
+theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
+    (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable fun n => f n xβ‚€)
-    (hx : x ∈ s) : HasFderivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
+    (hx : x ∈ s) : HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
   classical
     have A :
       βˆ€ x : E, x ∈ s β†’ tendsto (fun t : Finset Ξ± => βˆ‘ n in t, f n x) at_top (𝓝 (βˆ‘' n, f n x)) :=
       by
       intro y hy
       apply Summable.hasSum
-      exact summable_of_summable_hasFderivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
+      exact summable_of_summable_hasFDerivAt_of_isPreconnected hu hs h's hf hf' hxβ‚€ hf0 hy
     apply
-      hasFderivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
-    exact HasFderivAt.sum fun n hn => hf n y hy
-#align has_fderiv_at_tsum_of_is_preconnected hasFderivAt_tsum_of_isPreconnected
+      hasFDerivAt_of_tendstoUniformlyOn hs (tendstoUniformlyOn_tsum hu hf') (fun t y hy => _) A _ hx
+    exact HasFDerivAt.sum fun n hn => hf n y hy
+#align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
 
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series converges everywhere. -/
-theorem summable_of_summable_hasFderivAt (hu : Summable u)
-    (hf : βˆ€ n x, HasFderivAt (f n) (f' n x) x) (hf' : βˆ€ n x, β€–f' n xβ€– ≀ u n)
+theorem summable_of_summable_hasFDerivAt (hu : Summable u)
+    (hf : βˆ€ n x, HasFDerivAt (f n) (f' n x) x) (hf' : βˆ€ n x, β€–f' n xβ€– ≀ u n)
     (hf0 : Summable fun n => f n xβ‚€) (x : E) : Summable fun n => f n x :=
   by
   let : NormedSpace ℝ E; exact NormedSpace.restrictScalars ℝ π•œ _
   apply
-    summable_of_summable_hasFderivAt_of_isPreconnected hu isOpen_univ
+    summable_of_summable_hasFDerivAt_of_isPreconnected hu isOpen_univ
       is_connected_univ.is_preconnected (fun n x hx => hf n x) (fun n x hx => hf' n x) (mem_univ _)
       hf0 (mem_univ _)
-#align summable_of_summable_has_fderiv_at summable_of_summable_hasFderivAt
+#align summable_of_summable_has_fderiv_at summable_of_summable_hasFDerivAt
 
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series is differentiable and its derivative is the sum of the derivatives. -/
-theorem hasFderivAt_tsum (hu : Summable u) (hf : βˆ€ n x, HasFderivAt (f n) (f' n x) x)
+theorem hasFDerivAt_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, β€–f' n xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) (x : E) :
-    HasFderivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x :=
+    HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x :=
   by
   let : NormedSpace ℝ E; exact NormedSpace.restrictScalars ℝ π•œ _
   exact
-    hasFderivAt_tsum_of_isPreconnected hu isOpen_univ is_connected_univ.is_preconnected
+    hasFDerivAt_tsum_of_isPreconnected hu isOpen_univ is_connected_univ.is_preconnected
       (fun n x hx => hf n x) (fun n x hx => hf' n x) (mem_univ _) hf0 (mem_univ _)
-#align has_fderiv_at_tsum hasFderivAt_tsum
+#align has_fderiv_at_tsum hasFDerivAt_tsum
 
 /-- Consider a series of functions `βˆ‘' n, f n x`. If all functions in the series are differentiable
 with a summable bound on the derivatives, then the series is differentiable.
 Note that our assumptions do not ensure the pointwise convergence, but if there is no pointwise
 convergence then the series is zero everywhere so the result still holds. -/
-theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFderivAt (f n) (f' n x) x)
+theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, β€–f' n xβ€– ≀ u n) : Differentiable π•œ fun y => βˆ‘' n, f n y :=
   by
   by_cases h : βˆƒ xβ‚€, Summable fun n => f n xβ‚€
   Β· rcases h with ⟨xβ‚€, hf0⟩
     intro x
-    exact (hasFderivAt_tsum hu hf hf' hf0 x).DifferentiableAt
+    exact (hasFDerivAt_tsum hu hf hf' hf0 x).DifferentiableAt
   Β· push_neg  at h
     have : (fun x => βˆ‘' n, f n x) = 0 := by
       ext1 x
@@ -192,7 +192,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFderivAt (f n) (
 theorem fderiv_tsum_apply (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
     (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) (x : E) :
     fderiv π•œ (fun y => βˆ‘' n, f n y) x = βˆ‘' n, fderiv π•œ (f n) x :=
-  (hasFderivAt_tsum hu (fun n x => (hf n x).HasFderivAt) hf' hf0 _).fderiv
+  (hasFDerivAt_tsum hu (fun n x => (hf n x).HasFDerivAt) hf' hf0 _).fderiv
 #align fderiv_tsum_apply fderiv_tsum_apply
 
 theorem fderiv_tsum (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
@@ -263,8 +263,8 @@ theorem contDiff_tsum (hf : βˆ€ i, ContDiff π•œ N (f i)) (hv : βˆ€ k : β„•, (k
       simpa only [ENat.coe_add, Nat.cast_withBot, ENat.coe_one] using ENat.add_one_le_of_lt hm
     rw [iteratedFderiv_tsum hf hv h'f hm.le]
     have A :
-      βˆ€ n x, HasFderivAt (iteratedFderiv π•œ m (f n)) (fderiv π•œ (iteratedFderiv π•œ m (f n)) x) x :=
-      fun n x => (ContDiff.differentiable_iteratedFderiv hm (hf n)).DifferentiableAt.HasFderivAt
+      βˆ€ n x, HasFDerivAt (iteratedFderiv π•œ m (f n)) (fderiv π•œ (iteratedFderiv π•œ m (f n)) x) x :=
+      fun n x => (ContDiff.differentiable_iteratedFderiv hm (hf n)).DifferentiableAt.HasFDerivAt
     apply differentiable_tsum (hv _ h'm) A fun n x => _
     rw [fderiv_iteratedFderiv, LinearIsometryEquiv.norm_map]
     exact h'f _ _ _ h'm

Changes in mathlib4

mathlib3
mathlib4
chore: Rename IsROrC to RCLike (#10819)

IsROrC contains data, which goes against the expectation that classes prefixed with Is are prop-valued. People have been complaining about this on and off, so this PR renames IsROrC to RCLike.

Diff
@@ -28,7 +28,7 @@ open Set Metric TopologicalSpace Function Asymptotics Filter
 
 open scoped Topology NNReal BigOperators
 
-variable {Ξ± Ξ² π•œ E F : Type*} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
+variable {Ξ± Ξ² π•œ E F : Type*} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
   [NormedAddCommGroup F] [CompleteSpace F] {u : Ξ± β†’ ℝ}
 
 /-! ### Differentiability -/
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -33,7 +33,7 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
   filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
     .of_nonneg_of_le (fun _ ↦ norm_nonneg _) (fun n => hfu n x hx) hu
-  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl A.of_norm t, add_sub_cancel']
+  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl A.of_norm t, add_sub_cancel_left]
   apply lt_of_le_of_lt _ ht
   apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
   exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -34,7 +34,6 @@ variable {Ξ± Ξ² π•œ E F : Type*} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSp
 /-! ### Differentiability -/
 
 variable [NormedSpace π•œ F]
-
 variable {f : Ξ± β†’ E β†’ F} {f' : Ξ± β†’ E β†’ E β†’L[π•œ] F} {g : Ξ± β†’ π•œ β†’ F} {g' : Ξ± β†’ π•œ β†’ F} {v : β„• β†’ Ξ± β†’ ℝ}
   {s : Set E} {t : Set π•œ} {xβ‚€ x : E} {yβ‚€ y : π•œ} {N : β„•βˆž}
 
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -49,7 +49,7 @@ theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs
   rw [summable_iff_cauchySeq_finset] at hf0 ⊒
   have A : UniformCauchySeqOn (fun t : Finset Ξ± => fun x => βˆ‘ i in t, f' i x) atTop s :=
     (tendstoUniformlyOn_tsum hu hf').uniformCauchySeqOn
-  -- porting note: Lean 4 failed to find `f` by unification
+  -- Porting note: Lean 4 failed to find `f` by unification
   refine cauchy_map_of_uniformCauchySeqOn_fderiv (f := fun t x ↦ βˆ‘ i in t, f i x)
     hs h's A (fun t y hy => ?_) hxβ‚€ hx hf0
   exact HasFDerivAt.sum fun i _ => hf i y hy
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -290,8 +290,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       (hv k (hk.trans hm)).subtype _
     refine' contDiff_tsum (fun i => (hf i).of_le hm) h'u _
     rintro k ⟨i, hi⟩ x hk
-    dsimp
-    simp only [Finite.mem_toFinset, mem_setOf_eq, Finset.mem_range, not_forall, not_le,
+    simp only [t, T, Finite.mem_toFinset, mem_setOf_eq, Finset.mem_range, not_forall, not_le,
       exists_prop, not_exists, not_and, not_lt] at hi
     exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -125,7 +125,7 @@ then the series is differentiable and its derivative is the sum of the derivativ
 theorem hasFDerivAt_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, β€–f' n xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) (x : E) :
     HasFDerivAt (fun y => βˆ‘' n, f n y) (βˆ‘' n, f' n x) x := by
-  let : NormedSpace ℝ E; exact NormedSpace.restrictScalars ℝ π•œ _
+  let A : NormedSpace ℝ E := NormedSpace.restrictScalars ℝ π•œ _
   exact hasFDerivAt_tsum_of_isPreconnected hu isOpen_univ isPreconnected_univ
     (fun n x _ => hf n x) (fun n x _ => hf' n x) (mem_univ _) hf0 (mem_univ _)
 #align has_fderiv_at_tsum hasFDerivAt_tsum
chore: shake some imports (#10341)
Diff
@@ -5,8 +5,6 @@ Authors: SΓ©bastien GouΓ«zel
 -/
 import Mathlib.Analysis.Calculus.ContDiff.Basic
 import Mathlib.Analysis.Calculus.UniformLimitsDeriv
-import Mathlib.Data.Nat.Cast.WithTop
-import Mathlib.RingTheory.Ideal.LocalRing
 import Mathlib.Topology.Algebra.InfiniteSum.Module
 import Mathlib.Analysis.NormedSpace.FunctionSeries
 
@@ -244,7 +242,7 @@ theorem contDiff_tsum (hf : βˆ€ i, ContDiff π•œ N (f i)) (hv : βˆ€ k : β„•, (k
       exact h'f _ _ _ hm
   Β· intro m hm
     have h'm : ((m + 1 : β„•) : β„•βˆž) ≀ N := by
-      simpa only [ENat.coe_add, Nat.cast_withBot, ENat.coe_one] using ENat.add_one_le_of_lt hm
+      simpa only [ENat.coe_add, ENat.coe_one] using ENat.add_one_le_of_lt hm
     rw [iteratedFDeriv_tsum hf hv h'f hm.le]
     have A :
       βˆ€ n x, HasFDerivAt (iteratedFDeriv π•œ m (f n)) (fderiv π•œ (iteratedFDeriv π•œ m (f n)) x) x :=
chore: split file on series of functions into two files (#9906)

Currently, the same file contains the facts that series of functions are continuous (resp. smooth) under suitable assumption. I will need the result on continuity in a file of more topological nature. To avoid importing all calculus in this file, this PR splits the file Analysis.Calculus.Series into Analysis.Calculus.SmoothSeries and Analysis.NormedSpace.FunctionSeries.

It's purely a splitting PR, no result added or removed.

chore: split file on series of functions into two files (#9906)

Currently, the same file contains the facts that series of functions are continuous (resp. smooth) under suitable assumption. I will need the result on continuity in a file of more topological nature. To avoid importing all calculus in this file, this PR splits the file Analysis.Calculus.Series into Analysis.Calculus.SmoothSeries and Analysis.NormedSpace.FunctionSeries.

It's purely a splitting PR, no result added or removed.

Diff
@@ -8,17 +8,17 @@ import Mathlib.Analysis.Calculus.UniformLimitsDeriv
 import Mathlib.Data.Nat.Cast.WithTop
 import Mathlib.RingTheory.Ideal.LocalRing
 import Mathlib.Topology.Algebra.InfiniteSum.Module
+import Mathlib.Analysis.NormedSpace.FunctionSeries
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
 
 /-!
 # Smoothness of series
 
-We show that series of functions are continuous, or differentiable, or smooth, when each individual
+We show that series of functions are differentiable, or smooth, when each individual
 function in the series is and additionally suitable uniform summable bounds are satisfied.
 
 More specifically,
-* `continuous_tsum` ensures that a series of continuous functions is continuous.
 * `differentiable_tsum` ensures that a series of differentiable functions is differentiable.
 * `contDiff_tsum` ensures that a series of smooth functions is smooth.
 
@@ -33,69 +33,6 @@ open scoped Topology NNReal BigOperators
 variable {Ξ± Ξ² π•œ E F : Type*} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
   [NormedAddCommGroup F] [CompleteSpace F] {u : Ξ± β†’ ℝ}
 
-/-! ### Continuity -/
-
-
-/-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
-Version relative to a set, with general index set. -/
-theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set Ξ²}
-    (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
-    TendstoUniformlyOn (fun t : Finset Ξ± => fun x => βˆ‘ n in t, f n x) (fun x => βˆ‘' n, f n x) atTop
-      s := by
-  refine' tendstoUniformlyOn_iff.2 fun Ξ΅ Ξ΅pos => _
-  filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
-  have A : Summable fun n => β€–f n xβ€– :=
-    .of_nonneg_of_le (fun _ ↦ norm_nonneg _) (fun n => hfu n x hx) hu
-  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl A.of_norm t, add_sub_cancel']
-  apply lt_of_le_of_lt _ ht
-  apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
-  exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
-#align tendsto_uniformly_on_tsum tendstoUniformlyOn_tsum
-
-/-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
-Version relative to a set, with index set `β„•`. -/
-theorem tendstoUniformlyOn_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu : Summable u) {s : Set Ξ²}
-    (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
-    TendstoUniformlyOn (fun N => fun x => βˆ‘ n in Finset.range N, f n x) (fun x => βˆ‘' n, f n x) atTop
-      s :=
-  fun v hv => tendsto_finset_range.eventually (tendstoUniformlyOn_tsum hu hfu v hv)
-#align tendsto_uniformly_on_tsum_nat tendstoUniformlyOn_tsum_nat
-
-/-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
-Version with general index set. -/
-theorem tendstoUniformly_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) :
-    TendstoUniformly (fun t : Finset Ξ± => fun x => βˆ‘ n in t, f n x) (fun x => βˆ‘' n, f n x) atTop :=
-  by rw [← tendstoUniformlyOn_univ]; exact tendstoUniformlyOn_tsum hu fun n x _ => hfu n x
-#align tendsto_uniformly_tsum tendstoUniformly_tsum
-
-/-- An infinite sum of functions with summable sup norm is the uniform limit of its partial sums.
-Version with index set `β„•`. -/
-theorem tendstoUniformly_tsum_nat {f : β„• β†’ Ξ² β†’ F} {u : β„• β†’ ℝ} (hu : Summable u)
-    (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) :
-    TendstoUniformly (fun N => fun x => βˆ‘ n in Finset.range N, f n x) (fun x => βˆ‘' n, f n x)
-      atTop :=
-  fun v hv => tendsto_finset_range.eventually (tendstoUniformly_tsum hu hfu v hv)
-#align tendsto_uniformly_tsum_nat tendstoUniformly_tsum_nat
-
-/-- An infinite sum of functions with summable sup norm is continuous on a set if each individual
-function is. -/
-theorem continuousOn_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} {s : Set Ξ²}
-    (hf : βˆ€ i, ContinuousOn (f i) s) (hu : Summable u) (hfu : βˆ€ n x, x ∈ s β†’ β€–f n xβ€– ≀ u n) :
-    ContinuousOn (fun x => βˆ‘' n, f n x) s := by
-  classical
-    refine' (tendstoUniformlyOn_tsum hu hfu).continuousOn (eventually_of_forall _)
-    intro t
-    exact continuousOn_finset_sum _ fun i _ => hf i
-#align continuous_on_tsum continuousOn_tsum
-
-/-- An infinite sum of functions with summable sup norm is continuous if each individual
-function is. -/
-theorem continuous_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} (hf : βˆ€ i, Continuous (f i))
-    (hu : Summable u) (hfu : βˆ€ n x, β€–f n xβ€– ≀ u n) : Continuous fun x => βˆ‘' n, f n x := by
-  simp_rw [continuous_iff_continuousOn_univ] at hf ⊒
-  exact continuousOn_tsum hf hu fun n x _ => hfu n x
-#align continuous_tsum continuous_tsum
-
 /-! ### Differentiability -/
 
 variable [NormedSpace π•œ F]
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,9 +3,11 @@ Copyright (c) 2022 SΓ©bastien GouΓ«zel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 -/
+import Mathlib.Analysis.Calculus.ContDiff.Basic
 import Mathlib.Analysis.Calculus.UniformLimitsDeriv
-import Mathlib.Analysis.Calculus.ContDiff.FiniteDimension
 import Mathlib.Data.Nat.Cast.WithTop
+import Mathlib.RingTheory.Ideal.LocalRing
+import Mathlib.Topology.Algebra.InfiniteSum.Module
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
 
feat(Analysis/Calculus/Series): specialize to deriv (#9295)

Asked by @MichaelStollBayreuth on Zulip

Diff
@@ -98,14 +98,15 @@ theorem continuous_tsum [TopologicalSpace Ξ²] {f : Ξ± β†’ Ξ² β†’ F} (hf : βˆ€ i,
 
 variable [NormedSpace π•œ F]
 
-variable {f : Ξ± β†’ E β†’ F} {f' : Ξ± β†’ E β†’ E β†’L[π•œ] F} {v : β„• β†’ Ξ± β†’ ℝ} {s : Set E} {xβ‚€ x : E} {N : β„•βˆž}
+variable {f : Ξ± β†’ E β†’ F} {f' : Ξ± β†’ E β†’ E β†’L[π•œ] F} {g : Ξ± β†’ π•œ β†’ F} {g' : Ξ± β†’ π•œ β†’ F} {v : β„• β†’ Ξ± β†’ ℝ}
+  {s : Set E} {t : Set π•œ} {xβ‚€ x : E} {yβ‚€ y : π•œ} {N : β„•βˆž}
 
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series converges everywhere on the set. -/
 theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
-    (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable (f Β· xβ‚€)) {x : E}
+    (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable (f Β· xβ‚€))
     (hx : x ∈ s) : Summable fun n => f n x := by
   haveI := Classical.decEq Ξ±
   rw [summable_iff_cauchySeq_finset] at hf0 ⊒
@@ -117,6 +118,17 @@ theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs
   exact HasFDerivAt.sum fun i _ => hf i y hy
 #align summable_of_summable_has_fderiv_at_of_is_preconnected summable_of_summable_hasFDerivAt_of_isPreconnected
 
+/-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
+at a point, and all functions in the series are differentiable with a summable bound on the
+derivatives, then the series converges everywhere on the set. -/
+theorem summable_of_summable_hasDerivAt_of_isPreconnected (hu : Summable u) (ht : IsOpen t)
+    (h't : IsPreconnected t) (hg : βˆ€ n y, y ∈ t β†’ HasDerivAt (g n) (g' n y) y)
+    (hg' : βˆ€ n y, y ∈ t β†’ β€–g' n yβ€– ≀ u n) (hyβ‚€ : yβ‚€ ∈ t) (hg0 : Summable (g Β· yβ‚€))
+    (hy : y ∈ t) : Summable fun n => g n y := by
+  simp_rw [hasDerivAt_iff_hasFDerivAt] at hg
+  refine summable_of_summable_hasFDerivAt_of_isPreconnected hu ht h't hg ?_ hyβ‚€ hg0 hy
+  simpa? says simpa only [ContinuousLinearMap.norm_smulRight_apply, norm_one, one_mul]
+
 /-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
 at a point, and all functions in the series are differentiable with a summable bound on the
 derivatives, then the series is differentiable on the set and its derivative is the sum of the
@@ -136,6 +148,20 @@ theorem hasFDerivAt_tsum_of_isPreconnected (hu : Summable u) (hs : IsOpen s)
     exact HasFDerivAt.sum fun n _ => hf n y hy
 #align has_fderiv_at_tsum_of_is_preconnected hasFDerivAt_tsum_of_isPreconnected
 
+/-- Consider a series of functions `βˆ‘' n, f n x` on a preconnected open set. If the series converges
+at a point, and all functions in the series are differentiable with a summable bound on the
+derivatives, then the series is differentiable on the set and its derivative is the sum of the
+derivatives. -/
+theorem hasDerivAt_tsum_of_isPreconnected (hu : Summable u) (ht : IsOpen t)
+    (h't : IsPreconnected t) (hg : βˆ€ n y, y ∈ t β†’ HasDerivAt (g n) (g' n y) y)
+    (hg' : βˆ€ n y, y ∈ t β†’ β€–g' n yβ€– ≀ u n) (hyβ‚€ : yβ‚€ ∈ t) (hg0 : Summable fun n => g n yβ‚€)
+    (hy : y ∈ t) : HasDerivAt (fun z => βˆ‘' n, g n z) (βˆ‘' n, g' n y) y := by
+  simp_rw [hasDerivAt_iff_hasFDerivAt] at hg ⊒
+  convert hasFDerivAt_tsum_of_isPreconnected hu ht h't hg ?_ hyβ‚€ hg0 hy
+  Β· exact (ContinuousLinearMap.smulRightL π•œ π•œ F 1).map_tsum <|
+      .of_norm_bounded u hu fun n ↦ hg' n y hy
+  Β· simpa? says simpa only [ContinuousLinearMap.norm_smulRight_apply, norm_one, one_mul]
+
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series converges everywhere. -/
@@ -147,6 +173,15 @@ theorem summable_of_summable_hasFDerivAt (hu : Summable u)
     (fun n x _ => hf n x) (fun n x _ => hf' n x) (mem_univ _) hf0 (mem_univ _)
 #align summable_of_summable_has_fderiv_at summable_of_summable_hasFDerivAt
 
+/-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
+point, and all functions in the series are differentiable with a summable bound on the derivatives,
+then the series converges everywhere. -/
+theorem summable_of_summable_hasDerivAt (hu : Summable u)
+    (hg : βˆ€ n y, HasDerivAt (g n) (g' n y) y) (hg' : βˆ€ n y, β€–g' n yβ€– ≀ u n)
+    (hg0 : Summable fun n => g n yβ‚€) (y : π•œ) : Summable fun n => g n y := by
+  exact summable_of_summable_hasDerivAt_of_isPreconnected hu isOpen_univ isPreconnected_univ
+    (fun n x _ => hg n x) (fun n x _ => hg' n x) (mem_univ _) hg0 (mem_univ _)
+
 /-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
 point, and all functions in the series are differentiable with a summable bound on the derivatives,
 then the series is differentiable and its derivative is the sum of the derivatives. -/
@@ -158,6 +193,15 @@ theorem hasFDerivAt_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (f'
     (fun n x _ => hf n x) (fun n x _ => hf' n x) (mem_univ _) hf0 (mem_univ _)
 #align has_fderiv_at_tsum hasFDerivAt_tsum
 
+/-- Consider a series of functions `βˆ‘' n, f n x`. If the series converges at a
+point, and all functions in the series are differentiable with a summable bound on the derivatives,
+then the series is differentiable and its derivative is the sum of the derivatives. -/
+theorem hasDerivAt_tsum (hu : Summable u) (hg : βˆ€ n y, HasDerivAt (g n) (g' n y) y)
+    (hg' : βˆ€ n y, β€–g' n yβ€– ≀ u n) (hg0 : Summable fun n => g n yβ‚€) (y : π•œ) :
+    HasDerivAt (fun z => βˆ‘' n, g n z) (βˆ‘' n, g' n y) y := by
+  exact hasDerivAt_tsum_of_isPreconnected hu isOpen_univ isPreconnected_univ
+    (fun n y _ => hg n y) (fun n y _ => hg' n y) (mem_univ _) hg0 (mem_univ _)
+
 /-- Consider a series of functions `βˆ‘' n, f n x`. If all functions in the series are differentiable
 with a summable bound on the derivatives, then the series is differentiable.
 Note that our assumptions do not ensure the pointwise convergence, but if there is no pointwise
@@ -174,19 +218,40 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
     exact differentiable_const 0
 #align differentiable_tsum differentiable_tsum
 
+/-- Consider a series of functions `βˆ‘' n, f n x`. If all functions in the series are differentiable
+with a summable bound on the derivatives, then the series is differentiable.
+Note that our assumptions do not ensure the pointwise convergence, but if there is no pointwise
+convergence then the series is zero everywhere so the result still holds. -/
+theorem differentiable_tsum' (hu : Summable u) (hg : βˆ€ n y, HasDerivAt (g n) (g' n y) y)
+    (hg' : βˆ€ n y, β€–g' n yβ€– ≀ u n) : Differentiable π•œ fun z => βˆ‘' n, g n z := by
+  simp_rw [hasDerivAt_iff_hasFDerivAt] at hg
+  refine differentiable_tsum hu hg ?_
+  simpa? says simpa only [ContinuousLinearMap.norm_smulRight_apply, norm_one, one_mul]
+
 theorem fderiv_tsum_apply (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
     (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) (x : E) :
     fderiv π•œ (fun y => βˆ‘' n, f n y) x = βˆ‘' n, fderiv π•œ (f n) x :=
   (hasFDerivAt_tsum hu (fun n x => (hf n x).hasFDerivAt) hf' hf0 _).fderiv
 #align fderiv_tsum_apply fderiv_tsum_apply
 
+theorem deriv_tsum_apply (hu : Summable u) (hg : βˆ€ n, Differentiable π•œ (g n))
+    (hg' : βˆ€ n y, β€–deriv (g n) yβ€– ≀ u n) (hg0 : Summable fun n => g n yβ‚€) (y : π•œ) :
+    deriv (fun z => βˆ‘' n, g n z) y = βˆ‘' n, deriv (g n) y :=
+  (hasDerivAt_tsum hu (fun n y => (hg n y).hasDerivAt) hg' hg0 _).deriv
+
 theorem fderiv_tsum (hu : Summable u) (hf : βˆ€ n, Differentiable π•œ (f n))
-    (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) {xβ‚€ : E} (hf0 : Summable fun n => f n xβ‚€) :
+    (hf' : βˆ€ n x, β€–fderiv π•œ (f n) xβ€– ≀ u n) (hf0 : Summable fun n => f n xβ‚€) :
     (fderiv π•œ fun y => βˆ‘' n, f n y) = fun x => βˆ‘' n, fderiv π•œ (f n) x := by
   ext1 x
   exact fderiv_tsum_apply hu hf hf' hf0 x
 #align fderiv_tsum fderiv_tsum
 
+theorem deriv_tsum (hu : Summable u) (hg : βˆ€ n, Differentiable π•œ (g n))
+    (hg' : βˆ€ n y, β€–deriv (g n) yβ€– ≀ u n) (hg0 : Summable fun n => g n yβ‚€) :
+    (deriv fun y => βˆ‘' n, g n y) = fun y => βˆ‘' n, deriv (g n) y := by
+  ext1 x
+  exact deriv_tsum_apply hu hg hg' hg0 x
+
 /-! ### Higher smoothness -/
 
 /-- Consider a series of smooth functions, with summable uniform bounds on the successive
chore(InfiniteSum): use dot notation (#8358)

Rename

  • summable_of_norm_bounded -> Summable.of_norm_bounded;
  • summable_of_norm_bounded_eventually -> Summable.of_norm_bounded_eventually;
  • summable_of_nnnorm_bounded -> Summable.of_nnnorm_bounded;
  • summable_of_summable_norm -> Summable.of_norm;
  • summable_of_summable_nnnorm -> Summable.of_nnnorm;

New lemmas

  • Summable.of_norm_bounded_eventually_nat
  • Summable.norm

Misc changes

  • Golf a few proofs.
Diff
@@ -43,8 +43,8 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
   refine' tendstoUniformlyOn_iff.2 fun Ξ΅ Ξ΅pos => _
   filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
-    summable_of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
-  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (summable_of_summable_norm A) t, add_sub_cancel']
+    .of_nonneg_of_le (fun _ ↦ norm_nonneg _) (fun n => hfu n x hx) hu
+  rw [dist_eq_norm, ← sum_add_tsum_subtype_compl A.of_norm t, add_sub_cancel']
   apply lt_of_le_of_lt _ ht
   apply (norm_tsum_le_tsum_norm (A.subtype _)).trans
   exact tsum_le_tsum (fun n => hfu _ _ hx) (A.subtype _) (hu.subtype _)
@@ -202,7 +202,7 @@ theorem iteratedFDeriv_tsum (hf : βˆ€ i, ContDiff π•œ N (f i))
     exact (continuousMultilinearCurryFin0 π•œ E F).symm.toContinuousLinearEquiv.map_tsum
   Β· have h'k : (k : β„•βˆž) < N := lt_of_lt_of_le (WithTop.coe_lt_coe.2 (Nat.lt_succ_self _)) hk
     have A : Summable fun n => iteratedFDeriv π•œ k (f n) 0 :=
-      summable_of_norm_bounded (v k) (hv k h'k.le) fun n => h'f k n 0 h'k.le
+      .of_norm_bounded (v k) (hv k h'k.le) fun n => h'f k n 0 h'k.le
     simp_rw [iteratedFDeriv_succ_eq_comp_left, IH h'k.le]
     rw [fderiv_tsum (hv _ hk) (fun n => (hf n).differentiable_iteratedFDeriv h'k) _ A]
     Β· ext1 x
@@ -279,7 +279,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
         fun x => βˆ‘' i : { i // i βˆ‰ T }, f i x := by
       ext1 x
       refine' (sum_add_tsum_subtype_compl _ T).symm
-      refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
+      refine' .of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
       filter_upwards [h'f 0 (zero_le _)] with i hi
       simpa only [norm_iteratedFDeriv_zero] using hi x
     rw [this]
chore: split Mathlib.Analysis.Calculus.ContDiff.Basic (#8344)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 -/
 import Mathlib.Analysis.Calculus.UniformLimitsDeriv
-import Mathlib.Analysis.Calculus.ContDiff.Basic
+import Mathlib.Analysis.Calculus.ContDiff.FiniteDimension
 import Mathlib.Data.Nat.Cast.WithTop
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
chore: move Analysis/ContDiff to Analysis/ContDiff/Basic to make room for splitting (#8337)

No changes to content, or splitting, just a rename so there is room for more files.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
 -/
 import Mathlib.Analysis.Calculus.UniformLimitsDeriv
-import Mathlib.Analysis.Calculus.ContDiff
+import Mathlib.Analysis.Calculus.ContDiff.Basic
 import Mathlib.Data.Nat.Cast.WithTop
 
 #align_import analysis.calculus.series from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
feat: characterize summability by vanishing of tsums (#8194)

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>

Diff
@@ -107,6 +107,7 @@ theorem summable_of_summable_hasFDerivAt_of_isPreconnected (hu : Summable u) (hs
     (h's : IsPreconnected s) (hf : βˆ€ n x, x ∈ s β†’ HasFDerivAt (f n) (f' n x) x)
     (hf' : βˆ€ n x, x ∈ s β†’ β€–f' n xβ€– ≀ u n) (hxβ‚€ : xβ‚€ ∈ s) (hf0 : Summable (f Β· xβ‚€)) {x : E}
     (hx : x ∈ s) : Summable fun n => f n x := by
+  haveI := Classical.decEq Ξ±
   rw [summable_iff_cauchySeq_finset] at hf0 ⊒
   have A : UniformCauchySeqOn (fun t : Finset Ξ± => fun x => βˆ‘ i in t, f' i x) atTop s :=
     (tendstoUniformlyOn_tsum hu hf').uniformCauchySeqOn
chore: cleanup typo in filter_upwards (#7719)

mathport was forgetting a space in filter_upwards [...]with instead of filter_upwards [...] with.

Diff
@@ -41,7 +41,7 @@ theorem tendstoUniformlyOn_tsum {f : Ξ± β†’ Ξ² β†’ F} (hu : Summable u) {s : Set
     TendstoUniformlyOn (fun t : Finset Ξ± => fun x => βˆ‘ n in t, f n x) (fun x => βˆ‘' n, f n x) atTop
       s := by
   refine' tendstoUniformlyOn_iff.2 fun Ξ΅ Ξ΅pos => _
-  filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos]with t ht x hx
+  filter_upwards [(tendsto_order.1 (tendsto_tsum_compl_atTop_zero u)).2 _ Ξ΅pos] with t ht x hx
   have A : Summable fun n => β€–f n xβ€– :=
     summable_of_nonneg_of_le (fun n => norm_nonneg _) (fun n => hfu n x hx) hu
   rw [dist_eq_norm, ← sum_add_tsum_subtype_compl (summable_of_summable_norm A) t, add_sub_cancel']
@@ -279,7 +279,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
       ext1 x
       refine' (sum_add_tsum_subtype_compl _ T).symm
       refine' summable_of_norm_bounded_eventually _ (hv 0 (zero_le _)) _
-      filter_upwards [h'f 0 (zero_le _)]with i hi
+      filter_upwards [h'f 0 (zero_le _)] with i hi
       simpa only [norm_iteratedFDeriv_zero] using hi x
     rw [this]
     apply (ContDiff.sum fun i _ => (hf i).of_le hm).add
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -28,7 +28,7 @@ open Set Metric TopologicalSpace Function Asymptotics Filter
 
 open scoped Topology NNReal BigOperators
 
-variable {Ξ± Ξ² π•œ E F : Type _} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
+variable {Ξ± Ξ² π•œ E F : Type*} [IsROrC π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E]
   [NormedAddCommGroup F] [CompleteSpace F] {u : Ξ± β†’ ℝ}
 
 /-! ### Continuity -/
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2022 SΓ©bastien GouΓ«zel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: SΓ©bastien GouΓ«zel
-
-! This file was ported from Lean 3 source module analysis.calculus.series
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Calculus.UniformLimitsDeriv
 import Mathlib.Analysis.Calculus.ContDiff
 import Mathlib.Data.Nat.Cast.WithTop
 
+#align_import analysis.calculus.series from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
 /-!
 # Smoothness of series
 
chore: tidy various files (#5104)
Diff
@@ -170,7 +170,7 @@ theorem differentiable_tsum (hu : Summable u) (hf : βˆ€ n x, HasFDerivAt (f n) (
   Β· rcases h with ⟨xβ‚€, hf0⟩
     intro x
     exact (hasFDerivAt_tsum hu hf hf' hf0 x).differentiableAt
-  Β· push_neg  at h 
+  Β· push_neg at h
     have : (fun x => βˆ‘' n, f n x) = 0 := by ext1 x; exact tsum_eq_zero_of_not_summable (h x)
     rw [this]
     exact differentiable_const 0
@@ -273,7 +273,7 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
         rw [eventually_all_finset]
         intro i hi
         apply h'f
-        simp only [Finset.mem_range_succ_iff] at hi 
+        simp only [Finset.mem_range_succ_iff] at hi
         exact (WithTop.coe_le_coe.2 hi).trans hm
       eventually_cofinite.2 A
     let T : Finset Ξ± := ht.toFinset
@@ -292,7 +292,6 @@ theorem contDiff_tsum_of_eventually (hf : βˆ€ i, ContDiff π•œ N (f i))
     rintro k ⟨i, hi⟩ x hk
     dsimp
     simp only [Finite.mem_toFinset, mem_setOf_eq, Finset.mem_range, not_forall, not_le,
-      exists_prop, not_exists, not_and, not_lt] at hi 
+      exists_prop, not_exists, not_and, not_lt] at hi
     exact hi k (Nat.lt_succ_iff.2 (WithTop.coe_le_coe.1 hk)) x
 #align cont_diff_tsum_of_eventually contDiff_tsum_of_eventually
-
feat: port Analysis.Calculus.Series (#4657)

Dependencies 12 + 878

879 files ported (98.7%)
387770 lines ported (98.6%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file