Zulip Chat Archive

Stream: Is there code for X?

Topic: Nonarchimedean norm typeclass


Yakov Pechersky (Jul 03 2024 at 17:25):

Is there anything that specifies that the norm of a NormedAddCommGroup is nonarchimedean? Perhaps something akin to this?

import Mathlib.Analysis.Normed.Group.Basic
import Mathlib.Topology.Algebra.Nonarchimedean.Basic

variable {M : Type*} [NormedAddCommGroup M] [NonarchimedeanAddGroup M]

lemma IsNonarchimedean_norm : IsNonarchimedean (fun x : M  x) := by sorry

Yakov Pechersky (Jul 03 2024 at 17:58):

@Mitchell Lee

Mitchell Lee (Jul 03 2024 at 18:01):

I don't think so

Yakov Pechersky (Jul 03 2024 at 19:39):

It seems that one implies the other (IsNonarchimedean norm -> NonarchimedeanAddGroup), but not the other way around (?). I'm not great at rigid analysis. What is the right generalization / typeclass constraint to make the following make sense?

import Mathlib

variable {M : Type*} [NormedAddCommGroup M] [NonarchimedeanAddGroup M] [ContinuousAdd M]

lemma Finset.norm_sum_le_norm_sup_nonarchimedean {ι : Type*} (f : ι  M) (s : Finset ι)
    (hs : s.Nonempty) :
    ‖∑ i  s, f i  s.sup' hs (f ·‖) := by sorry

Mitchell Lee (Jul 03 2024 at 19:52):

It's equivalent to the hypothesis that the norm is nonarchimedean, but you probably have to define that yourself

Yakov Pechersky (Jul 03 2024 at 19:53):

Right, I'm asking whether there is a typeclass of nonarchimedean normed addgroup that doesn't rely on Fact (IsNonarchimedean ...) or something

Yakov Pechersky (Jul 03 2024 at 19:54):

I thought that NonarchimedeanAddGroup would be it, but I think it's too weak, even in conjunction with NormedAddCommGroup.

Kevin Buzzard (Jul 03 2024 at 19:56):

NB the claim is also true if s is empty, if you regard the codomain of the norm map as being R0\R_{\geq0}, because the supremum of the empty set in this ordering is 00.

Mitchell Lee (Jul 03 2024 at 19:57):

To rephrase: I don't think that the concept of a nonarchimedean normed additive group is in mathlib and it should be added

Yakov Pechersky (Jul 03 2024 at 19:59):

Bikeshed time -- what should the name of this be?

Mitchell Lee (Jul 03 2024 at 20:00):

NonarchimedeanNormedAddCommGroup

Mitchell Lee (Jul 03 2024 at 20:00):

Oh

Mitchell Lee (Jul 03 2024 at 20:01):

Sorry, this actually is in mathlib already; it's called NonarchAddGroupNorm

Mitchell Lee (Jul 03 2024 at 20:01):

Well, there's that, but there doesn't appear to be a typeclass for it

Yakov Pechersky (Jul 03 2024 at 20:05):

It's a structure that has a "class" typeclass for functions of this shape, but not one that say "for the distinguished norm on this NormedAddGroup, that norm is NonarchFoo"

Yakov Pechersky (Jul 03 2024 at 20:05):

Basically, if I wanted this lemma about sums (and in the future, tsums) to hold over Z_p, Q_p, and extensions thereof, what would we want the typeclass argument to look like?

Mitchell Lee (Jul 03 2024 at 20:08):

Yes, you still need to add a typeclass NonarchimedeanNormedAddCommGroup that extends NormedAddCommGroup.

Yakov Pechersky (Jul 04 2024 at 02:17):

Another option is to make a Prop typeclass saying the metric is an ultrametric

Yakov Pechersky (Jul 05 2024 at 00:09):

https://github.com/leanprover-community/mathlib4/pull/14433


Last updated: May 02 2025 at 03:31 UTC