Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Pontryagin Minimum Principle (Prop. 3.3.1)

Proved
BertsekasDP.pontryagin_minimum_principle

by Shuze Chen · Sep 7, 2026 · Mathlib 0df444a (Lean v4.33.1)

minimumprinciplenecessaryconditionspontryagin

Proposition 3.3.1 (Pontryagin Minimum Principle). Consider the continuous-time problem of minimizing h(x(T))+∫0Tg(x,u) dth(x(T)) + \int_0^T g(x,u)\,dth(x(T))+∫0T​g(x,u)dt subject to x˙=f(x,u)\dot x = f(x,u)x˙=f(x,u), x(0)=x0x(0) = x_0x(0)=x0​ and u(t)∈Uu(t) \in Uu(t)∈U, with fff, ggg and hhh continuously differentiable. Let {u∗(t)∣t∈[0,T]}\{u^*(t) \mid t \in [0,T]\}{u∗(t)∣t∈[0,T]} be an optimal admissible control trajectory and {x∗(t)}\{x^*(t)\}{x∗(t)} the corresponding state trajectory. Then there is an adjoint trajectory ppp, continuous on [0,T][0,T][0,T], satisfying the adjoint equation and its terminal condition

p˙(t)  =  −∇xH(x∗(t),u∗(t),p(t)),p(T)  =  ∇h(x∗(T)),\dot p(t) \;=\; -\nabla_x H\bigl(x^*(t), u^*(t), p(t)\bigr), \qquad p(T) \;=\; \nabla h\bigl(x^*(T)\bigr),p˙​(t)=−∇x​H(x∗(t),u∗(t),p(t)),p(T)=∇h(x∗(T)),

such that the control minimizes the Hamiltonian pointwise,

u∗(t)  ∈  arg⁡min⁡u∈U  H(x∗(t),u,p(t)),u^*(t) \;\in\; \arg\min_{u \in U} \; H\bigl(x^*(t), u, p(t)\bigr),u∗(t)∈argu∈Umin​H(x∗(t),u,p(t)),

and the Hamiltonian is constant along the optimal trajectory,

H(x∗(t),u∗(t),p(t))  =  cfor all t,H\bigl(x^*(t), u^*(t), p(t)\bigr) \;=\; c \qquad \text{for all } t,H(x∗(t),u∗(t),p(t))=cfor all t,

for some constant ccc. Here H(x,u,p)=g(x,u)+⟨p,f(x,u)⟩H(x,u,p) = g(x,u) + \langle p, f(x,u)\rangleH(x,u,p)=g(x,u)+⟨p,f(x,u)⟩.

The Minimum Principle converts an optimization over a function space into a two-point boundary value problem in 2n2n2n ordinary differential equations — the basis of shooting methods and of every bang-bang analysis. Its conditions are necessary, not sufficient: a trajectory satisfying them need not be optimal, and further argument (existence plus uniqueness of the candidate, or convexity) is needed to conclude optimality.

Formalization Note The three conditions hold off a common finite exceptional set, which is where the piecewise continuous control switches; this is the precise reading of the source's "for all t∈[0,T]t \in [0,T]t∈[0,T]" in the presence of switching. Constancy of the Hamiltonian uses time-independence of fff and ggg, as the source notes it may fail otherwise. Uniqueness of ppp is not asserted, and the terminal condition fixes the cost multiplier at 111, so no abnormal multiplier appears.

Preamble
import Mathlib
import Definitions.Def_BertsekasCTModel
Formal statement
namespace BertsekasDP

