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

tactic: rw [isPathConnected_iff]
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
⊢ IsPathConnected F ↔ PathConnectedSpace ↑F
state_after: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type u_3
F : Set X
⊢ (F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y) ↔ PathConnectedSpace ↑F

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
⊢ (F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y) ↔ PathConnectedSpace ↑F
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
⊢ (F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y) → PathConnectedSpace ↑F

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
⊢ PathConnectedSpace ↑F → F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y

tactic: rintro ⟨⟨x, x_in⟩, 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
⊢ (F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y) → PathConnectedSpace ↑F
state_after: case mp.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
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
⊢ PathConnectedSpace ↑F

tactic: refine ⟨⟨⟨x, x_in⟩⟩, ?_⟩
state_before: case mp.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
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
⊢ PathConnectedSpace ↑F
state_after: case mp.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
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
⊢ ∀ (x y : ↑F), Joined x y

tactic: rintro ⟨y, y_in⟩ ⟨z, z_in⟩
state_before: case mp.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
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
⊢ ∀ (x y : ↑F), Joined x y
state_after: case mp.intro.intro.mk.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩

tactic: have H := h y y_in z z_in
state_before: case mp.intro.intro.mk.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩
state_after: case mp.intro.intro.mk.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
H : JoinedIn F y z
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩

tactic: rwa [joinedIn_iff_joined y_in z_in] at H
state_before: case mp.intro.intro.mk.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
h : ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
H : JoinedIn F y z
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩
state_after: no goals

tactic: rintro ⟨⟨x, x_in⟩, H⟩
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
⊢ PathConnectedSpace ↑F → F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
state_after: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
⊢ F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y

tactic: refine ⟨⟨x, x_in⟩, fun y y_in z z_in => ?_⟩
state_before: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
⊢ F.Nonempty ∧ ∀ x ∈ F, ∀ y ∈ F, JoinedIn F x y
state_after: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ JoinedIn F y z

tactic: rw [joinedIn_iff_joined y_in z_in]
state_before: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ JoinedIn F y z
state_after: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩

tactic: apply H
state_before: case mpr.mk.intro.mk
X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type u_3
F : Set X
H : ∀ (x y : ↑F), Joined x y
x : X
x_in : x ∈ F
y : X
y_in : y ∈ F
z : X
z_in : z ∈ F
⊢ Joined ⟨y, y_in⟩ ⟨z, z_in⟩
state_after: no goals