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 , because the supremum of the empty set in this ordering is .
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