Theorem: isProperMap_iff_isCompact_preimage
File: Mathlib/Topology/ProperMap.lean

tactic: constructor <;> intro H
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
⊢ IsProperMap f ↔ Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
state_after: case mp
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : IsProperMap f
⊢ Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)

case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
⊢ IsProperMap f

tactic: exact ⟨H.continuous, fun K hK ↦ H.isCompact_preimage hK⟩
state_before: case mp
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : IsProperMap f
⊢ Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
state_after: no goals

tactic: rw [isProperMap_iff_ultrafilter_of_t2]
state_before: case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
⊢ IsProperMap f
state_after: case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
⊢ Continuous f ∧ ∀ ⦃𝒰 : Ultrafilter X⦄ ⦃y : Y⦄, Tendsto f (↑𝒰) (𝓝 y) → ∃ x, ↑𝒰 ≤ 𝓝 x

tactic: refine ⟨H.1, fun 𝒰 y hy ↦ ?_⟩
state_before: case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
⊢ Continuous f ∧ ∀ ⦃𝒰 : Ultrafilter X⦄ ⦃y : Y⦄, Tendsto f (↑𝒰) (𝓝 y) → ∃ x, ↑𝒰 ≤ 𝓝 x
state_after: case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x

tactic: rcases exists_compact_mem_nhds y with ⟨K, hK, hKy⟩
state_before: case mpr
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x
state_after: case mpr.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x

tactic: have : 𝒰 ≤ 𝓟 (f ⁻¹' K) := by
  simpa only [← comap_principal, ← tendsto_iff_comap] using
    hy.mono_right (le_principal_iff.mpr hKy)
state_before: case mpr.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x
state_after: case mpr.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
this : ↑𝒰 ≤ 𝓟 (f ⁻¹' K)
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x

tactic: rcases (H.2 hK).ultrafilter_le_nhds _ this with ⟨x, -, hx⟩
state_before: case mpr.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
this : ↑𝒰 ≤ 𝓟 (f ⁻¹' K)
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x
state_after: case mpr.intro.intro.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
this : ↑𝒰 ≤ 𝓟 (f ⁻¹' K)
x : X
hx : ↑𝒰 ≤ 𝓝 x
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x

tactic: exact ⟨x, hx⟩
state_before: case mpr.intro.intro.intro.intro
X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
this : ↑𝒰 ≤ 𝓟 (f ⁻¹' K)
x : X
hx : ↑𝒰 ≤ 𝓝 x
⊢ ∃ x, ↑𝒰 ≤ 𝓝 x
state_after: no goals

tactic: simpa only [← comap_principal, ← tendsto_iff_comap] using
  hy.mono_right (le_principal_iff.mpr hKy)
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
W : Type u_4
ι : Type u_5
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
f : X → Y
g : Y → Z
inst✝¹ : T2Space Y
inst✝ : WeaklyLocallyCompactSpace Y
H : Continuous f ∧ ∀ ⦃K : Set Y⦄, IsCompact K → IsCompact (f ⁻¹' K)
𝒰 : Ultrafilter X
y : Y
hy : Tendsto f (↑𝒰) (𝓝 y)
K : Set Y
hK : IsCompact K
hKy : K ∈ 𝓝 y
⊢ ↑𝒰 ≤ 𝓟 (f ⁻¹' K)
state_after: no goals