Theorem: ProbabilityTheory.strong_law_ae_simpleFunc_comp
File: Mathlib/Probability/StrongLaw.lean

tactic: refine SimpleFunc.induction (P := fun ψ ↦ ∀ᵐ ω,
  Tendsto (fun n : ℕ ↦ (n : ℝ) ⁻¹ • (∑ i ∈ range n, ψ (X i ω))) atTop (𝓝 𝔼[ψ ∘ (X 0)])) ?_ ?_ φ
state_before: Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
⊢ ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
⊢ ∀ (c : E) {s : Set E} (hs : MeasurableSet s),
    (fun ψ =>
        ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
      (SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0))

case refine_2
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
⊢ ∀ ⦃f g : SimpleFunc E E⦄,
    Disjoint (Function.support ↑f) (Function.support ↑g) →
      (fun ψ =>
            ∀ᵐ (ω : Ω),
              Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
          f →
        (fun ψ =>
              ∀ᵐ (ω : Ω),
                Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
            g →
          (fun ψ =>
              ∀ᵐ (ω : Ω),
                Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
            (f + g)

tactic: intro c s hs
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
⊢ ∀ (c : E) {s : Set E} (hs : MeasurableSet s),
    (fun ψ =>
        ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
      (SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
⊢ ∀ᵐ (ω : Ω),
    Tendsto
      (fun n =>
        (↑n)⁻¹ •
          ∑ i ∈ Finset.range n, ↑(SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0)) (X i ω))
      atTop (𝓝 (∫ (a : Ω), (↑(SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0)) ∘ X 0) a))

tactic: simp only [SimpleFunc.const_zero, SimpleFunc.coe_piecewise, SimpleFunc.coe_const,
  SimpleFunc.coe_zero, piecewise_eq_indicator, Function.comp_apply]
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
⊢ ∀ᵐ (ω : Ω),
    Tendsto
      (fun n =>
        (↑n)⁻¹ •
          ∑ i ∈ Finset.range n, ↑(SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0)) (X i ω))
      atTop (𝓝 (∫ (a : Ω), (↑(SimpleFunc.piecewise s hs (SimpleFunc.const E c) (SimpleFunc.const E 0)) ∘ X 0) a))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: let F : E → ℝ := indicator s 1
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: have F_meas : Measurable F := (measurable_indicator_const_iff 1).2 hs
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: let Y : ℕ → Ω → ℝ := fun n ↦ F ∘ (X n)
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: filter_upwards [this] with ω hω
state_before: case refine_1
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
      (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
    (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: have I : indicator s (Function.const E c) = (fun x ↦ (indicator s (1 : E → ℝ) x) • c) := by
  ext
  rw [← indicator_smul_const_apply]
  congr! 1
  ext
  simp
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
    (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
    (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))

tactic: simp only [I, integral_smul_const]
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator (Function.const E c) (X x ω)) atTop
    (𝓝 (∫ (a : Ω), s.indicator (Function.const E c) (X 0 a)))
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator 1 (X x ω) • c) atTop
    (𝓝 ((∫ (x : Ω), s.indicator 1 (X 0 x)) • c))

tactic: convert Tendsto.smul_const hω c using 1
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator 1 (X x ω) • c) atTop
    (𝓝 ((∫ (x : Ω), s.indicator 1 (X 0 x)) • c))
state_after: case h.e'_3
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator 1 (X x ω) • c) = fun x =>
    ((↑x)⁻¹ • ∑ i ∈ Finset.range x, Y i ω) • c

tactic: simp [Y, ← sum_smul, smul_smul]
state_before: case h.e'_3
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
I : s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
⊢ (fun n => (↑n)⁻¹ • ∑ x ∈ Finset.range n, s.indicator 1 (X x ω) • c) = fun x =>
    ((↑x)⁻¹ • ∑ i ∈ Finset.range x, Y i ω) • c
state_after: no goals

tactic: simp only [Function.const_one, smul_eq_mul, ← div_eq_inv_mul]
state_before: Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
state_after: Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ᵐ (ω : Ω), Tendsto (fun n => (∑ i ∈ Finset.range n, Y i ω) / ↑n) atTop (𝓝 (∫ (a : Ω), Y 0 a))

tactic: apply strong_law_ae_real
state_before: Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ᵐ (ω : Ω), Tendsto (fun n => (∑ i ∈ Finset.range n, Y i ω) / ↑n) atTop (𝓝 (∫ (a : Ω), Y 0 a))
state_after: case hint
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ Integrable (Y 0) ℙ

case hindep
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ Pairwise fun i j => IndepFun (Y i) (Y j) ℙ

case hident
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ (i : ℕ), IdentDistrib (Y i) (Y 0) ℙ ℙ

