The incompressible Navier–Stokes equations on : admissible data and physically reasonable solutions (Fefferman (1)–(4), (6), (7))
DefinitionNavierStokesThis 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 is a parameter throughout; the goal of the mission uses and one milestone uses .
Ambient objects. Vec n is Euclidean space with its Euclidean norm and Lebesgue measure, and e i is the -th standard unit vector . A velocity field is a function of a time and a point with values in ; in Lean, is the field at time and is Fefferman's . A pressure is real-valued.
Differential operators. For a vector field , computed as from the Fréchet derivative , and The Laplacian and the gradient used below are Mathlib's: acts componentwise, and is the vector representing through the inner product.
Admissible initial data (IsInitialData u₀, Fefferman's condition (4)). A vector field is admissible when
- is ;
- everywhere;
- and all its derivatives decay faster than any power: for all there is a constant with
Fefferman writes the third condition as for every multi-index and every ; bounding all partial derivatives of order is equivalent to bounding the operator norm of the -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 ). Given a viscosity , an initial datum and a set of times (in this mission or ), the pair is a physically reasonable solution on when
- (Fefferman (6)) and are on , including one-sided smoothness at the boundary of ;
- (Fefferman (1), ) for every with and every ,
where the convective term is the derivative of at in the direction ; 3. (Fefferman (2)) for every ; 4. (Fefferman (3)) ; 5. (Fefferman (7), bounded energy) there is a constant with for all .
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 ; here it is imposed at the interior times with two-sided derivatives, while smoothness up to is Mathlib's ContDiffOn on the closed half-space, so the equation at follows by continuity. The energy integral is a Lebesgue integral with values in (∫⁻), which equals when , so condition 5 cannot hold vacuously. No sign condition on and no admissibility of are built into IsSolutionOn; they are hypotheses of the theorems. Values of and at times outside are unconstrained.
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
Read-back
What the Lean code literally says, in plain math · claude-fable-5-1
Read-back
Throughout, is a natural number (any , including ) that is an implicit argument to every declaration below; nothing anywhere in the bundle requires or .
Vec n
is literally Mathlib's EuclideanSpace ℝ (Fin n): the real vector space of functions , carrying the Euclidean () inner product , the Euclidean norm , and the standard Lebesgue measure as its default measure (the product of copies of Lebesgue measure on ; the unit cube has measure ). Because this is an abbreviation rather than a new type, every Mathlib fact and instance about EuclideanSpace applies verbatim. Edge case: for , is a one-point space , and its default measure gives that single point mass (the empty product).
e i
For (a Fin n index), is the vector with in coordinate and elsewhere, i.e. the -th standard basis vector, . Edge case: when there is no admissible , so no such vector exists (sums over below are then empty).
div v x
For any function (no regularity assumed) and any point , the real number
where is Mathlib's Fréchet derivative of at (a continuous linear map ), is that linear map applied to the basis vector (the -th partial derivative vector ), and takes its -th coordinate. When is differentiable at this is , the ordinary divergence. Edge cases: Mathlib's fderiv is a total function — if is not differentiable at , is the zero map and ; for the sum is empty and always.
gradNormSq v x
For any and , the real number
the sum over basis directions of the squared Euclidean norm of the directional derivative ; when is differentiable at this equals , the squared Frobenius norm of the Jacobian matrix. Edge cases: if is not differentiable at , fderiv returns the zero map and the value is ; for the value is . This definition is not referenced by any other declaration in the bundle.
IsInitialData u₀
For a function , the proposition " is initial data" is the conjunction of exactly three conditions:
-
smooth: is on all of in Mathlib's sense ofContDiff ℝ ∞. Here∞(under theContDiffscoped notation) is the element of viewed insideWithTop ℕ∞; it means "continuously differentiable of every finite order ", and is strictly weaker than the symbolω, which would mean real-analytic. No analyticity is asserted. -
divFree: for every , , with as defined above (given condition 1, this is the genuine divergence ). For this holds automatically. -
decay: for every pair of natural numbers there exists a real constant (allowed to depend on and , but not on ) such that for every ,
where is Mathlib's -th iterated Fréchet derivative at — a continuous -linear map — and is its operator norm. For , , so the case says itself is bounded by for every ; says every derivative is bounded. The inequality is , not ; is only required to be real (since the left side is and is non-empty, any witnessing is automatically ). Because iteratedFDeriv is total, the condition is stated for all regardless of differentiability, but condition 1 makes these the true derivatives.
No integrability, measurability, or condition on is part of this structure beyond what follows from the three items.
IsSolutionOn ν u₀ u p S
Data: a real number (any real — no sign or nonzero requirement), a function , a time-dependent velocity (write ), a time-dependent scalar (write ), and an arbitrary set of times . The proposition is the conjunction of exactly six conditions. Nothing requires to satisfy IsInitialData; nothing constrains or at times outside except condition 5.
-
smooth_u: the uncurried map from to is on the set in Mathlib'sContDiffOnsense, with∞as above (all finite orders, not analytic).ContDiffOnis smoothness relative to the set: at each point with , the function has Taylor expansions of every finite order on some neighbourhood of within . Consequences of this being relative: at times interior to this is ordinary joint smoothness in ; at boundary points of (e.g. when ) it is one-sided smoothness in ; at a time that is isolated in the condition constrains only smoothness in and says nothing about dependence on . If the condition is vacuous. -
smooth_p: the same statement for , valued in . -
momentum: for every with (strictly), and for every (the whole space, no boundary),
an equation between vectors in , where:
- is Mathlib's
derivof the one-variable map at , taken in the full real line (two-sided, not relative to ); it is the junk value if that map is not differentiable at . When is interior to , condition 1 makes it the genuine time derivative ; when lies in but is not interior to , condition 1 does not guarantee differentiability in the full line and the term may be the default . - is the Fréchet derivative of at applied to the vector , i.e. ; condition 1 restricted to the slice makes this genuine.
- is Mathlib's Laplacian of the vector-valued map : the trace of the second Fréchet derivative, over an orthonormal basis , applied componentwise; for maps this is , and where the map is not twice differentiable it is whatever the total
iteratedFDerivreturns (default/zero values). - is Mathlib's
gradient: the vector representing the Fréchet derivative through the inner product, ; i.e. ; it is where is not differentiable at . - is scalar multiplication by .
The equation is not required at , nor at any in , nor at any . There is no forcing term.
-
divFree: for every (including or negative if they lie in ) and every , with as defined above (genuine divergence by condition 1). -
initial: (the function at time ) equals the given as functions on : for all . This is required whether or not ; membership of in is not assumed anywhere in this structure. If , conditions 1–4 say nothing about at time , yet condition 5 still pins it to . -
boundedEnergy: there exists a real number such that for every ,
where the integral is Mathlib's lower Lebesgue integral (∫⁻) with respect to the Lebesgue measure on of the extended-nonnegative-valued function — it is defined for every function without any measurability hypothesis and always takes a value in — and regarded in . The inequality is strict. Consequently the energy is finite for every and bounded uniformly over ; if the right side is and the condition can only hold when . For the integral is .
Note that enters the structure only through condition 2 and through in condition 3.
IsSolution ν u₀ u p
For , , , , this is by definition IsSolutionOn ν u₀ u p S with (Mathlib's Set.Ici 0, closed at , unbounded above). Spelled out, it asserts exactly:
- and are on in the relative sense (ordinary joint smoothness for ; one-sided in at );
- the momentum equation of item 3 above holds for every and every (here every such is interior to , so the time derivative is the genuine two-sided ); it is not asserted at ;
- for every and every ;
- ;
- there is a real with for every .
The values of and at negative times are completely unconstrained, may be zero or negative, is not required to satisfy IsInitialData, and no uniqueness is asserted.
Confirmed by the mission captain (proposal self-audit).