Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

The incompressible Navier–Stokes equations on Rn\mathbb{R}^nRn: admissible data and physically reasonable solutions (Fefferman (1)–(4), (6), (7))

Definition
NavierStokes

by korbonits · Sep 8, 2026 · Mathlib 0df444a (Lean v4.33.1)

analysisfluid-dynamicsmillennium-prizenavier-stokespartial-differential-equations

This bundle fixes, in the namespace NavierStokes, the objects of Charles Fefferman's official description of the Clay Millennium Prize Problem on the Navier–Stokes equations: the equations (1)–(3) with zero external force, the class (4) of admissible initial data, and the notion (6)–(7) of a physically reasonable solution. The dimension nnn is a parameter throughout; the goal of the mission uses n=3n = 3n=3 and one milestone uses n=2n = 2n=2.

Ambient objects. Vec n is Euclidean space Rn\mathbb{R}^nRn with its Euclidean norm ∣x∣|x|∣x∣ and Lebesgue measure, and e i is the iii-th standard unit vector eie_iei​. A velocity field is a function uuu of a time t∈Rt \in \mathbb{R}t∈R and a point x∈Rnx \in \mathbb{R}^nx∈Rn with values in Rn\mathbb{R}^nRn; in Lean, u tu\,tut is the field at time ttt and u t xu\,t\,xutx is Fefferman's u(x,t)u(x,t)u(x,t). A pressure p(x,t)p(x,t)p(x,t) is real-valued.

Differential operators. For a vector field v:Rn→Rnv : \mathbb{R}^n \to \mathbb{R}^nv:Rn→Rn, div⁡v (x)=∑i=1n∂vi∂xi(x)(‘div‘, Fefferman (2)),\operatorname{div} v\,(x) = \sum_{i=1}^{n} \frac{\partial v_i}{\partial x_i}(x) \qquad\text{(`div`, Fefferman (2))},divv(x)=∑i=1n​∂xi​∂vi​​(x)(‘div‘, Fefferman (2)), computed as ∑i(Dv(x) ei)i\sum_i \big(Dv(x)\,e_i\big)_i∑i​(Dv(x)ei​)i​ from the Fréchet derivative Dv(x)Dv(x)Dv(x), and ∣∇v∣2(x)=∑i,j=1n(∂vi∂xj(x))2=∑j∥Dv(x) ej∥2(‘gradNormSq‘).|\nabla v|^2(x) = \sum_{i,j=1}^{n} \Big(\frac{\partial v_i}{\partial x_j}(x)\Big)^2 = \sum_{j}\|Dv(x)\,e_j\|^2 \qquad\text{(`gradNormSq`)}.∣∇v∣2(x)=∑i,j=1n​(∂xj​∂vi​​(x))2=∑j​∥Dv(x)ej​∥2(‘gradNormSq‘). The Laplacian Δ\DeltaΔ and the gradient ∇\nabla∇ used below are Mathlib's: Δv(x)=∑iD2v(x)[ei,ei]\Delta v(x) = \sum_i D^2 v(x)[e_i,e_i]Δv(x)=∑i​D2v(x)[ei​,ei​] acts componentwise, and ∇p(x)\nabla p(x)∇p(x) is the vector representing Dp(x)Dp(x)Dp(x) through the inner product.

