Theorem: ContinuousMap.compactOpen_eq_sInf_induced
File: Mathlib/Topology/CompactOpen.lean

tactic: refine' le_antisymm _ _
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ compactOpen = ⨅ (s : Set α) (_ : IsCompact s), TopologicalSpace.induced (restrict s) compactOpen

tactic: simp only [← generateFrom_iUnion, induced_generateFrom_eq, ContinuousMap.compactOpen]
state_before: case refine'_2
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ (⨅ (s : Set α) (_ : IsCompact s), TopologicalSpace.induced (restrict s) compactOpen) ≤ compactOpen

tactic: apply TopologicalSpace.generateFrom_anti
state_before: case refine'_2
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ TopologicalSpace.generateFrom
      (⋃ (i : Set α) (_ : IsCompact i), preimage (restrict i) '' {m | ∃ s x u x, m = CompactOpen.gen s u}) ≤
    TopologicalSpace.generateFrom {m | ∃ s x u x, m = CompactOpen.gen s u}

tactic: rintro _ ⟨s, hs, u, hu, rfl⟩
state_before: case refine'_2.h
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ {m | ∃ s x u x, m = CompactOpen.gen s u} ⊆
    ⋃ (i : Set α) (_ : IsCompact i), preimage (restrict i) '' {m | ∃ s x u x, m = CompactOpen.gen s u}

tactic: rw [mem_iUnion₂]
state_before: case refine'_2.h.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
⊢ CompactOpen.gen s u ∈
    ⋃ (i : Set α) (_ : IsCompact i), preimage (restrict i) '' {m | ∃ s x u x, m = CompactOpen.gen s u}

tactic: refine' ⟨s, hs, _, ⟨univ, isCompact_iff_isCompact_univ.mp hs, u, hu, rfl⟩, _⟩
state_before: case refine'_2.h.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
⊢ ∃ i j, CompactOpen.gen s u ∈ preimage (restrict i) '' {m | ∃ s x u x, m = CompactOpen.gen s u}

tactic: ext f
state_before: case refine'_2.h.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
⊢ restrict s ⁻¹' CompactOpen.gen univ u = CompactOpen.gen s u

tactic: simp only [CompactOpen.gen, mem_setOf_eq, mem_preimage, ContinuousMap.coe_restrict]
state_before: case refine'_2.h.intro.intro.intro.intro.h
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
f : C(α, β)
⊢ f ∈ restrict s ⁻¹' CompactOpen.gen univ u ↔ f ∈ CompactOpen.gen s u

tactic: rw [image_comp f ((↑) : s → α)]
state_before: case refine'_2.h.intro.intro.intro.intro.h
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
f : C(α, β)
⊢ (fun a => (↑f ∘ Subtype.val) a) '' univ ⊆ u ↔ (fun a => ↑f a) '' s ⊆ u

tactic: simp
state_before: case refine'_2.h.intro.intro.intro.intro.h
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
s : Set α
hs : IsCompact s
u : Set β
hu : IsOpen u
f : C(α, β)
⊢ ↑f '' (Subtype.val '' univ) ⊆ u ↔ (fun a => ↑f a) '' s ⊆ u

tactic: refine' le_iInf₂ _
state_before: case refine'_1
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ compactOpen ≤ ⨅ (s : Set α) (_ : IsCompact s), TopologicalSpace.induced (restrict s) compactOpen

tactic: exact fun s _ => compactOpen_le_induced s
state_before: case refine'_1
α : Type u_1
β : Type u_2
γ : Type ?u.19379
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
⊢ ∀ (i : Set α), IsCompact i → compactOpen ≤ TopologicalSpace.induced (restrict i) compactOpen