Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter TensorGraphCore

Definition
ChapterTensorGraphCore

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

definitionsformalizationtimepiece

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

Definition code
import Definitions.Def_ChapterGraphCoreTransfer
import Mathlib


/-!
# Tensor powers: a one-particle core is a core for the sector derivation

Let `A` be a symmetric operator with domain `D₂` in a complex inner product space `H`, and
let `D ≤ D₂` be a **core** for `A` in the graph-norm sense of
`BookProof.GraphCore.IsGraphCore`.  The `n`-particle sector of the second quantization of
`A` carries the *derivation*

`dΓ(A)⁽ⁿ⁾ (x₁ ⊗ ⋯ ⊗ xₙ) = Σⱼ x₁ ⊗ ⋯ ⊗ A xⱼ ⊗ ⋯ ⊗ xₙ`,

defined on the algebraic tensor power `D₂^{⊗n}`.  This module proves the **multilinear core
estimate**: the algebraic tensor power `D^{⊗n}` of the one-particle core is again a core, now
for the sector derivation.  Together with the core transfer principle
(`BookProof.GraphCore.essentiallySelfAdjointOn_of_graphCore`) this is what allows the
hypothesis "`A` is self-adjoint on `D`" to be weakened to "`A` is essentially self-adjoint on
`D`" in the second quantization theorem: one never needs `D` to be invariant under the
unitary group, nor a resolvent of `A` on `D`.

## Contents

* `IPSpace` — a bundled complex inner product space, and `IPSpace.pow` its `n`-fold
  algebraic tensor power (`Mathlib` gives the tensor product of two inner product spaces its
  inner product, so the powers are inner product spaces by recursion).
* `inclPow` — the isometric inclusion `D₂^{⊗n} → H^{⊗n}`.
* `derPow` — the sector derivation `dΓ(A)⁽ⁿ⁾` on `D₂^{⊗n}`, defined by the Leibniz recursion
  `dΓ⁽ⁿ⁺¹⁾ = A ⊗ 1 + 1 ⊗ dΓ⁽ⁿ⁾`.
* `corePow` — the algebraic tensor power `D^{⊗n}` of the one-particle core.
* `exists_core_approx` — **the multilinear core estimate**: every vector of `D₂^{⊗n}` is
  approximated in the graph norm of `dΓ(A)⁽ⁿ⁾` by vectors of `D^{⊗n}`.
* `sectorDom`, `sectorCore`, `sectorOp` — the same data seen inside `H^{⊗n}`, and
  `isGraphCore_sectorCore`, the core estimate in the form used by the transfer principle.
* `essentiallySelfAdjointOn_sectorCore` — if the sector derivation is essentially
  self-adjoint on `D₂^{⊗n}`, it is essentially self-adjoint on `D^{⊗n}`.

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

namespace BookProof.TensorCore

open scoped TensorProduct
open BookProof.FarisLavine BookProof.GraphCore

noncomputable section

/-! ## Tensor powers of an inner product space -/

/-- A bundled complex inner product space.  Bundling is what makes the recursion defining
the tensor powers (and their inner products) possible. -/
structure IPSpace where
  /-- the underlying type -/
  carrier : Type
  [nacg : NormedAddCommGroup carrier]
  [ips : InnerProductSpace ℂ carrier]

attribute [instance] IPSpace.nacg IPSpace.ips

instance : CoeSort IPSpace Type := ⟨IPSpace.carrier⟩

/-- The `n`-fold algebraic tensor power `E^{⊗n}`, with `E^{⊗0} = ℂ`. -/
@[reducible] def IPSpace.pow (E : IPSpace) : ℕ → IPSpace
  | 0 => ⟨ℂ⟩
  | (n + 1) => ⟨E.carrier ⊗[ℂ] (E.pow n).carrier⟩

variable (Hs : IPSpace) (D₂ : Submodule ℂ Hs.carrier)

/-- The domain of the one-particle operator, as an inner product space in its own right. -/
@[reducible] def domSpace : IPSpace := ⟨D₂⟩

/-- The isometric inclusion `D₂^{⊗n} → H^{⊗n}`. -/
def inclPow : ∀ n : ℕ, ((domSpace Hs D₂).pow n) →ₗᵢ[ℂ] (Hs.pow n)
  | 0 => LinearIsometry.id
  | (n + 1) => TensorProduct.mapIsometry D₂.subtypeₗᵢ (inclPow n)



variable (A : D₂ →ₗ[ℂ] Hs.carrier)

/-- The **sector derivation** `dΓ(A)⁽ⁿ⁾` on the algebraic tensor power `D₂^{⊗n}`, defined by
the Leibniz recursion `dΓ⁽ⁿ⁺¹⁾ = A ⊗ 1 + 1 ⊗ dΓ⁽ⁿ⁾`.  On elementary tensors it is
`Σⱼ x₁ ⊗ ⋯ ⊗ A xⱼ ⊗ ⋯ ⊗ xₙ`. -/
def derPow : ∀ n : ℕ, ((domSpace Hs D₂).pow n) →ₗ[ℂ] (Hs.pow n)
  | 0 => 0
  | (n + 1) => TensorProduct.map A (inclPow Hs D₂ n).toLinearMap
      + TensorProduct.map D₂.subtype (derPow n)





variable (D : Submodule ℂ Hs.carrier)

/-- The algebraic tensor power `D^{⊗n}` of the one-particle core, as a subspace of
`D₂^{⊗n}`. -/
def corePow : ∀ n : ℕ, Submodule ℂ ((domSpace Hs D₂).pow n)
  | 0 => ⊤
  | (n + 1) =>
      Submodule.span ℂ
        {t | ∃ a : D₂, (a : Hs.carrier) ∈ D ∧ ∃ b ∈ corePow n, a ⊗ₜ[ℂ] b = t}



/-! ## The multilinear core estimate -/

/-- The graph map `x ↦ (x, dΓ(A)⁽ⁿ⁾ x)` of the sector derivation, with values in
`H^{⊗n} × H^{⊗n}`.  Density in the graph norm is density of the range of this map. -/
def graphPow (n : ℕ) : ((domSpace Hs D₂).pow n) →ₗ[ℂ] (Hs.pow n) × (Hs.pow n) :=
  (inclPow Hs D₂ n).toLinearMap.prod (derPow Hs D₂ A n)











/-! ## The sector inside `H^{⊗n}` -/

/-- The image of `D₂^{⊗n}` inside `H^{⊗n}`: the domain of the sector derivation. -/
def sectorDom (n : ℕ) : Submodule ℂ (Hs.pow n) :=
  LinearMap.range (inclPow Hs D₂ n).toLinearMap

/-- The image of the core tensor power `D^{⊗n}` inside `H^{⊗n}`. -/
def sectorCore (n : ℕ) : Submodule ℂ (Hs.pow n) :=
  Submodule.map (inclPow Hs D₂ n).toLinearMap (corePow Hs D₂ D n)



/-- The sector derivation `dΓ(A)⁽ⁿ⁾` as an operator on the subspace `sectorDom` of
`H^{⊗n}`. -/
def sectorOp (n : ℕ) : sectorDom Hs D₂ n →ₗ[ℂ] (Hs.pow n) :=
  derPow Hs D₂ A n ∘ₗ
    (LinearEquiv.ofInjective (inclPow Hs D₂ n).toLinearMap
      (inclPow Hs D₂ n).injective).symm.toLinearMap





/-! ## Symmetry of the sector derivation -/









/-! ## Non-vacuity -/





end

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