Theorem: MeasureTheory.condexp_indicator
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/Indicator.lean

tactic: by_cases hm : m ≤ m0
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: swap
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: by_cases hμm : SigmaFinite (μ.trim hm)
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: swap
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: haveI : SigmaFinite (μ.trim hm) := hμm
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: have : s.indicator (μ[f|m]) =ᵐ[μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) := by
  rw [Set.indicator_self_add_compl s f]
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this : SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])

tactic: refine (this.trans ?_).symm
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) =ᶠ[ae μ] μ[s.indicator f|m]

tactic: simp_rw [condexp_of_not_le hm, Set.indicator_zero']
state_before: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ 0 =ᶠ[ae μ] 0

tactic: rfl
state_before: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : ¬m ≤ m0
⊢ 0 =ᶠ[ae μ] 0
state_after: no goals

tactic: simp_rw [condexp_of_not_sigmaFinite hm hμm, Set.indicator_zero']
state_before: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ μ[s.indicator f|m] =ᶠ[ae μ] s.indicator (μ[f|m])
state_after: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ 0 =ᶠ[ae μ] 0

tactic: rfl
state_before: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm : ¬SigmaFinite (μ.trim hm)
⊢ 0 =ᶠ[ae μ] 0
state_after: no goals

tactic: rw [Set.indicator_self_add_compl s f]
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this : SigmaFinite (μ.trim hm)
⊢ s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
state_after: no goals

tactic: have : μ[s.indicator f + sᶜ.indicator f|m] =ᵐ[μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m] :=
  condexp_add (hf_int.indicator (hm _ hs)) (hf_int.indicator (hm _ hs.compl))
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m])
state_after: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : μ[s.indicator f + sᶜ.indicator f|m] =ᶠ[ae μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m]
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m])

tactic: filter_upwards [this] with x hx
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : μ[s.indicator f + sᶜ.indicator f|m] =ᶠ[ae μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m]
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m])
state_after: case h
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : μ[s.indicator f + sᶜ.indicator f|m] =ᶠ[ae μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m]
x : α
hx : (μ[s.indicator f + sᶜ.indicator f|m]) x = (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) x = s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x

tactic: classical rw [Set.indicator_apply, Set.indicator_apply, hx]
state_before: case h
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : μ[s.indicator f + sᶜ.indicator f|m] =ᶠ[ae μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m]
x : α
hx : (μ[s.indicator f + sᶜ.indicator f|m]) x = (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) x = s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x
state_after: no goals

tactic: rw [Set.indicator_apply, Set.indicator_apply, hx]
state_before: case h
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : μ[s.indicator f + sᶜ.indicator f|m] =ᶠ[ae μ] μ[s.indicator f|m] + μ[sᶜ.indicator f|m]
x : α
hx : (μ[s.indicator f + sᶜ.indicator f|m]) x = (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x
⊢ s.indicator (μ[s.indicator f + sᶜ.indicator f|m]) x = s.indicator (μ[s.indicator f|m] + μ[sᶜ.indicator f|m]) x
state_after: no goals

tactic: refine Filter.EventuallyEq.rfl.add ?_
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[s.indicator f|m]) + s.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ]
    s.indicator (μ[s.indicator f|m]) + s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m]))
state_after: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m]))

tactic: filter_upwards [this] with x hx
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
⊢ s.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m]))
state_after: case h
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x

tactic: by_cases hxs : x ∈ s
state_before: case h
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x
state_after: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
hxs : x ∈ s
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x

case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
hxs : x ∉ s
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x

tactic: refine (condexp_indicator_aux hs.compl ?_).symm.trans ?_
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
state_after: case refine_1
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ sᶜ.indicator f =ᶠ[ae (μ.restrict sᶜᶜ)] 0

case refine_2
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[sᶜ.indicator (sᶜ.indicator f)|m] =ᶠ[ae μ] μ[sᶜ.indicator f|m]

tactic: exact indicator_ae_eq_restrict_compl (hm _ hs.compl)
state_before: case refine_1
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ sᶜ.indicator f =ᶠ[ae (μ.restrict sᶜᶜ)] 0
state_after: no goals

tactic: rw [Set.indicator_indicator, Set.inter_self]
state_before: case refine_2
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[sᶜ.indicator (sᶜ.indicator f)|m] =ᶠ[ae μ] μ[sᶜ.indicator f|m]
state_after: no goals

tactic: simp only [hx, hxs, Set.indicator_of_mem]
state_before: case pos
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
hxs : x ∈ s
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x
state_after: no goals

tactic: simp only [hxs, Set.indicator_of_not_mem, not_false_iff]
state_before: case neg
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝¹ : SigmaFinite (μ.trim hm)
this✝ : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
this : sᶜ.indicator (μ[sᶜ.indicator f|m]) =ᶠ[ae μ] μ[sᶜ.indicator f|m]
x : α
hx : sᶜ.indicator (μ[sᶜ.indicator f|m]) x = (μ[sᶜ.indicator f|m]) x
hxs : x ∉ s
⊢ s.indicator (μ[sᶜ.indicator f|m]) x = s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) x
state_after: no goals

tactic: rw [Set.indicator_indicator, Set.inter_compl_self, Set.indicator_empty', add_zero]
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[s.indicator f|m]) + s.indicator (sᶜ.indicator (μ[sᶜ.indicator f|m])) =ᶠ[ae μ]
    s.indicator (μ[s.indicator f|m])
state_after: no goals

tactic: refine (condexp_indicator_aux hs ?_).symm.trans ?_
state_before: α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator (μ[s.indicator f|m]) =ᶠ[ae μ] μ[s.indicator f|m]
state_after: case refine_1
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator f =ᶠ[ae (μ.restrict sᶜ)] 0

case refine_2
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[s.indicator (s.indicator f)|m] =ᶠ[ae μ] μ[s.indicator f|m]

tactic: exact indicator_ae_eq_restrict_compl (hm _ hs)
state_before: case refine_1
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ s.indicator f =ᶠ[ae (μ.restrict sᶜ)] 0
state_after: no goals

tactic: rw [Set.indicator_indicator, Set.inter_self]
state_before: case refine_2
α : Type u_1
𝕜 : Type u_2
E : Type u_3
m m0 : MeasurableSpace α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
μ : Measure α
f : α → E
s : Set α
hf_int : Integrable f μ
hs : MeasurableSet s
hm : m ≤ m0
hμm this✝ : SigmaFinite (μ.trim hm)
this : s.indicator (μ[f|m]) =ᶠ[ae μ] s.indicator (μ[s.indicator f + sᶜ.indicator f|m])
⊢ μ[s.indicator (s.indicator f)|m] =ᶠ[ae μ] μ[s.indicator f|m]
state_after: no goals