Theorem: pathConnectedSpace_iff_connectedSpace
File: Mathlib/Topology/Connected/PathConnected.lean

tactic: constructor
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ PathConnectedSpace X ↔ ConnectedSpace X
state_after: case mp
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ PathConnectedSpace X → ConnectedSpace X

case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ ConnectedSpace X → PathConnectedSpace X

tactic: intro h
state_before: case mp
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ PathConnectedSpace X → ConnectedSpace X
state_after: case mp
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
h : PathConnectedSpace X
⊢ ConnectedSpace X

tactic: infer_instance
state_before: case mp
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
h : PathConnectedSpace X
⊢ ConnectedSpace X
state_after: no goals

tactic: intro hX
state_before: case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ ConnectedSpace X → PathConnectedSpace X
state_after: case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ PathConnectedSpace X

tactic: rw [pathConnectedSpace_iff_eq]
state_before: case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ PathConnectedSpace X
state_after: case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∃ x, pathComponent x = univ

tactic: use Classical.arbitrary X
state_before: case mpr
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∃ x, pathComponent x = univ
state_after: case h
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ pathComponent (Classical.arbitrary X) = univ

tactic: refine IsClopen.eq_univ ⟨?_, ?_⟩ (by simp)
state_before: case h
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ pathComponent (Classical.arbitrary X) = univ
state_after: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsClosed (pathComponent (Classical.arbitrary X))

case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsOpen (pathComponent (Classical.arbitrary X))

tactic: simp
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ (pathComponent (Classical.arbitrary X)).Nonempty
state_after: no goals

tactic: rw [isClosed_iff_nhds]
state_before: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsClosed (pathComponent (Classical.arbitrary X))
state_after: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ (x : X),
    (∀ U ∈ 𝓝 x, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty) → x ∈ pathComponent (Classical.arbitrary X)

tactic: intro y H
state_before: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ (x : X),
    (∀ U ∈ 𝓝 x, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty) → x ∈ pathComponent (Classical.arbitrary X)
state_after: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
⊢ y ∈ pathComponent (Classical.arbitrary X)

tactic: rcases (path_connected_basis y).ex_mem with ⟨U, ⟨U_in, hU⟩⟩
state_before: case h.refine_1
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
⊢ y ∈ pathComponent (Classical.arbitrary X)
state_after: case h.refine_1.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ y ∈ pathComponent (Classical.arbitrary X)

tactic: rcases H U U_in with ⟨z, hz, hz'⟩
state_before: case h.refine_1.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ y ∈ pathComponent (Classical.arbitrary X)
state_after: case h.refine_1.intro.intro.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z✝ : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
z : X
hz : z ∈ U
hz' : z ∈ pathComponent (Classical.arbitrary X)
⊢ y ∈ pathComponent (Classical.arbitrary X)

tactic: exact (hU.joinedIn z hz y <| mem_of_mem_nhds U_in).joined.mem_pathComponent hz'
state_before: case h.refine_1.intro.intro.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z✝ : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ U ∈ 𝓝 y, (U ∩ pathComponent (Classical.arbitrary X)).Nonempty
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
z : X
hz : z ∈ U
hz' : z ∈ pathComponent (Classical.arbitrary X)
⊢ y ∈ pathComponent (Classical.arbitrary X)
state_after: no goals

tactic: rw [isOpen_iff_mem_nhds]
state_before: case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsOpen (pathComponent (Classical.arbitrary X))
state_after: case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ x ∈ pathComponent (Classical.arbitrary X), pathComponent (Classical.arbitrary X) ∈ 𝓝 x

tactic: intro y y_in
state_before: case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ x ∈ pathComponent (Classical.arbitrary X), pathComponent (Classical.arbitrary X) ∈ 𝓝 x
state_after: case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
⊢ pathComponent (Classical.arbitrary X) ∈ 𝓝 y

tactic: rcases (path_connected_basis y).ex_mem with ⟨U, ⟨U_in, hU⟩⟩
state_before: case h.refine_2
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
⊢ pathComponent (Classical.arbitrary X) ∈ 𝓝 y
state_after: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ pathComponent (Classical.arbitrary X) ∈ 𝓝 y

tactic: apply mem_of_superset U_in
state_before: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ pathComponent (Classical.arbitrary X) ∈ 𝓝 y
state_after: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ U ⊆ pathComponent (Classical.arbitrary X)

tactic: rw [← pathComponent_congr y_in]
state_before: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ U ⊆ pathComponent (Classical.arbitrary X)
state_after: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ U ⊆ pathComponent y

tactic: exact hU.subset_pathComponent (mem_of_mem_nhds U_in)
state_before: case h.refine_2.intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type u_3
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ U ⊆ pathComponent y
state_after: no goals