The Panteley–Loría cascade theorem — engine + instantiation (R4)

Seal

Rung rung-4 · Status interfaced — axiom-clean (#print axioms verbatim in 7. The machine seal; per-file build 2452 jobs, 2026-07-08), resting on the named cascade interfaces hsand (the 𝒦∞ sandwich) and hdi (the eq-35 interconnection inequality), the applier-side regularity hvc/hv, and — in the instantiation — the sealed com_gas interface (IsSolutionTo, hcpt, and the CoM operator hypotheses). See interfaces.
Links: module index · interface ledger · substrate comparison_functions, time_varying_comparison · driving stone com_lasalle · driven stone coupled_collapse · sources panteley2001growth, panteley1998global, giordano2019coordinated · pin pin_cascade.py

Sealed theorems

tendsto_zero_of_sandwich

The class-𝒦∞ squeeze: α ∈ 𝒦∞, α‖x t‖ ≤ w t eventually and w → 0 force x t → 0. The ISS-standard “Lyapunov value decays ⇒ state decays”, proved by inverting the lower sandwich on the sealed classKInv.

cascade_gas

The engine (attractivity). A vanishing driving output plus the reshaped sandwich (eq 10/13) plus the interconnection inequality (eq 35) drive the joint cascade state to the origin.

cascade_bounded

Lemma 2’s boundedness / UGS half (eq 39): a bounded driving output keeps the reshaped Lyapunov value inside the ultimate bound .

propIV1_cascade_gas

The instantiation — a second, independent kernel-checked route to Prop IV.1’s conclusion: the sealed com_gas discharges the driving CoM loop, the coupled block is the driven subsystem, and the full closed-loop state converges.

What this seals, in one paragraph

Giordano’s Proposition IV.1 (giordano2019coordinated §IV) closes the loop by a cascade argument: the decoupled CoM-error loop is autonomously stable and drives the coupled base+end-effector block through the interconnection term. This module formalizes the cascade stability theorem those authors invoke — Panteley–Loría — in the exact form the sources state it, and then instantiates it with the sealed CoM-loop GAS (com_lasalle com_gas) as the driving subsystem. The result is a second, independent route to Prop IV.1’s conclusion that the full closed-loop state reaches the origin: the first route (coupled_gas, coupled_collapse) runs LaSalle on the coupled field directly; this one runs the cascade theorem with the CoM loop as the driver. The engine is cheap and honest because Panteley’s own proof of Lemma 2 rides a differential inequality (eq 35) that is exactly the shape the already-sealed comparison layer (time_varying_comparison) consumes, and the “Lyapunov value → 0 ⇒ state → 0” step is exactly the sealed 𝒦∞ inverse (comparison_functions).

The module is (/Code/vault/lean/Cascade.lean), build copy ~/lean/ctrllib/Ctrllib/Cascade.lean. SymPy/NumPy pin: (/Code/vault/lean/pin_cascade.py).

1. The source statements, verbatim

The two sources study the time-varying cascade (panteley2001growth eq 1–2; panteley1998global eq 4–5)

with the driven state, the driving state, and the interconnection. The driving subsystem is autonomous; its output perturbs .

The comparison-function notation (panteley2001growth, Notation; the substrate of comparison_functions). iff continuous, strictly increasing, ; iff in addition ; iff and .

The assembly lemma, quoted verbatim (panteley2001growth, Lemma 2):

Lemma 2. If systems (2) and (4) are UGAS and the solutions of (1) and (2) are globally uniformly bounded then (1) and (2) is UGAS.

Here (4) is the zero-input driven system . This is the non-autonomous form of "". The paper’s own remark: “From Lemma 2 it is clear that Theorems 3–5 follow if we prove for each case, that the solutions of the system are globally uniformly bounded.”

The reshaped Lyapunov function (panteley2001growth, Proposition 1). UGAS of (4) yields (converse Lyapunov) a function with , such that

The interconnection inequality, quoted verbatim (panteley2001growth, proof of Lemma 2, eq 35). Writing , using (15), (14) and the linear growth bound (19),

where depends on the a-priori bound of the (globally uniformly bounded) trajectory. The companion paper gives the same object as eq 22, .

OCR note. Both markdown renders (Docs/raw/md/) carry the equations above cleanly; the 1998 render mangles some inline sub/superscripts in the running prose (e.g. x\_ <sup>1</sup>) but every displayed equation used here is intact and cross-checked between the two sibling papers. No statement below rests on a garbled line.

2. The engine — from eq 35 to cascade attractivity

The whole content of Lemma 2’s attractivity is that eq 35 is a scalar comparison inequality with a vanishing forcing term, because UGAS gives (indeed , , eq 17). We formalize it at the trajectory level, which is both faithful to the source (it works with the solution functions ) and the natural match for the library’s autonomous _gas stones.

Theorem cascade_gas. Let , , and along the composite trajectory let satisfy the lower sandwich (from eq 10/13), be continuous and right-differentiable, and obey

If the driving output vanishes, , then the joint state converges,

Proof. Three moves, each a sealed stone.

  1. The disturbance vanishes. gives (continuity of the norm), so .
  2. The Lyapunov value decays. The lower sandwich gives , so — nonnegativity is read off the sandwich, not assumed. Then the sealed comparison_tendsto_zero (time_varying_comparison) — ”, , , ” — gives .
  3. The state decays. tendsto_zero_of_sandwich: from and , invert — — so .

Pair with (Tendsto.prodMk_nhds) for the joint limit.

The 𝒦∞ squeeze in detail (tendsto_zero_of_sandwich, the one genuinely new lemma). We need: , eventually, . The sealed comparison_functions gives the partial inverse classKInv α and proves it is again class 𝒦∞ (classKInv_isClassKInfinity) — hence continuous on , strictly increasing, with — and a genuine left inverse (classKInv_leftInvOn, for ). Then for each in the eventual set: and (class-𝒦 nonneg), so ; applying the monotone to and collapsing the left side with the left-inverse identity gives . The upper bound by continuity of at within (composing , which stays in eventually). The norm squeeze squeeze_zero_norm' finishes: is trapped between and a null sequence, so . SymPy-pinned (pin_cascade.py A) on : left-inverse , , monotone — the exact facts the Lean rides.

The boundedness half (cascade_bounded, Lemma 2’s UGS content, eq 39). With a bounded driving output instead of a vanishing one, the sealed comparison_bounded gives the ultimate bound directly. With properness of (the upper sandwich , eq 10) this is the uniform global boundedness Lemma 2 assumes and the paper’s eq 39 delivers. We record it at the Lyapunov level.

Why “GAS” here means global attractivity. As with the library’s other _gas stones (com_gas, coupled_gas), the operative deliverable is the global-attractivity conjunct ; the uniform-stability conjunct is the sandwich/boundedness clause (cascade_bounded), exactly the split the sources make (UGS from eq 39, attractivity from the vanishing-forcing argument). No ε–δ stability is silently claimed.

3. ISS — deliberately absent

panteley2001growth Theorem 3 additionally concludes that is ISS w.r.t. , but only Theorem 4 (majorization) is needed for cascade GAS, and its proof uses only the differential inequality — never the ISS characterization. Per the ratified done-bar (“ISS definitions ONLY where the theorem needs them”), this module introduces no ISS predicate. The engine is the Theorem-4 route.

4. The instantiation — com_gas as the driving subsystem

The physical decomposition (Docs/CLAUDE.md; current_sota §4.3): the com loop is the decoupled CoM-error block, inertially free and autonomously stable — the driving . The coupled base+end-effector block receives the CoM error through the interconnection — the driven .

Theorem propIV1_cascade_gas. Take the sealed CoM-loop hypotheses (a flow solving the CoM field with precompact orbit and the SPD operator facts). Then com_gas (com_lasalle) proves the driving output outright — this is the genuine kernel discharge. Feed it, together with the driven coupled block’s reshaped Lyapunov data (sandwich hsand, inequality hdi), into cascade_gas. Conclusion:

the convergence of the full closed-loop state — Prop IV.1’s conclusion, reached through the cascade.

What is genuinely discharged vs. named. The driving subsystem’s GAS is discharged with no residue by the sealed com_gas — the headline of the instantiation. The driven subsystem enters through two named interfaces, hsand and hdi, whose justification is itself sealed elsewhere: the coupled block’s zero-input GAS is coupled_gas (coupled_collapse), which is exactly Proposition 1’s premise for the existence of the reshaped (eq 13–15) and thence eq 35. So both stones the charter names appear — com_gas as the Lean-wired driver, coupled_gas as the documented justification for the driven reshaping — and nothing is silently substituted.

Independence from the coupled_gas route. coupled_gas reaches the coupled origin by LaSalle on the coupled field. propIV1_cascade_gas reaches the joint origin by the cascade theorem, the driven convergence coming from the comparison/growth argument driven by the CoM loop — a different assembly resting on a different engine. Two independent kernel-checked routes to the same physical conclusion.

5. Interfaces, honestly (ponytail)

Proved outright: the 𝒦∞ squeeze (§2), the cascade attractivity assembly (§2), the boundedness bound (§2), and the driving discharge via com_gas (§4). Named hypotheses, never sorry:

  • hsand — the class-𝒦∞ lower sandwich (eq 10/13). For Proposition 1’s reshaped it is a converse-Lyapunov theorem; here the named modelling input. The comparison_functions substrate makes and its inverse first-class.
  • hdi — the interconnection differential inequality (eq 35). It bundles the reshaped decrease (eq 14), the linear growth bound (A5/eq 19), and the a-priori boundedness that Theorem 4/5’s forward-completeness argument (the non-escape) establishes upstream — the same status time_varying_comparison gives its hbound (“the honest input, exactly the object Panteley–Loría integrate”).
  • hvc hv — continuity and right-differentiability of ; applier-side chain-rule regularity, as in time_varying_comparison.
  • (instantiation) IsSolutionTo hcpt and the CoM operators hMsa/hKsa/hMinv/hDnn/hDdef/hKdef — the sealed com_gas interface, discharged for concrete SPD blocks exactly as com_lasalle documents.

6. Mathlib stones used

Tendsto.norm, Tendsto.const_mul, Tendsto.prodMk_nhds, squeeze_zero_norm', ContinuousOn.continuousWithinAt, tendsto_nhdsWithin_of_tendsto_nhds_of_eventually_within, norm_nonneg, mul_le_mul_of_nonneg_left. Sealed ctrllib stones reused by name: comparison_tendsto_zero, comparison_bounded (L2 time-varying), classKInv with classKInv_isClassKInfinity/classKInv_leftInvOn (class-𝒦), com_gas (rung-1).

7. The machine seal

#print axioms on the four sealed theorems, verbatim from the per-file lake build (2452 jobs, 2026-07-08):

info: Ctrllib/Cascade.lean:222:0: 'Ctrllib.IsClassKInfinity.tendsto_zero_of_sandwich' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Ctrllib/Cascade.lean:223:0: 'Ctrllib.cascade_gas' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Ctrllib/Cascade.lean:224:0: 'Ctrllib.cascade_bounded' depends on axioms: [propext, Classical.choice, Quot.sound]
info: Ctrllib/Cascade.lean:225:0: 'Ctrllib.propIV1_cascade_gas' depends on axioms: [propext, Classical.choice, Quot.sound]

Nothing beyond {propext, Classical.choice, Quot.sound}; no sorryAx. The pin (pin_cascade.py) is green: the 𝒦∞ inverse squeeze, the driving-vanishing assembly, and Panteley Example 2 (x1 x2 → 0, eq 35 satisfied with , ).

8. Cost feel

One genuinely new lemma (the 𝒦∞ squeeze — no in-repo precedent, resolved with classKInv_isClassKInfinity + squeeze_zero_norm'), then two short assemblies on the sealed comparison layer and one on com_gas. Two fix cycles total: a (0,0)-vs-0 product-limit coercion and a deprecated left_mem_Ici. Well inside the stall gate.