Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 8502571

Browse files
committed
feat(topology/discrete_quotient): add two lemmas (#8464)
Add lemmas `proj_bot_injective` and `proj_bot_bijective`, the former needed for the latter, and the latter needed in LTE. Co-authored-by: Filippo A. E. Nuccio <65080144+faenuccio@users.noreply.github.com>
1 parent d366672 commit 8502571

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/topology/discrete_quotient.lean

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ The type `discrete_quotient X` is endowed with an instance of a `semilattice_inf
3030
The partial ordering `A ≤ B` mathematically means that `B.proj` factors through `A.proj`.
3131
The top element `⊤` is the trivial quotient, meaning that every element of `X` is collapsed
3232
to a point. Given `h : A ≤ B`, the map `A → B` is `discrete_quotient.of_le h`.
33+
Whenever `X` is discrete, the type `discrete_quotient X` is also endowed with an instance of a
34+
`semilattice_inf_bot`, where the bot element `⊥` is `X` itself.
3335
3436
Given `f : X → Y` and `h : continuous f`, we define a predicate `le_comap h A B` for
3537
`A : discrete_quotient X` and `B : discrete_quotient Y`, asserting that `f` descends to `A → B`.
@@ -198,6 +200,23 @@ lemma of_le_proj_apply {A B : discrete_quotient X} (h : A ≤ B) (x : X) :
198200

199201
end of_le
200202

203+
/--
204+
When X is discrete, there is a `semilattice_inf_bot` instance on `discrete_quotient X`
205+
-/
206+
instance [discrete_topology X] : semilattice_inf_bot (discrete_quotient X) :=
207+
{ bot :=
208+
{ rel := (=),
209+
equiv := eq_equivalence,
210+
clopen := λ x, is_clopen_discrete _ },
211+
bot_le := by { rintro S a b (h : a = b), rw h, exact S.refl _ },
212+
..(infer_instance : semilattice_inf _) }
213+
214+
lemma proj_bot_injective [discrete_topology X] :
215+
function.injective (⊥ : discrete_quotient X).proj := λ a b h, quotient.exact' h
216+
217+
lemma proj_bot_bijective [discrete_topology X] :
218+
function.bijective (⊥ : discrete_quotient X).proj := ⟨proj_bot_injective, proj_surjective _⟩
219+
201220
section map
202221

203222
variables {Y : Type*} [topological_space Y] {f : Y → X}

src/topology/subset_properties.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,6 +1175,9 @@ begin
11751175
exact ⟨hx₁, by simpa [not_mem_of_mem_compl hx₂] using cover hx₁⟩ }
11761176
end
11771177

1178+
@[simp] lemma is_clopen_discrete [discrete_topology α] (x : set α) : is_clopen x :=
1179+
⟨is_open_discrete _, is_closed_discrete _⟩
1180+
11781181
end clopen
11791182

11801183
section preirreducible

0 commit comments

Comments
 (0)