tactic: exact SimpleFunc.integrable_of_isFiniteMeasure
  ((SimpleFunc.piecewise s hs (SimpleFunc.const _ (1 : ℝ))
    (SimpleFunc.const _ (0 : ℝ))).comp (X 0) h')
state_before: case hint
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ Integrable (Y 0) ℙ
state_after: no goals

tactic: exact fun i j hij ↦ IndepFun.comp (hindep hij) F_meas F_meas
state_before: case hindep
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ Pairwise fun i j => IndepFun (Y i) (Y j) ℙ
state_after: no goals

tactic: exact fun i ↦ (hident i).comp F_meas
state_before: case hident
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
⊢ ∀ (i : ℕ), IdentDistrib (Y i) (Y 0) ℙ ℙ
state_after: no goals

tactic: ext
state_before: Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
⊢ s.indicator (Function.const E c) = fun x => s.indicator 1 x • c
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ s.indicator (Function.const E c) x✝ = s.indicator 1 x✝ • c

tactic: rw [← indicator_smul_const_apply]
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ s.indicator (Function.const E c) x✝ = s.indicator 1 x✝ • c
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ s.indicator (Function.const E c) x✝ = s.indicator (fun x => 1 x • c) x✝

tactic: congr! 1
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ s.indicator (Function.const E c) x✝ = s.indicator (fun x => 1 x • c) x✝
state_after: case h.h.e'_5
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ Function.const E c = fun x => 1 x • c

tactic: ext
state_before: case h.h.e'_5
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝ : E
⊢ Function.const E c = fun x => 1 x • c
state_after: case h.h.e'_5.h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝¹ x✝ : E
⊢ Function.const E c x✝ = 1 x✝ • c

tactic: simp
state_before: case h.h.e'_5.h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
c : E
s : Set E
hs : MeasurableSet s
F : E → ℝ := s.indicator 1
F_meas : Measurable F
Y : ℕ → Ω → ℝ := fun n => F ∘ X n
this : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
ω : Ω
hω : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, Y i ω) atTop (𝓝 (∫ (a : Ω), Y 0 a))
x✝¹ x✝ : E
⊢ Function.const E c x✝ = 1 x✝ • c
state_after: no goals

tactic: rintro φ ψ - hφ hψ
state_before: case refine_2
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ : SimpleFunc E E
⊢ ∀ ⦃f g : SimpleFunc E E⦄,
    Disjoint (Function.support ↑f) (Function.support ↑g) →
      (fun ψ =>
            ∀ᵐ (ω : Ω),
              Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
          f →
        (fun ψ =>
              ∀ᵐ (ω : Ω),
                Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
            g →
          (fun ψ =>
              ∀ᵐ (ω : Ω),
                Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a)))
            (f + g)
state_after: case refine_2
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a))

tactic: filter_upwards [hφ, hψ] with ω hωφ hωψ
state_before: case refine_2
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∀ᵐ (ω : Ω),
    Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a))
state_after: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a))

tactic: convert hωφ.add hωψ using 1
state_before: case h
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a))
state_after: case h.e'_3
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) = fun x =>
    (↑x)⁻¹ • ∑ i ∈ Finset.range x, ↑φ (X i ω) + (↑x)⁻¹ • ∑ i ∈ Finset.range x, ↑ψ (X i ω)

case h.e'_5
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ 𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a) = 𝓝 ((∫ (a : Ω), (↑φ ∘ X 0) a) + ∫ (a : Ω), (↑ψ ∘ X 0) a)

tactic: simp [sum_add_distrib]
state_before: case h.e'_3
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑(φ + ψ) (X i ω)) = fun x =>
    (↑x)⁻¹ • ∑ i ∈ Finset.range x, ↑φ (X i ω) + (↑x)⁻¹ • ∑ i ∈ Finset.range x, ↑ψ (X i ω)
state_after: no goals

tactic: congr 1
state_before: case h.e'_5
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ 𝓝 (∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a) = 𝓝 ((∫ (a : Ω), (↑φ ∘ X 0) a) + ∫ (a : Ω), (↑ψ ∘ X 0) a)
state_after: case h.e'_5.e_x
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a = (∫ (a : Ω), (↑φ ∘ X 0) a) + ∫ (a : Ω), (↑ψ ∘ X 0) a

tactic: rw [← integral_add]
state_before: case h.e'_5.e_x
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a = (∫ (a : Ω), (↑φ ∘ X 0) a) + ∫ (a : Ω), (↑ψ ∘ X 0) a
state_after: case h.e'_5.e_x
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a = ∫ (a : Ω), (↑φ ∘ X 0) a + (↑ψ ∘ X 0) a

case h.e'_5.e_x.hf
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Integrable (↑φ ∘ X 0) ℙ

case h.e'_5.e_x.hg
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Integrable (↑ψ ∘ X 0) ℙ

tactic: rfl
state_before: case h.e'_5.e_x
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ ∫ (a : Ω), (↑(φ + ψ) ∘ X 0) a = ∫ (a : Ω), (↑φ ∘ X 0) a + (↑ψ ∘ X 0) a
state_after: no goals

tactic: exact (φ.comp (X 0) h').integrable_of_isFiniteMeasure
state_before: case h.e'_5.e_x.hf
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Integrable (↑φ ∘ X 0) ℙ
state_after: no goals

tactic: exact (ψ.comp (X 0) h').integrable_of_isFiniteMeasure
state_before: case h.e'_5.e_x.hg
Ω : Type u_1
inst✝⁶ : MeasureSpace Ω
inst✝⁵ : IsProbabilityMeasure ℙ
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : CompleteSpace E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
X : ℕ → Ω → E
h' : Measurable (X 0)
hindep : Pairwise fun i j => IndepFun (X i) (X j) ℙ
hident : ∀ (i : ℕ), IdentDistrib (X i) (X 0) ℙ ℙ
φ✝ φ ψ : SimpleFunc E E
hφ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hψ : ∀ᵐ (ω : Ω), Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
ω : Ω
hωφ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑φ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑φ ∘ X 0) a))
hωψ : Tendsto (fun n => (↑n)⁻¹ • ∑ i ∈ Finset.range n, ↑ψ (X i ω)) atTop (𝓝 (∫ (a : Ω), (↑ψ ∘ X 0) a))
⊢ Integrable (↑ψ ∘ X 0) ℙ
state_after: no goals