Core Definitions for the Vlasov-Maxwell-Landau System #
Defines the Landau collision operator, velocity decay conditions, the VMLSteadyState
structure, and the FlatTorus3 typeclass. Also provides @[simp] unfolding lemmas and
small auxiliary lemmas about the definitions. Derived FlatTorus3 lemmas are in
FlatTorus3Lemmas.lean.
The inner part of the Landau matrix: B(z) = |z|² I₃ - z zᵀ. This is the matrix that appears inside the scalar factor Ψ(|z|).
Equations
- VML.innerLandauMatrix z = VML.normSq z • 1 - Matrix.vecMulVec z z
Instances For
The Landau collision matrix: A(z) = Ψ(|z|) · (|z|² I₃ - z zᵀ). Reference: Definition 2 (def:landau_matrix)
Equations
- VML.landauMatrix Ψ z = Ψ (VML.eucNorm z) • VML.innerLandauMatrix z
Instances For
A Maxwellian distribution: log-quadratic with c₀ < 0 (ensuring integrability). Specifically: ∃ a₀ b c₀, c₀ < 0 ∧ f(v) = exp(a₀ + b · v + c₀ |v|²)
Equations
Instances For
The Maxwellian parameters (a₀, b, c₀) are injective: if exp(a₀ + b·v + c₀|v|²) = exp(a₀' + b'·v + c₀'|v|²) for all v, then a₀ = a₀', b = b', c₀ = c₀'.
A Maxwellian distribution is strictly positive everywhere.
A Maxwellian distribution is smooth (C^∞).
The equilibrium Maxwellian (zero drift, density = ρ_ion): f∞(v) = ρ_ion/(2πT∞)^(3/2) · exp(-|v|²/(2T∞))
Equations
Instances For
The equilibrium Maxwellian is a Maxwellian (i.e., satisfies IsMaxwellian).
Rewrites ρ/(2πT)^{3/2} · exp(-|v|²/(2T)) = exp(log(ρ/(2πT)^{3/2}) + 0·v + (-1/(2T))|v|²).
The equilibrium temperature T is an injective parameter: if two Maxwellians with the same density agree as functions, their temperatures must be equal.
Velocity-space integration by parts on ℝ³. ∫ (∇ᵥ · F)(v) · g(v) dv = -∫ F(v) · (∇ᵥg)(v) dv.
Uses Mathlib's integral_mul_fderiv_eq_neg_fderiv_mul_of_integrable
(n-dimensional IBP for Fréchet derivatives) applied per component.
The three per-component integrability hypotheses (derivative·g, f·derivative, and f·g) are the natural conditions for Bochner-integral IBP.
The Landau collision operator Q(f,f)(v). Reference: Definition 3 (def:landau_operator)
Q(f,f)(v) = ∇ᵥ · ∫_{ℝ³} A(v-w) [f(w)∇ᵥf(v) - f(v)∇_wf(w)] dw
Equations
Instances For
The entropy dissipation functional: D(f) = ∫ Q(f,f)(v) log f(v) dv. Reference: Definition in Lemma 5 (lem:entropy_dissipation)
Equations
- VML.entropyDissipation Ψ f = ∫ (v : Fin 3 → ℝ), VML.LandauOperator Ψ f v * Real.log (f v)
Instances For
IBP for the Landau collision operator: ∫ Q(g,g)(v) · log g(v) dv equals the symmetrized weak form. Combines velocity-space IBP (∫ div F · g = -∫ F · ∇g) with dotProduct_integral_comm (pulling the w-integral through the dot product).
The integrability hypotheses on the Landau flux are the natural conditions for Bochner-integral IBP. They require the flux F(v) = ∫_w A(v-w)[...] dw and its derivatives to be integrable against log g — this holds for distributions with sufficient velocity-space decay (e.g., sub-Gaussian tails).
The PSD integrand: g(v,w) = f(v)·f(w)·⟨Δ(v,w), A(v-w) Δ(v,w)⟩ where Δ(v,w) = ∇log f(v) - ∇log f(w). This appears in the entropy dissipation formula (Lemma 5).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Helper: (vecMulVec z z) *ᵥ w = (z · w) • z
Abstract characterization of a flat 3-torus with differential operators.
The spatial domain X is a compact nonempty space equipped with a MeasureSpace
instance (providing a canonical measure for integration via Mathlib's ∫) and
abstract differential operators (grad, div, curl).
These axioms are satisfied by any flat compact Riemannian 3-manifold without
boundary (e.g. T³ = ℝ³/ℤ³) equipped with its standard differential operators
and Riemannian volume form. See TorusInstance.lean for a concrete instance
on Fin 3 → AddCircle 1.
Axiom design note:
The linear operator axioms (hGradAdd, hGradScalarMul, hDivLinear) are stated
universally (for all functions X → ℝ) because linearity of fderiv genuinely
holds for all functions: fderiv(c * f) = c * fderiv(f) is true even for
non-differentiable f (both sides are 0 by definition).
The chain rule axiom (hGradChainExp) requires IsSpatiallySmooth ⊤ φ: without it, on the concrete torus both sides collapse to 0 via fderiv's junk value, making the axiom vacuously true rather than expressing a genuine chain rule.
hSpatialVelocityFubini requires joint integrability of uncurried F; the concrete
instance (TorusInstance) provides it via Mathlib's integral_integral_swap.
hSpatialAdd requires integrability of both summands (honest: Mathlib's integral_add).
hGradIntegrable provides integrability of gradient components for spatially differentiable
functions (on torus: C¹ → continuous → integrable on compact).
Integration uses Mathlib's ∫ x, f x (Bochner integral over volume).
Property fields (23):
- Operator properties (5): hDivLinear, hGradConst, hGradAdd, hGradScalarMul, hGradChainExp
- Closed manifold integration (2): hCurlIntZero, hIBP_spatial
- Analysis on compact manifold (4): hHarmonic_const, hLaplacianMaxNonpos, hSpatialPos, hSpatialNonnegZero
- Flat geometry (2): hKillingToHarmonic, hCurlZeroDivZeroHarmonic
- Abstract measure (3): hSpatialVelocityFubini, hSpatialAdd, hGradIntegrable
- Differentiability predicate + closure (7): IsSpatiallySmooth ⊤, hDiff_const ⊤, hDiff_add ⊤, hDiff_smul ⊤, hDiff_log ⊤, hDiff_continuous ⊤, hDiff_grad ⊤
Derived lemmas (in FlatTorus3Lemmas.lean):
- hGradChainLog, hGradIntZero, hLaplacianMinNonneg, hSpatialMul, etc.
- MeasurableSet' : Set X → Prop
- measurableSet_compl (s : Set X) : MeasurableSet' self.toMeasurableSpace s → MeasurableSet' self.toMeasurableSpace sᶜ
- measurableSet_iUnion (f : ℕ → Set X) : (∀ (i : ℕ), MeasurableSet' self.toMeasurableSpace (f i)) → MeasurableSet' self.toMeasurableSpace (⋃ (i : ℕ), f i)
- isOpen_inter (s t : Set X) : TopologicalSpace.IsOpen s → TopologicalSpace.IsOpen t → TopologicalSpace.IsOpen (s ∩ t)
- isOpen_sUnion (s : Set (Set X)) : (∀ t ∈ s, TopologicalSpace.IsOpen t) → TopologicalSpace.IsOpen (⋃₀ s)
- instCompact : CompactSpace X
- instNonempty : Nonempty X
- instFirstCountable : FirstCountableTopology X
- hDiff_add (n : ℕ∞) (f g : X → ℝ) : IsSpatiallySmooth n f → IsSpatiallySmooth n g → IsSpatiallySmooth n fun (x : X) => f x + g x
- hDiff_smul (n : ℕ∞) (c : ℝ) (f : X → ℝ) : IsSpatiallySmooth n f → IsSpatiallySmooth n fun (x : X) => c * f x
- hDiff_log (n : ℕ∞) (f : X → ℝ) : IsSpatiallySmooth n f → (∀ (x : X), 0 < f x) → IsSpatiallySmooth n (Real.log ∘ f)
- hDiff_grad (n : ℕ∞) (f : X → ℝ) (i : Fin 3) : IsSpatiallySmooth (n + 1) f → IsSpatiallySmooth n fun (x : X) => gradX f x i
- hGradAdd (f g : X → ℝ) : IsSpatiallySmooth 1 f → IsSpatiallySmooth 1 g → ∀ (x : X), gradX (fun (y : X) => f y + g y) x = gradX f x + gradX g x
- hKillingToHarmonic (b : X → Fin 3 → ℝ) : (∀ (j : Fin 3), IsSpatiallySmooth 1 fun (y : X) => b y j) → (∀ (j i : Fin 3), IsSpatiallySmooth 1 fun (x : X) => gradX (fun (y : X) => b y j) x i) → (∀ (x : X) (i j : Fin 3), gradX (fun (y : X) => b y j) x i + gradX (fun (y : X) => b y i) x j = 0) → ∀ (j : Fin 3) (x : X), divX (gradX fun (y : X) => b y j) x = 0
- hCurlZeroDivZeroHarmonic (F : X → Fin 3 → ℝ) : (∀ (i : Fin 3), IsSpatiallySmooth 1 fun (y : X) => F y i) → (∀ (i j : Fin 3), IsSpatiallySmooth 1 fun (x : X) => gradX (fun (y : X) => F y i) x j) → (∀ (x : X), curlX F x = 0) → (∀ (x : X), divX F x = 0) → ∀ (i : Fin 3) (x : X), divX (gradX fun (y : X) => F y i) x = 0
- hSpatialVelocityFubini (F : X → (Fin 3 → ℝ) → ℝ) : MeasureTheory.Integrable (Function.uncurry F) (MeasureTheory.volume.prod MeasureTheory.volume) → ∫ (x : X) (v : Fin 3 → ℝ), F x v = ∫ (v : Fin 3 → ℝ) (x : X), F x v
- hSpatialAdd (g₁ g₂ : X → ℝ) : MeasureTheory.Integrable g₁ MeasureTheory.volume → MeasureTheory.Integrable g₂ MeasureTheory.volume → ∫ (x : X), g₁ x + g₂ x = (∫ (x : X), g₁ x) + ∫ (x : X), g₂ x
- hGradIntegrable (g : X → ℝ) : IsSpatiallySmooth 1 g → ∀ (i : Fin 3), MeasureTheory.Integrable (fun (x : X) => gradX g x i) MeasureTheory.volume
Instances
Compatibility wrapper: spatial integral as Mathlib's Bochner integral.
Defined as abbrev so it unfolds transparently in rewrites.
Equations
- VML.FlatTorus3.spatialIntegral g = ∫ (x : X), g x