Theorem: ChartedSpace.locallyConnectedSpace
File: Mathlib/Geometry/Manifold/ChartedSpace.lean

tactic: let e : M → PartialHomeomorph M H := chartAt H
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
⊢ LocallyConnectedSpace M
state_after: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ LocallyConnectedSpace M

tactic: refine locallyConnectedSpace_of_connected_bases (fun x s ↦ (e x).symm '' s)
    (fun x s ↦ (IsOpen s ∧ e x x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) ?_ ?_
state_before: H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ LocallyConnectedSpace M
state_after: case refine_1
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M),
    (𝓝 x).HasBasis ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
      ((fun x s => ↑(e x).symm '' s) x)

case refine_2
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M) (i : Set H),
    (fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x i →
      IsPreconnected ((fun x s => ↑(e x).symm '' s) x i)

tactic: intro x
state_before: case refine_1
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M),
    (𝓝 x).HasBasis ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
      ((fun x s => ↑(e x).symm '' s) x)
state_after: case refine_1
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
x : M
⊢ (𝓝 x).HasBasis ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
    ((fun x s => ↑(e x).symm '' s) x)

tactic: simpa only [e, PartialHomeomorph.symm_map_nhds_eq, mem_chart_source] using
  ((LocallyConnectedSpace.open_connected_basis (e x x)).restrict_subset
    ((e x).open_target.mem_nhds (mem_chart_target H x))).map (e x).symm
state_before: case refine_1
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
x : M
⊢ (𝓝 x).HasBasis ((fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x)
    ((fun x s => ↑(e x).symm '' s) x)
state_after: no goals

tactic: rintro x s ⟨⟨-, -, hsconn⟩, hssubset⟩
state_before: case refine_2
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
⊢ ∀ (x : M) (i : Set H),
    (fun x s => (IsOpen s ∧ ↑(e x) x ∈ s ∧ IsConnected s) ∧ s ⊆ (e x).target) x i →
      IsPreconnected ((fun x s => ↑(e x).symm '' s) x i)
state_after: case refine_2.intro.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
x : M
s : Set H
hssubset : s ⊆ (e x).target
hsconn : IsConnected s
⊢ IsPreconnected ((fun x s => ↑(e x).symm '' s) x s)

tactic: exact hsconn.isPreconnected.image _ ((e x).continuousOn_symm.mono hssubset)
state_before: case refine_2.intro.intro.intro
H : Type u
H' : Type u_1
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝³ : TopologicalSpace H
inst✝² : TopologicalSpace M
inst✝¹ : ChartedSpace H M
inst✝ : LocallyConnectedSpace H
e : M → PartialHomeomorph M H := chartAt H
x : M
s : Set H
hssubset : s ⊆ (e x).target
hsconn : IsConnected s
⊢ IsPreconnected ((fun x s => ↑(e x).symm '' s) x s)
state_after: no goals