analysis.calculus.series
β·
Mathlib.Analysis.NormedSpace.FunctionSeries
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 _)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/b1abe23ae96fef89ad30d9f4362c307f72a55010
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/58a272265b5e05f258161260dd2c5d247213cbd3
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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 =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 : Ξ± β β}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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
.
@@ -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 -/
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 | |
@@ -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 _)
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)
@@ -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 : ββ}
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
@@ -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
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>
@@ -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
@@ -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 :=
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.
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.
@@ -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]
@@ -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"
deriv
(#9295)
Asked by @MichaelStollBayreuth on Zulip
@@ -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
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
;Summable.of_norm_bounded_eventually_nat
Summable.norm
@@ -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]
@@ -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"
@@ -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"
tsum
s (#8194)
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -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
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -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
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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 -/
@@ -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
@@ -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
-
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file