Theorem: connectedComponent_eq_iInter_clopen
File: Mathlib/Topology/Separation.lean

tactic: apply Subset.antisymm connectedComponent_subset_iInter_clopen
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
⊢ connectedComponent x = ⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z

tactic: refine' IsPreconnected.subset_connectedComponent _ (mem_iInter.2 fun Z => Z.2.2)
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ connectedComponent x

tactic: have hs : @IsClosed α _ (⋂ Z : { Z : Set α // IsClopen Z ∧ x ∈ Z }, Z) :=
  isClosed_iInter fun Z => Z.2.1.2
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
⊢ IsPreconnected (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)

tactic: rw [isPreconnected_iff_subset_of_fully_disjoint_closed hs]
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
⊢ IsPreconnected (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)

tactic: intro a b ha hb hab ab_disj
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
⊢ ∀ (u v : Set α),
    IsClosed u →
      IsClosed v →
        (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ u ∪ v →
          Disjoint u v → (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ u ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ v

tactic: haveI := @normalOfCompactT2 α _ _ _
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: rcases normal_separation ha hb ab_disj with ⟨u, v, hu, hv, hau, hbv, huv⟩
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: obtain ⟨Z, H⟩ : ∃ Z : Set α, IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v
state_before: case intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: have H1 := (hu.union hv).isClosed_compl.isCompact.inter_iInter_nonempty
  (fun Z : { Z : Set α // IsClopen Z ∧ x ∈ Z } => Z) fun Z => Z.2.1.2
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
⊢ ∃ Z, IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v

tactic: rw [← not_disjoint_iff_nonempty_inter, imp_not_comm, not_forall] at H1
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  (∀ (t : Finset { Z // IsClopen Z ∧ x ∈ Z }),
      Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ t), (fun Z => ↑Z) i)) →
    Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i)
⊢ ∃ Z, IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v

tactic: cases' H1 (disjoint_compl_left_iff_subset.2 <| hab.trans <| union_subset_union hau hbv)
  with Zi H2
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  Disjoint ((u ∪ v)ᶜ) (⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i) →
    ∃ x_1, ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ x_1), (fun Z => ↑Z) i)
⊢ ∃ Z, IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v

tactic: refine' ⟨⋂ U ∈ Zi, Subtype.val U, _, _, _⟩
state_before: case intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  Disjoint ((u ∪ v)ᶜ) (⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i) →
    ∃ x_1, ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ x_1), (fun Z => ↑Z) i)
Zi : Finset { Z // IsClopen Z ∧ x ∈ Z }
H2 : ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ Zi), (fun Z => ↑Z) i)
⊢ ∃ Z, IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v

tactic: exact isClopen_biInter_finset fun Z _ => Z.2.1
state_before: case intro.refine'_1
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  Disjoint ((u ∪ v)ᶜ) (⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i) →
    ∃ x_1, ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ x_1), (fun Z => ↑Z) i)
Zi : Finset { Z // IsClopen Z ∧ x ∈ Z }
H2 : ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ Zi), (fun Z => ↑Z) i)
⊢ IsClopen (⋂ (U : { Z // IsClopen Z ∧ x ∈ Z }) (_ : U ∈ Zi), ↑U)

tactic: exact mem_iInter₂.2 fun Z _ => Z.2.2
state_before: case intro.refine'_2
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  Disjoint ((u ∪ v)ᶜ) (⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i) →
    ∃ x_1, ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ x_1), (fun Z => ↑Z) i)
Zi : Finset { Z // IsClopen Z ∧ x ∈ Z }
H2 : ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ Zi), (fun Z => ↑Z) i)
⊢ x ∈ ⋂ (U : { Z // IsClopen Z ∧ x ∈ Z }) (_ : U ∈ Zi), ↑U

tactic: rwa [← disjoint_compl_left_iff_subset, disjoint_iff_inter_eq_empty,
  ← not_nonempty_iff_eq_empty]
state_before: case intro.refine'_3
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
H1 :
  Disjoint ((u ∪ v)ᶜ) (⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }), (fun Z => ↑Z) i) →
    ∃ x_1, ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ x_1), (fun Z => ↑Z) i)
Zi : Finset { Z // IsClopen Z ∧ x ∈ Z }
H2 : ¬Set.Nonempty ((u ∪ v)ᶜ ∩ ⋂ (i : { Z // IsClopen Z ∧ x ∈ Z }) (_ : i ∈ Zi), (fun Z => ↑Z) i)
⊢ (⋂ (U : { Z // IsClopen Z ∧ x ∈ Z }) (_ : U ∈ Zi), ↑U) ⊆ u ∪ v

tactic: have H1 := isClopen_inter_of_disjoint_cover_clopen H.1 H.2.2 hu hv huv
state_before: case intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: rw [union_comm] at H
state_before: case intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ u ∪ v
H1 : IsClopen (Z ∩ u)
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: have H2 := isClopen_inter_of_disjoint_cover_clopen H.1 H.2.2 hv hu huv.symm
state_before: case intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: by_cases hxu : x ∈ u <;> [left; right]
state_before: case intro.intro.intro.intro.intro.intro.intro
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∨ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: suffices (⋂ Z : { Z : Set α // IsClopen Z ∧ x ∈ Z }, ↑Z) ⊆ u
  from Disjoint.left_le_of_le_sup_right hab (huv.mono this hbv)
state_before: case pos.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : x ∈ u
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a

tactic: apply Subset.trans _ (inter_subset_right Z u)
state_before: case pos.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : x ∈ u
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ u

tactic: exact iInter_subset (fun Z : { Z : Set α // IsClopen Z ∧ x ∈ Z } => Z.1)
  ⟨Z ∩ u, H1, mem_inter H.2.1 hxu⟩
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : x ∈ u
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ Z ∩ u

tactic: have h1 : x ∈ v :=
  (hab.trans (union_subset_union hau hbv) (mem_iInter.2 fun i => i.2.2)).resolve_left hxu
state_before: case neg.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : ¬x ∈ u
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: suffices (⋂ Z : { Z : Set α // IsClopen Z ∧ x ∈ Z }, ↑Z) ⊆ v
  from (huv.symm.mono this hau).left_le_of_le_sup_left hab
state_before: case neg.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : ¬x ∈ u
h1 : x ∈ v
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ b

tactic: refine Subset.trans ?_ (inter_subset_right Z v)
state_before: case neg.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : ¬x ∈ u
h1 : x ∈ v
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ v

tactic: exact iInter_subset (fun Z : { Z : Set α // IsClopen Z ∧ x ∈ Z } => Z.1)
  ⟨Z ∩ v, H2, mem_inter H.2.1 h1⟩
state_before: case neg.h
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
inst✝ : CompactSpace α
x : α
hs : IsClosed (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z)
a b : Set α
ha : IsClosed a
hb : IsClosed b
hab : (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ a ∪ b
ab_disj : Disjoint a b
this : NormalSpace α
u v : Set α
hu : IsOpen u
hv : IsOpen v
hau : a ⊆ u
hbv : b ⊆ v
huv : Disjoint u v
Z : Set α
H : IsClopen Z ∧ x ∈ Z ∧ Z ⊆ v ∪ u
H1 : IsClopen (Z ∩ u)
H2 : IsClopen (Z ∩ v)
hxu : ¬x ∈ u
h1 : x ∈ v
⊢ (⋂ (Z : { Z // IsClopen Z ∧ x ∈ Z }), ↑Z) ⊆ Z ∩ v