Theorem: isPreconnected_of_forall
File: Mathlib/Topology/Connected.lean

tactic: rintro u v hu hv hs ⟨z, zs, zu⟩ ⟨y, ys, yv⟩
state_before: α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
⊢ IsPreconnected s

tactic: have xs : x ∈ s := by
  rcases H y ys with ⟨t, ts, xt, -, -⟩
  exact ts xt
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: cases hs xs
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: case inl xu =>
  rcases H y ys with ⟨t, ts, xt, yt, ht⟩
  have := ht u v hu hv (ts.trans hs) ⟨x, xt, xu⟩ ⟨y, yt, yv⟩
  exact this.imp fun z hz => ⟨ts hz.1, hz.2⟩
state_before: case intro.intro.intro.intro.inl
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
h✝ : x ∈ u
⊢ Set.Nonempty (s ∩ (u ∩ v))

case intro.intro.intro.intro.inr
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
h✝ : x ∈ v
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: case inr xv =>
  rcases H z zs with ⟨t, ts, xt, zt, ht⟩
  have := ht v u hv hu (ts.trans <| by rwa [union_comm]) ⟨x, xt, xv⟩ ⟨z, zt, zu⟩
  exact this.imp fun _ h => ⟨ts h.1, h.2.2, h.2.1⟩
state_before: case intro.intro.intro.intro.inr
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
h✝ : x ∈ v
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: rcases H y ys with ⟨t, ts, xt, -, -⟩
state_before: α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
⊢ x ∈ s

tactic: exact ts xt
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
t : Set α
ts : t ⊆ s
xt : x ∈ t
⊢ x ∈ s

tactic: rcases H y ys with ⟨t, ts, xt, yt, ht⟩
state_before: α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xu : x ∈ u
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: have := ht u v hu hv (ts.trans hs) ⟨x, xt, xu⟩ ⟨y, yt, yv⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xu : x ∈ u
t : Set α
ts : t ⊆ s
xt : x ∈ t
yt : y ∈ t
ht : IsPreconnected t
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: exact this.imp fun z hz => ⟨ts hz.1, hz.2⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xu : x ∈ u
t : Set α
ts : t ⊆ s
xt : x ∈ t
yt : y ∈ t
ht : IsPreconnected t
this : Set.Nonempty (t ∩ (u ∩ v))
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: rcases H z zs with ⟨t, ts, xt, zt, ht⟩
state_before: α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xv : x ∈ v
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: have := ht v u hv hu (ts.trans <| by rwa [union_comm]) ⟨x, xt, xv⟩ ⟨z, zt, zu⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xv : x ∈ v
t : Set α
ts : t ⊆ s
xt : x ∈ t
zt : z ∈ t
ht : IsPreconnected t
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: exact this.imp fun _ h => ⟨ts h.1, h.2.2, h.2.1⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xv : x ∈ v
t : Set α
ts : t ⊆ s
xt : x ∈ t
zt : z ∈ t
ht : IsPreconnected t
this : Set.Nonempty (t ∩ (v ∩ u))
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: rwa [union_comm]
state_before: α : Type u
β : Type v
ι : Type ?u.1489
π : ι → Type ?u.1494
inst✝ : TopologicalSpace α
s✝ t✝ u✝ v✝ s : Set α
x : α
H : ∀ (y : α), y ∈ s → ∃ t, t ⊆ s ∧ x ∈ t ∧ y ∈ t ∧ IsPreconnected t
u v : Set α
hu : IsOpen u
hv : IsOpen v
hs : s ⊆ u ∪ v
z : α
zs : z ∈ s
zu : z ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
xs : x ∈ s
xv : x ∈ v
t : Set α
ts : t ⊆ s
xt : x ∈ t
zt : z ∈ t
ht : IsPreconnected t
⊢ s ⊆ v ∪ u