Theorem: ProbabilityTheory.iIndepSet.indep_generateFrom_of_disjoint
File: Mathlib/Probability/Independence/Basic.lean

tactic: rw [← generateFrom_piiUnionInter_singleton_left, ← generateFrom_piiUnionInter_singleton_left]
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ Indep (generateFrom {t | ∃ n, n ∈ S ∧ s n = t}) (generateFrom {t | ∃ k, k ∈ T ∧ s k = t})

tactic: refine'
  IndepSets.indep'
    (fun t ht => generateFrom_piiUnionInter_le _ _ _ _ (measurableSet_generateFrom ht))
    (fun t ht => generateFrom_piiUnionInter_le _ _ _ _ (measurableSet_generateFrom ht)) _ _ _
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ Indep (generateFrom (piiUnionInter (fun k => {s k}) S)) (generateFrom (piiUnionInter (fun k => {s k}) T))

tactic: exact fun k => generateFrom_le fun t ht => (Set.mem_singleton_iff.1 ht).symm ▸ hsm k
state_before: case refine'_1
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
t : Set Ω
ht : t ∈ piiUnionInter (fun k => {s k}) S
⊢ ∀ (n : ι), generateFrom {s n} ≤ m0

tactic: exact fun k => generateFrom_le fun t ht => (Set.mem_singleton_iff.1 ht).symm ▸ hsm k
state_before: case refine'_2
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
t : Set Ω
ht : t ∈ piiUnionInter (fun k => {s k}) T
⊢ ∀ (n : ι), generateFrom {s n} ≤ m0

tactic: exact isPiSystem_piiUnionInter _ (fun k => IsPiSystem.singleton _) _
state_before: case refine'_3
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ IsPiSystem (piiUnionInter (fun k => {s k}) S)

tactic: exact isPiSystem_piiUnionInter _ (fun k => IsPiSystem.singleton _) _
state_before: case refine'_4
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ IsPiSystem (piiUnionInter (fun k => {s k}) T)

tactic: classical exact indepSets_piiUnionInter_of_disjoint (iIndep.iIndepSets (fun n => rfl) hs) hST
state_before: case refine'_5
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ IndepSets (piiUnionInter (fun k => {s k}) S) (piiUnionInter (fun k => {s k}) T)

tactic: exact indepSets_piiUnionInter_of_disjoint (iIndep.iIndepSets (fun n => rfl) hs) hST
state_before: case refine'_5
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : ι → Set Ω
hsm : ∀ (n : ι), MeasurableSet (s n)
hs : iIndepSet s
S T : Set ι
hST : Disjoint S T
⊢ IndepSets (piiUnionInter (fun k => {s k}) S) (piiUnionInter (fun k => {s k}) T)