theorem pontryagin_minimum_principle {n m : ℕ} (M : BertsekasCTModel n m)
    (hf : ContDiff ℝ 1 (Function.uncurry M.f))
    (hg : ContDiff ℝ 1 (Function.uncurry M.g))
    (hh : ContDiff ℝ 1 M.h)
    (ustar : ℝ → EuclideanSpace ℝ (Fin m))
    (xstar : ℝ → EuclideanSpace ℝ (Fin n))
    (hadm : BertsekasCTAdmissibleFrom M 0 M.x0 ustar xstar)
    (hopt : ∀ u x, BertsekasCTAdmissibleFrom M 0 M.x0 u x →
      BertsekasCTCostFrom M 0 ustar xstar ≤ BertsekasCTCostFrom M 0 u x) :
    ∃ (p : ℝ → EuclideanSpace ℝ (Fin n)) (F : Finset ℝ) (c : ℝ),
      ContinuousOn p (Set.Icc 0 M.T) ∧
      p M.T = gradient M.h (xstar M.T) ∧
      (∀ t ∈ Set.Icc 0 M.T \ (F : Set ℝ),
        HasDerivAt p
          (-gradient (fun y => BertsekasHamiltonian M y (ustar t) (p t)) (xstar t))
          t) ∧
      (∀ t ∈ Set.Icc 0 M.T \ (F : Set ℝ),
        IsMinOn (fun u => BertsekasHamiltonian M (xstar t) u (p t)) M.U (ustar t)) ∧
      (∀ t ∈ Set.Icc 0 M.T \ (F : Set ℝ),
        BertsekasHamiltonian M (xstar t) (ustar t) (p t) = c) := by sorry

end BertsekasDP
Source
D. P. Bertsekas, Dynamic Programming and Optimal Control, Vol. I, 3rd ed., Athena Scientific, 2005, Proposition 3.3.1
Read-back

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

Fix n,m∈Nn, m \in \mathbb{N}n,m∈N (implicit) and a model M=(T,U,f,g,h,x0)M = (T, U, f, g, h, x_0)M=(T,U,f,g,h,x0​) of type BertsekasCTModel n m\mathrm{BertsekasCTModel}\ n\ mBertsekasCTModel n m (so T>0T > 0T>0). Assume:

  • f:Rn×Rm→Rnf : \mathbb{R}^n \times \mathbb{R}^m \to \mathbb{R}^nf:Rn×Rm→Rn and g:Rn×Rm→Rg : \mathbb{R}^n \times \mathbb{R}^m \to \mathbb{R}g:Rn×Rm→R are jointly C1C^1C1 in the pair (x,u)(x, u)(x,u), and h:Rn→Rh : \mathbb{R}^n \to \mathbb{R}h:Rn→R is C1C^1C1;
  • (u∗,x∗)(u^*, x^*)(u∗,x∗), with u∗:R→Rmu^* : \mathbb{R} \to \mathbb{R}^mu∗:R→Rm and x∗:R→Rnx^* : \mathbb{R} \to \mathbb{R}^nx∗:R→Rn, is admissible from (0,x0)(0, x_0)(0,x0​) in this bundle's sense: u∗(t)∈Uu^*(t) \in Uu∗(t)∈U for all t∈[0,T]t \in [0, T]t∈[0,T]; the image u∗([0,T])u^*([0, T])u∗([0,T]) is bounded and u∗u^*u∗ is continuous on [0,T][0, T][0,T] minus some finite set; x∗x^*x∗ is continuous on [0,T][0, T][0,T] with x∗(0)=x0x^*(0) = x_0x∗(0)=x0​; and there is a finite set off which, on [0,T][0, T][0,T], x∗x^*x∗ has two-sided derivative f(x∗(t),u∗(t))f(x^*(t), u^*(t))f(x∗(t),u∗(t));
  • optimality: for every pair (u,x)(u, x)(u,x) admissible from (0,x0)(0, x_0)(0,x0​) in the same sense,
h(x∗(T))+∫0Tg(x∗(t),u∗(t)) dt  ≤  h(x(T))+∫0Tg(x(t),u(t)) dt,h(x^*(T)) + \int_0^T g(x^*(t), u^*(t))\,dt \;\le\; h(x(T)) + \int_0^T g(x(t), u(t))\,dt,h(x∗(T))+∫0T​g(x∗(t),u∗(t))dt≤h(x(T))+∫0T​g(x(t),u(t))dt,

i.e. BertsekasCTCostFrom(M,0,u∗,x∗)≤BertsekasCTCostFrom(M,0,u,x)\mathrm{BertsekasCTCostFrom}(M, 0, u^*, x^*) \le \mathrm{BertsekasCTCostFrom}(M, 0, u, x)BertsekasCTCostFrom(M,0,u∗,x∗)≤BertsekasCTCostFrom(M,0,u,x) (global optimality over all admissible pairs; recall each interval integral silently equals 000 when its integrand is not integrable).

