Theorem 4.8, p. 22 — with probability ≥ 1 − 𝒩_{δ/8}(𝔽^{cδ})e^{−n¾cδ𝒱_{δ/8}(𝔽^{cδ})} the algorithm outputs as many clusters as f has peaks of prominence ≥ d₂
ProvedPersistClust.Count.theorem_4_8Let be an -dimensional Riemannian manifold, possibly with boundary, with geodesic distance , -dimensional Hausdorff measure and positive strong convexity radius . Let be a tame -Lipschitz probability density with respect to , . Assume the -th persistence diagram of the superlevel-set filtration of is -separated, with . Let be a parameter with
and a threshold in . Draw points i.i.d. according to and run the clustering algorithm on the values , the distances and the parameters . Then the probability that, for some sorting order of line 1, the number of clusters output differs from the number of peaks of of prominence at least is at most
Equivalently, with probability at least the algorithm returns as many clusters as has -prominent peaks, whatever the tie-breaking. Here , and the number of peaks of prominence at least is the total multiplicity of in .
This is the main result of the paper: a guarantee on the number of clusters recovered by persistence-based clustering from i.i.d. samples on a possibly non-compact manifold.
Formalization Note is required because the paper divides by . The probability statement bounds the outer measure of the failure event, with the right-hand side in (, ). The algorithm is the union-find procedure of §3, run on the index set ; the statement quantifies over every sorting permutation. is Mathlib's unnormalized Hausdorff measure, a constant multiple of the normalized one; the theorem is invariant under that rescaling.
import Mathlib import Definitions.Def_PersistClust_Count_Setting import Definitions.Def_PersistClust_Count_Diagram import Definitions.Def_PersistClust_Count_Rips import Definitions.Def_PersistClust_Count_Algorithm open MeasureTheory Bundle open scoped ContDiff Manifold
namespace PersistClust.Count
theorem theorem_4_8
{E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E]
{H : Type*} [TopologicalSpace H] {I : ModelWithCorners ℝ E H}
{X : Type*} [MetricSpace X] [ChartedSpace H X] [IsManifold I ∞ X]
[RiemannianBundle (fun x : X ↦ TangentSpace I x)]
[IsContMDiffRiemannianBundle I ∞ E (fun x : X ↦ TangentSpace I x)]
[IsRiemannianManifold I X] [MeasurableSpace X] [BorelSpace X]
(hconv : 0 < convexityRadius X)
(f : X → ℝ) (c : ℝ) (hc : 0 < c) (hLip : ∀ x y, |f x - f y| ≤ c * dist x y)
(hdens : IsDensity (μH[(Module.finrank ℝ E : ℝ)] : Measure X) f) (htame : IsTame0 f)
(d₁ d₂ : ℝ) (hd₁ : 0 ≤ d₁) (hd : d₁ < d₂) (hsep : IsSeparated (diagram0 f) d₁ d₂)
(δ : ℝ) (hδ : 0 < δ) (hδρ : ENNReal.ofReal δ < convexityRadius X)
(hδc : δ < (d₂ - d₁) / (5 * c))
(τ : ℝ) (hτ₁ : d₁ + 2 * c * δ < τ) (hτ₂ : τ < d₂ - 3 * c * δ) (n : ℕ) :
sampleMeasure (μH[(Module.finrank ℝ E : ℝ)] : Measure X) n f
{pts | ¬ ∀ σ : Fin n ≃ Fin n, IsSortOrder (f ∘ pts) σ →
(numClusters (f ∘ pts) (fun i j => dist (pts i) (pts j)) δ τ σ : ℕ∞)
= prominentCount (diagram0 f) d₂}
≤ (coveringNumber (δ / 8) (superlevel f (c * δ)) : ENNReal)
* expBound (n * (3 / 4 * c * δ))
(minBallMeasure (μH[(Module.finrank ℝ E : ℝ)] : Measure X) (δ / 8)
(superlevel f (c * δ))) := by sorry
end PersistClust.Count
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.