Theorem: ProbabilityTheory.iIndepSets.iIndep
File: Mathlib/Probability/Independence/Basic.lean

tactic: intro s f
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
⊢ ProbabilityTheory.iIndep m

tactic: refine Finset.induction ?_ ?_ s
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
⊢ (∀ (i : ι), i ∈ s → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ s), f i) = ∏ i in s, ↑↑μ (f i)

tactic: simp only [Finset.not_mem_empty, Set.mem_setOf_eq, IsEmpty.forall_iff, implies_true,
Set.iInter_of_empty, Set.iInter_univ, measure_univ, Finset.prod_empty, forall_true_left]
state_before: case refine_1
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
⊢ (∀ (i : ι), i ∈ ∅ → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ ∅), f i) = ∏ i in ∅, ↑↑μ (f i)

tactic: intro a S ha_notin_S h_rec hf_m
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
⊢ ∀ ⦃a : ι⦄ {s : Finset ι},
    ¬a ∈ s →
      ((∀ (i : ι), i ∈ s → f i ∈ (fun x => {s | MeasurableSet s}) i) →
          ↑↑μ (⋂ (i : ι) (_ : i ∈ s), f i) = ∏ i in s, ↑↑μ (f i)) →
        (∀ (i : ι), i ∈ insert a s → f i ∈ (fun x => {s | MeasurableSet s}) i) →
          ↑↑μ (⋂ (i : ι) (_ : i ∈ insert a s), f i) = ∏ i in insert a s, ↑↑μ (f i)

tactic: have hf_m_S : ∀ x ∈ S, MeasurableSet[m x] (f x) := fun x hx => hf_m x (by simp [hx])
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
⊢ ↑↑μ (⋂ (i : ι) (_ : i ∈ insert a S), f i) = ∏ i in insert a S, ↑↑μ (f i)

tactic: rw [Finset.set_biInter_insert, Finset.prod_insert ha_notin_S, ← h_rec hf_m_S]
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
⊢ ↑↑μ (⋂ (i : ι) (_ : i ∈ insert a S), f i) = ∏ i in insert a S, ↑↑μ (f i)

tactic: let p := piiUnionInter π S
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
⊢ ↑↑μ (f a ∩ ⋂ (x : ι) (_ : x ∈ S), f x) = ↑↑μ (f a) * ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i)

tactic: set m_p := generateFrom p with hS_eq_generate
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
⊢ ↑↑μ (f a ∩ ⋂ (x : ι) (_ : x ∈ S), f x) = ↑↑μ (f a) * ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i)

tactic: have h_indep : @Indep Ω m_p (m a) m0 μ := by
  have hp : IsPiSystem p := isPiSystem_piiUnionInter π h_pi S
  have h_le' : ∀ i, generateFrom (π i) ≤ m0 := fun i => (h_generate i).symm.trans_le (h_le i)
  have hm_p : m_p ≤ m0 := generateFrom_piiUnionInter_le π h_le' S
  exact IndepSets.indep hm_p (h_le a) hp (h_pi a) hS_eq_generate (h_generate a)
      (iIndepSets.piiUnionInter_of_not_mem h_ind ha_notin_S)
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
⊢ ↑↑μ (f a ∩ ⋂ (x : ι) (_ : x ∈ S), f x) = ↑↑μ (f a) * ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i)

tactic: refine @Indep.symm Ω _ _ m0 μ h_indep (f a) (⋂ n ∈ S, f n)
  (hf_m a (Finset.mem_insert_self a S)) ?_
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
⊢ ↑↑μ (f a ∩ ⋂ (x : ι) (_ : x ∈ S), f x) = ↑↑μ (f a) * ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i)

tactic: have h_le_p : ∀ i ∈ S, m i ≤ m_p := by
  intro n hn
  rw [hS_eq_generate, h_generate n]
  exact le_generateFrom_piiUnionInter _ hn
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
⊢ (⋂ (n : ι) (_ : n ∈ S), f n) ∈ {s | MeasurableSet s}

tactic: have h_S_f : ∀ i ∈ S, MeasurableSet[m_p] (f i) :=
  fun i hi => (h_le_p i hi) (f i) (hf_m_S i hi)
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
h_le_p : ∀ (i : ι), i ∈ S → m i ≤ m_p
⊢ (⋂ (n : ι) (_ : n ∈ S), f n) ∈ {s | MeasurableSet s}

tactic: exact S.measurableSet_biInter h_S_f
state_before: case refine_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
h_le_p : ∀ (i : ι), i ∈ S → m i ≤ m_p
h_S_f : ∀ (i : ι), i ∈ S → MeasurableSet (f i)
⊢ (⋂ (n : ι) (_ : n ∈ S), f n) ∈ {s | MeasurableSet s}

tactic: simp [hx]
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
x : ι
hx : x ∈ S
⊢ x ∈ insert a S

tactic: have hp : IsPiSystem p := isPiSystem_piiUnionInter π h_pi S
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
⊢ Indep m_p (m a)

tactic: have h_le' : ∀ i, generateFrom (π i) ≤ m0 := fun i => (h_generate i).symm.trans_le (h_le i)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
hp : IsPiSystem p
⊢ Indep m_p (m a)

tactic: have hm_p : m_p ≤ m0 := generateFrom_piiUnionInter_le π h_le' S
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
hp : IsPiSystem p
h_le' : ∀ (i : ι), generateFrom (π i) ≤ m0
⊢ Indep m_p (m a)

tactic: exact IndepSets.indep hm_p (h_le a) hp (h_pi a) hS_eq_generate (h_generate a)
    (iIndepSets.piiUnionInter_of_not_mem h_ind ha_notin_S)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
hp : IsPiSystem p
h_le' : ∀ (i : ι), generateFrom (π i) ≤ m0
hm_p : m_p ≤ m0
⊢ Indep m_p (m a)

tactic: intro n hn
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
⊢ ∀ (i : ι), i ∈ S → m i ≤ m_p

tactic: rw [hS_eq_generate, h_generate n]
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
n : ι
hn : n ∈ S
⊢ m n ≤ m_p

tactic: exact le_generateFrom_piiUnionInter _ hn
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
m : ι → MeasurableSpace Ω
h_le : ∀ (i : ι), m i ≤ m0
π : ι → Set (Set Ω)
h_pi : ∀ (n : ι), IsPiSystem (π n)
h_generate : ∀ (i : ι), m i = generateFrom (π i)
h_ind : iIndepSets π
s : Finset ι
f : ι → Set Ω
a : ι
S : Finset ι
ha_notin_S : ¬a ∈ S
h_rec :
  (∀ (i : ι), i ∈ S → f i ∈ (fun x => {s | MeasurableSet s}) i) → ↑↑μ (⋂ (i : ι) (_ : i ∈ S), f i) = ∏ i in S, ↑↑μ (f i)
hf_m : ∀ (i : ι), i ∈ insert a S → f i ∈ (fun x => {s | MeasurableSet s}) i
hf_m_S : ∀ (x : ι), x ∈ S → MeasurableSet (f x)
p : Set (Set Ω) := piiUnionInter π ↑S
m_p : MeasurableSpace Ω := generateFrom p
hS_eq_generate : m_p = generateFrom p
h_indep : Indep m_p (m a)
n : ι
hn : n ∈ S
⊢ generateFrom (π n) ≤ generateFrom p