# Documentation

Mathlib.Topology.MetricSpace.GromovHausdorffRealized

# The Gromov-Hausdorff distance is realized #

In this file, we construct of a good coupling between nonempty compact metric spaces, minimizing their Hausdorff distance. This construction is instrumental to study the Gromov-Hausdorff distance between nonempty compact metric spaces.

Given two nonempty compact metric spaces X and Y, we define OptimalGHCoupling X Y as a compact metric space, together with two isometric embeddings optimalGHInjl and optimalGHInjr respectively of X and Y into OptimalGHCoupling X Y. The main property of the optimal coupling is that the Hausdorff distance between X and Y in OptimalGHCoupling X Y is smaller than the corresponding distance in any other coupling. We do not prove completely this fact in this file, but we show a good enough approximation of this fact in hausdorffDist_optimal_le_HD, that will suffice to obtain the full statement once the Gromov-Hausdorff distance is properly defined, in hausdorffDist_optimal.

The key point in the construction is that the set of possible distances coming from isometric embeddings of X and Y in metric spaces is a set of equicontinuous functions. By Arzela-Ascoli, it is compact, and one can find such a distance which is minimal. This distance defines a premetric space structure on X ⊕ Y. The corresponding metric quotient is OptimalGHCoupling X Y.

def GromovHausdorff.candidates (X : Type u) (Y : Type v) [] [] :

The set of functions on X ⊕ Y that are candidates distances to realize the minimum of the Hausdorff distances between X and Y in a coupling.

Instances For
def GromovHausdorff.candidatesBOfCandidates {X : Type u} {Y : Type v} [] [] [] [] (f : ) (fA : ) :

candidates give rise to elements of BoundedContinuousFunctions

Instances For
theorem GromovHausdorff.candidatesBOfCandidates_mem {X : Type u} {Y : Type v} [] [] [] [] (f : ) (fA : ) :
def GromovHausdorff.candidatesBDist (X : Type u) (Y : Type v) [] [] [] [] [] [] :

The distance on X ⊕ Y as a candidate

Instances For
theorem GromovHausdorff.candidatesBDist_mem_candidatesB {X : Type u} {Y : Type v} [] [] [] [] [] [] :
def GromovHausdorff.HD {X : Type u} {Y : Type v} [] [] (f : ) :

We will then choose the candidate minimizing the Hausdorff distance. Except that we are not in a metric space setting, so we need to define our custom version of Hausdorff distance, called HD, and prove its basic properties.

Instances For
theorem GromovHausdorff.HD_below_aux1 {X : Type u} {Y : Type v} [] [] {f : } (C : ) {x : X} :
BddBelow (Set.range fun y => f (, ) + C)
theorem GromovHausdorff.HD_below_aux2 {X : Type u} {Y : Type v} [] [] {f : } (C : ) {y : Y} :
BddBelow (Set.range fun x => f (, ) + C)
theorem GromovHausdorff.HD_candidatesBDist_le {X : Type u} {Y : Type v} [] [] [] [] [] [] :
Metric.diam Set.univ + 1 + Metric.diam Set.univ

Explicit bound on HD (dist). This means that when looking for minimizers it will be sufficient to look for functions with HD(f) bounded by this bound.

def GromovHausdorff.premetricOptimalGHDist (X : Type u) (Y : Type v) [] [] [] [] [] [] :

With the optimal candidate, construct a premetric space structure on X ⊕ Y, on which the predistance is given by the candidate. Then, we will identify points at 0 predistance to obtain a genuine metric space.

Instances For
def GromovHausdorff.OptimalGHCoupling (X : Type u) (Y : Type v) [] [] [] [] [] [] :
Type (max v u)

A metric space which realizes the optimal coupling between X and Y

Instances For
instance GromovHausdorff.instMetricSpaceOptimalGHCoupling (X : Type u) (Y : Type v) [] [] [] [] [] [] :
def GromovHausdorff.optimalGHInjl (X : Type u) (Y : Type v) [] [] [] [] [] [] (x : X) :

Injection of X in the optimal coupling between X and Y

Instances For
theorem GromovHausdorff.isometry_optimalGHInjl (X : Type u) (Y : Type v) [] [] [] [] [] [] :

The injection of X in the optimal coupling between X and Y is an isometry.

def GromovHausdorff.optimalGHInjr (X : Type u) (Y : Type v) [] [] [] [] [] [] (y : Y) :

Injection of Y in the optimal coupling between X and Y

Instances For
theorem GromovHausdorff.isometry_optimalGHInjr (X : Type u) (Y : Type v) [] [] [] [] [] [] :

The injection of Y in the optimal coupling between X and Y is an isometry.

instance GromovHausdorff.compactSpace_optimalGHCoupling (X : Type u) (Y : Type v) [] [] [] [] [] [] :

The optimal coupling between two compact spaces X and Y is still a compact space

theorem GromovHausdorff.hausdorffDist_optimal_le_HD (X : Type u) (Y : Type v) [] [] [] [] [] [] {f : } (h : ) :

For any candidate f, HD(f) is larger than or equal to the Hausdorff distance in the optimal coupling. This follows from the fact that HD of the optimal candidate is exactly the Hausdorff distance in the optimal coupling, although we only prove here the inequality we need.