Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

The Lean 4 theorem `ab_nonneg` in the `?` chapter of the timepiece formalization

Definition
ChapterSqSumOuterFamily

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

definitionsformalizationtimepiece

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

Definition code
import Theorems.Thm_BookProof_SqSumFarisLavine_norm_sqSumOp_le

import Theorems.Thm_BookProof_SqSumFarisLavine_potFun_le_of_schur

import Theorems.Thm_BookProof_QgOuterFockFL_harmFried_op_core

import Definitions.Def_ChapterQgOuterFockFullFL
import Definitions.Def_ChapterDirectSumEsa
import Definitions.Def_ChapterFarisLavine
import Definitions.Def_ChapterGaussCoreQuadBounds
import Definitions.Def_ChapterHermiteProductBasis
import Definitions.Def_ChapterHermiteProductCore
import Definitions.Def_ChapterQgHermiteOscillatorEsa
import Definitions.Def_ChapterQgOuterFockEsa
import Definitions.Def_ChapterQgOuterFockCoreFL
import Definitions.Def_ChapterQgOuterFockFarisLavine
import Definitions.Def_ChapterSqSumFarisLavine
import Mathlib
import Theorems.Thm_BookProof_DirectSumEsa_dsCore_dense
import Theorems.Thm_BookProof_QgOuterFockFL_Comparison_esa_self
import Theorems.Thm_BookProof_QgOuterFock_sqSumOp_symmetricOn
import Theorems.Thm_BookProof_QgOuterFock_sqSumOp_essentiallySelfAdjointOn
import Theorems.Thm_BookProof_SqSumFarisLavine_sum_gradFun_sq_le_of_schur
import Theorems.Thm_BookProof_SqSumFarisLavine_commForm_sqSumOp_le
import Theorems.Thm_BookProof_DirectSumEsa_dsOp_symmetricOn
import Theorems.Thm_BookProof_DirectSumEsa_dsOp_essentiallySelfAdjointOn
import Theorems.Thm_BookProof_QgOuterFockCoreFL_CoreData_ext_symmetricOn
import Theorems.Thm_BookProof_QgOuterFockCoreFL_CoreData_ext_norm_le


/-!
# Uniform kinetic-plus-squares families on an outer Fock space of arbitrary fibre dimension

`BookProof.ChapterQgOuterFockInteractionFL` proves Faris–Lavine essential self-adjointness
for a uniform family of kinetic-plus-squares Hamiltonians on the *quantum-gravity* outer
Fock space `⊕ₙ L²(ℝ^{84n})`: the fibre dimension `84` is hard-wired there.  Nothing in the
argument uses the number `84`, so this module repeats the development with the sequence of
sector dimensions as a parameter.  It is the instrument the Navier–Stokes thread needs
(`BookProof.ChapterNsOuterFockFarisLavine`, fibre dimension `18` per parcel), and it
specialises back to the gravity statement at `dim n = n * 84`.

## The data

A `SqFamily` is

* a sequence of sector dimensions `dim : ℕ → ℕ` — the number of field-space coordinates of
  the `n`-particle sector;
* for every `n` a finite index type `R n` of linear forms, a real signature
  `kap n : Fin (dim n) → ℝ` and coefficient vectors `vv n : R n → Fin (dim n) → ℝ`,
  defining the sector Hamiltonian

  `H_n = ½ Σ_I kap_I π_I² + ½ Σ_r L_r²`,  `L_r = Σ_I vv_{rI} x_I`

  on the Gauss–polynomial core of `L²(ℝ^{dim n})` (`BookProof.QgOuterFock.sqSumOp`);
* three **uniform** bounds: `|kap n I| ≤ km`, the row bound `Σ_I |vv n r I| ≤ a` and the
  column bound `Σ_r |vv n r I| ≤ b`, with `km`, `a`, `b` independent of `n`.

No structural restriction is placed on the linear forms: a form may mix the coordinates of
arbitrarily many different particles, so the Hamiltonian need not be a sum of one-particle
operators.

## What is proved

* `outerFock`, `outerCore`, `outerCore_dense`, `outerComparison`, `outerFriedDom`,
  `outerCore_le_friedDom` — the outer Fock space of the dimension sequence, its
  finite-particle core, and the lifted Friedrichs extension of the positive one-particle
  operator `N₁ = −Δ + ‖x‖²/4` as a Faris–Lavine comparison operator on it;
