The Christoffel choice transports through the congruence — TARGET 7
Seal
Rung rung-2 · Status sealed ·
#print axiomsverbatim in The machine seal. Discharges the Christoffel-factorization hypothesishMthat 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 · pinpin_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_skewandLeanpunov.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:
- 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. - 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.