Theorem: ProbabilityTheory.condexp_eq_zero_or_one_of_condIndepSet_self
File: Mathlib/Probability/Independence/ZeroOne.lean

tactic: have h := ae_of_ae_trim hm (kernel.measure_eq_zero_or_one_of_indepSet_self h_indep)
state_before: α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
⊢ ∀ᵐ (ω : Ω) ∂μ, (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1
state_after: α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
⊢ ∀ᵐ (ω : Ω) ∂μ, (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1

tactic: filter_upwards [condexpKernel_ae_eq_condexp hm ht, h] with ω hω_eq hω
state_before: α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
⊢ ∀ᵐ (ω : Ω) ∂μ, (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1
state_after: case h
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
hω : ((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = 1
⊢ (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1

tactic: rw [← hω_eq, ENNReal.toReal_eq_zero_iff, ENNReal.toReal_eq_one_iff]
state_before: case h
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
hω : ((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = 1
⊢ (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1
state_after: case h
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
hω : ((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = 1
⊢ (((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = ⊤) ∨ ((condexpKernel μ m) ω) t = 1

tactic: cases hω with
| inl h => exact Or.inl (Or.inl h)
| inr h => exact Or.inr h
state_before: case h
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
hω : ((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = 1
⊢ (((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = ⊤) ∨ ((condexpKernel μ m) ω) t = 1
state_after: no goals

tactic: exact Or.inl (Or.inl h)
state_before: case h.inl
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h✝ : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
h : ((condexpKernel μ m) ω) t = 0
⊢ (((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = ⊤) ∨ ((condexpKernel μ m) ω) t = 1
state_after: no goals

tactic: exact Or.inr h
state_before: case h.inr
α : Type u_1
Ω : Type u_2
ι : Type u_3
_mα : MeasurableSpace α
s : ι → MeasurableSpace Ω
m m0 : MeasurableSpace Ω
κ : ↥(kernel α Ω)
μα : Measure α
μ : Measure Ω
inst✝¹ : StandardBorelSpace Ω
inst✝ : Nonempty Ω
hm : m ≤ m0
hμ : IsFiniteMeasure μ
t : Set Ω
ht : MeasurableSet t
h_indep : CondIndepSet m hm t t μ
h✝ : ∀ᵐ (x : Ω) ∂μ, ((condexpKernel μ m) x) t = 0 ∨ ((condexpKernel μ m) x) t = 1
ω : Ω
hω_eq : (((condexpKernel μ m) ω) t).toReal = (μ[t.indicator fun ω => 1|m]) ω
h : ((condexpKernel μ m) ω) t = 1
⊢ (((condexpKernel μ m) ω) t = 0 ∨ ((condexpKernel μ m) ω) t = ⊤) ∨ ((condexpKernel μ m) ω) t = 1
state_after: no goals