The CoM tracking loop is globally asymptotically stable — TARGET 1

Seal

Rung rung-1 · Status interfaced — axiom-clean (#print axioms verbatim in 8. The machine seal; full-integration build 2640 jobs), resting on the named interfaces IsSolutionTo, hcpt, and the operator hypotheses hMsa/hKsa/hMinv/hDnn/hDdef/hKdef (theorems for concrete SPD blocks; matrix corollary is a boarded follow-up) — see interfaces. Public helper: comEnergy_differentiable; definitions ComState, comField, comEnergy.
Links: module index · interface ledger · related lasalle_invariance, reduction_cascade, block_lyapunov, coupled_collapse, coupled_field · source giordano2019coordinated · pin pin_com_lasalle.py

Sealed theorems

com_dissipation

The energy-dissipation identity along the CoM loop, proved outright.

com_decrease

The negative-semidefinite decrease LaSalle consumes.

com_collapse

The LaSalle collapse, proved (not interfaced): any invariant set with sits inside .

com_gas

The deliverable — every precompact orbit of the CoM driver converges to the origin, discharging Corollary 12’s cascade input.

What this seals, in one paragraph

The framing paper’s cascade proof (Giordano 2019 RA-L, Prop IV.1 / Corollary 12) needs, as its first step, that the autonomous CoM-error driver is a globally asymptotically stable equilibrium — Corollary 12 condition ” is a (globally) asymptotically stable equilibrium of ”. That driver is the homogeneous damped second-order loop

(current_sota.md §4.3 line 402 / eq 4.9; Giordano 2019 eq 34a). Until now it entered the cascade as a hypothesis. This module proves it outright from the sealed L3 LaSalle engine, discharging that cascade input. Because the field is fully explicit and linear, the LaSalle collapse — the largest invariant set inside is the origin — is proved, not interfaced (contrast propIV1_tendsto’s hzero, which had to assume the analogous collapse for the un-formalized nonlinear field).

The module is (/Code/vault/lean/ComLaSalle.lean), build copy ~/lean/leanpunov/Leanpunov/ComLaSalle.lean. SymPy pin (dissipation identity + collapse injectivity): (/Code/vault/lean/pin_com_lasalle.py).

1. The mathematical object

Work on a real inner-product space (the CoM space; in the thesis, but nothing here needs a dimension). The state is the pair with . The four operators are continuous linear maps . The first-order form of the loop is the field

and the storage function is the mechanical energy (eq 37 / eq 4.15, CoM block)

We use Mathlib’s Flow ℝ (H × H) and the L3 interface IsSolutionTo ϕ f (“every orbit of solves orbit-wise”), exactly as in LaSalle.lean.

2. The energy-dissipation identity — com_dissipation (proved outright)

Theorem. For symmetric and ,

Derivation. (symmetry of makes the collapse exact), so

The first equality uses (self-adjointness of plus ); the cross terms cancel because (symmetry of ). SymPy-pinned two ways in pin_com_lasalle.py: symbolically on fully symbolic (simplify returns exactly ), and numerically on random SPD blocks up to (residual ).

Lean route. V splits as . Each block’s Fréchet derivative is Mathlib’s fderiv_inner_apply (derivative of ) composed through the continuous projections (hasFDerivAt_fst/​snd) and the continuous operators ; fderiv_add / fderiv_const_mul assemble them. The resulting four inner products are reduced with symmetry (hMsa,hKsa), (hMinv), real_inner_comm, inner_add_right, inner_neg_*; a final ring cancels the crossed .

Corollary com_decrease. , since (hDnn). This is the negative-semidefinite decrease LaSalle consumes — flat on , which is exactly why the bare comparison/Grönwall layer (L2) cannot finish and the invariance engine is needed.

3. The LaSalle collapse — com_collapse (the headline, proved outright)

Theorem. Let be any set invariant under the flow with on . Then .

This is the “largest invariant set” step. The zero set of the dissipation is , which is not a single point — the collapse needs invariance, and this is precisely the content L3’s lasalle supplies (its ω-limit output is invariant) and that propIV1_tendsto discards (it consumed only the zero-set containment). Here we use invariance in full.

Derivation. Take .

  1. Velocity vanishes on . For every , com_dissipation turns into , and positive-definite (hDdef) gives . In particular , and along the whole orbit through (which stays in by invariance) the velocity component is identically .

  2. Acceleration vanishes. The map is therefore the constant , so its derivative at is . But IsSolutionTo plus the chain rule through compute that same derivative as . Uniqueness of derivatives (HasDerivAt.unique) gives .

  3. Position vanishes. With , . So ; is injective (it has as a left inverse, hMinv), so ; injective (hKdef, from ) gives .

Hence .

Step 2 mirrors the derivative-uniqueness argument in the sealed lasalle proof (the -on-ω-limit conjunct), reused here on the velocity projection instead of on .

4. Global asymptotic stability — com_gas (the deliverable)

Theorem. For a flow solving with precompact orbit closure, every trajectory converges to the origin:

Proof. com_decrease gives everywhere and comEnergy_differentiable gives , so the sealed lasalle (L3) returns a nonempty invariant ω-limit set on which . com_collapse places that set inside , i.e. . The sealed reduction engine tendsto_infDist_of_omegaLimit_subset (L4a) then gives ; since (Metric.infDist_singleton), this is .

This is the driver’s global attractivity — the Corollary 12 input — proved rather than assumed. (Global attractivity is the operative half; Lyapunov stability of the origin is the coercivity clause discussed in §5. “Asymptotic stability” in the paper’s cascade sense is the attractivity-to-the-invariant-set statement com_gas delivers.)

5. Interfaces, honestly (ponytail)

Proved outright: the dissipation identity (§2), the decrease, the LaSalle collapse (§3), and the GAS assembly (§4). The following are named hypotheses, never sorry — the L3/L4a IsSolutionTo/hStable precedent:

  • IsSolutionTo ϕ f — existence of a flow solving the ODE. Picard–Lindelöf / completeness on the region of interest stays applier-side, exactly as in LaSalle.lean §sub-phase (i).
  • hcpt — precompactness of the (two-sided) orbit closure. This is the same hypothesis the sealed lasalle and propIV1_tendsto already carry, and it is kept here for consistency. Note the honest subtlety: coercivity of bounds the forward orbit only ( is nonincreasing forward, and with — this is exactly the sealed Leanpunov.blockLyap_coercive). Mathlib’s Flow ℝ is two-sided, and a stable system’s backward orbit is unbounded, so full two-sided precompactness is genuinely more than forward coercivity yields. The clean discharge is a semiflow refactor of the L3 engine (forward-only ω-limits), after which blockLyap_coercive closes hcpt outright; that refactor is out of this target’s scope. So hcpt remains the established interface, and blockLyap_coercive is cited as the forward-boundedness witness.
  • Operator positive-definiteness/symmetryhMsa,hKsa (symmetry), hMinv ( invertible), hDnn/hDdef (, definite), hKdef ( injective). For a concrete symmetric positive-definite matrix these are not assumptions but theorems, discharged by the sealed campaign: Leanpunov.le_dotProduct_mulVec (Rayleigh) gives ; Matrix.PosDef definiteness gives hDdef; PosDef.isUnit + mulVec_injective_of_isUnit (the StiffnessResidual pattern) gives hKdef; and is M.nonsingularInverse. The abstract operator statement is stated on an inner-product space because that is where the derivative of the quadratic form is clean (fderiv_inner_apply); a symmetric PosDef matrix on EuclideanSpace is the intended instance, and a matrix-corollary that mechanically discharges the six hypotheses is a bounded follow-up (it needs only the Matrix.toEuclideanCLM bridge already used in Rayleigh.quadSandwich_matrix).

6. Mathlib stones used

HasFDerivAt.inner / fderiv_inner_apply (derivative of an inner product), hasFDerivAt_fst/_snd, fderiv_add, fderiv_const_mul, HasFDerivAt.comp_hasDerivAt (chain rule through a projection), HasDerivAt.unique, real_inner_comm, inner_add_right, inner_neg_left/right, Metric.infDist_singleton, tendsto_iff_dist_tendsto_zero. Sealed leanpunov stones reused by name: lasalle (L3), tendsto_infDist_of_omegaLimit_subset (L4a), the IsSolutionTo interface (L3).

7. Cost feel

Comparable to a large L2-scale push: one genuinely new computation (the bilinear/​quadratic-form fderiv, §2 — no in-repo precedent, resolved with fderiv_inner_apply) plus a collapse that reuses the L3 derivative-uniqueness pattern, then a short assembly on the sealed engine. Well inside the stall gate; no fix cycle exceeded a single tactic edit.

8. The machine seal

#print axioms on the four sealed theorems, verbatim from the full-integration lake build (2640 jobs, 2026-07-06):

info: Leanpunov/ComLaSalle.lean:238:0: 'Leanpunov.com_dissipation' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Leanpunov/ComLaSalle.lean:239:0: 'Leanpunov.com_decrease' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Leanpunov/ComLaSalle.lean:240:0: 'Leanpunov.com_collapse' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Leanpunov/ComLaSalle.lean:241:0: 'Leanpunov.com_gas' depends on axioms: [propext, Classical.choice, Quot.sound]

Nothing beyond {propext, Classical.choice, Quot.sound}; no sorryAx. The full project (L1–L4a + TARGET 1, 19 theorems) builds clean.