Documentation

Mathlib.Topology.MetricSpace.Ultra.Basic

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 #

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

class IsUltrametricDist (X : Type u_2) [Dist X] :

The dist : X → X → ℝ respects the ultrametric inequality of dist(x, z) ≤ max (dist(x,y)) (dist(y,z)).

Instances
    theorem dist_triangle_max {X : Type u_1} [PseudoMetricSpace X] [IsUltrametricDist X] (x y z : X) :
    dist x z dist x y dist y z
    theorem IsUltrametricDist.dist_eq_max_of_dist_ne_dist {X : Type u_1} [PseudoMetricSpace X] [IsUltrametricDist X] (x y z : X) (h : dist x y dist y z) :
    dist x z = dist x y dist y z

    All triangles are isosceles in an ultrametric space.