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

Proof steps:
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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
⊢ ∀ᵐ (ω : Ω) ∂μ, (μ[t.indicator fun ω => 1|m]) ω = 0 ∨ (μ[t.indicator fun ω => 1|m]) ω = 1
tactic: have (a) : IsFiniteMeasure (condexpKernel μ m a) := inferInstance
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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
⊢ ∀ᵐ (ω : Ω) ∂μ, (μ[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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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: 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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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: filter_upwards [condexpKernel_ae_eq_condexp hm ht, h] with ω hω_eq 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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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: 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 μ
this : ∀ (a : Ω), IsFiniteMeasure ((condexpKernel μ m) a)
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: cases hω with
  | inl h => exact Or.inl (Or.inl h)
  | inr h => exact Or.inr h