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 IsUltrametricDist.dist_triangle_max {X : Type u_2} :
    ∀ {inst : Dist X} [self : IsUltrametricDist X] (x y z : X), dist x z max (dist x y) (dist y z)
    theorem dist_triangle_max {X : Type u_1} [PseudoMetricSpace X] [IsUltrametricDist X] (x : X) (y : X) (z : X) :
    dist x z max (dist x y) (dist y z)
    theorem IsUltrametricDist.dist_eq_max_of_dist_ne_dist {X : Type u_1} [PseudoMetricSpace X] [IsUltrametricDist X] (x : X) (y : X) (z : X) (h : dist x y dist y z) :
    dist x z = max (dist x y) (dist y z)

    All triangles are isosceles in an ultrametric space.

    Equations
    • =
    theorem IsUltrametricDist.ball_eq_of_mem {X : Type u_1} [PseudoMetricSpace X] [IsUltrametricDist X] {x : X} {y : X} {r : } (h : y Metric.ball x r) :