Cookie Consent by Free Privacy Policy Generator METHODS — the three-component fingerprint and the nilpotent-deviation statistic | Igor Moiseev

METHODS — the three-component fingerprint and the nilpotent-deviation statistic

METHODS — the three-component fingerprint and the nilpotent-deviation statistic

Living derivation of the inverse estimator scoped in the blog post _posts/2026-07-15-caustics-to-groups-research-program.md. This is the single source of truth for the fingerprint definitions and the matching statistic; every experiment report cites section numbers here.

All coined symbols are collected in the Glossary at the end.

1. The forward map and the caustic

A sub-Riemannian (SR) structure on a manifold M is a distribution D ⊂ TM (allowed directions) with a metric on it. From a base point q0, the exponential map exp_{q0}: T*_{q0}M → M sends an initial covector p to the endpoint γ_p(1) of the normal geodesic it launches. It is a Lagrangian map: the base projection of the Lagrangian submanifold {(γ_p(1), dγ)} carried by the Hamiltonian flow of H(p) = ½ Σ_i ⟨p, X_i⟩² (the X_i an orthonormal frame of D). The caustic (equivalently the conjugate locus) is the critical-value set of exp_{q0} — where the geodesic front folds and nearby geodesics refocus.

src/heisenberg.py implements this for the Heisenberg group in closed form; src/caustics.py detects the first conjugate time for any geodesic map as the first positive zero of the Jacobian determinant

J(t) = det[ ∂γ/∂θ | ∂γ/∂w | ∂γ/∂t ]                                    (1)

(θ = launch angle, w = vertical momentum). For Heisenberg, J(t) first vanishes at t_c = 2π/|w| because the rotational Jacobi field ∂γ/∂θ = (−y, x, 0) collapses there; this is the golden fact scripts/smoke_test.py regression-locks.

2. The obstruction: ADE universality (why naive detection fails)

By Arnol’d’s classification, a generic Lagrangian caustic exhibits only the universal ADE germs — fold A2, cusp A3, swallowtail A4, umbilic D4. This list is the same for optics, the cosmic web, and the SR exponential of every candidate group. A single local germ carries no information about the group. The estimator must therefore never key on a local germ; it keys on the triple of structure-specific observables below (§3–§5), matched by the deviation statistic of §6.

3. Component 1 — tangent cone / growth vector (via Ball–Box scaling)

Zoom infinitely into an SR structure at q0 and it converges (Gromov–Hausdorff) to its metric tangent cone, a Carnot group classified by its growth vector (n_1, n_2, …), the dimensions of the flag

D ⊂ D + [D,D] ⊂ D + [D,D] + [[D,D],D] ⊂ …                             (2)

generated by iterated Lie brackets. Reference vectors for the candidate list: Heisenberg/SE(2)/SL(2)/SH(2) → (2,3); Engel → (2,3,4); Cartan → (2,3,5).

Estimator (implemented, src/growth.py; results in docs/E0-growth-vector.md). By the Ball–Box theorem, in graded-adapted coordinates each coordinate of homogeneous weight w reaches ~ r^w along geodesics of length r, and the SR ball volume scales as

vol B(q0, r) ~ r^Q ,     Q = Σ_i i · (n_i − n_{i−1})   (n_0 := 0)      (3)

with Q the homogeneous dimension (Heisenberg/SE(2): Q=4; Engel: Q=7; Cartan: Q=10). We estimate the per-coordinate weights directly: shoot unit-speed geodesics with vertical momenta spanning a wide log band, measure each coordinate’s reach (a high quantile of |coord|) versus r, and fit the exponent. The growth vector is n_k = #{coords with weight ≤ k} and Q their sum (metric M1). Two points matter and were forced by the data (E0 §”methodological findings”): momenta must be wide-band (a fixed distribution samples only the w r → 0 regime at small r and returns spurious weights — Heisenberg’s z-weight came out 2.78 instead of 2), and the fit must be noise-floor aware, m(r) = sqrt((a r^w)^2 + b^2), or absolute position noise cliff-collapses recovery. This component fixes the class; it cannot separate groups that share a tangent cone (SE(2) vs. Heisenberg — both (2,3); confirmed aliased in E0), which is what §4 is for.

4. Component 2 — conjugate locus at the pole and its moduli

