Zulip Chat Archive

Stream: Is there code for X?

Topic: Discrete subset of a topological space


Kevin Buzzard (Sep 03 2025 at 13:55):

Do we have a nice way of saying

( x : X,  U : Set Y, IsOpen U   f⁻¹' U = {x})

where f : X -> Y and Y is a topological space? It's "f is injective and the image is discrete" but we don't seem to have a predicate on subspaces of a topological space to say they get the discrete topology.

Yaël Dillies (Sep 03 2025 at 14:20):

Injective f ∧ DiscreteTopology (range f)?

Kevin Buzzard (Sep 03 2025 at 14:34):

A PR to FLT is using this a lot, e.g. "if e : X' Equiv X then true for f iff true for f composed with e" and "if true for f : X -> Y then true for f^n : X^n -> Y^n" etc. It seems a bit weird to set all this up as an "and". Or maybe it doesn't? Should we be doing this?

Aaron Liu (Sep 03 2025 at 15:37):

if you equip X with the discrete topology (do we have a type synonym for that?) then it's equivalent to saying that f is a docs#Topology.IsEmbedding

Kevin Buzzard (Sep 03 2025 at 20:11):

But in the application X might be the rationals and I don't really want to go around equipping it with the discrete topology

Aaron Liu (Sep 03 2025 at 20:28):

that's why I asked for a type synonym

Yaël Dillies (Sep 03 2025 at 20:29):

Even using a type synonym is probably too much noise

Aaron Liu (Sep 03 2025 at 20:30):

how about TopologicalSpace.induced f inst = ⊥

Aaron Liu (Sep 03 2025 at 20:30):

the induced topology is discrete

Yaël Dillies (Sep 03 2025 at 20:31):

Aaron, we all agree this predicate can be easily written. The question is whether it can easily be used

Aaron Liu (Sep 03 2025 at 20:32):

how do you want to use it

Aaron Liu (Sep 03 2025 at 20:32):

I haven't seen a use yet

Aaron Liu (Sep 03 2025 at 20:33):

maybe if I saw some use cases

Yaël Dillies (Sep 03 2025 at 20:35):

Kevin, in measure theory we have notations like Measure[m] alpha or Measurable[malpha] f, Measurable[malpha, mbeta] f for when m, ... aren't the canonical instances of MeasurableSpace alpha, ... What about an IsEmbedding[talpha] f notation? Then your predicate is IsEmbedding[\bot] f and you can use all the IsEmbedding API (provided you open some PRs to replace [TopologicalSpace alpha] with {t : TopologicalSpace alpha} in a bunch of places, which is what I routinely do in measure land).

Anatole Dedecker (Sep 05 2025 at 13:15):

This does not answer Kevin's question, but mathematically I agree with Aaron that the best way to think of this is as an embedding from X with the discrete topology


Last updated: Dec 20 2025 at 21:32 UTC