Theorem: ClosedEmbedding.paracompactSpace
File: Mathlib/Topology/Compactness/Paracompact.lean

Proof steps:
state_before: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
hu : ⋃ a, s a = univ
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ s a
state_after: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
hu : ⋃ a, s a = univ
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ s a
tactic: choose U hUo hU using fun a ↦ he.isOpen_iff.1 (ho a)
state_before: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
hu : ⋃ a, s a = univ
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ s a
state_after: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
tactic: simp only [← hU] at hu ⊢
state_before: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
state_after: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
tactic: have heU : range e ⊆ ⋃ i, U i := by
      simpa only [range_subset_iff, mem_iUnion, iUnion_eq_univ_iff] using hu
state_before: ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
state_after: case intro.intro.intro.intro
ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
V : α → Set Y
hVo : ∀ (i : α), IsOpen (V i)
heV : range e ⊆ ⋃ i, V i
hVf : LocallyFinite V
hVU : ∀ (i : α), V i ⊆ U i
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
tactic: rcases precise_refinement_set he.isClosed_range U hUo heU with ⟨V, hVo, heV, hVf, hVU⟩
state_before: case intro.intro.intro.intro
ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
V : α → Set Y
hVo : ∀ (i : α), IsOpen (V i)
heV : range e ⊆ ⋃ i, V i
hVf : LocallyFinite V
hVU : ∀ (i : α), V i ⊆ U i
⊢ ∃ β t, (∀ (b : β), IsOpen (t b)) ∧ ⋃ b, t b = univ ∧ LocallyFinite t ∧ ∀ (b : β), ∃ a, t b ⊆ e ⁻¹' U a
state_after: case intro.intro.intro.intro
ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
V : α → Set Y
hVo : ∀ (i : α), IsOpen (V i)
heV : range e ⊆ ⋃ i, V i
hVf : LocallyFinite V
hVU : ∀ (i : α), V i ⊆ U i
⊢ ⋃ b, (fun a => e ⁻¹' V a) b = univ
tactic: refine ⟨α, fun a ↦ e ⁻¹' (V a), fun a ↦ (hVo a).preimage he.continuous, ?_,
      hVf.preimage_continuous he.continuous, fun a ↦ ⟨a, preimage_mono (hVU a)⟩⟩
state_before: case intro.intro.intro.intro
ι : Type u
X : Type v
Y : Type w
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : ParacompactSpace Y
e : X → Y
he : ClosedEmbedding e
α : Type v
s : α → Set X
ho : ∀ (a : α), IsOpen (s a)
U : α → Set Y
hUo : ∀ (a : α), IsOpen (U a)
hU : ∀ (a : α), e ⁻¹' U a = s a
hu : ⋃ a, e ⁻¹' U a = univ
heU : range e ⊆ ⋃ i, U i
V : α → Set Y
hVo : ∀ (i : α), IsOpen (V i)
heV : range e ⊆ ⋃ i, V i
hVf : LocallyFinite V
hVU : ∀ (i : α), V i ⊆ U i
⊢ ⋃ b, (fun a => e ⁻¹' V a) b = univ
state_after: no goals
tactic: simpa only [range_subset_iff, mem_iUnion, iUnion_eq_univ_iff] using heV