Ultrametric spaces #
This file defines ultrametric spaces, implemented as a mixin on the Dist
,
so that it can apply on pseudometric spaces as well.
Main definitions #
IsUltrametricDist X
: Annotatesdist : X → X → ℝ
as respecting the ultrametric inequality ofdist(x, z) ≤ max {dist(x,y), dist(y,z)}
Implementation details #
The mixin could have been defined as a hypothesis to be carried around, instead of relying on
typeclass synthesis. However, since we declare a (pseudo)metric space on a type using
typeclass arguments, one can declare the ultrametricity at the same time.
For example, one could say [Norm K] [Fact (IsNonarchimedean (norm : K → ℝ))]
,
The file imports a later file in the hierarchy of pseudometric spaces, since
Metric.isClosed_ball
and Metric.isClosed_sphere
is proven in a later file
using more conceptual results.
TODO: Generalize to ultrametric uniformities
Tags #
ultrametric, nonarchimedean
All triangles are isosceles in an ultrametric space.