refactor: Docs for FieldOpFreeAlgebra

This commit is contained in:
jstoobysmith 2025-02-06 10:47:34 +00:00
parent 48e3417d5d
commit 2614e0bd92
6 changed files with 46 additions and 29 deletions

View file

@ -42,9 +42,12 @@ def fieldOpIdealSet : Set (FieldOpFreeAlgebra 𝓕) :=
annihilation operators always super-commute.
- `[ofCrAnOpF φ, ofCrAnOpF φ']ₛca` for `φ` and `φ'` field operators with different statistics.
I.e. Fermions super-commute with bosons.
The algebra `𝓕.FieldOpAlgebra` is the most general (in the correct sense) algebra
satisfying these properties.
-/
The algebra `𝓕.FieldOpAlgebra` satisfies the following universal property. For any
algebra `A` (e.g. the operator algebra of the theory) with a map `f : 𝓕.CrAnFieldOp → A` (e.g.
the inclusion of the creation and annihilation parts of field operators into the operator algebra)
such that the image of `f` obey the relations above, there exists a unique algebra map
`g : 𝓕.FieldOpAlgebra → A` through which `f` factors. -/
abbrev FieldOpAlgebra : Type := (TwoSidedIdeal.span 𝓕.fieldOpIdealSet).ringCon.Quotient
namespace FieldOpAlgebra

View file

