Theorem: MeasureTheory.lintegral_sum_measure
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp only [lintegral, iSup_subtype', SimpleFunc.lintegral_sum, ENNReal.tsum_eq_iSup_sum]
state_before: α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (∫⁻ (a : α), f a ∂Measure.sum μ) = ∑' (i : ι), ∫⁻ (a : α), f a ∂μ i

tactic: rw [iSup_comm]
state_before: α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (⨆ (x : { i // ↑i ≤ fun a => f a }) (s : Finset ι), ∑ i in s, SimpleFunc.lintegral (↑x) (μ i)) =
    ⨆ (s : Finset ι), ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: congr
state_before: α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (⨆ (j : Finset ι) (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in j, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ⨆ (s : Finset ι), ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: funext s
state_before: case e_s
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (fun j => ⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in j, SimpleFunc.lintegral (↑i) (μ i_1)) = fun s =>
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: induction' s using Finset.induction_on with i s hi hs
state_before: case e_s.h
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
s : Finset ι
⊢ (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: simp only [Finset.sum_insert hi, ← hs]
state_before: case e_s.h.insert
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
i : ι
s : Finset ι
hi : ¬i ∈ s
hs :
  (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)
⊢ (⨆ (i_1 : { i // ↑i ≤ fun a => f a }), ∑ i in insert i s, SimpleFunc.lintegral (↑i_1) (μ i)) =
    ∑ a in insert i s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: refine' (ENNReal.iSup_add_iSup _).symm
state_before: case e_s.h.insert
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
i : ι
s : Finset ι
hi : ¬i ∈ s
hs :
  (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)
⊢ (⨆ (i_1 : { i // ↑i ≤ fun a => f a }),
      SimpleFunc.lintegral (↑i_1) (μ i) + ∑ i in s, SimpleFunc.lintegral (↑i_1) (μ i)) =
    (⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ i)) +
      ⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)

tactic: intro φ ψ
state_before: case e_s.h.insert
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
i : ι
s : Finset ι
hi : ¬i ∈ s
hs :
  (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)
⊢ ∀ (i_1 j : { i // ↑i ≤ fun a => f a }),
    ∃ k,
      SimpleFunc.lintegral (↑i_1) (μ i) + ∑ i in s, SimpleFunc.lintegral (↑j) (μ i) ≤
        SimpleFunc.lintegral (↑k) (μ i) + ∑ i in s, SimpleFunc.lintegral (↑k) (μ i)

tactic: exact
  ⟨⟨φ ⊔ ψ, fun x => sup_le (φ.2 x) (ψ.2 x)⟩,
    add_le_add (SimpleFunc.lintegral_mono le_sup_left le_rfl)
      (Finset.sum_le_sum fun j _ => SimpleFunc.lintegral_mono le_sup_right le_rfl)⟩
state_before: case e_s.h.insert
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
i : ι
s : Finset ι
hi : ¬i ∈ s
hs :
  (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in s, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in s, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)
φ ψ : { i // ↑i ≤ fun a => f a }
⊢ ∃ k,
    SimpleFunc.lintegral (↑φ) (μ i) + ∑ i in s, SimpleFunc.lintegral (↑ψ) (μ i) ≤
      SimpleFunc.lintegral (↑k) (μ i) + ∑ i in s, SimpleFunc.lintegral (↑k) (μ i)

tactic: apply bot_unique
state_before: case e_s.h.empty
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in ∅, SimpleFunc.lintegral (↑i) (μ i_1)) =
    ∑ a in ∅, ⨆ (x : { i // ↑i ≤ fun a => f a }), SimpleFunc.lintegral (↑x) (μ a)

tactic: simp
state_before: case e_s.h.empty.h
α : Type u_1
β : Type ?u.906802
γ : Type ?u.906805
δ : Type ?u.906808
m✝ : MeasurableSpace α
μ✝ ν : Measure α
m : MeasurableSpace α
ι : Type u_2
f : α → ℝ≥0∞
μ : ι → Measure α
⊢ (⨆ (i : { i // ↑i ≤ fun a => f a }), ∑ i_1 in ∅, SimpleFunc.lintegral (↑i) (μ i_1)) ≤ ⊥