Conclusion. There exist a function p:R→Rnp : \mathbb{R} \to \mathbb{R}^np:R→Rn (defined on all of R\mathbb{R}R; unconstrained outside the conditions below), a single finite set F⊆RF \subseteq \mathbb{R}F⊆R shared by the three "off-FFF" conditions below, and a constant c∈Rc \in \mathbb{R}c∈R, such that, writing H(x,u,p)=g(x,u)+⟨p,f(x,u)⟩H(x, u, p) = g(x, u) + \langle p, f(x, u)\rangleH(x,u,p)=g(x,u)+⟨p,f(x,u)⟩ for this bundle's Hamiltonian:

  1. ppp is continuous on [0,T][0, T][0,T];
  2. p(T)=∇h(x∗(T))p(T) = \nabla h(x^*(T))p(T)=∇h(x∗(T)) (Mathlib total gradient; well-defined classically since hhh is C1C^1C1);
  3. adjoint equation: for every t∈[0,T]∖Ft \in [0, T] \setminus Ft∈[0,T]∖F, ppp has the two-sided derivative
p′(t)=− ∇y[ g(y,u∗(t))+⟨p(t), f(y,u∗(t))⟩ ]∣y=x∗(t)p'(t) = -\,\nabla_y \big[\, g(y, u^*(t)) + \langle p(t),\, f(y, u^*(t))\rangle \,\big]\Big|_{y = x^*(t)}p′(t)=−∇y​[g(y,u∗(t))+⟨p(t),f(y,u∗(t))⟩]​y=x∗(t)​

at ttt — the gradient is taken in the state variable only, with the control frozen at u∗(t)u^*(t)u∗(t) and the costate frozen at p(t)p(t)p(t); being a two-sided derivative, at an endpoint 000 or TTT not excluded by FFF this constrains ppp outside [0,T][0, T][0,T] as well; 4. minimum condition: for every t∈[0,T]∖Ft \in [0, T] \setminus Ft∈[0,T]∖F, u∗(t)u^*(t)u∗(t) is a minimum point on UUU of the map u↦H(x∗(t),u,p(t))u \mapsto H(x^*(t), u, p(t))u↦H(x∗(t),u,p(t)), i.e. for every u∈Uu \in Uu∈U:

g(x∗(t),u∗(t))+⟨p(t),f(x∗(t),u∗(t))⟩  ≤  g(x∗(t),u)+⟨p(t),f(x∗(t),u)⟩g(x^*(t), u^*(t)) + \langle p(t), f(x^*(t), u^*(t))\rangle \;\le\; g(x^*(t), u) + \langle p(t), f(x^*(t), u)\rangleg(x∗(t),u∗(t))+⟨p(t),f(x∗(t),u∗(t))⟩≤g(x∗(t),u)+⟨p(t),f(x∗(t),u)⟩

(non-strict; this does not by itself assert u∗(t)∈Uu^*(t) \in Uu∗(t)∈U, though admissibility separately gives u∗(t)∈Uu^*(t) \in Uu∗(t)∈U for t∈[0,T]t \in [0,T]t∈[0,T]); 5. constancy of the Hamiltonian: for every t∈[0,T]∖Ft \in [0, T] \setminus Ft∈[0,T]∖F,

g(x∗(t),u∗(t))+⟨p(t), f(x∗(t),u∗(t))⟩=c.g(x^*(t), u^*(t)) + \langle p(t),\, f(x^*(t), u^*(t))\rangle = c.g(x∗(t),u∗(t))+⟨p(t),f(x∗(t),u∗(t))⟩=c.

All three pointwise conditions 3–5 are claimed only off the same finite exceptional set FFF, which the existential quantifier lets be as large (but finite) as needed; nothing is claimed at points of FFF or outside [0,T][0, T][0,T]. The proof is sorry (stated, not proved).

Human review
  • Endorsed by Community (Bot) · Sep 7, 2026

  • Endorsed by Shuze Chen · Sep 7, 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