@ -35,11 +35,13 @@ namespace FieldSpecification
variable {𝓕 : FieldSpecification}
/-- For a field specification `𝓕`, the algebra `𝓕.FieldOpFreeAlgebra` is
the free algebra generated by creation and annihilation parts of field operators defined in
`𝓕.CrAnFieldOp`.
It represents the algebra containing all possible products and linear combinations
of creation and annihilation parts of field operators, without imposing any conditions.
-/
the free algebra generated by `𝓕.CrAnFieldOp`.
The algebra `𝓕.FieldOpFreeAlgebra` satisfies the universal property that for any other algebra
`A` (e.g. the operator algebra of the theory) with a map `f : 𝓕.CrAnFieldOp → A` (e.g.
the inclusion of the creation and annihilation parts of field operators into the
operator algebra) there is a unqiue algebra map `g : 𝓕.FieldOpFreeAlgebra → A`
through which `f` factors. -/
abbrev FieldOpFreeAlgebra (𝓕 : FieldSpecification) : Type := FreeAlgebra 𝓕.CrAnFieldOp
namespace FieldOpFreeAlgebra
@ -75,16 +77,21 @@ lemma ofCrAnListF_singleton (φ : 𝓕.CrAnFieldOp) :
/-- For a field specification `𝓕`, the element of `𝓕.FieldOpFreeAlgebra` formed by a
`𝓕.FieldOp` by summing over the creation and annihilation components of `𝓕.FieldOp`.
For example for `φ₁` an incoming asymptotic field operator we get `φ₁ᶜ`, and for `φ₁` a
position field operator we get `φ₁ᶜ + φ₁ᵃ`. -/
For example for `φ₁` an incoming asymptotic field operator we get
`ofCrAnOpF φ₁ᶜ`, and for `φ₁` a
position field operator we get `ofCrAnOpF φ₁ᶜ + ofCrAnOpF φ₁ᵃ`. -/
def ofFieldOpF (φ : 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 :=
∑ (i : 𝓕.fieldOpToCrAnType φ), ofCrAnOpF ⟨φ, i⟩
/-- For a field specification `𝓕`, the element of `𝓕.FieldOpFreeAlgebra` formed by a
list of `𝓕.FieldOp` by summing over the creation and annihilation components.
For example, `φ₁` and `φ₂` position states `[φ1, φ2]` gets sent to `(φ1ᶜ+ φ1ᵃ) * (φ2ᶜ+ φ2ᵃ)`. -/
For example, `φ₁` and `φ₂` position states `[φ1, φ2]` gets sent to
`(ofCrAnOpF φ1ᶜ + ofCrAnOpF φ1ᵃ) * (ofCrAnOpF φ2ᶜ + ofCrAnOpF φ2ᵃ)`. -/
def ofFieldOpListF (φs : List 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 := (List.map ofFieldOpF φs).prod
remark notation_drop := "In doc-strings we will often drop explicit applications of `ofCrAnOpF`,
`ofCrAnListF`, `ofFieldOpF`, and `ofFieldOpListF`"
/-- Coercion from `List 𝓕.FieldOp` to `FieldOpFreeAlgebra 𝓕` through `ofFieldOpListF`. -/
instance : Coe (List 𝓕.FieldOp) (FieldOpFreeAlgebra 𝓕) := ⟨ofFieldOpListF⟩

View file

@ -237,8 +237,8 @@ lemma directSum_eq_bosonic_plus_fermionic
abel
/-- For a field statistic `𝓕`, the algebra `𝓕.FieldOpFreeAlgebra` is graded by `FieldStatistic`.
Those `ofCrAnListF φs` for which `φs` has `bosonic` statistics form one part of the grading,
whilst those where `φs` has `fermionic` statistics form the other part of the grading. -/
Those `ofCrAnListF φs` for which `φs` has `bosonic` statistics span one part of the grading,
whilst those where `φs` has `fermionic` statistics span the other part of the grading. -/
instance fieldOpFreeAlgebraGrade :
GradedAlgebra (A := 𝓕.FieldOpFreeAlgebra) statisticSubmodule where
one_mem := by

View file

@ -24,10 +24,11 @@ namespace FieldOpFreeAlgebra
open FieldStatistic
/-- For a field specification `𝓕`, the super commutator `superCommuteF` is defined as the linear
map `𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra` such that
`superCommuteF (φ₀ᶜ…φₙᵃ) (φ₀'ᶜ…φₙ'ᶜ)` is equal to
`φ₀ᶜ…φₙᵃ * φ₀'ᶜ…φₙ'ᶜ - 𝓢(φ₀ᶜ…φₙᵃ, φ₀'ᶜ…φₙ'ᶜ) φ₀'ᶜ…φₙ'ᶜ * φ₀ᶜ…φₙᵃ`.
The notation `[a, b]ₛca` is used for this super commutator. -/
map `𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra`
which on the lists `φs` and `φs'` of `𝓕.CrAnFieldOp` gives
`superCommuteF φs φs' = φs * φs' - 𝓢(φs, φs') • φs' * φs`.
The notation `[a, b]ₛca` can be used for `superCommuteF a b`. -/
noncomputable def superCommuteF : 𝓕.FieldOpFreeAlgebra →ₗ[] 𝓕.FieldOpFreeAlgebra →ₗ[]
𝓕.FieldOpFreeAlgebra :=
Basis.constr ofCrAnListFBasis fun φs =>
@ -404,9 +405,12 @@ lemma superCommuteF_ofCrAnListF_ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : L
simp [mul_comm]
/--
Within the creation and annihilation algebra, we have that
`[φᶜᵃs, φᶜᵃ₀ … φᶜᵃₙ]ₛca = ∑ i, sᵢ • φᶜᵃs₀ … φᶜᵃᵢ₋₁ * [φᶜᵃs, φᶜᵃᵢ]ₛca * φᶜᵃᵢ₊₁ … φᶜᵃₙ`
where `sᵢ` is the exchange sign for `φᶜᵃs` and `φᶜᵃs₀ … φᶜᵃᵢ₋₁`.
For a field specification `𝓕`, and to lists `φs = φ₀…φₙ` and `φs'` of `𝓕.CrAnFieldOp`
the following super commutation relation holds:
`[φs', φ₀…φₙ]ₛca = ∑ i, 𝓢(φs', φ₀…φᵢ₋₁) • φ₀…φᵢ₋₁ * [φs', φᵢ]ₛca * φᵢ₊₁ … φₙ`
The proof of this relation is via induction on the length of `φs`.
-/
lemma superCommuteF_ofCrAnListF_ofCrAnListF_eq_sum (φs : List 𝓕.CrAnFieldOp) :
(φs' : List 𝓕.CrAnFieldOp) → [ofCrAnListF φs, ofCrAnListF φs']ₛca =

View file

@ -120,6 +120,8 @@ some notation within doc-strings and in code. The main notation used is:
- In doc-strings when field statistics occur in exchange signs we may drop the `𝓕 |>ₛ _`.
- In doc-strings we will often write lists of `FieldOp` or `CrAnFieldOp` `φs` as e.g. `φ₀…φₙ`,
which should be interpreted within the context in which it appears.
- In doc-strings we may use e.g. `φᶜ` to indicate the creation part of an operator and
`φᵃ` to indicate the annihilation part of an operator.
Some examples:
- `𝓢(φ, φs)` corresponds to `𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ φs)`