Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter NsNonlinearFarisLavine

Definition
ChapterNsNonlinearFarisLavine

by leonardopedro · Oct 25, 2026 · Mathlib 0df444a (Lean v4.33.1)

definitionsformalizationtimepiece

Formal definitions for the timepiece Lean 4 formalization (source chapter BookProof/ChapterNsNonlinearFarisLavine.lean): generated def bundle for ChapterNsNonlinearFarisLavine. See BookProof/ChapterNsNonlinearFarisLavine.lean for full context.

Definition code
import Definitions.Def_ChapterNsKoopman
import Definitions.Def_ChapterFarisLavine
import Definitions.Def_ChapterHermiteProductCore
import Definitions.Def_ChapterA4
import Definitions.Def_ChapterYangMillsHermite
import Mathlib


/-!
# The nonlinear Navier–Stokes Koopman generator and the Faris–Lavine criterion

The operator is the Koopman–von Neumann generator of `ChapterNsKoopman`,

```
H_NS = ½ Σ_m (π_m F_m + F_m π_m),      F_m(u) = −ν λ_m u_m + Σ_{j,k} b_{mjk} u_j u_k ,
```

with the **exact quadratic advection** `B(u,u)`: no linearization and no perturbative
splitting.  The coefficients `b_{mjk}` are the momentum-space (convolution) form of
`(u·∇)u` followed by the Leray projection.  The spatial derivative becomes the symbol `i k`, and
the product `u_j ∂_j u_m` becomes the triad convolution `Σ_{p+q=k} i (û_p · q) û_q`
(`NsAdvectionConvolution.fourier_advection_convolution`).  The only properties of the
coefficients used are the two structural identities recorded in `NsSystem`: Leray's energy
identity `Σ_m u_m B_m(u,u) = 0` and the Liouville identity `div_u B = 0`.

## The comparison operator

The Faris–Lavine criterion needs a positive `N` with `𝒟(N) ⊆ 𝒟(H)` and `±i[H,N] ≤ cN`.  The
Leray energy `E = 1 + ‖u‖²` has the right commutator, since `i[H_NS, E] = −2ν Σ λ_m u_m²` and the
advection drops out by Leray's identity (`NsKoopman.commForm_kvn_energy_bound`).  But `E` does not
dominate the first-order operator `H_NS`.  This module takes

```
N_NS := H_NS² + E = H_NS² + 1 + ‖u‖² .
```

It is positive, and its form is `⟪x, N x⟫ = ‖H x‖² + ⟪x, E x⟫ ≥ ‖x‖²`
(`nsSquareComparison_quadForm`).  It dominates `H_NS`: `‖H x‖ ≤ ‖N x‖ + ‖x‖`
(`nsSquareComparison_relBound`).  Its commutation relation with `H_NS` is exact:
`H_NS` commutes with `H_NS²`, so

```
⟪x, i[H_NS, N_NS] x⟫ = ⟪x, i[H_NS, E] x⟫ = ⟪x, (−2ν Σ λ_m u_m²) x⟫
|⟪x, i[H_NS, N_NS] x⟫| ≤ 2νΛ ⟪x, N_NS x⟫
```

(`nsSquareComparison_commForm`, `nsSquareComparison_commForm_bound`).  Here `Λ` bounds the
Stokes eigenvalues `λ_m = |k_m|²`.  All of this holds on the Gauss–polynomial core, for the full
nonlinear operator.

## The conclusion

`nsKoopman_esa_of_squareComparison_esa`: **if `N_NS` is essentially self-adjoint on the core,
then so is the nonlinear Navier–Stokes generator `H_NS`.**  The proof is the core form of
Faris–Lavine, `FarisLavine.essentiallySelfAdjointOn_of_square_comparison`.

## Honest boundary

* The one input that is **not** proved is the essential self-adjointness of `N_NS` itself
  (equivalently, since `N_NS ≥ 1`, density of `(N_NS + 1)` applied to the core).  It is carried
  as an explicit hypothesis.  This is a genuine reduction, not a proof of essential
  self-adjointness of `H_NS`.  The commutator part of Faris–Lavine is fully discharged, and what
  is left is the self-adjointness of the positive operator `N_NS`.
* Why no simpler `N` was used: a comparison operator for a first-order generator must be
  invariant under the classical flow up to a bounded exponential rate, in both time directions.
  For a polynomial `N` built from `u` and `π`, the quadratic advection makes the
  linearized flow stretch the momenta at a rate proportional to `|u|`, which is unbounded.
  So no polynomial in `u`, `π` of the harmonic-oscillator type satisfies `±i[H,N] ≤ cN`.  The
  invariant `H_NS` itself, plus the energy, is the algebraic choice that does.  This argument
  is informal and is not formalized here.
* The constant `2νΛ` depends on the largest Stokes eigenvalue kept.  With **all** Fourier modes
  (no truncation) the commutator `2ν Σ |k|² |û_k|²` is not bounded by any multiple of
  `1 + ‖u‖²`.  This reflects the fact that viscous Navier–Stokes is not well posed backward in
  time, so a unitary (two-sided) Koopman group cannot be expected in infinite dimensions.  The
  statements here are for every finite set of modes, with the exact nonlinearity on those modes.
-/

namespace BookProof.NsNonlinearFarisLavine

open MvPolynomial
open BookProof.HermiteProductCore BookProof.YangMillsHermite BookProof.FarisLavine
open BookProof.NsKoopman

noncomputable section

variable {d : ℕ} (S : NsSystem d)

/-- The nonlinear Navier–Stokes generator as a map of the Gauss–polynomial core into itself. -/
def nsKoopmanCore : (polyGaussCore (d := d)) →ₗ[ℂ] (polyGaussCore (d := d)) :=
  (coreRepPoly d).op (kvnPoly S)



/-- **The comparison operator** `N_NS = H_NS² + (1 + ‖u‖²)` on the Gauss–polynomial core. -/
def nsSquareComparison : (polyGaussCore (d := d)) →ₗ[ℂ] L2d d :=
  nsKoopmanOp S ∘ₗ nsKoopmanCore S + nsEnergyOp (d := d)

















end

end BookProof.NsNonlinearFarisLavine
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterNsNonlinearFarisLavine.lean

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