Theorem: locallyConnectedSpace_iff_connected_subsets
File: Mathlib/Topology/Connected.lean

tactic: constructor
state_before: α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ LocallyConnectedSpace α ↔ ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U

tactic: rw [locallyConnectedSpace_iff_open_connected_subsets]
state_before: case mp
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ LocallyConnectedSpace α → ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U

tactic: intro h x U hxU
state_before: case mp
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ⊆ U ∧ IsOpen V ∧ x ∈ V ∧ IsConnected V) →
    ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U

tactic: rcases h x U hxU with ⟨V, hVU, hV₁, hxV, hV₂⟩
state_before: case mp
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
h : ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ⊆ U ∧ IsOpen V ∧ x ∈ V ∧ IsConnected V
x : α
U : Set α
hxU : U ∈ 𝓝 x
⊢ ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U

tactic: exact ⟨V, hV₁.mem_nhds hxV, hV₂.isPreconnected, hVU⟩
state_before: case mp.intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
h : ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ⊆ U ∧ IsOpen V ∧ x ∈ V ∧ IsConnected V
x : α
U : Set α
hxU : U ∈ 𝓝 x
V : Set α
hVU : V ⊆ U
hV₁ : IsOpen V
hxV : x ∈ V
hV₂ : IsConnected V
⊢ ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U

tactic: rw [locallyConnectedSpace_iff_connectedComponentIn_open]
state_before: case mpr
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U) → LocallyConnectedSpace α

tactic: refine' fun h U hU x _ => isOpen_iff_mem_nhds.mpr fun y hy => _
state_before: case mpr
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
⊢ (∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U) →
    ∀ (F : Set α), IsOpen F → ∀ (x : α), x ∈ F → IsOpen (connectedComponentIn F x)

tactic: rw [connectedComponentIn_eq hy]
state_before: case mpr
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
h : ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U
U : Set α
hU : IsOpen U
x : α
x✝ : x ∈ U
y : α
hy : y ∈ connectedComponentIn U x
⊢ connectedComponentIn U x ∈ 𝓝 y

tactic: rcases h y U (hU.mem_nhds <| (connectedComponentIn_subset _ _) hy) with ⟨V, hVy, hV, hVU⟩
state_before: case mpr
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
h : ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U
U : Set α
hU : IsOpen U
x : α
x✝ : x ∈ U
y : α
hy : y ∈ connectedComponentIn U x
⊢ connectedComponentIn U y ∈ 𝓝 y

tactic: exact Filter.mem_of_superset hVy (hV.subset_connectedComponentIn (mem_of_mem_nhds hVy) hVU)
state_before: case mpr.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.115745
π : ι → Type ?u.115750
inst✝ : TopologicalSpace α
s t u v : Set α
h : ∀ (x : α) (U : Set α), U ∈ 𝓝 x → ∃ V, V ∈ 𝓝 x ∧ IsPreconnected V ∧ V ⊆ U
U : Set α
hU : IsOpen U
x : α
x✝ : x ∈ U
y : α
hy : y ∈ connectedComponentIn U x
V : Set α
hVy : V ∈ 𝓝 y
hV : IsPreconnected V
hVU : V ⊆ U
⊢ connectedComponentIn U y ∈ 𝓝 y