The Christoffel choice transports through the congruence — TARGET 7

Seal

Rung rung-2 · Status sealed · #print axioms verbatim in The machine seal. Discharges the Christoffel-factorization hypothesis hM that passivity_identity consumed — “automatically holds” is now machine-checked. Two statement-level boundaries stay applier-side (the product-rule identification of and the block extraction) — see interfaces.
Links: module index · interface ledger · related passivity_identity, coupled_dissipation · sources giordano2019coordinated, ott2008cartesian · pin pin_passivity_transport.py

Sealed theorems

congruence_transport

Over any commutative ring: symmetric and give the transported factorization .

transported_skew

Consequently is skew-symmetric.

transported_passivity_identity

Over : — Giordano eq 23 for the transformed dynamics, produced rather than assumed.

Thesis role — closing the passivity interface

The sealed Passivity.lean proved Giordano’s eq 23 (the house sheet’s eq 3.5) conditionally: given the factorization , the velocity quadratic form vanishes. That factorization was a consumed hypothesis — the reusable ott2008 Lemma 3.2 shape. What the framing paper never exhibits, and what the post-proof note of (~/Code/vault/lean/passivity_identity.md) flagged as the open pipeline check, is why the transformed dynamics actually satisfy that factorization. Giordano only says eq 23 “automatically holds … an advantage of the machinery (19), (20), (21)”. This module supplies the missing construction: it is a theorem that the congruence machinery transports the Christoffel factorization from the original coordinates to the transformed ones. “Automatically holds” is now machine-checked, and the hdec target after this lane inherits a discharged, not assumed, passivity property.

Sources and provenance

  • current_sota §3 (~/Code/Inspection/GNC/equations/current_sota.md), eqs 3.1–3.2: the transformed inertia and Coriolis , with the sheet’s own note that the correction “is what makes more than a naive congruence and lets the passivity property (3.5) hold”. Eq 3.5 is the target quadratic form.
  • ott2008cartesian Lemma 3.2: skew-symmetry of via the Christoffel choice (its eq 3.11). ott2008’s operational-space map is the same congruence shape with ; the circumcentroidal generalizes .
  • Composition anchor: the sealed Leanpunov.mdot_sub_two_coriolis_skew and Leanpunov.passivity_identity (Passivity.lean), reused verbatim.

The precise statement

Let be the (time-varying, invertible) transform. Write for its rate. The transformed matrices, current_sota eqs 3.1–3.2 rewritten in (SymPy pin (C) certifies the rewrite):

The product rule gives the transported inertia rate

Theorem (congruence transport). Let be symmetric () and let the original system obey the Christoffel choice . Then — the transported factorization. Consequently is skew-symmetric and for every (Giordano eq 23 for the transformed dynamics).

Two hypotheses, and only two: symmetry of the inertia, and the Christoffel factorization in the original coordinates. Neither positive-definiteness nor any property of beyond appearing in the product rule is used — the transport is purely algebraic.

Proof

Expand . The transpose distributes and reverses products:

Use the symmetry in the last term, then collect:

Now substitute the Christoffel factorization into the middle group:

which is exactly the product-rule expression.

The skew and eq-23 corollaries are then one application each of the sealed lemmas: is a matrix-minus-its-transpose (skew), and a real skew quadratic form vanishes.

Why the symmetry hypothesis is load-bearing

Drop and repeat the collection: the term no longer merges with , and the residual survives. SymPy pin (B) exhibits exactly this residual. So the transport is a joint property of the Christoffel choice and the symmetry of the inertia matrix — both physical facts, neither decorative. This is the precise sense in which Giordano’s “advantage of the machinery” is real: the congruence preserves the factorization only because is a genuine (symmetric) inertia.

SymPy pin

pin_passivity_transport.py in this directory, run under new-pin-env, all pins PASS:

  • (A) identity — symbolic with every entry an independent symbol, symmetric, : residual matrix is exactly zero; plus a 20000-sample random hammer (max residual ).
  • (B) necessity — with generic non-symmetric the residual is nonzero and equals , pinning symmetry as necessary and sufficient.
  • (C) house correspondence — with (so ), our equals the house eq-3.2 form symbolically. This certifies that the abstract -lemma is the circumcentroidal construction.

Interfaces left named (honest boundary)

The seal is the finite-dimensional algebra of the transport. Two pieces of scaffolding are supplied at the statement level rather than proved, by the same IsSolutionTo precedent used across L3/L4:

  1. The product rule. The lemma’s left-hand side is the expression ; it is named as and its identification with along a trajectory is standard calculus, deliberately not re-derived from Mathlib’s HasDerivAt. The theorem’s content is the algebraic cancellation, which is what makes the Christoffel choice transport — not the product rule, which holds for any smooth matrix product.
  2. The identification and the 9×9 block extraction. The abstract lemma holds for any ; pin (C) certifies gives the house . The reduced are the lower-right block of the ; since with constant total mass, the bottom-right block of is precisely , and specializing eq 23 to recovers the reduced eq 3.5. This block bookkeeping is left applier-side; the reusable mathematical content is the full-system transport proved here.

Neither interface substitutes weaker math for the theorem’s content — they are the same boundary the campaign draws everywhere between algebra (sealed) and coordinate/analytic plumbing (named).

The machine seal

PassivityTransport.lean in this directory. Public theorems: congruence_transport (CommRing), transported_skew (CommRing), transported_passivity_identity (ℝ). Verbatim #print axioms (build 2026-07-06):

info: 'Leanpunov.congruence_transport' depends on axioms: [propext, Classical.choice, Quot.sound]
info: 'Leanpunov.transported_skew' depends on axioms: [propext, Classical.choice, Quot.sound]
info: 'Leanpunov.transported_passivity_identity' depends on axioms: [propext, Classical.choice, Quot.sound]

Build copy at ~/lean/leanpunov/Leanpunov/PassivityTransport.lean; this directory’s copy is the tracked source of truth.

Cost feel

Below an L2-scale push. One SymPy pin (one correction to a residual-formula typo, math itself never in doubt), one Lean file compiling on the first attempt, one linter-silence follow-up matching existing precedent. The algebra is short; the leverage is that it discharges the single hypothesis the whole L3 passivity chain rested on.