Theorem: MeasureTheory.MeasurablySeparable.iUnion
File: Mathlib/MeasureTheory/Constructions/Polish.lean

tactic: choose u hsu htu hu using h
state_before: α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
h : ∀ (m n : ι), MeasurablySeparable (s m) (t n)
⊢ MeasurablySeparable (⋃ (n : ι), s n) (⋃ (m : ι), t m)

tactic: refine' ⟨⋃ m, ⋂ n, u m n, _, _, _⟩
state_before: α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
⊢ MeasurablySeparable (⋃ (n : ι), s n) (⋃ (m : ι), t m)

tactic: refine' iUnion_subset fun m => subset_iUnion_of_subset m _
state_before: case refine'_1
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
⊢ (⋃ (n : ι), s n) ⊆ ⋃ (m : ι), ⋂ (n : ι), u m n

tactic: exact subset_iInter fun n => hsu m n
state_before: case refine'_1
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
m : ι
⊢ s m ⊆ ⋂ (n : ι), u m n

tactic: simp_rw [disjoint_iUnion_left, disjoint_iUnion_right]
state_before: case refine'_2
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
⊢ Disjoint (⋃ (m : ι), t m) (⋃ (m : ι), ⋂ (n : ι), u m n)

tactic: intro n m
state_before: case refine'_2
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
⊢ ∀ (i i_1 : ι), Disjoint (t i) (⋂ (n : ι), u i_1 n)

tactic: apply Disjoint.mono_right _ (htu m n)
state_before: case refine'_2
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
n m : ι
⊢ Disjoint (t n) (⋂ (n : ι), u m n)

tactic: apply iInter_subset
state_before: α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
n m : ι
⊢ (⋂ (n : ι), u m n) ≤ u m n

tactic: refine' MeasurableSet.iUnion fun m => _
state_before: case refine'_3
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
⊢ MeasurableSet (⋃ (m : ι), ⋂ (n : ι), u m n)

tactic: exact MeasurableSet.iInter fun n => hu m n
state_before: case refine'_3
α✝ : Type ?u.67309
inst✝² : TopologicalSpace α✝
ι : Type u_1
inst✝¹ : Countable ι
α : Type u_2
inst✝ : MeasurableSpace α
s t : ι → Set α
u : ι → ι → Set α
hsu : ∀ (m n : ι), s m ⊆ u m n
htu : ∀ (m n : ι), Disjoint (t n) (u m n)
hu : ∀ (m n : ι), MeasurableSet (u m n)
m : ι
⊢ MeasurableSet (⋂ (n : ι), u m n)