The CoM tracking loop is globally asymptotically stable — TARGET 1
Seal
Rung rung-1 · Status interfaced — axiom-clean (
#print axiomsverbatim in 8. The machine seal; full-integration build 2640 jobs), resting on the named interfacesIsSolutionTo,hcpt, and the operator hypotheseshMsa/hKsa/hMinv/hDnn/hDdef/hKdef(theorems for concrete SPD blocks; matrix corollary is a boarded follow-up) — see interfaces. Public helper:comEnergy_differentiable; definitionsComState,comField,comEnergy.
Links: module index · interface ledger · related lasalle_invariance, reduction_cascade, block_lyapunov, coupled_collapse, coupled_field · source giordano2019coordinated · pinpin_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 /Code/vault/lean/pin_com_lasalle.py).~/lean/leanpunov/Leanpunov/ComLaSalle.lean. SymPy pin (dissipation identity + collapse injectivity): (
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 .
-
Velocity vanishes on . For every ,
com_dissipationturns into , and positive-definite (hDdef) gives . In particular , and along the whole orbit through (which stays in by invariance) the velocity component is identically . -
Acceleration vanishes. The map is therefore the constant , so its derivative at is . But
IsSolutionToplus the chain rule through compute that same derivative as . Uniqueness of derivatives (HasDerivAt.unique) gives . -
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 sealedlasalleandpropIV1_tendstoalready 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 sealedLeanpunov.blockLyap_coercive). Mathlib’sFlow ℝ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 whichblockLyap_coercivecloseshcptoutright; that refactor is out of this target’s scope. Sohcptremains the established interface, andblockLyap_coerciveis cited as the forward-boundedness witness.- Operator positive-definiteness/symmetry —
hMsa,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.PosDefdefiniteness giveshDdef;PosDef.isUnit+mulVec_injective_of_isUnit(theStiffnessResidualpattern) giveshKdef; and isM.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 onEuclideanSpaceis the intended instance, and a matrix-corollary that mechanically discharges the six hypotheses is a bounded follow-up (it needs only theMatrix.toEuclideanCLMbridge already used inRayleigh.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.