Admissible initial data (IsInitialData u₀, Fefferman's condition (4)). A vector field u0:Rn→Rnu^0 : \mathbb{R}^n \to \mathbb{R}^nu0:Rn→Rn is admissible when

  1. u0u^0u0 is C∞C^\inftyC∞;
  2. div⁡u0=0\operatorname{div} u^0 = 0divu0=0 everywhere;
  3. u0u^0u0 and all its derivatives decay faster than any power: for all k,K∈Nk, K \in \mathbb{N}k,K∈N there is a constant CkKC_{kK}CkK​ with
(1+∣x∣)K ∥Dku0(x)∥≤CkKfor all x∈Rn.(1+|x|)^{K}\,\|D^k u^0(x)\| \le C_{kK} \quad \text{for all } x \in \mathbb{R}^n .(1+∣x∣)K∥Dku0(x)∥≤CkK​for all x∈Rn.

Fefferman writes the third condition as ∣∂xαu0(x)∣≤CαK(1+∣x∣)−K|\partial_x^\alpha u^0(x)| \le C_{\alpha K}(1+|x|)^{-K}∣∂xα​u0(x)∣≤CαK​(1+∣x∣)−K for every multi-index α\alphaα and every KKK; bounding all partial derivatives of order kkk is equivalent to bounding the operator norm of the kkk-th Fréchet derivative, so the two families of conditions coincide. Admissible data are exactly the divergence-free Schwartz functions.

Physically reasonable solutions (IsSolutionOn ν u₀ u p S, and IsSolution ν u₀ u p for S=[0,∞)S = [0,\infty)S=[0,∞)). Given a viscosity ν\nuν, an initial datum u0u^0u0 and a set of times S⊆RS \subseteq \mathbb{R}S⊆R (in this mission S=[0,∞)S = [0,\infty)S=[0,∞) or S=[0,T)S = [0,T)S=[0,T)), the pair (u,p)(u,p)(u,p) is a physically reasonable solution on SSS when

  1. (Fefferman (6)) (t,x)↦u(x,t)(t,x) \mapsto u(x,t)(t,x)↦u(x,t) and (t,x)↦p(x,t)(t,x) \mapsto p(x,t)(t,x)↦p(x,t) are C∞C^\inftyC∞ on S×RnS \times \mathbb{R}^nS×Rn, including one-sided smoothness at the boundary of SSS;
  2. (Fefferman (1), f≡0f \equiv 0f≡0) for every t∈St \in St∈S with t>0t > 0t>0 and every x∈Rnx \in \mathbb{R}^nx∈Rn,
∂u∂t(x,t)+∑j=1nuj(x,t) ∂u∂xj(x,t)=ν Δu(x,t)−∇p(x,t),\frac{\partial u}{\partial t}(x,t) + \sum_{j=1}^{n} u_j(x,t)\,\frac{\partial u}{\partial x_j}(x,t) = \nu\,\Delta u(x,t) - \nabla p(x,t),∂t∂u​(x,t)+j=1∑n​uj​(x,t)∂xj​∂u​(x,t)=νΔu(x,t)−∇p(x,t),

where the convective term is the derivative of u(⋅,t)u(\cdot,t)u(⋅,t) at xxx in the direction u(x,t)u(x,t)u(x,t); 3. (Fefferman (2)) div⁡u(⋅,t)=0\operatorname{div} u(\cdot,t) = 0divu(⋅,t)=0 for every t∈St \in St∈S; 4. (Fefferman (3)) u(⋅,0)=u0u(\cdot,0) = u^0u(⋅,0)=u0; 5. (Fefferman (7), bounded energy) there is a constant CCC with ∫Rn∣u(x,t)∣2 dx<C\int_{\mathbb{R}^n} |u(x,t)|^2\,dx < C∫Rn​∣u(x,t)∣2dx<C for all t∈St \in St∈S.

These are the data in terms of which Fefferman's statement (A) and the classical partial results (local existence, small-data global existence, the two-dimensional case) are stated.

Formalization Note Fefferman imposes equation (1) for t≥0t \ge 0t≥0; here it is imposed at the interior times t>0t > 0t>0 with two-sided derivatives, while smoothness up to t=0t = 0t=0 is Mathlib's ContDiffOn on the closed half-space, so the equation at t=0t = 0t=0 follows by continuity. The energy integral is a Lebesgue integral with values in [0,∞][0,\infty][0,∞] (∫⁻), which equals ∞\infty∞ when u(⋅,t)∉L2u(\cdot,t) \notin L^2u(⋅,t)∈/L2, so condition 5 cannot hold vacuously. No sign condition on ν\nuν and no admissibility of u0u^0u0 are built into IsSolutionOn; they are hypotheses of the theorems. Values of uuu and ppp at times outside SSS are unconstrained.

Definition code
import Mathlib

/-!
C. L. Fefferman, *Existence and smoothness of the Navier–Stokes equation*, Clay Mathematics
Institute Millennium Prize Problem description (2000), pp. 1–2.

The objects of equations (1)–(4), (6), (7): the unknown velocity `u(x,t) ∈ ℝⁿ` and pressure
`p(x,t) ∈ ℝ` for `x ∈ ℝⁿ`, `t ≥ 0`; the divergence; the admissible initial data `u⁰`; and the
notion of a "physically reasonable" solution (smooth, with bounded energy).  The external force
`f` is identically zero throughout, as in statement (A).

Conventions.  `Vec n` is `ℝⁿ` with its Euclidean norm.  A time-dependent vector field is a
function `u : ℝ → Vec n → Vec n`, so `u t` is the velocity field at time `t` and `u t x` is
Fefferman's `u(x,t)`.  The Laplacian `Δ` is Mathlib's Laplacian on real inner product spaces
(the sum of the second derivatives along an orthonormal basis, applied componentwise), and
`∇` is Mathlib's gradient.
-/

namespace NavierStokes

open scoped ContDiff InnerProductSpace Gradient
open Laplacian MeasureTheory

/-- Euclidean space `ℝⁿ`. -/
abbrev Vec (n : ℕ) := EuclideanSpace ℝ (Fin n)

/-- The `i`-th standard unit vector `e_i` of `ℝⁿ`. -/
noncomputable def e {n : ℕ} (i : Fin n) : Vec n := EuclideanSpace.single i 1

/-- Fefferman (2): the divergence `div v = ∑ᵢ ∂vᵢ/∂xᵢ` of a vector field `v : ℝⁿ → ℝⁿ`,
computed from the Fréchet derivative: `∂vᵢ/∂xᵢ (x) = (Dv(x) e_i)_i`. -/
noncomputable def div {n : ℕ} (v : Vec n → Vec n) (x : Vec n) : ℝ :=
  ∑ i, fderiv ℝ v x (e i) i

/-- `|∇v|² = ∑ᵢ ∑ⱼ (∂vᵢ/∂xⱼ)²`, the squared Frobenius norm of the Jacobian of `v` at `x`,
written as `∑ⱼ ‖Dv(x) e_j‖²`. -/
noncomputable def gradNormSq {n : ℕ} (v : Vec n → Vec n) (x : Vec n) : ℝ :=
  ∑ j, ‖fderiv ℝ v x (e j)‖ ^ 2

/-- Fefferman's admissible initial data: `u⁰` is a `C^∞` divergence-free vector field on `ℝⁿ`
satisfying the decay condition (4):
`|∂ₓ^α u⁰(x)| ≤ C_{αK} (1 + |x|)^{-K}` on `ℝⁿ`, for any `α` and `K`.
The multi-index bound is recorded through the norm of the `k`-th Fréchet derivative,
in the equivalent form `(1 + |x|)^K ‖D^k u⁰(x)‖ ≤ C_{kK}`. -/
structure IsInitialData {n : ℕ} (u₀ : Vec n → Vec n) : Prop where
  smooth : ContDiff ℝ ∞ u₀
  divFree : ∀ x, div u₀ x = 0
  decay : ∀ k K : ℕ, ∃ C : ℝ, ∀ x, (1 + ‖x‖) ^ K * ‖iteratedFDeriv ℝ k u₀ x‖ ≤ C

/-- `(u, p)` is a physically reasonable solution of the Navier–Stokes equations with viscosity
`ν`, zero external force and initial datum `u₀`, on the set `S ⊆ ℝ` of times (`S = [0, ∞)` or
`S = [0, T)`).  The fields are:

* `smooth_u`, `smooth_p`: Fefferman (6), `p, u ∈ C^∞(ℝⁿ × S)`, i.e. the maps
  `(t, x) ↦ u(x,t)` and `(t, x) ↦ p(x,t)` are `C^∞` on `S × ℝⁿ` (up to the boundary of `S`);
* `momentum`: Fefferman (1) with `f ≡ 0`, at every time `t ∈ S` with `t > 0` and every `x`:
  `∂u/∂t + ∑ⱼ uⱼ ∂u/∂xⱼ = ν Δu − ∇p`, where `∑ⱼ uⱼ ∂u/∂xⱼ` is the derivative of `u(·,t)` at
  `x` in the direction `u(x,t)`;
* `divFree`: Fefferman (2), `div u(·,t) = 0` for every `t ∈ S`;
* `initial`: Fefferman (3), `u(x,0) = u⁰(x)`;
* `boundedEnergy`: Fefferman (7), `∫_{ℝⁿ} |u(x,t)|² dx < C` for all `t ∈ S`, with the
  integral taken as a Lebesgue integral in `[0, ∞]` (so it is `∞` when `u(·,t) ∉ L²`). -/
structure IsSolutionOn {n : ℕ} (ν : ℝ) (u₀ : Vec n → Vec n)
    (u : ℝ → Vec n → Vec n) (p : ℝ → Vec n → ℝ) (S : Set ℝ) : Prop where
  smooth_u : ContDiffOn ℝ ∞ (Function.uncurry u) (S ×ˢ Set.univ)
  smooth_p : ContDiffOn ℝ ∞ (Function.uncurry p) (S ×ˢ Set.univ)
  momentum : ∀ t ∈ S, 0 < t → ∀ x,
    deriv (fun s => u s x) t + fderiv ℝ (u t) x (u t x) = ν • Δ (u t) x - ∇ (p t) x
  divFree : ∀ t ∈ S, ∀ x, div (u t) x = 0
  initial : u 0 = u₀
  boundedEnergy : ∃ C : ℝ, ∀ t ∈ S, ∫⁻ x, ‖u t x‖ₑ ^ 2 < ENNReal.ofReal C

/-- `(u, p)` is a physically reasonable solution on `ℝⁿ × [0, ∞)`: Fefferman's (1), (2), (3),
(6), (7) with `f ≡ 0`. -/
def IsSolution {n : ℕ} (ν : ℝ) (u₀ : Vec n → Vec n)
    (u : ℝ → Vec n → Vec n) (p : ℝ → Vec n → ℝ) : Prop :=
  IsSolutionOn ν u₀ u p (Set.Ici 0)

end NavierStokes
Source
C. L. Fefferman, Existence and smoothness of the Navier–Stokes equation, Clay Mathematics Institute Millennium Prize Problem description (2000), https://www.claymath.org/wp-content/uploads/2022/06/navierstokes.pdf, p. 1, equations (1)–(4), (6), (7) and the surrounding text (definition of the unknowns u, p, of ν, of Δ, of div, and of 'physically reasonable' solutions); p. 2, statement (A) fixes f ≡ 0
Read-back

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

Read-back

Throughout, nnn is a natural number (any n≥0n \ge 0n≥0, including n=0n = 0n=0) that is an implicit argument to every declaration below; nothing anywhere in the bundle requires n≥1n \ge 1n≥1 or n=3n = 3n=3.


Vec n

Vecn\mathrm{Vec}_nVecn​ is literally Mathlib's EuclideanSpace ℝ (Fin n): the real vector space Rn\mathbb{R}^nRn of functions {0,…,n−1}→R\{0,\dots,n-1\} \to \mathbb{R}{0,…,n−1}→R, carrying the Euclidean (ℓ2\ell^2ℓ2) inner product ⟨x,y⟩=∑ixiyi\langle x, y\rangle = \sum_i x_i y_i⟨x,y⟩=∑i​xi​yi​, the Euclidean norm ∥x∥=(∑ixi2)1/2\|x\| = \big(\sum_i x_i^2\big)^{1/2}∥x∥=(∑i​xi2​)1/2, and the standard Lebesgue measure as its default measure (the product of nnn copies of Lebesgue measure on R\mathbb{R}R; the unit cube has measure 111). Because this is an abbreviation rather than a new type, every Mathlib fact and instance about EuclideanSpace applies verbatim. Edge case: for n=0n = 0n=0, Vec0\mathrm{Vec}_0Vec0​ is a one-point space {0}\{0\}{0}, and its default measure gives that single point mass 111 (the empty product).


e i

For i∈{0,…,n−1}i \in \{0,\dots,n-1\}i∈{0,…,n−1} (a Fin n index), ei∈Vecne_i \in \mathrm{Vec}_nei​∈Vecn​ is the vector with 111 in coordinate iii and 000 elsewhere, i.e. the iii-th standard basis vector, ∥ei∥=1\|e_i\| = 1∥ei​∥=1. Edge case: when n=0n = 0n=0 there is no admissible iii, so no such vector exists (sums over iii below are then empty).


div v x

For any function v:Vecn→Vecnv : \mathrm{Vec}_n \to \mathrm{Vec}_nv:Vecn​→Vecn​ (no regularity assumed) and any point x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​, the real number

div⁡v (x)  =  ∑i=0n−1[ Dv(x) ei ]i,\operatorname{div} v\,(x) \;=\; \sum_{i=0}^{n-1} \big[\,Dv(x)\,e_i\,\big]_i ,divv(x)=i=0∑n−1​[Dv(x)ei​]i​,

where Dv(x)Dv(x)Dv(x) is Mathlib's Fréchet derivative of vvv at xxx (a continuous linear map Vecn→Vecn\mathrm{Vec}_n \to \mathrm{Vec}_nVecn​→Vecn​), Dv(x) eiDv(x)\,e_iDv(x)ei​ is that linear map applied to the basis vector eie_iei​ (the iii-th partial derivative vector ∂iv(x)\partial_i v(x)∂i​v(x)), and [⋅]i[\cdot]_i[⋅]i​ takes its iii-th coordinate. When vvv is differentiable at xxx this is ∑i∂ivi(x)\sum_i \partial_i v_i(x)∑i​∂i​vi​(x), the ordinary divergence. Edge cases: Mathlib's fderiv is a total function — if vvv is not differentiable at xxx, Dv(x)Dv(x)Dv(x) is the zero map and div⁡v (x)=0\operatorname{div} v\,(x) = 0divv(x)=0; for n=0n = 0n=0 the sum is empty and div⁡v (x)=0\operatorname{div} v\,(x) = 0divv(x)=0 always.


gradNormSq v x

For any v:Vecn→Vecnv : \mathrm{Vec}_n \to \mathrm{Vec}_nv:Vecn​→Vecn​ and x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​, the real number

gradNormSq⁡v (x)  =  ∑j=0n−1∥ Dv(x) ej ∥2,\operatorname{gradNormSq} v\,(x) \;=\; \sum_{j=0}^{n-1} \big\|\,Dv(x)\,e_j\,\big\|^2 ,gradNormSqv(x)=j=0∑n−1​​Dv(x)ej​​2,

the sum over basis directions eje_jej​ of the squared Euclidean norm of the directional derivative ∂jv(x)∈Vecn\partial_j v(x) \in \mathrm{Vec}_n∂j​v(x)∈Vecn​; when vvv is differentiable at xxx this equals ∑i,j(∂jvi(x))2\sum_{i,j} (\partial_j v_i(x))^2∑i,j​(∂j​vi​(x))2, the squared Frobenius norm of the Jacobian matrix. Edge cases: if vvv is not differentiable at xxx, fderiv returns the zero map and the value is 000; for n=0n = 0n=0 the value is 000. This definition is not referenced by any other declaration in the bundle.


IsInitialData u₀

For a function u0:Vecn→Vecnu_0 : \mathrm{Vec}_n \to \mathrm{Vec}_nu0​:Vecn​→Vecn​, the proposition "u0u_0u0​ is initial data" is the conjunction of exactly three conditions:

  1. smooth: u0u_0u0​ is C∞C^\inftyC∞ on all of Vecn\mathrm{Vec}_nVecn​ in Mathlib's sense of ContDiff ℝ ∞. Here ∞ (under the ContDiff scoped notation) is the element ⊤\top⊤ of N∞\mathbb{N}_\inftyN∞​ viewed inside WithTop ℕ∞; it means "continuously differentiable of every finite order k∈Nk \in \mathbb{N}k∈N", and is strictly weaker than the symbol ω, which would mean real-analytic. No analyticity is asserted.

  2. divFree: for every x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​, div⁡u0 (x)=0\operatorname{div} u_0\,(x) = 0divu0​(x)=0, with div⁡\operatorname{div}div as defined above (given condition 1, this is the genuine divergence ∑i∂i(u0)i(x)=0\sum_i \partial_i (u_0)_i (x) = 0∑i​∂i​(u0​)i​(x)=0). For n=0n = 0n=0 this holds automatically.

  3. decay: for every pair of natural numbers k,K∈Nk, K \in \mathbb{N}k,K∈N there exists a real constant CCC (allowed to depend on kkk and KKK, but not on xxx) such that for every x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​,

(1+∥x∥)K ∥ Dku0(x) ∥  ≤  C,(1 + \|x\|)^K \,\big\|\, D^k u_0 (x) \,\big\| \;\le\; C ,(1+∥x∥)K​Dku0​(x)​≤C,

where Dku0(x)D^k u_0(x)Dku0​(x) is Mathlib's kkk-th iterated Fréchet derivative at xxx — a continuous kkk-linear map (Vecn)k→Vecn(\mathrm{Vec}_n)^k \to \mathrm{Vec}_n(Vecn​)k→Vecn​ — and ∥⋅∥\|\cdot\|∥⋅∥ is its operator norm. For k=0k = 0k=0, ∥D0u0(x)∥=∥u0(x)∥\|D^0 u_0(x)\| = \|u_0(x)\|∥D0u0​(x)∥=∥u0​(x)∥, so the case k=0k=0k=0 says u0u_0u0​ itself is bounded by C(1+∥x∥)−KC (1+\|x\|)^{-K}C(1+∥x∥)−K for every KKK; K=0K = 0K=0 says every derivative is bounded. The inequality is ≤\le≤, not <<<; CCC is only required to be real (since the left side is ≥0\ge 0≥0 and Vecn\mathrm{Vec}_nVecn​ is non-empty, any witnessing CCC is automatically ≥0\ge 0≥0). Because iteratedFDeriv is total, the condition is stated for all xxx regardless of differentiability, but condition 1 makes these the true derivatives.

No integrability, measurability, or L2L^2L2 condition on u0u_0u0​ is part of this structure beyond what follows from the three items.


IsSolutionOn ν u₀ u p S

Data: a real number ν∈R\nu \in \mathbb{R}ν∈R (any real — no sign or nonzero requirement), a function u0:Vecn→Vecnu_0 : \mathrm{Vec}_n \to \mathrm{Vec}_nu0​:Vecn​→Vecn​, a time-dependent velocity u:R→(Vecn→Vecn)u : \mathbb{R} \to (\mathrm{Vec}_n \to \mathrm{Vec}_n)u:R→(Vecn​→Vecn​) (write ut:=u(t,⋅)u_t := u(t,\cdot)ut​:=u(t,⋅)), a time-dependent scalar p:R→(Vecn→R)p : \mathbb{R} \to (\mathrm{Vec}_n \to \mathbb{R})p:R→(Vecn​→R) (write ptp_tpt​), and an arbitrary set of times S⊆RS \subseteq \mathbb{R}S⊆R. The proposition is the conjunction of exactly six conditions. Nothing requires u0u_0u0​ to satisfy IsInitialData; nothing constrains uuu or ppp at times outside SSS except condition 5.

  1. smooth_u: the uncurried map (t,x)↦ut(x)(t,x) \mapsto u_t(x)(t,x)↦ut​(x) from R×Vecn\mathbb{R} \times \mathrm{Vec}_nR×Vecn​ to Vecn\mathrm{Vec}_nVecn​ is C∞C^\inftyC∞ on the set S×Vecn={(t,x):t∈S}S \times \mathrm{Vec}_n = \{(t,x) : t \in S\}S×Vecn​={(t,x):t∈S} in Mathlib's ContDiffOn sense, with ∞ as above (all finite orders, not analytic). ContDiffOn is smoothness relative to the set: at each point (t,x)(t,x)(t,x) with t∈St \in St∈S, the function has Taylor expansions of every finite order on some neighbourhood of (t,x)(t,x)(t,x) within S×VecnS \times \mathrm{Vec}_nS×Vecn​. Consequences of this being relative: at times ttt interior to SSS this is ordinary joint smoothness in (t,x)(t,x)(t,x); at boundary points of SSS (e.g. t=0t = 0t=0 when S=[0,∞)S = [0,\infty)S=[0,∞)) it is one-sided smoothness in ttt; at a time ttt that is isolated in SSS the condition constrains only smoothness in xxx and says nothing about dependence on ttt. If S=∅S = \varnothingS=∅ the condition is vacuous.

  2. smooth_p: the same statement for (t,x)↦pt(x)(t,x) \mapsto p_t(x)(t,x)↦pt​(x), valued in R\mathbb{R}R.

  3. momentum: for every t∈St \in St∈S with 0<t0 < t0<t (strictly), and for every x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​ (the whole space, no boundary),

dds∣s=tus(x)  +  Dut(x)[ut(x)]  =  ν Δut(x)  −  ∇pt(x),\frac{d}{ds}\Big|_{s=t} u_s(x) \;+\; Du_t(x)\big[u_t(x)\big] \;=\; \nu\, \Delta u_t(x) \;-\; \nabla p_t(x),dsd​​s=t​us​(x)+Dut​(x)[ut​(x)]=νΔut​(x)−∇pt​(x),

an equation between vectors in Vecn\mathrm{Vec}_nVecn​, where:

  • dds∣s=tus(x)\frac{d}{ds}|_{s=t} u_s(x)dsd​∣s=t​us​(x) is Mathlib's deriv of the one-variable map s↦us(x)s \mapsto u_s(x)s↦us​(x) at ttt, taken in the full real line (two-sided, not relative to SSS); it is the junk value 000 if that map is not differentiable at ttt. When ttt is interior to SSS, condition 1 makes it the genuine time derivative ∂tu(t,x)\partial_t u(t,x)∂t​u(t,x); when t>0t>0t>0 lies in SSS but is not interior to SSS, condition 1 does not guarantee differentiability in the full line and the term may be the default 000.
  • Dut(x)[ut(x)]Du_t(x)[u_t(x)]Dut​(x)[ut​(x)] is the Fréchet derivative of utu_tut​ at xxx applied to the vector ut(x)u_t(x)ut​(x), i.e. ∑jut,j(x) ∂jut(x)=(ut⋅∇)ut(x)\sum_j u_{t,j}(x)\,\partial_j u_t(x) = (u_t\cdot\nabla)u_t(x)∑j​ut,j​(x)∂j​ut​(x)=(ut​⋅∇)ut​(x); condition 1 restricted to the slice {t}×Vecn\{t\}\times\mathrm{Vec}_n{t}×Vecn​ makes this genuine.
  • Δut(x)\Delta u_t(x)Δut​(x) is Mathlib's Laplacian of the vector-valued map ut:Vecn→Vecnu_t : \mathrm{Vec}_n \to \mathrm{Vec}_nut​:Vecn​→Vecn​: the trace of the second Fréchet derivative, ∑iD2ut(x)[bi,bi]\sum_i D^2 u_t(x)[b_i, b_i]∑i​D2ut​(x)[bi​,bi​] over an orthonormal basis (bi)(b_i)(bi​), applied componentwise; for C2C^2C2 maps this is ∑i∂i2ut(x)\sum_i \partial_i^2 u_t(x)∑i​∂i2​ut​(x), and where the map is not twice differentiable it is whatever the total iteratedFDeriv returns (default/zero values).
  • ∇pt(x)∈Vecn\nabla p_t(x) \in \mathrm{Vec}_n∇pt​(x)∈Vecn​ is Mathlib's gradient: the vector representing the Fréchet derivative Dpt(x)Dp_t(x)Dpt​(x) through the inner product, ⟨∇pt(x),v⟩=Dpt(x) v\langle \nabla p_t(x), v\rangle = Dp_t(x)\,v⟨∇pt​(x),v⟩=Dpt​(x)v; i.e. (∂1pt(x),…,∂npt(x))(\partial_1 p_t(x),\dots,\partial_n p_t(x))(∂1​pt​(x),…,∂n​pt​(x)); it is 000 where ptp_tpt​ is not differentiable at xxx.
  • ν Δut(x)\nu\,\Delta u_t(x)νΔut​(x) is scalar multiplication by ν\nuν.

The equation is not required at t=0t = 0t=0, nor at any t≤0t \le 0t≤0 in SSS, nor at any t∉St \notin St∈/S. There is no forcing term.

  1. divFree: for every t∈St \in St∈S (including t=0t = 0t=0 or negative ttt if they lie in SSS) and every x∈Vecnx \in \mathrm{Vec}_nx∈Vecn​, div⁡ut (x)=0\operatorname{div} u_t\,(x) = 0divut​(x)=0 with div⁡\operatorname{div}div as defined above (genuine divergence by condition 1).

  2. initial: u0u_0u0​ (the function uuu at time 000) equals the given u0u_0u0​ as functions on Vecn\mathrm{Vec}_nVecn​: u(0,x)=u0(x)u(0,x) = u_0(x)u(0,x)=u0​(x) for all xxx. This is required whether or not 0∈S0 \in S0∈S; membership of 000 in SSS is not assumed anywhere in this structure. If 0∉S0 \notin S0∈/S, conditions 1–4 say nothing about uuu at time 000, yet condition 5 still pins it to u0u_0u0​.

  3. boundedEnergy: there exists a real number CCC such that for every t∈St \in St∈S,

∫Vecn−∥ut(x)∥2 dx  <  ofReal⁡(C),\int^{-}_{\mathrm{Vec}_n} \|u_t(x)\|^2 \, dx \;<\; \operatorname{ofReal}(C),∫Vecn​−​∥ut​(x)∥2dx<ofReal(C),

where the integral is Mathlib's lower Lebesgue integral (∫⁻) with respect to the Lebesgue measure on Vecn\mathrm{Vec}_nVecn​ of the extended-nonnegative-valued function x↦∥ut(x)∥e 2∈[0,∞]x \mapsto \|u_t(x)\|_e^{\,2} \in [0,\infty]x↦∥ut​(x)∥e2​∈[0,∞] — it is defined for every function without any measurability hypothesis and always takes a value in [0,∞][0,\infty][0,∞] — and ofReal⁡(C)=max⁡(C,0)\operatorname{ofReal}(C) = \max(C,0)ofReal(C)=max(C,0) regarded in [0,∞][0,\infty][0,∞]. The inequality is strict. Consequently the energy ∫∥ut∥2\int \|u_t\|^2∫∥ut​∥2 is finite for every t∈St\in St∈S and bounded uniformly over t∈St \in St∈S; if C≤0C \le 0C≤0 the right side is 000 and the condition can only hold when S=∅S = \varnothingS=∅. For n=0n = 0n=0 the integral is ∥ut(0)∥2\|u_t(0)\|^2∥ut​(0)∥2.

Note that ppp enters the structure only through condition 2 and through ∇pt\nabla p_t∇pt​ in condition 3.


IsSolution ν u₀ u p

For ν∈R\nu \in \mathbb{R}ν∈R, u0:Vecn→Vecnu_0 : \mathrm{Vec}_n \to \mathrm{Vec}_nu0​:Vecn​→Vecn​, u:R→(Vecn→Vecn)u : \mathbb{R} \to (\mathrm{Vec}_n \to \mathrm{Vec}_n)u:R→(Vecn​→Vecn​), p:R→(Vecn→R)p : \mathbb{R} \to (\mathrm{Vec}_n \to \mathbb{R})p:R→(Vecn​→R), this is by definition IsSolutionOn ν u₀ u p S with S=[0,∞)S = [0,\infty)S=[0,∞) (Mathlib's Set.Ici 0, closed at 000, unbounded above). Spelled out, it asserts exactly:

  • (t,x)↦ut(x)(t,x)\mapsto u_t(x)(t,x)↦ut​(x) and (t,x)↦pt(x)(t,x)\mapsto p_t(x)(t,x)↦pt​(x) are C∞C^\inftyC∞ on [0,∞)×Vecn[0,\infty)\times\mathrm{Vec}_n[0,∞)×Vecn​ in the relative sense (ordinary joint smoothness for t>0t>0t>0; one-sided in ttt at t=0t = 0t=0);
  • the momentum equation of item 3 above holds for every t>0t > 0t>0 and every x∈Vecnx\in\mathrm{Vec}_nx∈Vecn​ (here every such ttt is interior to SSS, so the time derivative is the genuine two-sided ∂tu\partial_t u∂t​u); it is not asserted at t=0t = 0t=0;
  • div⁡ut(x)=0\operatorname{div} u_t(x) = 0divut​(x)=0 for every t≥0t \ge 0t≥0 and every xxx;
  • u(0,⋅)=u0u(0,\cdot) = u_0u(0,⋅)=u0​;
  • there is a real CCC with ∫−∥ut(x)∥2 dx<ofReal⁡(C)\int^{-}\|u_t(x)\|^2\,dx < \operatorname{ofReal}(C)∫−∥ut​(x)∥2dx<ofReal(C) for every t≥0t \ge 0t≥0.

The values of uuu and ppp at negative times are completely unconstrained, ν\nuν may be zero or negative, u0u_0u0​ is not required to satisfy IsInitialData, and no uniqueness is asserted.

Human review
  • Endorsed by Shuze Chen · Sep 8, 2026

  • Endorsed by korbonits · Sep 8, 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