* `SqFamily.secHam`, `secHam_symmetricOn`, `secHam_essentiallySelfAdjointOn` — the sector
  Hamiltonians;
* `SqFamily.flK`, `SqFamily.flc`, `secHam_norm_le`, `secHam_commForm_le` — the two
  Faris–Lavine inequalities with constants `flK = 3km/2 + 4ab` and `flc = km/2 + 2ab`,
  **uniform in the particle number**;
* `SqFamily.outerHam`, `outerHam_symmetricOn`, `outerHam_esa` — the Hamiltonian on the
  finite-particle core;
* `SqFamily.secExt` — the sector Hamiltonians extended from the Gauss–polynomial core to
  the whole domain of the sector comparison operator;
* **`SqFamily.esa_farisLavine`** — the headline: essential self-adjointness on the domain
  of the lifted comparison operator, together with the statement that the operator so
  realized extends `outerHam` on the finite-particle core.

Everything is `sorry`-free and `axiom`-free.
-/

namespace BookProof.SqSumOuterFamily

open Finset MvPolynomial
open BookProof.HermiteProductCore BookProof.HermiteProductBasis
open BookProof.QgHermiteOscillator BookProof.FarisLavine
open BookProof.DirectSumEsa
open BookProof.QgOuterFock BookProof.QgOuterFockFL BookProof.QgOuterFockCoreFL
open BookProof.QgOuterFockFullFL
open BookProof.GaussCoreQuadBounds BookProof.SqSumFarisLavine

noncomputable section

/-! ## 1. The outer Fock space of a sequence of sector dimensions -/

variable (dim : ℕ → ℕ)

/-- **The outer Fock space** of a sequence of sector dimensions: the `ℓ²`-direct sum
`⊕ₙ L²(ℝ^{dim n})`. -/
abbrev outerFock : Type := lp (fun n : ℕ => L2d (dim n)) 2

/-- The finite-particle core: the algebraic direct sum of the sector Gauss–polynomial
cores. -/
def outerCore : Submodule ℂ (outerFock dim) :=
  dsCore (fun n : ℕ => polyGaussCore (d := dim n))

theorem outerCore_dense :
    Dense ((outerCore dim : Submodule ℂ (outerFock dim)) : Set (outerFock dim)) :=
  dsCore_dense fun _ => polyGaussCore_dense

/-- **The lifted comparison operator** `dΓ(N₁)`, `N₁ = −Δ + ‖x‖²/4`, in its Friedrichs
realization: positive, self-adjoint, and with `N + 1` onto the outer Fock space. -/
def outerComparison : Comparison (outerFock dim) :=
  dsComparison (fun n : ℕ => harmFried (dim n))

/-- The domain of the lifted comparison operator. -/
abbrev outerFriedDom : Submodule ℂ (outerFock dim) := (outerComparison dim).dom

/-- The lifted comparison operator on the outer Fock space. -/
abbrev outerFriedN : outerFriedDom dim →ₗ[ℂ] outerFock dim := (outerComparison dim).op

theorem outerFriedN_symmetricOn : SymmetricOn (outerFriedDom dim) (outerFriedN dim) :=
  (outerComparison dim).sym

theorem outerFriedN_quadForm_nonneg (x : outerFriedDom dim) :
    0 ≤ quadForm (outerFriedN dim) x := (outerComparison dim).pos x

/-- `N + 1` is onto the outer Fock space. -/
theorem outerFriedN_surj (f : outerFock dim) :
    ∃ x : outerFriedDom dim, outerFriedN dim x + (x : outerFock dim) = f :=
  (outerComparison dim).surj f

/-- The lifted comparison operator is essentially self-adjoint on its own domain. -/
theorem outerFriedN_esa : EssentiallySelfAdjointOn (outerFriedDom dim) (outerFriedN dim) :=
  (outerComparison dim).esa_self

