Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter ScalarDGammaEsa

Definition
ChapterScalarDGammaEsa

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

definitionsformalizationtimepiece

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

Definition code
import Definitions.Def_ChapterSecondQuantizationCoreEsa
import Definitions.Def_ChapterFarisLavine
import Definitions.Def_ChapterGraphCoreTransfer
import Definitions.Def_ChapterTensorGraphCore
import Mathlib
import Theorems.Thm_BookProof_TensorCore_sectorOp_apply


/-!
# An unconditional instance: second quantization of a scalar one-particle operator

The main theorem of `BookProof/ChapterSecondQuantizationCoreEsa.lean` carries one hypothesis,
sector by sector: essential self-adjointness of the derivation `dΓ(A)⁽ⁿ⁾` on the *full*
tensor power `D₂^{⊗n}` of the domain of the closure.  This module discharges that hypothesis
completely in a concrete family of examples — the **scalar** one-particle operators
`A = c • id` with `c : ℝ`, defined on all of `H` — and thereby produces an unconditional
statement of the second quantization theorem over an arbitrary dense core `D`:

> If `D ⊆ H` is any dense subspace, then `dΓ(c • id)` is essentially self-adjoint on the
> finite-particle domain `𝓕_fin(D)`.

Here `D` is a core for `c • id` but is in general *not* invariant under anything and carries
no resolvent; the passage from `H` to `D` is exactly the core transfer principle.  On the
`n`-particle sector the derivation is the scalar `n · c`, which is bounded, so the
sector hypothesis follows from the elementary criterion
`BookProof.GraphCore.essentiallySelfAdjointOn_of_bounded_dense`.

## Contents

* `scalarOp` — the one-particle operator `c • id` on `⊤`;
* `symmetricOn_scalarOp`, `isGraphCore_scalarOp` — it is symmetric, and every dense subspace
  is a core for it;
* `derPow_scalar` — the sector derivation of a scalar operator is the scalar `n · c`;
* `essentiallySelfAdjointOn_fockSectorDom_scalar` — the sector hypothesis, proved;
* `dGamma_scalar_essentiallySelfAdjointOn_fockCore` — **the unconditional theorem**.

Nothing is assumed: the module contains no `axiom` and no `sorry`.
-/

namespace BookProof.ScalarDGamma

open scoped TensorProduct
open BookProof.FarisLavine BookProof.GraphCore BookProof.TensorCore
  BookProof.SecondQuantizationCore BookProof.DirectSumEsa

noncomputable section

/-! ## The elementary-tensor equations of `inclPow` / `derPow`

The platform's published `Def_ChapterTensorGraphCore` carries the definitions but not these
three `rfl` equations, so each consumer states them itself. -/

@[simp] theorem inclPow_tmul (Hs : IPSpace) (D₂ : Submodule ℂ Hs.carrier) (n : ℕ)
    (a : D₂) (b : ((domSpace Hs D₂).pow n)) :
    inclPow Hs D₂ (n + 1) (a ⊗ₜ[ℂ] b) = (a : Hs.carrier) ⊗ₜ[ℂ] inclPow Hs D₂ n b := rfl

@[simp] theorem derPow_zero (Hs : IPSpace) (D₂ : Submodule ℂ Hs.carrier)
    (A : D₂ →ₗ[ℂ] Hs.carrier) (x : ((domSpace Hs D₂).pow 0)) :
    derPow Hs D₂ A 0 x = 0 := rfl

@[simp] theorem derPow_tmul (Hs : IPSpace) (D₂ : Submodule ℂ Hs.carrier)
    (A : D₂ →ₗ[ℂ] Hs.carrier) (n : ℕ) (a : D₂) (b : ((domSpace Hs D₂).pow n)) :
    derPow Hs D₂ A (n + 1) (a ⊗ₜ[ℂ] b)
      = (A a) ⊗ₜ[ℂ] inclPow Hs D₂ n b + (a : Hs.carrier) ⊗ₜ[ℂ] derPow Hs D₂ A n b := rfl

variable (Hs : IPSpace) (c : ℝ)

/-! ## The scalar one-particle operator -/

/-- The scalar one-particle operator `A = c • id`, defined on all of `H`. -/
def scalarOp : (⊤ : Submodule ℂ Hs.carrier) →ₗ[ℂ] Hs.carrier :=
  (c : ℂ) • (⊤ : Submodule ℂ Hs.carrier).subtype

@[simp] theorem scalarOp_apply (x : (⊤ : Submodule ℂ Hs.carrier)) :
    scalarOp Hs c x = (c : ℂ) • (x : Hs.carrier) := rfl

/-- A real scalar operator is symmetric. -/
theorem symmetricOn_scalarOp : SymmetricOn ⊤ (scalarOp Hs c) := by
  intro x y
  rw [scalarOp_apply, scalarOp_apply, inner_smul_left, inner_smul_right, Complex.conj_ofReal]

