Theorem: MeasureTheory.AEStronglyMeasurable'.aeStronglyMeasurable'_of_measurableSpace_le_on
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

tactic: suffices StronglyMeasurable[m₂] (s.indicator (hf.mk f)) from
  AEStronglyMeasurable'.congr this.aeStronglyMeasurable' h_ind_eq
state_before: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
h_ind_eq : s.indicator (mk f hf) =ᶠ[ae μ] f
⊢ AEStronglyMeasurable' m₂ f μ
state_after: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
h_ind_eq : s.indicator (mk f hf) =ᶠ[ae μ] f
⊢ StronglyMeasurable (s.indicator (mk f hf))

tactic: have hf_ind : StronglyMeasurable[m] (s.indicator (hf.mk f)) :=
  hf.stronglyMeasurable_mk.indicator hs_m
state_before: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
h_ind_eq : s.indicator (mk f hf) =ᶠ[ae μ] f
⊢ StronglyMeasurable (s.indicator (mk f hf))
state_after: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
h_ind_eq : s.indicator (mk f hf) =ᶠ[ae μ] f
hf_ind : StronglyMeasurable (s.indicator (mk f hf))
⊢ StronglyMeasurable (s.indicator (mk f hf))

tactic: exact
  hf_ind.stronglyMeasurable_of_measurableSpace_le_on hs_m hs fun x hxs =>
    Set.indicator_of_not_mem hxs _
state_before: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
h_ind_eq : s.indicator (mk f hf) =ᶠ[ae μ] f
hf_ind : StronglyMeasurable (s.indicator (mk f hf))
⊢ StronglyMeasurable (s.indicator (mk f hf))
state_after: no goals

tactic: refine Filter.EventuallyEq.trans ?_ <|
  indicator_ae_eq_of_restrict_compl_ae_eq_zero (hm _ hs_m) hf_zero
state_before: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
⊢ s.indicator (mk f hf) =ᶠ[ae μ] f
state_after: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
⊢ s.indicator (mk f hf) =ᶠ[ae μ] s.indicator f

tactic: filter_upwards [hf.ae_eq_mk] with x hx
state_before: α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
⊢ s.indicator (mk f hf) =ᶠ[ae μ] s.indicator f
state_after: case h
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
⊢ s.indicator (mk f hf) x = s.indicator f x

tactic: by_cases hxs : x ∈ s
state_before: case h
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
⊢ s.indicator (mk f hf) x = s.indicator f x
state_after: case pos
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
hxs : x ∈ s
⊢ s.indicator (mk f hf) x = s.indicator f x

case neg
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
hxs : x ∉ s
⊢ s.indicator (mk f hf) x = s.indicator f x

tactic: simp [hxs, hx]
state_before: case pos
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
hxs : x ∈ s
⊢ s.indicator (mk f hf) x = s.indicator f x
state_after: no goals

tactic: simp [hxs]
state_before: case neg
α : Type u_1
E : Type u_2
m m₂ m0 : MeasurableSpace α
μ : Measure α
inst✝¹ : TopologicalSpace E
inst✝ : Zero E
hm : m ≤ m0
s : Set α
f : α → E
hs_m : MeasurableSet s
hs : ∀ (t : Set α), MeasurableSet (s ∩ t) → MeasurableSet (s ∩ t)
hf : AEStronglyMeasurable' m f μ
hf_zero : f =ᶠ[ae (μ.restrict sᶜ)] 0
x : α
hx : f x = mk f hf x
hxs : x ∉ s
⊢ s.indicator (mk f hf) x = s.indicator f x
state_after: no goals