Theorem: ModelWithCorners.locallyCompactSpace
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: have : ∀ x : H, (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (I x) ∧ IsCompact s)
    fun s => I.symm '' (s ∩ range I) := fun x ↦ by
  rw [← I.symm_map_nhdsWithin_range]
  exact ((compact_basis_nhds (I x)).inf_principal _).map _
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
⊢ LocallyCompactSpace H
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
⊢ LocallyCompactSpace H

tactic: refine .of_hasBasis this ?_
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
⊢ LocallyCompactSpace H
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
⊢ ∀ (x : H) (i : Set E), i ∈ 𝓝 (↑I x) ∧ IsCompact i → IsCompact (↑I.symm '' (i ∩ range ↑I))

tactic: rintro x s ⟨-, hsc⟩
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
⊢ ∀ (x : H) (i : Set E), i ∈ 𝓝 (↑I x) ∧ IsCompact i → IsCompact (↑I.symm '' (i ∩ range ↑I))
state_after: case intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
x : H
s : Set E
hsc : IsCompact s
⊢ IsCompact (↑I.symm '' (s ∩ range ↑I))

tactic: exact (hsc.inter_right I.isClosed_range).image I.continuous_symm
state_before: case intro
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
this : ∀ (x : H), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
x : H
s : Set E
hsc : IsCompact s
⊢ IsCompact (↑I.symm '' (s ∩ range ↑I))
state_after: no goals

tactic: rw [← I.symm_map_nhdsWithin_range]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
x : H
⊢ (𝓝 x).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
x : H
⊢ (map (↑I.symm) (𝓝[range ↑I] ↑I x)).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)

tactic: exact ((compact_basis_nhds (I x)).inf_principal _).map _
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
H : Type u_3
inst✝¹ : TopologicalSpace H
I✝ : ModelWithCorners 𝕜 E H
inst✝ : LocallyCompactSpace E
I : ModelWithCorners 𝕜 E H
x : H
⊢ (map (↑I.symm) (𝓝[range ↑I] ↑I x)).HasBasis (fun s => s ∈ 𝓝 (↑I x) ∧ IsCompact s) fun s => ↑I.symm '' (s ∩ range ↑I)
state_after: no goals