Skip to content

Commit 09a71ca

Browse files
committed
feat: nontriviality of SeparationQuotient iff the topology is nontrivial (#28102)
This contains the mathematical content of [#Is there code for X? > Typeclass for nontrivial topology @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Typeclass.20for.20nontrivial.20topology/near/533192558), without yet committing to any designated API to make it easier to use. Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
1 parent 59d5f66 commit 09a71ca

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

Mathlib/Topology/Inseparable.lean

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,12 @@ theorem continuous_mk : Continuous (mk : X → SeparationQuotient X) :=
556556
theorem mk_eq_mk : mk x = mk y ↔ (x ~ᵢ y) :=
557557
Quotient.eq''
558558

559+
protected theorem «forall» {P : SeparationQuotient X → Prop} : (∀ x, P x) ↔ ∀ x, P (.mk x) :=
560+
Quotient.forall
561+
562+
protected theorem «exists» {P : SeparationQuotient X → Prop} : (∃ x, P x) ↔ ∃ x, P (.mk x) :=
563+
Quotient.exists
564+
559565
theorem surjective_mk : Surjective (mk : X → SeparationQuotient X) :=
560566
Quot.mk_surjective
561567

@@ -572,6 +578,19 @@ instance [Inhabited X] : Inhabited (SeparationQuotient X) :=
572578
instance [Subsingleton X] : Subsingleton (SeparationQuotient X) :=
573579
surjective_mk.subsingleton
574580

581+
@[simp]
582+
theorem inseparableSetoid_eq_top_iff {t : TopologicalSpace α} :
583+
inseparableSetoid α = ⊤ ↔ t = ⊤ :=
584+
Setoid.eq_top_iff.trans TopologicalSpace.eq_top_iff_forall_inseparable.symm
585+
586+
theorem subsingleton_iff {t : TopologicalSpace α} :
587+
Subsingleton (SeparationQuotient α) ↔ t = ⊤ :=
588+
Quotient.subsingleton_iff.trans inseparableSetoid_eq_top_iff
589+
590+
theorem nontrivial_iff {t : TopologicalSpace α} :
591+
Nontrivial (SeparationQuotient α) ↔ t ≠ ⊤ := by
592+
simpa only [not_subsingleton_iff_nontrivial] using subsingleton_iff.not
593+
575594
@[to_additive] instance [One X] : One (SeparationQuotient X) := ⟨mk 1
576595

577596
@[to_additive (attr := simp)] theorem mk_one [One X] : mk (1 : X) = 1 := rfl

Mathlib/Topology/Order.lean

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,21 @@ theorem isOpen_sup {t₁ t₂ : TopologicalSpace α} {s : Set α} :
618618
IsOpen[t₁ ⊔ t₂] s ↔ IsOpen[t₁] s ∧ IsOpen[t₂] s :=
619619
Iff.rfl
620620

621+
/-- In the trivial topology no points are separable.
622+
623+
The corresponding `bot` lemma is handled more generally by `inseparable_iff_eq`. -/
624+
@[simp]
625+
theorem inseparable_top (x y : α) : @Inseparable α ⊤ x y := nhds_top.trans nhds_top.symm
626+
627+
theorem TopologicalSpace.eq_top_iff_forall_inseparable {t : TopologicalSpace α} :
628+
t = ⊤ ↔ (∀ x y : α, Inseparable x y) where
629+
mp h := h ▸ inseparable_top
630+
mpr h := ext_nhds fun x => nhds_top ▸ top_unique fun _ hs a => mem_of_mem_nhds <| h x a ▸ hs
631+
632+
theorem TopologicalSpace.ne_top_iff_exists_not_inseparable {t : TopologicalSpace α} :
633+
t ≠ ⊤ ↔ ∃ x y : α, ¬Inseparable x y := by
634+
simpa using eq_top_iff_forall_inseparable.not
635+
621636
open TopologicalSpace
622637

623638
variable {γ : Type*} {f : α → β} {ι : Sort*}

0 commit comments

Comments
 (0)