Zulip Chat Archive
Stream: Is there code for X?
Topic: second countable topology question
Kevin Buzzard (Dec 11 2025 at 12:51):
Is this true? (surely it is but I can't find it; probably something more general is true):
import Mathlib
theorem Topology.IsClosedEmbedding.secondCountableTopology
{X : Type*} {Y : Type*} [TopologicalSpace X]
[TopologicalSpace Y] [SecondCountableTopology Y] {f : X → Y}
(hf : Topology.IsClosedEmbedding f) :
SecondCountableTopology X := sorry
I want it (or something like it) to prove that the infinite adeles of a number field are second countable; the infinite adeles of a number field are nothing more than for naturals depending on the arithmetic of the field, so the result I actually want is certainly true, but I was trying to prove it in a mathlib-like way, and the analogue of the plan below is how we prove that they're a locally compact space (see docs#AbsoluteValue.Completion.locallyCompactSpace).
import Mathlib
theorem Topology.IsClosedEmbedding.secondCountableTopology
{X : Type*} {Y : Type*} [TopologicalSpace X]
[TopologicalSpace Y] [SecondCountableTopology Y] {f : X → Y}
(hf : Topology.IsClosedEmbedding f) :
SecondCountableTopology X := sorry
theorem AbsoluteValue.Completion.secondCountableTopology
{K : Type*} [Field K] {v : AbsoluteValue K ℝ} {L : Type*}
[NormedField L] [CompleteSpace L] {f : WithAbs v →+* L}
[SecondCountableTopology L] (h : Isometry f) :
SecondCountableTopology v.Completion :=
h.completion_extension.isClosedEmbedding.secondCountableTopology
instance NumberField.InfinitePlace.Completion.secondCountableTopology
{K : Type*} [Field K] (v : InfinitePlace K) :
SecondCountableTopology (v.Completion) :=
AbsoluteValue.Completion.secondCountableTopology v.isometry_embedding
open NumberField in
instance (K : Type*) [Field K] [NumberField K] :
SecondCountableTopology (InfiniteAdeleRing K) :=
inferInstanceAs <| SecondCountableTopology (Π _, _)
Sébastien Gouëzel (Dec 11 2025 at 12:55):
docs#Topology.IsInducing.secondCountableTopology
Sébastien Gouëzel (Dec 11 2025 at 13:03):
(This means that in your snippet you just need to remove the theorem Topology.IsClosedEmbedding.secondCountableTopology, and then everything goes through by the magic of dot notation going to subclasses)
Kevin Buzzard (Dec 11 2025 at 14:22):
Perfect thanks! So one trick when searching is to know the right generality for the statement :-)
William Coram (Dec 11 2025 at 14:28):
To piggy back this discussion, I also need
instance (K : Type*) [Field K] [NumberField K] (D : Type*) [DivisionRing D]
[Algebra K D] [FiniteDimensional K D] :
SecondCountableTopology (D ⊗[K] InfiniteAdeleRing K) :
sorry
Is there an easy immediate way to get this from Kevin's instance of SecondCountableTopology (InfiniteAdeleRing K)?
Kevin Buzzard (Dec 11 2025 at 20:03):
I'm not sure that type even has a topology in mathlib but in FLT it will be the usual trick of picking a basis.
William Coram (Dec 11 2025 at 20:32):
I was hoping I could've avoided doing explicit basis work (i.e. someone had already done the hard work for me). Maybe I could prove a general result saying something like: tensoring a SecondCountableTopology space with a finite module (unsure what generality this could be - certainly need countable basis on the other side too) gives something second countable.
Kevin Buzzard (Dec 11 2025 at 20:56):
Right -- I don't think that work has been done though because it won't be in mathlib because the topology isn't in mathlib. You're right about the general statement but it'll have to be an FLT thing in the same file where we make a -module.
Last updated: Dec 20 2025 at 21:32 UTC