set_option maxHeartbeats 1600000 in
-- the lifted domain is built from the Friedrichs completion, so unfolding it is costly
/-- The finite-particle core sits inside the domain of the lifted comparison operator. -/
theorem outerCore_le_friedDom : outerCore dim ≤ outerFriedDom dim := by
  intro x hx
  refine ⟨fun n => polyGaussCore_le_harmFriedDom (dim n) (hx.2 n), ?_⟩
  have hfun : (fun n : ℕ => opTot (harmFried (dim n)).op ((x : outerFock dim) n))
      = fun n : ℕ => (QgOuterFockFL.harmCore ⟨(x : outerFock dim) n, hx.2 n⟩ : L2d (dim n)) := by
    funext n
    rw [opTot_of_mem _ (polyGaussCore_le_harmFriedDom (dim n) (hx.2 n)),
      harmFried_op_core (dim n) ⟨(x : outerFock dim) n, hx.2 n⟩]
  rw [hfun]
  refine memLp_of_finite_support (Set.Finite.subset hx.1 fun n hn => ?_)
  simp only [Set.mem_setOf_eq] at hn ⊢
  intro h0
  refine hn ?_
  have hz : (⟨(x : outerFock dim) n, hx.2 n⟩ : polyGaussCore (d := dim n)) = 0 :=
    Subtype.ext h0
  rw [hz, map_zero]

/-! ## 2. Uniform families -/

/-- **A uniform family of kinetic-plus-squares Hamiltonians on the sectors of an outer Fock
space.**  The `n`-particle Hamiltonian is `½ Σ_I kap_I π_I² + ½ Σ_r L_r²` with `L_r` the
linear form of coefficient vector `vv n r`; the three bounds `km`, `a`, `b` are uniform in
the particle number `n`. -/
structure SqFamily where
  /-- The sequence of sector dimensions. -/
  dim : ℕ → ℕ
  /-- The index type of the linear forms of the `n`-particle sector. -/
  R : ℕ → Type
  [finR : ∀ n, Fintype (R n)]
  /-- The signature of the kinetic term of the `n`-particle sector. -/
  kap : ∀ n : ℕ, Fin (dim n) → ℝ
  /-- The coefficient vectors of the linear forms of the `n`-particle sector. -/
  vv : ∀ n : ℕ, R n → Fin (dim n) → ℝ
  /-- The uniform bound on the signature. -/
  km : ℝ
  /-- The uniform row (`ℓ¹`-per-form) bound. -/
  a : ℝ
  /-- The uniform column (`ℓ¹`-per-coordinate) bound. -/
  b : ℝ
  km_nonneg : 0 ≤ km
  a_nonneg : 0 ≤ a
  b_nonneg : 0 ≤ b
  kap_le : ∀ (n : ℕ) (I : Fin (dim n)), |kap n I| ≤ km
  row_le : ∀ (n : ℕ) (r : R n), ∑ I : Fin (dim n), |vv n r I| ≤ a
  col_le : ∀ (n : ℕ) (I : Fin (dim n)), ∑ r : R n, |vv n r I| ≤ b

attribute [instance] SqFamily.finR

namespace SqFamily

variable (F : SqFamily)

/-- The relative-bound constant of the family. -/
def flK : ℝ := 3 / 2 * F.km + 4 * (F.a * F.b)

/-- The Faris–Lavine commutator constant of the family. -/
def flc : ℝ := F.km / 2 + 2 * (F.a * F.b)

theorem ab_nonneg : 0 ≤ F.a * F.b := mul_nonneg F.a_nonneg F.b_nonneg

theorem flK_nonneg : 0 ≤ F.flK := by
  have h := F.ab_nonneg
  have := F.km_nonneg
  rw [flK]; linarith

theorem flc_nonneg : 0 ≤ F.flc := by
  have h := F.ab_nonneg
  have := F.km_nonneg
  rw [flc]; linarith

/-- **The `n`-particle Hamiltonian of the family**, on the Gauss–polynomial core of
`L²(ℝ^{dim n})`. -/
def secHam (n : ℕ) : polyGaussCore (d := F.dim n) →ₗ[ℂ] L2d (F.dim n) :=
  sqSumOp (F.kap n) (F.vv n)

theorem secHam_symmetricOn (n : ℕ) :
    SymmetricOn (polyGaussCore (d := F.dim n)) (F.secHam n) :=
  sqSumOp_symmetricOn _ _

theorem secHam_essentiallySelfAdjointOn (n : ℕ) :
    EssentiallySelfAdjointOn (polyGaussCore (d := F.dim n)) (F.secHam n) :=
  sqSumOp_essentiallySelfAdjointOn _ _

