Theorem: subsingleton_of_disjoint_isClopen
File: Mathlib/Topology/Connected/Clopen.lean

Proof steps:
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_nonempty : ∀ (i : ι), (s i).Nonempty
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
⊢ Subsingleton ι
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
⊢ Subsingleton ι
tactic: replace h_nonempty : ∀ i, s i ≠ ∅ := by intro i; rw [← nonempty_iff_ne_empty]; exact h_nonempty i
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
⊢ Subsingleton ι
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
⊢ ¬Nontrivial ι
tactic: rw [← not_nontrivial_iff_subsingleton]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
⊢ ¬Nontrivial ι
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
contra : Nontrivial ι
⊢ False
tactic: by_contra contra
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
contra : Nontrivial ι
⊢ False
state_after: case mk.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : i ≠ j
⊢ False
tactic: obtain ⟨i, j, h_ne⟩ := contra
state_before: case mk.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : i ≠ j
⊢ False
state_after: case mk.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : s i ∩ s j = ∅
⊢ False
tactic: replace h_ne : s i ∩ s j = ∅ := by
    simpa only [← bot_eq_empty, eq_bot_iff, ← inf_eq_inter, ← disjoint_iff_inf_le] using h_disj h_ne
state_before: case mk.intro.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : s i ∩ s j = ∅
⊢ False
state_after: case mk.intro.intro.inl
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : s i ∩ s j = ∅
hi : s i = ∅
⊢ False

case mk.intro.intro.inr
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : PreconnectedSpace α
s : ι → Set α
h_disj : Pairwise (Disjoint on s)
h_clopen : ∀ (i : ι), IsClopen (s i)
h_nonempty : ∀ (i : ι), s i ≠ ∅
i j : ι
h_ne : s i ∩ s j = ∅
hi : s i = univ
⊢ False
tactic: cases' isClopen_iff.mp (h_clopen i) with hi hi