/-- **Every dense subspace is a core for a scalar operator.** -/
theorem isGraphCore_scalarOp {D : Submodule ℂ Hs.carrier}
    (hdense : Dense (D : Set Hs.carrier)) : IsGraphCore D (scalarOp Hs c) := by
  intro x ε hε
  have hden : (0 : ℝ) < 1 + |c| := by positivity
  have hpos : 0 < ε / (1 + |c|) := by positivity
  obtain ⟨y, hyD, hy⟩ := Metric.mem_closure_iff.mp (hdense (x : Hs.carrier)) _ hpos
  have hxy : ‖(x : Hs.carrier) - y‖ < ε / (1 + |c|) := by rw [← dist_eq_norm]; exact hy
  have hmul : (1 + |c|) * ‖(x : Hs.carrier) - y‖ < ε := by
    have := (mul_lt_mul_of_pos_left hxy hden)
    calc (1 + |c|) * ‖(x : Hs.carrier) - y‖ < (1 + |c|) * (ε / (1 + |c|)) := this
      _ = ε := by field_simp
  have hnn : 0 ≤ ‖(x : Hs.carrier) - y‖ := norm_nonneg _
  refine ⟨⟨y, trivial⟩, hyD, ?_, ?_⟩
  · nlinarith [abs_nonneg c]
  · have hEq : scalarOp Hs c x - scalarOp Hs c ⟨y, trivial⟩
        = (c : ℂ) • ((x : Hs.carrier) - y) := by
      simp only [scalarOp_apply]
      rw [smul_sub]
    rw [hEq, norm_smul]
    have hc : ‖(c : ℂ)‖ = |c| := by simp
    rw [hc]
    nlinarith

/-! ## The sector derivation of a scalar operator -/

/-- The sector derivation of the scalar operator `c • id` is the scalar `n · c`. -/
theorem derPow_scalar (n : ℕ) (x : ((domSpace Hs ⊤).pow n)) :
    derPow Hs ⊤ (scalarOp Hs c) n x = ((n : ℂ) * c) • inclPow Hs ⊤ n x := by
  induction n with
  | zero => simp [derPow]
  | succ n ih =>
      have hx : x ∈ Submodule.span ℂ
          {t : ((⊤ : Submodule ℂ Hs.carrier) ⊗[ℂ] ((domSpace Hs ⊤).pow n).carrier) |
            ∃ (p : (⊤ : Submodule ℂ Hs.carrier)) (q : ((domSpace Hs ⊤).pow n)),
              p ⊗ₜ[ℂ] q = t} := by
        rw [TensorProduct.span_tmul_eq_top]; trivial
      induction hx using Submodule.span_induction with
      | mem t ht =>
          obtain ⟨a, b, rfl⟩ := ht
          rw [derPow_tmul, inclPow_tmul, ih b, scalarOp_apply, TensorProduct.tmul_smul,
            TensorProduct.smul_tmul', TensorProduct.smul_tmul', ← TensorProduct.add_tmul,
            ← add_smul]
          have hcoef : (c : ℂ) + (n : ℂ) * c = ((n + 1 : ℕ) : ℂ) * c := by push_cast; ring
          rw [hcoef]
      | zero => simp
      | add s t _ _ hs ht => rw [map_add, map_add, hs, ht, smul_add]
      | smul r s _ hs => rw [map_smul, map_smul, hs, smul_comm]

/-! ## The sector domain is everything -/

/-- With the full domain `⊤`, the inclusion of tensor powers is surjective. -/
theorem inclPow_top_surjective (n : ℕ) : Function.Surjective (inclPow Hs ⊤ n) := by
  induction n with
  | zero => exact fun x => ⟨x, rfl⟩
  | succ n ih =>
      have h1 : Function.Surjective ((⊤ : Submodule ℂ Hs.carrier).subtype) :=
        fun x => ⟨⟨x, trivial⟩, rfl⟩
      exact TensorProduct.map_surjective h1 ih



/-- The sector derivation of a scalar operator, seen inside `H^{⊗n}`, is the scalar
`n · c`. -/
theorem sectorOp_scalar (n : ℕ) (x : sectorDom Hs ⊤ n) :
    sectorOp Hs ⊤ (scalarOp Hs c) n x = ((n : ℂ) * c) • (x : (Hs.pow n).carrier) := by
  obtain ⟨x₀, hx₀⟩ := x.2
  have hx : (x : (Hs.pow n).carrier) = inclPow Hs ⊤ n x₀ := hx₀.symm
  rw [sectorOp_apply Hs ⊤ _ n x x₀ hx, derPow_scalar, hx]

/-! ## The sector hypothesis, discharged -/







/-! ## The unconditional theorem -/



end

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