/-- **The relative bound**, with a constant uniform in the particle number. -/
theorem secHam_norm_le (n : ℕ) (u : polyGaussCore (d := F.dim n)) :
    ‖F.secHam n u‖ ≤ F.flK * ‖QgHermiteOscillator.harmCore u + (u : L2d (F.dim n))‖ := by
  have hB : ∀ x : Vd (F.dim n), potFun (F.vv n) x ≤ (F.a * F.b / 2) * ‖x‖ ^ 2 :=
    fun x => potFun_le_of_schur F.a_nonneg (F.row_le n) (F.col_le n) x
  have hB0 : (0 : ℝ) ≤ F.a * F.b / 2 := by
    have := F.ab_nonneg; linarith
  have heq : 3 / 2 * F.km + 8 * (F.a * F.b / 2) = F.flK := by rw [flK]; ring
  rw [secHam, ← heq]
  exact norm_sqSumOp_le F.km_nonneg (F.kap_le n) hB0 hB u

/-- **The Faris–Lavine commutator bound**, with a constant uniform in the particle
number. -/
theorem secHam_commForm_le (n : ℕ) (u : polyGaussCore (d := F.dim n)) :
    |commForm (F.secHam n) QgHermiteOscillator.harmCore u|
        ≤ F.flc * quadForm QgHermiteOscillator.harmCore u := by
  have hM : ∀ x : Vd (F.dim n),
      ∑ k : Fin (F.dim n), (gradFun (F.vv n) k x) ^ 2 ≤ (F.a * F.b) ^ 2 * ‖x‖ ^ 2 :=
    fun x => sum_gradFun_sq_le_of_schur F.a_nonneg F.b_nonneg (F.row_le n) (F.col_le n) x
  have heq : F.km / 2 + 2 * (F.a * F.b) = F.flc := by rw [flc]
  rw [secHam, ← heq]
  exact commForm_sqSumOp_le F.km_nonneg (F.kap_le n) F.ab_nonneg hM u

/-! ### The Hamiltonian on the outer Fock space -/

/-- **The Hamiltonian of the family on the finite-particle core of the outer Fock
space.** -/
def outerHam : outerCore F.dim →ₗ[ℂ] outerFock F.dim := dsOp (fun n : ℕ => F.secHam n)

theorem outerHam_symmetricOn : SymmetricOn (outerCore F.dim) F.outerHam :=
  dsOp_symmetricOn _ fun n => F.secHam_symmetricOn n

/-- The Carleman route applies sector by sector: the Hamiltonian is essentially
self-adjoint already on the finite-particle core. -/
theorem outerHam_esa : EssentiallySelfAdjointOn (outerCore F.dim) F.outerHam :=
  dsOp_essentiallySelfAdjointOn _ fun n => F.secHam_essentiallySelfAdjointOn n

/-- The Faris–Lavine core data of the `n`-particle Hamiltonian. -/
def secData (n : ℕ) : CoreData (L2d (F.dim n)) where
  C := harmFried (F.dim n)
  C₀ := polyGaussCore (d := F.dim n)
  gc := harmFried_isGraphCore (F.dim n)
  H₀ := F.secHam n
  K := F.flK
  hK := F.flK_nonneg
  rel := by
    intro p
    rw [harmFried_op_core (F.dim n) p]
    exact F.secHam_norm_le n p

/-- The `n`-particle Hamiltonian, extended from the Gauss–polynomial core to the whole
domain of the sector comparison operator. -/
def secExt (n : ℕ) : (harmFried (F.dim n)).dom →ₗ[ℂ] L2d (F.dim n) := (F.secData n).ext

theorem secExt_symmetricOn (n : ℕ) :
    SymmetricOn (harmFried (F.dim n)).dom (F.secExt n) :=
  (F.secData n).ext_symmetricOn (F.secHam_symmetricOn n)



theorem secExt_rel : ∀ (n : ℕ) (u : (harmFried (F.dim n)).dom),
    ‖F.secExt n u‖ ≤ F.flK * ‖(harmFried (F.dim n)).op u + (u : L2d (F.dim n))‖ :=
  fun n u => (F.secData n).ext_norm_le u







end SqFamily

end

end BookProof.SqSumOuterFamily
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterSqSumOuterFamily.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