Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 6.14 (Krasovskii–LaSalle principle)

Proved
TeschlODE.Stability.krasovskii_lasalle

by mikedeng1 · Sep 28, 2026 · Mathlib 0df444a (Lean v4.33.1)

lasalleliapunov-functionordinary-differential-equationsp2o-batch-books5p2o-gran-per-chapterp2o-plan-bookp2o-v1stability

Let M⊆RnM \subseteq \mathbb{R}^nM⊆Rn be open, f∈C1(M,Rn)f \in C^1(M, \mathbb{R}^n)f∈C1(M,Rn), and Φ\PhiΦ the flow of x˙=f(x)\dot x = f(x)x˙=f(x) with maximal intervals IxI_xIx​ and orbits γ(y)=Φ(Iy×{y})\gamma(y) = \Phi(I_y \times \{y\})γ(y)=Φ(Iy​×{y}). Suppose x0∈Mx_0 \in Mx0​∈M is a fixed point of fff and LLL is a Liapunov function at x0x_0x0​ on the open neighborhood U=U(x0)⊆MU = U(x_0) \subseteq MU=U(x0​)⊆M. Say that LLL is not constant on any orbit lying entirely in U∖{x0}U \setminus \{x_0\}U∖{x0​} if

∀y∈M:γ(y)⊆U∖{x0} ⟹ ∃ a,b∈γ(y), L(a)≠L(b).(∗)\forall y \in M:\quad \gamma(y) \subseteq U \setminus \{x_0\} \ \Longrightarrow\ \exists\, a, b \in \gamma(y),\ L(a) \ne L(b). \qquad (\ast)∀y∈M:γ(y)⊆U∖{x0​} ⟹ ∃a,b∈γ(y), L(a)=L(b).(∗)

Then:

  1. if (∗)(\ast)(∗) holds, x0x_0x0​ is asymptotically stable;
  2. if LLL is a strict Liapunov function, (∗)(\ast)(∗) holds;
  3. if (∗)(\ast)(∗) holds, then every x∈Mx \in Mx∈M whose forward orbit γ+(x)\gamma_+(x)γ+​(x) lies in a compact subset CCC of UUU has Φ(t,x)\Phi(t, x)Φ(t,x) defined for all t≥0t \ge 0t≥0 and Φ(t,x)→x0\Phi(t, x) \to x_0Φ(t,x)→x0​ as t→∞t \to \inftyt→∞.

This is the central stability criterion of the chapter: asymptotic stability from a Liapunov function that is merely non-increasing, provided it is not constant on a whole orbit.

Formalization Note. The flow is local; no completeness is assumed anywhere. Part 3 corrects the book's "every orbit lying entirely in U(x0)U(x_0)U(x0​) converges to x0x_0x0​", which is false as printed: for x˙1=−6x1/(1+x12)2+2x2\dot x_1 = -6x_1/(1+x_1^2)^2 + 2x_2x˙1​=−6x1​/(1+x12​)2+2x2​, x˙2=−2(x1+x2)/(1+x12)2\dot x_2 = -2(x_1 + x_2)/(1+x_1^2)^2x˙2​=−2(x1​+x2​)/(1+x12​)2 on M=U=R2M = U = \mathbb{R}^2M=U=R2, L=x12/(1+x12)+x22L = x_1^2/(1+x_1^2) + x_2^2L=x12​/(1+x12​)+x22​ is a strict Liapunov function, yet orbits starting in {x1>2, x2>2/(x1−2)}\{x_1 > \sqrt2,\ x_2 > 2/(x_1 - \sqrt2)\}{x1​>2​, x2​>2/(x1​−2​)} stay in that region and do not converge to 000 (Khalil, Nonlinear Systems, 3rd ed., §4.1). The book's argument (the text before Theorem 6.14) needs ω+(x)\omega_+(x)ω+​(x) to be a nonempty subset of UUU, which is exactly what a forward orbit inside a compact C⊆UC \subseteq UC⊆U provides. Parts 1 and 2 are as printed.

