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

tactic: rw [isPathConnected_iff]
state_before: X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.688463
F : Set X
⊢ IsPathConnected F ↔ PathConnectedSpace ↑F

tactic: constructor
state_before: X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.688463
F : Set X
⊢ (Set.Nonempty F ∧ ∀ (x : X), x ∈ F → ∀ (y : X), y ∈ F → JoinedIn F x y) ↔ PathConnectedSpace ↑F

tactic: rintro ⟨⟨x, x_in⟩, h⟩
state_before: case mp
X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.688463
F : Set X
⊢ (Set.Nonempty F ∧ ∀ (x : X), x ∈ F → ∀ (y : X), y ∈ F → JoinedIn F x y) → PathConnectedSpace ↑F

tactic: refine' ⟨⟨⟨x, x_in⟩⟩, _⟩
state_before: case mp.intro.intro
X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type ?u.688463
F : Set X
h : ∀ (x : X), x ∈ F → ∀ (y : X), y ∈ F → JoinedIn F x y
x : X
x_in : x ∈ F
⊢ PathConnectedSpace ↑F

tactic: rintro ⟨y, y_in⟩ ⟨z, z_in⟩
state_before: case mp.intro.intro
X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y z : X
ι : Type ?u.688463
F : Set X
h : ∀ (x : X), x ∈ F → ∀ (y : X), y ∈ F → JoinedIn F x y
x : X
x_in : x ∈ F
⊢ ∀ (x y : ↑F), Joined x y

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.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type ?u.688463
F : Set X
h : ∀ (x : X), x ∈ F → ∀ (y : X), 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 { val := y, property := y_in } { val := z, property := 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.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type ?u.688463
F : Set X
h : ∀ (x : X), x ∈ F → ∀ (y : X), 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 { val := y, property := y_in } { val := z, property := z_in }

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

tactic: rw [joinedIn_iff_joined y_in z_in]
state_before: case mpr.mk.intro.mk
X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type ?u.688463
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: apply H
state_before: case mpr.mk.intro.mk
X : Type u_1
Y : Type ?u.688448
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z✝ : X
ι : Type ?u.688463
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 { val := y, property := y_in } { val := z, property := z_in }