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

tactic: constructor
state_before: X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ PathConnectedSpace X ↔ ConnectedSpace X

tactic: intro h
state_before: case mp
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ PathConnectedSpace X → ConnectedSpace X

tactic: infer_instance
state_before: case mp
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
h : PathConnectedSpace X
⊢ ConnectedSpace X

tactic: intro hX
state_before: case mpr
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
⊢ ConnectedSpace X → PathConnectedSpace X

tactic: rw [pathConnectedSpace_iff_eq]
state_before: case mpr
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ PathConnectedSpace X

tactic: use Classical.arbitrary X
state_before: case mpr
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∃ x, pathComponent x = univ

tactic: refine' IsClopen.eq_univ ⟨_, _⟩ (by simp)
state_before: case mpr
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ pathComponent (Classical.arbitrary X) = univ

tactic: simp
state_before: X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ Set.Nonempty (pathComponent (Classical.arbitrary X))

tactic: rw [isOpen_iff_mem_nhds]
state_before: case mpr.refine'_1
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsOpen (pathComponent (Classical.arbitrary X))

tactic: intro y y_in
state_before: case mpr.refine'_1
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ (a : X), a ∈ pathComponent (Classical.arbitrary X) → pathComponent (Classical.arbitrary X) ∈ 𝓝 a

tactic: rcases(path_connected_basis y).ex_mem with ⟨U, ⟨U_in, hU⟩⟩
state_before: case mpr.refine'_1
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
y_in : y ∈ pathComponent (Classical.arbitrary X)
⊢ pathComponent (Classical.arbitrary X) ∈ 𝓝 y

tactic: apply mem_of_superset U_in
state_before: case mpr.refine'_1.intro.intro
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
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: rw [← pathComponent_congr y_in]
state_before: case mpr.refine'_1.intro.intro
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
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: exact hU.subset_pathComponent (mem_of_mem_nhds U_in)
state_before: case mpr.refine'_1.intro.intro
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
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: rw [isClosed_iff_nhds]
state_before: case mpr.refine'_2
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ IsClosed (pathComponent (Classical.arbitrary X))

tactic: intro y H
state_before: case mpr.refine'_2
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
⊢ ∀ (x : X),
    (∀ (U : Set X), U ∈ 𝓝 x → Set.Nonempty (U ∩ pathComponent (Classical.arbitrary X))) →
      x ∈ pathComponent (Classical.arbitrary X)

tactic: rcases(path_connected_basis y).ex_mem with ⟨U, ⟨U_in, hU⟩⟩
state_before: case mpr.refine'_2
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ (U : Set X), U ∈ 𝓝 y → Set.Nonempty (U ∩ pathComponent (Classical.arbitrary X))
⊢ y ∈ pathComponent (Classical.arbitrary X)

tactic: rcases H U U_in with ⟨z, hz, hz'⟩
state_before: case mpr.refine'_2.intro.intro
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ (U : Set X), U ∈ 𝓝 y → Set.Nonempty (U ∩ pathComponent (Classical.arbitrary X))
U : Set X
U_in : U ∈ 𝓝 y
hU : IsPathConnected U
⊢ 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 mpr.refine'_2.intro.intro.intro.intro
X : Type u_1
Y : Type ?u.703689
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
x y✝ z✝ : X
ι : Type ?u.703704
F : Set X
inst✝ : LocPathConnectedSpace X
hX : ConnectedSpace X
y : X
H : ∀ (U : Set X), U ∈ 𝓝 y → Set.Nonempty (U ∩ pathComponent (Classical.arbitrary X))
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)