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

tactic: rintro h t t' ht ht' htt' ⟨x, xs, xt⟩ ⟨y, ys, yt'⟩
state_before: α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
⊢ IsPreconnected s →
    ∀ (t t' : Set α),
      IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))

tactic: rw [← not_disjoint_iff_nonempty_inter, ← subset_compl_iff_disjoint_right, compl_inter]
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
⊢ Set.Nonempty (s ∩ (t ∩ t'))

tactic: intro h'
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
⊢ ¬s ⊆ tᶜ ∪ t'ᶜ

tactic: have xt' : x ∉ t' := (h' xs).resolve_left (absurd xt)
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
h' : s ⊆ tᶜ ∪ t'ᶜ
⊢ False

tactic: have yt : y ∉ t := (h' ys).resolve_right (absurd yt')
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
h' : s ⊆ tᶜ ∪ t'ᶜ
xt' : ¬x ∈ t'
⊢ False

tactic: have := h _ _ ht.isOpen_compl ht'.isOpen_compl h' ⟨y, ys, yt⟩ ⟨x, xs, xt'⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
h' : s ⊆ tᶜ ∪ t'ᶜ
xt' : ¬x ∈ t'
yt : ¬y ∈ t
⊢ False

tactic: rw [← compl_union] at this
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
h' : s ⊆ tᶜ ∪ t'ᶜ
xt' : ¬x ∈ t'
yt : ¬y ∈ t
this : Set.Nonempty (s ∩ (tᶜ ∩ t'ᶜ))
⊢ False

tactic: exact this.ne_empty htt'.disjoint_compl_right.inter_eq
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t✝ u v s : Set α
h : IsPreconnected s
t t' : Set α
ht : IsClosed t
ht' : IsClosed t'
htt' : s ⊆ t ∪ t'
x : α
xs : x ∈ s
xt : x ∈ t
y : α
ys : y ∈ s
yt' : y ∈ t'
h' : s ⊆ tᶜ ∪ t'ᶜ
xt' : ¬x ∈ t'
yt : ¬y ∈ t
this : Set.Nonempty (s ∩ (t ∪ t')ᶜ)
⊢ False

tactic: rintro h u v hu hv huv ⟨x, xs, xu⟩ ⟨y, ys, yv⟩
state_before: α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
⊢ (∀ (t t' : Set α),
      IsClosed t →
        IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))) →
    IsPreconnected s

tactic: rw [← not_disjoint_iff_nonempty_inter, ← subset_compl_iff_disjoint_right, compl_inter]
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
⊢ Set.Nonempty (s ∩ (u ∩ v))

tactic: intro h'
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
⊢ ¬s ⊆ uᶜ ∪ vᶜ

tactic: have xv : x ∉ v := (h' xs).elim (absurd xu) id
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
h' : s ⊆ uᶜ ∪ vᶜ
⊢ False

tactic: have yu : y ∉ u := (h' ys).elim id (absurd yv)
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
h' : s ⊆ uᶜ ∪ vᶜ
xv : ¬x ∈ v
⊢ False

tactic: have := h _ _ hu.isClosed_compl hv.isClosed_compl h' ⟨y, ys, yu⟩ ⟨x, xs, xv⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
h' : s ⊆ uᶜ ∪ vᶜ
xv : ¬x ∈ v
yu : ¬y ∈ u
⊢ False

tactic: rw [← compl_union] at this
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
h' : s ⊆ uᶜ ∪ vᶜ
xv : ¬x ∈ v
yu : ¬y ∈ u
this : Set.Nonempty (s ∩ (uᶜ ∩ vᶜ))
⊢ False

tactic: exact this.ne_empty huv.disjoint_compl_right.inter_eq
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
ι : Type ?u.23251
π : ι → Type ?u.23256
inst✝ : TopologicalSpace α
s✝ t u✝ v✝ s : Set α
h :
  ∀ (t t' : Set α),
    IsClosed t → IsClosed t' → s ⊆ t ∪ t' → Set.Nonempty (s ∩ t) → Set.Nonempty (s ∩ t') → Set.Nonempty (s ∩ (t ∩ t'))
u v : Set α
hu : IsOpen u
hv : IsOpen v
huv : s ⊆ u ∪ v
x : α
xs : x ∈ s
xu : x ∈ u
y : α
ys : y ∈ s
yv : y ∈ v
h' : s ⊆ uᶜ ∪ vᶜ
xv : ¬x ∈ v
yu : ¬y ∈ u
this : Set.Nonempty (s ∩ (u ∪ v)ᶜ)
⊢ False