Discrete quotients of a topological space. #
This file defines the type of discrete quotients of a topological space,
denoted DiscreteQuotient X
. To avoid quantifying over types, we model such
quotients as setoids whose equivalence classes are clopen.
Definitions #
DiscreteQuotient X
is the type of discrete quotients ofX
. It is endowed with a coercion toType
, which is defined as the quotient associated to the setoid in question, and each such quotient is endowed with the discrete topology.- Given
S : DiscreteQuotient X
, the projectionX → S
is denotedS.proj
. - When
X
is compact andS : DiscreteQuotient X
, the spaceS
is endowed with aFintype
instance.
Order structure #
The type DiscreteQuotient X
is endowed with an instance of a SemilatticeInf
with OrderTop
.
The partial ordering A ≤ B
mathematically means that B.proj
factors through A.proj
.
The top element ⊤
is the trivial quotient, meaning that every element of X
is collapsed
to a point. Given h : A ≤ B
, the map A → B
is DiscreteQuotient.ofLE h
.
Whenever X
is a locally connected space, the type DiscreteQuotient X
is also endowed with an
instance of an OrderBot
, where the bot element ⊥
is given by the connectedComponentSetoid
,
i.e., x ~ y
means that x
and y
belong to the same connected component. In particular, if X
is a discrete topological space, then x ~ y
is equivalent (propositionally, not definitionally) to
x = y
.
Given f : C(X, Y)
, we define a predicate DiscreteQuotient.LEComap f A B
for
A : DiscreteQuotient X
and B : DiscreteQuotient Y
, asserting that f
descends to A → B
. If
cond : DiscreteQuotient.LEComap h A B
, the function A → B
is obtained by
DiscreteQuotient.map f cond
.
Theorems #
The two main results proved in this file are:
DiscreteQuotient.eq_of_forall_proj_eq
which states that whenX
is compact, T₂, and totally disconnected, any two elements ofX
are equal if their projections inQ
agree for allQ : DiscreteQuotient X
.DiscreteQuotient.exists_of_compat
which states that whenX
is compact, then any system of elements ofQ
asQ : DiscreteQuotient X
varies, which is compatible with respect toDiscreteQuotient.ofLE
, must arise from some element ofX
.
Remarks #
The constructions in this file will be used to show that any profinite space is a limit of finite discrete spaces.
The type of discrete quotients of a topological space.
- iseqv : Equivalence ⇑self.toSetoid
For every point
x
, the set{ y | Rel x y }
is an open set.
Instances For
Construct a discrete quotient from a clopen set.
Equations
- DiscreteQuotient.ofIsClopen h = { r := fun (x y : X) => x ∈ A ↔ y ∈ A, iseqv := ⋯, isOpen_setOf_rel := ⋯ }
Instances For
Equations
- DiscreteQuotient.instCoeSortType = { coe := fun (S : DiscreteQuotient X) => Quotient S.toSetoid }
Equations
- S.instTopologicalSpaceQuotient = inferInstanceAs (TopologicalSpace (Quotient S.toSetoid))
The projection from X
to the given discrete quotient.
Equations
- S.proj = Quotient.mk''
Instances For
Alias of DiscreteQuotient.proj_isQuotientMap
.
Equations
- DiscreteQuotient.instMin = { min := fun (S₁ S₂ : DiscreteQuotient X) => { toSetoid := S₁.toSetoid ⊓ S₂.toSetoid, isOpen_setOf_rel := ⋯ } }
Equations
- DiscreteQuotient.instSemilatticeInf = Function.Injective.semilatticeInf DiscreteQuotient.toSetoid ⋯ ⋯
Equations
- DiscreteQuotient.instOrderTop = OrderTop.mk ⋯
Equations
- S.inhabitedQuotient = { default := S.proj default }
The quotient by ⊤ : DiscreteQuotient X
is a Subsingleton
.
Comap a discrete quotient along a continuous map.
Equations
- DiscreteQuotient.comap f S = { toSetoid := Setoid.comap (⇑f) S.toSetoid, isOpen_setOf_rel := ⋯ }
Instances For
The map induced by a refinement of a discrete quotient.
Equations
- DiscreteQuotient.ofLE h = Quotient.map' id h
Instances For
When X
is a locally connected space, there is an OrderBot
instance on
DiscreteQuotient X
. The bottom element is given by connectedComponentSetoid X
Equations
- DiscreteQuotient.instOrderBotOfLocallyConnectedSpace = OrderBot.mk ⋯
Given f : C(X, Y)
, DiscreteQuotient.LEComap f A B
is defined as
A ≤ B.comap f
. Mathematically this means that f
descends to a morphism A → B
.
Equations
- DiscreteQuotient.LEComap f A B = (A ≤ DiscreteQuotient.comap f B)
Instances For
Map a discrete quotient along a continuous map.
Equations
- DiscreteQuotient.map f cond = Quotient.map' (⇑f) cond
Instances For
If X
is a compact space, then any discrete quotient of X
is finite.
If X
is a compact space, then we associate to any discrete quotient on X
a finite set of
clopen subsets of X
, given by the fibers of proj
.
TODO: prove that these form a partition of X
Equations
- DiscreteQuotient.finsetClopens X d = (Set.range fun (x : Quotient d.toSetoid) => { carrier := d.proj ⁻¹' {x}, isClopen' := ⋯ }).toFinset
Instances For
A helper lemma to prove that finsetClopens X
is injective, see finsetClopens_inj
.
finsetClopens X
is injective.
The discrete quotients of a compact space are in bijection with a subtype of the type of
Finset (Clopens X)
.
TODO: show that this is precisely those finsets of clopens which form a partition of X
.
Equations
Instances For
Any locally constant function induces a discrete quotient.
Equations
- f.discreteQuotient = { toSetoid := Setoid.comap ⇑f ⊥, isOpen_setOf_rel := ⋯ }
Instances For
The (locally constant) function from the discrete quotient associated to a locally constant function.