Theorem: intervalIntegral.hasSum_intervalIntegral_of_summable_norm
File: Mathlib/MeasureTheory/Integral/DominatedConvergence.lean

tactic: apply hasSum_integral_of_dominated_convergence
  (fun i (x : ℝ) => ‖(f i).restrict ↑(⟨uIcc a b, isCompact_uIcc⟩ : Compacts ℝ)‖)
  (fun i => (map_continuous <| f i).aestronglyMeasurable)
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ HasSum (fun i => ∫ (x : ℝ) in a..b, (f i) x) (∫ (x : ℝ) in a..b, ∑' (i : ι), (f i) x)
state_after: case h_bound
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ (n : ι),
    ∀ᵐ (t : ℝ), t ∈ Ι a b → ‖(f n) t‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖

case bound_summable
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → Summable fun n => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖

case bound_integrable
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ IntervalIntegrable (fun t => ∑' (n : ι), ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖)
    volume a b

case h_lim
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → HasSum (fun n => (f n) t) (∑' (i : ι), (f i) t)

tactic: intro i
state_before: case h_bound
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ (n : ι),
    ∀ᵐ (t : ℝ), t ∈ Ι a b → ‖(f n) t‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖
state_after: case h_bound
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → ‖(f i) t‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖

tactic: filter_upwards with x hx
state_before: case h_bound
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → ‖(f i) t‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
state_after: case h_bound.h
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
x : ℝ
hx : x ∈ Ι a b
⊢ ‖(f i) x‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖

tactic: apply ContinuousMap.norm_coe_le_norm ((f i).restrict _) ⟨x, _⟩
state_before: case h_bound.h
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
x : ℝ
hx : x ∈ Ι a b
⊢ ‖(f i) x‖ ≤ ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ ↑{ carrier := uIcc a b, isCompact' := ⋯ }

tactic: exact ⟨hx.1.le, hx.2⟩
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
i : ι
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ ↑{ carrier := uIcc a b, isCompact' := ⋯ }
state_after: no goals

tactic: exact ae_of_all _ fun x _ => hf_sum
state_before: case bound_summable
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → Summable fun n => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖
state_after: no goals

tactic: exact intervalIntegrable_const
state_before: case bound_integrable
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ IntervalIntegrable (fun t => ∑' (n : ι), ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f n)‖)
    volume a b
state_after: no goals

tactic: refine ae_of_all _ fun x hx => Summable.hasSum ?_
state_before: case h_lim
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
⊢ ∀ᵐ (t : ℝ), t ∈ Ι a b → HasSum (fun n => (f n) t) (∑' (i : ι), (f i) t)
state_after: case h_lim
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ Summable fun n => (f n) x

tactic: let x : (⟨uIcc a b, isCompact_uIcc⟩ : Compacts ℝ) := ⟨x, ?_⟩
state_before: case h_lim
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ Summable fun n => (f n) x
state_after: case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ?h_lim.refine_1⟩
⊢ Summable fun n => (f n) x✝

case h_lim.refine_1
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ { carrier := uIcc a b, isCompact' := ⋯ }

tactic: swap
state_before: case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ?h_lim.refine_1⟩
⊢ Summable fun n => (f n) x✝

case h_lim.refine_1
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ { carrier := uIcc a b, isCompact' := ⋯ }
state_after: case h_lim.refine_1
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ { carrier := uIcc a b, isCompact' := ⋯ }

case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ?h_lim.refine_1⟩
⊢ Summable fun n => (f n) x✝

tactic: have := hf_sum.of_norm
state_before: case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ⋯⟩
⊢ Summable fun n => (f n) x✝
state_after: case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ⋯⟩
this : Summable fun i => ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)
⊢ Summable fun n => (f n) x✝

tactic: simpa only [Compacts.coe_mk, ContinuousMap.restrict_apply]
  using ContinuousMap.summable_apply this x
state_before: case h_lim.refine_2
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x✝ : ℝ
hx : x✝ ∈ Ι a b
x : ↥{ carrier := uIcc a b, isCompact' := ⋯ } := ⟨x✝, ⋯⟩
this : Summable fun i => ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)
⊢ Summable fun n => (f n) x✝
state_after: no goals

tactic: exact ⟨hx.1.le, hx.2⟩
state_before: case h_lim.refine_1
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b : ℝ
f✝ : ℝ → E
μ : Measure ℝ
inst✝ : Countable ι
f : ι → C(ℝ, E)
hf_sum : Summable fun i => ‖ContinuousMap.restrict (↑{ carrier := uIcc a b, isCompact' := ⋯ }) (f i)‖
x : ℝ
hx : x ∈ Ι a b
⊢ x ∈ { carrier := uIcc a b, isCompact' := ⋯ }
state_after: no goals