Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
⊢ IndepSets (s i) (s j)
intro t₁ t₂ ht₁ ht₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
have h1 : t₁ = ite (i = i) t₁ t₂ := by simp only [if_true, eq_self_iff_true]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
have h2 : t₂ = ite (j = i) t₁ t₂ := by simp only [hij.symm, if_false]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
have h_inter :
  (⋂ (t : ι) (_ : t ∈ ({i, j} : Finset ι)), ite (t = i) t₁ t₂) =
    ite (i = i) t₁ t₂ ∩ ite (j = i) t₁ t₂ :=
  by simp only [Finset.set_biInter_singleton, Finset.set_biInter_insert]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
have h_prod :
  (∏ t : ι in ({i, j} : Finset ι), μ (ite (t = i) t₁ t₂)) =
    μ (ite (i = i) t₁ t₂) * μ (ite (j = i) t₁ t₂) := by
  simp only [hij, Finset.prod_singleton, Finset.prod_insert, not_false_iff,
    Finset.mem_singleton]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ (t₁ ∩ t₂) = ↑↑μ t₁ * ↑↑μ t₂
rw [h1]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ t₂
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ t₂
nth_rw 2 [h2]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂) =
    ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ t₂
nth_rw 4 [h2]
no goals
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
h_prod : ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
⊢ ↑↑μ ((if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂) =
    ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
rw [← h_inter, ← h_prod, h_indep {i, j} hf_m]
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx : x ∈ {i, j}
⊢ (if x = i then t₁ else t₂) ∈ s x
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
⊢ ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
intro x hx
case inl
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx✝ : x ∈ {i, j}
hx : x = i
⊢ (if x = i then t₁ else t₂) ∈ s x

case inr
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx✝ : x ∈ {i, j}
hx : x ∈ {j}
⊢ (if x = i then t₁ else t₂) ∈ s x
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx : x ∈ {i, j}
⊢ (if x = i then t₁ else t₂) ∈ s x
cases' Finset.mem_insert.mp hx with hx hx
no goals
case inl
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx✝ : x ∈ {i, j}
hx : x = i
⊢ (if x = i then t₁ else t₂) ∈ s x
simp [hx, ht₁]
no goals
case inr
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
x : ι
hx✝ : x ∈ {i, j}
hx : x ∈ {j}
⊢ (if x = i then t₁ else t₂) ∈ s x
simp [Finset.mem_singleton.mp hx, hij.symm, ht₂]
no goals
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
⊢ t₁ = if i = i then t₁ else t₂
simp only [if_true, eq_self_iff_true]
no goals
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
⊢ t₂ = if j = i then t₁ else t₂
simp only [hij.symm, if_false]
no goals
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
⊢ (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
simp only [Finset.set_biInter_singleton, Finset.set_biInter_insert]
no goals
Ω : Type u_1
ι : Type u_2
s : ι → Set (Set Ω)
inst✝ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
h_indep : iIndepSets s
i j : ι
hij : i ≠ j
t₁ t₂ : Set Ω
ht₁ : t₁ ∈ s i
ht₂ : t₂ ∈ s j
hf_m : ∀ (x : ι), x ∈ {i, j} → (if x = i then t₁ else t₂) ∈ s x
h1 : t₁ = if i = i then t₁ else t₂
h2 : t₂ = if j = i then t₁ else t₂
h_inter : (⋂ (t : ι) (_ : t ∈ {i, j}), if t = i then t₁ else t₂) = (if i = i then t₁ else t₂) ∩ if j = i then t₁ else t₂
⊢ ∏ t in {i, j}, ↑↑μ (if t = i then t₁ else t₂) = ↑↑μ (if i = i then t₁ else t₂) * ↑↑μ (if j = i then t₁ else t₂)
simp only [hij, Finset.prod_singleton, Finset.prod_insert, not_false_iff,
  Finset.mem_singleton]