Zulip Chat Archive

Stream: mathlib4

Topic: Fields complete w.r.t. an absolute value


Michael Stoll (Jan 05 2025 at 19:10):

What is the idiomatic way to say that a Field F is complete with respect to a given v : AbsoluteValue F ℝ?

Andrew Yang (Jan 05 2025 at 21:17):

Maybe CompleteSpace (WithAbs v)?

Matt Diamond (Jan 06 2025 at 00:35):

I can't say if it's idiomatic, but building upon what Andrew said, docs#AbsoluteValue.Completion looks promising

Matt Diamond (Jan 06 2025 at 00:36):

Oh wait, never mind, you're talking about a field that's already complete.

Michael Stoll (Jan 06 2025 at 13:35):

Andrew Yang said:

Maybe CompleteSpace (WithAbs v)?

docs#WithAbs gives me the following poroblem:

import Mathlib.Analysis.Normed.Ring.WithAbs

variable {F : Type*} [Field F] (v w : AbsoluteValue F )

/- fun x => x : WithAbs v → WithAbs v -/
#check (fun x  (x : WithAbs w) : WithAbs v  WithAbs w)

example : WithAbs v = WithAbs w := rfl

I.e., the implementation of docs#WithAbs as a type synonym seems to make it impossible to meaningfully talk about the normed field structures induced by two different absolute values on the same field. E.g., I would like to say that two absolute values induce the same topology; my attempt was IsHomeomorph (fun x ↦ x : WithAbs v → WithAbs w), but this runs into the problem above.

Should docs#WithAbs be refactored to bundle the absolute value instead? Or what would be the "correct" way of solving the problem within the existing framework?

Yaël Dillies (Jan 06 2025 at 13:36):

That's because you didn't use docs#WithAbs.equiv

Michael Stoll (Jan 06 2025 at 13:37):

Where should I use docs#WithAbs.equiv in the above?

Yaël Dillies (Jan 06 2025 at 13:37):

import Mathlib.Analysis.Normed.Ring.WithAbs

variable {F : Type*} [Field F] (v w : AbsoluteValue F )

#check ((WithAbs.equiv w).symm  WithAbs.equiv v : WithAbs v  WithAbs w)

Michael Stoll (Jan 06 2025 at 13:39):

While we are at it: Is there a simple way to get DiscreteTopology Y from DiscreteTopology X and a homeomorphism X \to Y?

Michael Stoll (Jan 06 2025 at 13:39):

@loogle DiscreteTopology, Homeomorph

loogle (Jan 06 2025 at 13:39):

:shrug: nothing found

Michael Stoll (Jan 06 2025 at 13:40):

@loogle DiscreteTopology, IsHomeomorph

loogle (Jan 06 2025 at 13:40):

:shrug: nothing found

Riccardo Brasca (Jan 06 2025 at 13:51):

We have DiscreteTopology.of_continuous_injective

Kevin Buzzard (Jan 06 2025 at 15:33):

Yes, this is the canonical trick: if you want to push something along a bijection, ask first whether it pushes along an injection or surjection.


Last updated: May 02 2025 at 03:31 UTC