The determinant identity

Why this identity matters

The coordinated transform is the load-bearing change of coordinates of the whole control architecture: it maps the generalized velocities to the coordinated velocities , and every reduced equation of motion is a congruence through it. The controller must invert it every step, and the singularity-handling layer watches to know when that inversion is about to blow up.

The house equation sheet (~/Code/Inspection/GNC/equations/current_sota.md) states, at eq 2.6, that the closed-form inverse “exists iff is nonsingular — and go singular together, lower-right block”. The determinant identity is the sharp algebraic fact behind that sentence: not merely that the two matrices lose rank together, but that their determinants are equal, always, at every configuration. All the singular behavior of the transform is carried by its lower-right block. That is why watching the small block suffices — and it is the first thesis fact we push through a proof kernel.

So, what do we actually have to prove? Bear with me — the whole thing turns out to be a story about zeros in the right places.

Sources and provenance

  • Block structure of : (~/Code/Inspection/GNC/equations/current_sota.md) eq 2.4, which transcribes eq 19 of Giordano, Ott & Albu-Schäffer, “Coordinated Control of Spacecraft’s Attitude and End-Effector for Space Robots” (IEEE RA-L 2019), bibkey giordano2019coordinated. Neither published typo of that paper (eq 31 sign, eq 34d block order) touches eq 19.
  • Circumcentroidal Jacobian : same sheet, eq 2.2 (Giordano eq 14).
  • Implementation cross-check: Inspection/GNC/breve_controller.py:527-528 slices Gamma[0:3,0:3] = R_cb, Gamma[6:12,3:6] = G_omega_b, Gamma[6:12,6:] = J_plus — the code’s block layout matches eq 2.4.
  • Block-triangular determinant: Horn & Johnson, Matrix Analysis, 2nd ed., §0.9.4 (partitioned matrices). We prove it from the Leibniz expansion below, so the document stands alone. Its formal counterparts are the Mathlib lemmas Matrix.det_fromBlocks_zero₂₁ and Matrix.det_fromBlocks_zero₁₂.
  • Machine pre-check: exact rational SymPy verification at (~/Code/tasks/streams/leanpunov/scratch/check_det_gamma.py) — five trials over plus a counterfactual with , all passing 2026-07-05.

A notation note before we start. The source sheet writes the cross-product operator as ; per house convention this document writes for the same skew-symmetric matrix.

The precise statement

Throughout, the arm is nonredundant: joints, so that is square and its determinant is defined. (For the transform is and the identity is not even well-posed — the sheet’s §3 makes the same restriction before inverting.)

From eq 2.4, the transform is

with block rows and columns of sizes . Here is the rotation from the base frame to the CoM frame, is the identity, the base-to-CoM vector, the mass-averaged linear Jacobian, the base-angular coupling map, and the circumcentroidal Jacobian.

Theorem (determinant of the coordinated transform). For every configuration, .

Notice what the theorem does not need: nothing about the contents of the top-right blocks and , and nothing about . The only facts that matter are the two zero blocks in the first column, the zero block to the right of , and . This is what makes the identity robust: it survives any modeling change that preserves the block shape.

Scratch work — where the proof comes from

We want to collapse onto the lower-right block. Working backward: if a square matrix has the shape

with and square, then — the block-triangular determinant fact. Can we see that way? Yes, twice over:

  1. Group rows and columns as . The first block column of is zero below , so where collects both top-right blocks and is the lower-right block grid.
  2. Inside the upper-right block is zero — the transposed variant of the same fact applies.

Then , and the first two factors are . The technique is a direct proof; all the content sits in the block-triangular lemma, so we prove that first, from the definition of the determinant, with no invertibility assumption anywhere.

Proof

Lemma (block-triangular determinant). Let , , and , and set . Then , and the same holds for by transposition.

Proof of the lemma. By the Leibniz expansion, the determinant of the matrix is the sum over all permutations of of the signed products . Consider any permutation whose product is nonzero. For every row index , the entry lies in the bottom block row, where only the columns are nonzero; hence for all . Since is a bijection and maps the -element set into itself, it maps that set onto itself, and therefore also maps onto itself. Thus every contributing permutation splits as a pair , where permutes the first indices and the last , with because the two blocks of transpositions do not interact. The sum factors accordingly:

which is precisely . For the lower-triangular variant, apply the result to and use . This completes the lemma.

Proof of the theorem. Group the rows and columns of as . Since the second and third block rows of eq 2.4 both carry in the first block column, the matrix has the shape of the lemma with and , where the top-right plays the role of and is not constrained in any way. By the lemma,

Next, the block carries in its upper-right position, so the lower-triangular variant of the lemma gives

Since is the identity, its determinant is . Since is a rotation matrix — an element of , the special orthogonal group, whose defining conditions are and — its determinant is as well. Chaining the three equalities,

as desired.

Post-proof analysis

The moral. The transform adds no singularities of its own. Its first two block coordinates — CoM translation re-expressed by a rotation, base angular velocity passed through untouched — are volume-preserving; every loss of rank, and indeed the entire determinant, is inherited from the circumcentroidal Jacobian. The controller’s practice of monitoring the small block is not an approximation but an identity.

What the identity does not say. Equal determinants do not mean equal conditioning: and are distinct quantities, and the sheet’s §6 reports their empirical Spearman rank correlation () rather than an equality — singular values do not factor across block-triangular structure the way determinants do. The determinant identity pins the singular set exactly; the conditioning correlation remains an empirical (now well-understood) observation.

Could it be simpler? One could instead factor into elementary block matrices, but that route needs invertibility hypotheses the Leibniz argument avoids. The permutation-splitting proof is the minimal one, and it is exactly the proof Mathlib’s Matrix.det_fromBlocks_zero₂₁ formalizes — the paper proof and the machine proof are the same proof.

Generality. Nothing above used real numbers: the argument holds over any commutative ring, with any block sizes, and with as the only hypothesis on the diagonal blocks besides being the identity. The Lean statement is proved at that generality and then instantiated to the thesis shape ( over ).

The machine seal

Two machine checks accompany this derivation:

  1. SymPy pre-check (house rule — fast, exact, falsifiable): (~/Code/tasks/streams/leanpunov/scratch/check_det_gamma.py) builds the full eq 2.4 structure with exact rational entries, a genuine rational rotation for (composed Pythagorean-triple rotations, exactly), and the eq 2.2 form of . Five trials give exactly over ; a counterfactual with scaled so shifts the result by exactly that factor, confirming the check has teeth.
  2. Lean 4 seal (the external kernel check): DetGamma.lean in this directory states the theorem over an arbitrary commutative ring exactly as in the Generality note and proves it with Matrix.det_fromBlocks_zero₂₁, Matrix.det_fromBlocks_zero₁₂, Matrix.det_one, plus the hypothesis; a corollary instantiates the thesis shape. The #print axioms output is recorded on the stream note (~/Code/tasks/streams/leanpunov.md).