Preamble
import Mathlib
import Definitions.Def_TeschlODE_Stability_IsIntegralCurve
import Definitions.Def_TeschlODE_Stability_IsMaximalFlow
import Definitions.Def_TeschlODE_Stability_IsLiapunovFunction
import Definitions.Def_TeschlODE_Stability_IsStrictLiapunovFunction
import Definitions.Def_TeschlODE_Stability_semiOrbit
import Definitions.Def_TeschlODE_Stability_orbit
import Definitions.Def_TeschlODE_Stability_IsStable
import Definitions.Def_TeschlODE_Stability_IsAsymptoticallyStable
Formal statement
namespace TeschlODE.Stability

theorem krasovskii_lasalle {n : ℕ}
    (f : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
    (M : Set (EuclideanSpace ℝ (Fin n))) (hM : IsOpen M) (hf : ContDiffOn ℝ 1 f M)
    (I : EuclideanSpace ℝ (Fin n) → Set ℝ)
    (Φ : ℝ → EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
    (hΦ : IsMaximalFlow f M I Φ)
    (x₀ : EuclideanSpace ℝ (Fin n)) (hx₀ : x₀ ∈ M) (hfix : f x₀ = 0)
    (U : Set (EuclideanSpace ℝ (Fin n))) (L : EuclideanSpace ℝ (Fin n) → ℝ)
    (hL : IsLiapunovFunction f M x₀ U L) :
    -- (i) L not constant on any orbit lying entirely in U \ {x₀} ⇒ x₀ asymptotically stable
    ((∀ y ∈ M, orbit I Φ y ⊆ U \ {x₀} → ∃ a ∈ orbit I Φ y, ∃ b ∈ orbit I Φ y, L a ≠ L b) →
      IsAsymptoticallyStable M I Φ x₀) ∧
    -- (ii) a strict Liapunov function is not constant on any orbit lying entirely in U \ {x₀}
    (IsStrictLiapunovFunction f M x₀ U L →
      ∀ y ∈ M, orbit I Φ y ⊆ U \ {x₀} → ∃ a ∈ orbit I Φ y, ∃ b ∈ orbit I Φ y, L a ≠ L b) ∧
    -- (iii) under the hypothesis of (i), every forward orbit lying in a compact subset of U
    -- exists for all t ≥ 0 and converges to x₀
    ((∀ y ∈ M, orbit I Φ y ⊆ U \ {x₀} → ∃ a ∈ orbit I Φ y, ∃ b ∈ orbit I Φ y, L a ≠ L b) →
      ∀ x ∈ M, ∀ C : Set (EuclideanSpace ℝ (Fin n)), IsCompact C → C ⊆ U →
        semiOrbit 1 I Φ x ⊆ C →
        (∀ t : ℝ, 0 ≤ t → t ∈ I x) ∧
          Filter.Tendsto (fun t => Φ t x) Filter.atTop (nhds x₀)) := by sorry

end TeschlODE.Stability
Source
Teschl, Ordinary Differential Equations and Dynamical Systems (author's preliminary version of AMS GSM 140, 2012), p. 202, Theorem 6.14
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

The declaration concerns vectors in Rn\mathbb{R}^nRn (the Euclidean space Rn\mathbb{R}^nRn with coordinates indexed by {0,…,n−1}\{0,\dots,n-1\}{0,…,n−1}), where n≥0n\ge 0n≥0 is any natural number. It takes the following data and hypotheses:

  • f:Rn→Rnf:\mathbb{R}^n\to\mathbb{R}^nf:Rn→Rn is a vector field defined on all of Rn\mathbb{R}^nRn.
  • M⊆RnM\subseteq\mathbb{R}^nM⊆Rn is an open set, and fff is continuously differentiable (C1C^1C1) on MMM. Nothing is assumed about fff outside MMM.
  • III assigns to each point x∈Rnx\in\mathbb{R}^nx∈Rn a set of times I(x)⊆RI(x)\subseteq\mathbb{R}I(x)⊆R. Nothing is assumed about I(x)I(x)I(x) being an interval, containing 000, or being nonempty, except what the next hypothesis supplies.
  • Φ:R×Rn→Rn\Phi:\mathbb{R}\times\mathbb{R}^n\to\mathbb{R}^nΦ:R×Rn→Rn, written Φ(t,x)\Phi(t,x)Φ(t,x), is defined for every real ttt and every xxx. Its values at times t∉I(x)t\notin I(x)t∈/I(x) are whatever Φ\PhiΦ happens to return.
  • The bundle predicate IsMaximalFlow(f,M,I,Φ)\mathrm{IsMaximalFlow}(f,M,I,\Phi)IsMaximalFlow(f,M,I,Φ) holds. Its body is not shown here. The statement relies on it for any link between Φ\PhiΦ, III and solutions of x˙=f(x)\dot x=f(x)x˙=f(x) in MMM, and for any properties of III.
  • x0∈Mx_0\in Mx0​∈M is a point with f(x0)=0f(x_0)=0f(x0​)=0.
  • U⊆RnU\subseteq\mathbb{R}^nU⊆Rn is a set, and L:Rn→RL:\mathbb{R}^n\to\mathbb{R}L:Rn→R is a real function. The bundle predicate IsLiapunovFunction(f,M,x0,U,L)\mathrm{IsLiapunovFunction}(f,M,x_0,U,L)IsLiapunovFunction(f,M,x0​,U,L) holds, and its body is not shown here. The statement itself does not require UUU to be open, to contain x0x_0x0​, to be a neighbourhood of x0x_0x0​, or to lie inside MMM. Any such property can only come from that predicate.

Two bundle notions describe trajectories. orbit(I,Φ,y)\mathrm{orbit}(I,\Phi,y)orbit(I,Φ,y) is the set named "orbit" of yyy, built from III and Φ\PhiΦ. semiOrbit(1,I,Φ,x)\mathrm{semiOrbit}(1,I,\Phi,x)semiOrbit(1,I,Φ,x) is the set named "semiOrbit", built from the parameter 111, III, Φ\PhiΦ and xxx. Their definitions are not shown, so it is not visible here which times they use, or whether the parameter 111 selects the forward direction. IsAsymptoticallyStable(M,I,Φ,x0)\mathrm{IsAsymptoticallyStable}(M,I,\Phi,x_0)IsAsymptoticallyStable(M,I,Φ,x0​) and IsStrictLiapunovFunction(f,M,x0,U,L)\mathrm{IsStrictLiapunovFunction}(f,M,x_0,U,L)IsStrictLiapunovFunction(f,M,x0​,U,L) are also bundle predicates whose bodies are not shown. IsAsymptoticallyStable\mathrm{IsAsymptoticallyStable}IsAsymptoticallyStable depends only on MMM, III, Φ\PhiΦ and x0x_0x0​, and not on fff, UUU or LLL.

To shorten the conclusions, write (N)(\mathrm{N})(N) for the following condition. For every y∈My\in My∈M with

orbit(I,Φ,y)⊆U∖{x0},\mathrm{orbit}(I,\Phi,y)\subseteq U\setminus\{x_0\},orbit(I,Φ,y)⊆U∖{x0​},

there exist a,b∈orbit(I,Φ,y)a,b\in\mathrm{orbit}(I,\Phi,y)a,b∈orbit(I,Φ,y) with L(a)≠L(b)L(a)\neq L(b)L(a)=L(b). In words: LLL takes at least two distinct values on every orbit that starts in MMM and lies entirely in U∖{x0}U\setminus\{x_0\}U∖{x0​}. Orbits that leave UUU at any point, or that contain x0x_0x0​, are not constrained by (N)(\mathrm{N})(N).

Under all the hypotheses above, the declaration asserts that the following three statements all hold:

  1. (i) If (N)(\mathrm{N})(N) holds, then IsAsymptoticallyStable(M,I,Φ,x0)\mathrm{IsAsymptoticallyStable}(M,I,\Phi,x_0)IsAsymptoticallyStable(M,I,Φ,x0​) holds.
  2. (ii) If IsStrictLiapunovFunction(f,M,x0,U,L)\mathrm{IsStrictLiapunovFunction}(f,M,x_0,U,L)IsStrictLiapunovFunction(f,M,x0​,U,L) holds, then (N)(\mathrm{N})(N) holds.
  3. (iii) Suppose (N)(\mathrm{N})(N) holds. Take any x∈Mx\in Mx∈M and any compact set C⊆RnC\subseteq\mathbb{R}^nC⊆Rn with C⊆UC\subseteq UC⊆U and semiOrbit(1,I,Φ,x)⊆C\mathrm{semiOrbit}(1,I,\Phi,x)\subseteq CsemiOrbit(1,I,Φ,x)⊆C. Then:
    • every t≥0t\ge 0t≥0 lies in I(x)I(x)I(x), that is, [0,∞)⊆I(x)[0,\infty)\subseteq I(x)[0,∞)⊆I(x); and
lim⁡t→+∞Φ(t,x)=x0,\lim_{t\to+\infty}\Phi(t,x)=x_0,t→+∞lim​Φ(t,x)=x0​,

where the limit is taken over real ttt in the usual topology of Rn\mathbb{R}^nRn.

Part (iii) does not assume that x≠x0x\neq x_0x=x0​, that x∈Ux\in Ux∈U, or that CCC is nonempty. Its only link to the trajectory is the containment of the semi-orbit in CCC.

Degenerate cases, with the caveat that several depend on bundle definitions not shown here:

  • n=0n=0n=0. The space R0\mathbb{R}^0R0 is a single point, so f≡0f\equiv 0f≡0, x0x_0x0​ is that point, and M=R0M=\mathbb{R}^0M=R0. Then U∖{x0}=∅U\setminus\{x_0\}=\varnothingU∖{x0​}=∅. An orbit lies inside it only if the orbit is empty, and then no a,ba,ba,b can be found in it. So (N)(\mathrm{N})(N) holds exactly when no y∈My\in My∈M has an empty orbit. The limit in (iii) holds automatically, because every function into a one-point space converges to that point.
  • MMM empty. This is impossible, since x0∈Mx_0\in Mx0​∈M.
  • UUU empty, or x0∉Ux_0\notin Ux0​∈/U. The statement itself allows both. For U=∅U=\varnothingU=∅, the only compact C⊆UC\subseteq UC⊆U is C=∅C=\varnothingC=∅.
  • C=∅C=\varnothingC=∅. The premise semiOrbit(1,I,Φ,x)⊆∅\mathrm{semiOrbit}(1,I,\Phi,x)\subseteq\varnothingsemiOrbit(1,I,Φ,x)⊆∅ holds only if that semi-orbit is empty. In that case (iii) still requires [0,∞)⊆I(x)[0,\infty)\subseteq I(x)[0,∞)⊆I(x) and Φ(t,x)→x0\Phi(t,x)\to x_0Φ(t,x)→x0​. Whether a semi-orbit can be empty (for example, when I(x)=∅I(x)=\varnothingI(x)=∅) is decided by the unseen definitions of semiOrbit\mathrm{semiOrbit}semiOrbit and IsMaximalFlow\mathrm{IsMaximalFlow}IsMaximalFlow.
  • An empty orbit orbit(I,Φ,y)\mathrm{orbit}(I,\Phi,y)orbit(I,Φ,y). It is contained in U∖{x0}U\setminus\{x_0\}U∖{x0​}, but no a,ba,ba,b exist in it. So (N)(\mathrm{N})(N) fails if any y∈My\in My∈M has an empty orbit. In that case (i) and (iii) become vacuous, and (ii) asserts that strictness excludes empty orbits.
  • Values of Φ\PhiΦ at times outside I(x)I(x)I(x). These are unconstrained by the statement. The limit in (iii) only involves large ttt, and the first conclusion of (iii) places all such ttt in I(x)I(x)I(x).
  • Hypotheses that may be unsatisfiable. Whether IsMaximalFlow\mathrm{IsMaximalFlow}IsMaximalFlow or IsLiapunovFunction\mathrm{IsLiapunovFunction}IsLiapunovFunction can be satisfied, and so whether the whole statement is vacuous, depends on their definitions, which are not shown.
Human review
  • Endorsed by Shuze Chen · Oct 2, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 2, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me