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

tactic: refine ⟨fun h => ⟨fun x _ y _ => ?_⟩, @TotallySeparatedSpace.totallyDisconnectedSpace _ _⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
⊢ TotallyDisconnectedSpace X ↔ TotallySeparatedSpace X
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
⊢ x ≠ y → (fun x y => ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v) x y

tactic: contrapose!
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
⊢ x ≠ y → (fun x y => ∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v) x y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
⊢ (¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v) → x = y

tactic: intro hyp
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
⊢ (¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v) → x = y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ x = y

tactic: suffices x ∈ connectedComponent y by
  simpa [totallyDisconnectedSpace_iff_connectedComponent_singleton.1 h y, mem_singleton_iff]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ x = y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ x ∈ connectedComponent y

tactic: rw [connectedComponent_eq_iInter_isClopen, mem_iInter]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ x ∈ connectedComponent y
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ ∀ (i : { s // IsClopen s ∧ y ∈ s }), x ∈ ↑i

tactic: rintro ⟨w : Set X, hw : IsClopen w, hy : y ∈ w⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
⊢ ∀ (i : { s // IsClopen s ∧ y ∈ s }), x ∈ ↑i
state_after: case mk.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
w : Set X
hw : IsClopen w
hy : y ∈ w
⊢ x ∈ ↑⟨w, ⋯⟩

tactic: by_contra hx
state_before: case mk.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
w : Set X
hw : IsClopen w
hy : y ∈ w
⊢ x ∈ ↑⟨w, ⋯⟩
state_after: case mk.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
w : Set X
hw : IsClopen w
hy : y ∈ w
hx : x ∉ ↑⟨w, ⋯⟩
⊢ False

tactic: exact hyp ⟨wᶜ, w, hw.1.isOpen_compl, hw.2, hx, hy, (@isCompl_compl _ w _).symm.codisjoint.top_le,
  disjoint_compl_left⟩
state_before: case mk.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
w : Set X
hw : IsClopen w
hy : y ∈ w
hx : x ∉ ↑⟨w, ⋯⟩
⊢ False
state_after: no goals

tactic: simpa [totallyDisconnectedSpace_iff_connectedComponent_singleton.1 h y, mem_singleton_iff]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : T2Space X
inst✝ : CompactSpace X
h : TotallyDisconnectedSpace X
x : X
x✝¹ : x ∈ univ
y : X
x✝ : y ∈ univ
hyp : ¬∃ u v, IsOpen u ∧ IsOpen v ∧ x ∈ u ∧ y ∈ v ∧ univ ⊆ u ∪ v ∧ Disjoint u v
this : x ∈ connectedComponent y
⊢ x = y
state_after: no goals