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

tactic: rintro ⟨x, x_in⟩
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
U : Set X
h : IsOpen U
⊢ ∀ (x : ↑U), (𝓝 x).HasBasis (fun s => s ∈ 𝓝 x ∧ IsPathConnected s) id
state_after: case 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
inst✝ : LocPathConnectedSpace X
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ (𝓝 ⟨x, x_in⟩).HasBasis (fun s => s ∈ 𝓝 ⟨x, x_in⟩ ∧ IsPathConnected s) id

tactic: rw [nhds_subtype_eq_comap]
state_before: case 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
inst✝ : LocPathConnectedSpace X
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ (𝓝 ⟨x, x_in⟩).HasBasis (fun s => s ∈ 𝓝 ⟨x, x_in⟩ ∧ IsPathConnected s) id
state_after: case 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
inst✝ : LocPathConnectedSpace X
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ (comap Subtype.val (𝓝 x)).HasBasis (fun s => s ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected s) id

tactic: constructor
state_before: case 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
inst✝ : LocPathConnectedSpace X
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ (comap Subtype.val (𝓝 x)).HasBasis (fun s => s ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected s) id
state_after: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ ∀ (t : Set ↑U), t ∈ comap Subtype.val (𝓝 x) ↔ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ t

tactic: intro V
state_before: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
⊢ ∀ (t : Set ↑U), t ∈ comap Subtype.val (𝓝 x) ↔ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ t
state_after: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ V ∈ comap Subtype.val (𝓝 x) ↔ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V

tactic: rw [(HasBasis.comap ((↑) : U → X) (pathConnected_subset_basis h x_in)).mem_iff]
state_before: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ V ∈ comap Subtype.val (𝓝 x) ↔ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V
state_after: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V) ↔
    ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V

tactic: constructor
state_before: case mk.mem_iff'
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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V) ↔
    ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V
state_after: case mk.mem_iff'.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V) →
    ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V

case mk.mem_iff'.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V) →
    ∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V

tactic: rintro ⟨W, ⟨W_in, hW, hWU⟩, hWV⟩
state_before: case mk.mem_iff'.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V) →
    ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V
state_after: case mk.mem_iff'.mp.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
W : Set X
hWV : Subtype.val ⁻¹' id W ⊆ V
W_in : W ∈ 𝓝 x
hW : IsPathConnected W
hWU : W ⊆ U
⊢ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V

tactic: exact ⟨Subtype.val ⁻¹' W, ⟨⟨preimage_mem_comap W_in, hW.preimage_coe hWU⟩, hWV⟩⟩
state_before: case mk.mem_iff'.mp.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
W : Set X
hWV : Subtype.val ⁻¹' id W ⊆ V
W_in : W ∈ 𝓝 x
hW : IsPathConnected W
hWU : W ⊆ U
⊢ ∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V
state_after: no goals

tactic: rintro ⟨W, ⟨W_in, hW⟩, hWV⟩
state_before: case mk.mem_iff'.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V : Set ↑U
⊢ (∃ i, (i ∈ comap Subtype.val (𝓝 x) ∧ IsPathConnected i) ∧ id i ⊆ V) →
    ∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V
state_after: case mk.mem_iff'.mpr.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x)
hW : IsPathConnected W
⊢ ∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V

tactic: refine
  ⟨(↑) '' W,
    ⟨Filter.image_coe_mem_of_mem_comap (IsOpen.mem_nhds h x_in) W_in,
      hW.image continuous_subtype_val, Subtype.coe_image_subset U W⟩,
    ?_⟩
state_before: case mk.mem_iff'.mpr.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x)
hW : IsPathConnected W
⊢ ∃ i, (i ∈ 𝓝 x ∧ IsPathConnected i ∧ i ⊆ U) ∧ Subtype.val ⁻¹' id i ⊆ V
state_after: case mk.mem_iff'.mpr.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x)
hW : IsPathConnected W
⊢ Subtype.val ⁻¹' id (Subtype.val '' W) ⊆ V

tactic: rintro x ⟨y, ⟨y_in, hy⟩⟩
state_before: case mk.mem_iff'.mpr.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
U : Set X
h : IsOpen U
x : X
x_in : x ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x)
hW : IsPathConnected W
⊢ Subtype.val ⁻¹' id (Subtype.val '' W) ⊆ V
state_after: case mk.mem_iff'.mpr.intro.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
U : Set X
h : IsOpen U
x✝ : X
x_in : x✝ ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x✝)
hW : IsPathConnected W
x : { x // x ∈ U }
y : ↑U
y_in : y ∈ W
hy : ↑y = ↑x
⊢ x ∈ V

tactic: rw [← Subtype.coe_injective hy]
state_before: case mk.mem_iff'.mpr.intro.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
U : Set X
h : IsOpen U
x✝ : X
x_in : x✝ ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x✝)
hW : IsPathConnected W
x : { x // x ∈ U }
y : ↑U
y_in : y ∈ W
hy : ↑y = ↑x
⊢ x ∈ V
state_after: case mk.mem_iff'.mpr.intro.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
U : Set X
h : IsOpen U
x✝ : X
x_in : x✝ ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x✝)
hW : IsPathConnected W
x : { x // x ∈ U }
y : ↑U
y_in : y ∈ W
hy : ↑y = ↑x
⊢ y ∈ V

tactic: tauto
state_before: case mk.mem_iff'.mpr.intro.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
U : Set X
h : IsOpen U
x✝ : X
x_in : x✝ ∈ U
V W : Set ↑U
hWV : id W ⊆ V
W_in : W ∈ comap Subtype.val (𝓝 x✝)
hW : IsPathConnected W
x : { x // x ∈ U }
y : ↑U
y_in : y ∈ W
hy : ↑y = ↑x
⊢ y ∈ V
state_after: no goals