The full first conjugate locus from q0 — not one germ — carries discriminating structure: its cusp count, its symmetry group, and continuous moduli. For 3D contact structures Agrachev–Barilari classify the left-invariant metric by two differential invariants (χ, κ) with the flat Heisenberg case at χ = κ = 0; the conjugate locus of a generic contact structure is a four-cusped SR astroid (El-Alaoui–Gauthier–Kupka 1996; Agrachev–Charlot–Gauthier– Zakalyukin 2000), and its departure from the symmetric nilpotent reference is governed by (χ, κ). The estimator extracts cusp count and symmetry directly from the sampled locus and regresses (χ̂, κ̂) from its shape (metric M3).

Correction logged for the blog figure. For the flat Heisenberg model specifically, the first conjugate locus degenerates onto the z-axis (§1: the whole θ-circle collapses to a point), rather than being a non-degenerate astroid. The astroid is the generic contact caustic; Heisenberg is the maximally degenerate limit. The Part 1 figure labels its astroid “schematic”, but the caption’s phrase “the flat astroid” should be tightened to “the nilpotent reference (degenerate for Heisenberg)”. Flagged here; to fix in the post on the next editorial pass.

5. Component 3 — the abnormal-geodesic stratum (one topological bit)

SR structures admit abnormal extremals arising from the shape of D alone, independent of the metric. Their presence is topological: rank-2 corank-1 (3D contact: Heisenberg, SE(2), SL(2), SH(2)) have no strictly abnormal minimizers; higher-corank structures (Engel, corank 2; Cartan, corank 3) do. The estimator tests for endpoint-map rank deficiency in the observed extremal set (metric M4). This bit is flagged lower-confidence throughout: regularity of abnormal minimizers is an open problem, so M4 never hard-gates a verdict.

6. The matching statistic — nilpotent deviation δ

Let C_obs be the observed first conjugate locus near q0, sampled in SR-normal coordinates (the dilation-adapted coordinates in which the tangent cone is the identity model). Let C_nil(θ) be the conjugate locus of the candidate Carnot model with growth vector θ, in the same coordinates from its known closed form. Define

δ(C_obs, θ) = min_{g ∈ G_θ}  d_H( g · C_obs ,  C_nil(θ) )              (4)

where d_H is the Hausdorff distance between the two sampled sets and G_θ is the group of intrinsic symmetries (anisotropic dilations + rotations) of the nilpotent model — so δ measures shape, not accidental scale or placement. The recovered class is θ̂ = argmin_θ δ, and the residual shape of C_obs after the best nilpotent match carries the moduli (χ, κ) of §4. δ, its distribution over realizations, and the best-vs-second-best gap (the discrimination margin) are metric M2 — the program’s central quantity.

7. Classifier and posterior

The three components map to a posterior over the candidate list (metric M5): the growth vector selects the class; δ and (χ̂, κ̂) place the group within it; the abnormal bit down-weights members inconsistent with it. Scoring is geometric and auditable (no black box); if a learned model is ever used it is trained only on realizations disjoint from the evaluation set. The confusion matrix over held-out realizations is the headline deliverable.

8. Leakage discipline (non-negotiable)

The forward generator (src/*.py model modules) and the inverse estimator share no fitted state. Splits are by realization, never by point. Every free parameter (kernel scales, radius range for the Q fit, Hausdorff sampling density, classifier thresholds) is set on designated calibration realizations only; every reported number comes from held-out realizations. Parameter count is part of the model comparison.

Glossary

References

Arnol’d (1990); Agrachev–Charlot–Gauthier–Zakalyukin, JDCS 6 (2000) 365; El-Alaoui–Gauthier–Kupka, JDCS 2 (1996) 359; Agrachev–Barilari, JDCS 18 (2012) 21 [arXiv:1007.4970]; Sacchelli, SIAM J. Control Optim. 57 (2019) 2362 [arXiv:1812.11340]; Sachkov, ESAIM:COCV 16 (2010) 1018 [arXiv:0903.0727]; Ardentov–Sachkov, RCD 22 (2017) 909 [arXiv:1710.00216]; Ardentov–Hakavuori, ESAIM:COCV 28 (2022) 12 [arXiv:2107.06730]; Agrachev–Barilari–Boscain, A Comprehensive Introduction to Sub-Riemannian Geometry (Cambridge, 2019).