Theorem: ProbabilityTheory.cond_cond_eq_cond_inter'
File: Mathlib/Probability/ConditionalProbability.lean

tactic: ext u
state_before: Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
⊢ μ[|s][|t] = μ[|s ∩ t]
state_after: case h
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
⊢ μ[|s][|t] u = μ[|s ∩ t] u

tactic: rw [cond_apply _ hmt, cond_apply _ hms, cond_apply _ hms, cond_apply _ (hms.inter hmt)]
state_before: case h
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
⊢ μ[|s][|t] u = μ[|s ∩ t] u
state_after: case h
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)

tactic: obtain hst | hst := eq_or_ne (μ (s ∩ t)) 0
state_before: case h
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)
state_after: case h.inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) = 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)

case h.inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) ≠ 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)

tactic: have : μ (s ∩ t ∩ u) = 0 := measure_mono_null Set.inter_subset_left hst
state_before: case h.inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) = 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)
state_after: case h.inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) = 0
this : μ (s ∩ t ∩ u) = 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)

tactic: simp [this, ← Set.inter_assoc]
state_before: case h.inl
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) = 0
this : μ (s ∩ t ∩ u) = 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)
state_after: no goals

tactic: have hcs' : μ s ≠ 0 :=
  (measure_pos_of_superset Set.inter_subset_left hst).ne'
state_before: case h.inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) ≠ 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)
state_after: case h.inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) ≠ 0
hcs' : μ s ≠ 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)

tactic: simp [*, ← mul_assoc, ← Set.inter_assoc, ENNReal.mul_inv, ENNReal.mul_inv_cancel,
  mul_right_comm _ _ (μ s)⁻¹]
state_before: case h.inr
Ω : Type u_1
Ω' : Type u_2
α : Type u_3
m : MeasurableSpace Ω
m' : MeasurableSpace Ω'
μ : Measure Ω
s t : Set Ω
hms : MeasurableSet s
hmt : MeasurableSet t
hcs : μ s ≠ ⊤
u : Set Ω
a✝ : MeasurableSet u
hst : μ (s ∩ t) ≠ 0
hcs' : μ s ≠ 0
⊢ ((μ s)⁻¹ * μ (s ∩ t))⁻¹ * ((μ s)⁻¹ * μ (s ∩ (t ∩ u))) = (μ (s ∩ t))⁻¹ * μ (s ∩ t ∩ u)
state_after: no goals