2025-01-20 15:17:48 +00:00
|
|
|
|
/-
|
|
|
|
|
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
|
|
|
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
|
Authors: Joseph Tooby-Smith
|
|
|
|
|
-/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldSpecification.CrAnFieldOp
|
2025-01-21 06:11:47 +00:00
|
|
|
|
import HepLean.PerturbationTheory.FieldSpecification.CrAnSection
|
2025-01-20 15:17:48 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
# Creation and annihlation free-algebra
|
|
|
|
|
|
|
|
|
|
This module defines the creation and annihilation algebra for a field structure.
|
|
|
|
|
|
|
|
|
|
The creation and annihilation algebra extends from the state algebra by adding information about
|
|
|
|
|
whether a state is a creation or annihilation operator.
|
|
|
|
|
|
|
|
|
|
The algebra is spanned by lists of creation/annihilation states.
|
|
|
|
|
|
|
|
|
|
The main structures defined in this module are:
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
* `FieldOpFreeAlgebra` - The creation and annihilation algebra
|
2025-02-03 11:21:11 +00:00
|
|
|
|
* `ofCrAnOpF` - Maps a creation/annihilation state to the algebra
|
|
|
|
|
* `ofCrAnListF` - Maps a list of creation/annihilation states to the algebra
|
2025-02-03 11:13:23 +00:00
|
|
|
|
* `ofFieldOpF` - Maps a state to a sum of creation and annihilation operators
|
2025-01-30 06:24:17 +00:00
|
|
|
|
* `crPartF` - The creation part of a state in the algebra
|
|
|
|
|
* `anPartF` - The annihilation part of a state in the algebra
|
2025-01-30 05:52:50 +00:00
|
|
|
|
* `superCommuteF` - The super commutator on the algebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
The key lemmas show how these operators interact, particularly focusing on the
|
|
|
|
|
super commutation relations between creation and annihilation operators.
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
namespace FieldSpecification
|
|
|
|
|
variable {𝓕 : FieldSpecification}
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 15:59:25 +00:00
|
|
|
|
/-- For a field specification `𝓕`, the algebra `𝓕.FieldOpFreeAlgebra` is
|
2025-02-04 14:56:38 +00:00
|
|
|
|
the algebra generated by creation and annihilation parts of field operators defined in
|
2025-02-03 15:59:25 +00:00
|
|
|
|
`𝓕.CrAnFieldOp`.
|
|
|
|
|
It represents the algebra containing all possible products and linear combinations
|
|
|
|
|
of creation and annihilation parts of field operators, without imposing any conditions.
|
|
|
|
|
-/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
abbrev FieldOpFreeAlgebra (𝓕 : FieldSpecification) : Type := FreeAlgebra ℂ 𝓕.CrAnFieldOp
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
namespace FieldOpFreeAlgebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-- Maps a creation and annihlation state to the creation and annihlation free-algebra. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofCrAnOpF (φ : 𝓕.CrAnFieldOp) : FieldOpFreeAlgebra 𝓕 :=
|
2025-01-20 15:17:48 +00:00
|
|
|
|
FreeAlgebra.ι ℂ φ
|
|
|
|
|
|
|
|
|
|
/-- Maps a list creation and annihlation state to the creation and annihlation free-algebra
|
|
|
|
|
by taking their product. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofCrAnListF (φs : List 𝓕.CrAnFieldOp) : FieldOpFreeAlgebra 𝓕 := (List.map ofCrAnOpF φs).prod
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofCrAnListF_nil : ofCrAnListF ([] : List 𝓕.CrAnFieldOp) = 1 := rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofCrAnListF_cons (φ : 𝓕.CrAnFieldOp) (φs : List 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ofCrAnListF (φ :: φs) = ofCrAnOpF φ * ofCrAnListF φs := rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofCrAnListF_append (φs φs' : List 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ofCrAnListF (φs ++ φs') = ofCrAnListF φs * ofCrAnListF φs' := by
|
|
|
|
|
simp [ofCrAnListF, List.map_append]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofCrAnListF_singleton (φ : 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ofCrAnListF [φ] = ofCrAnOpF φ := by simp [ofCrAnListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-- Maps a state to the sum of creation and annihilation operators in
|
|
|
|
|
creation and annihilation free-algebra. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofFieldOpF (φ : 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 :=
|
|
|
|
|
∑ (i : 𝓕.fieldOpToCrAnType φ), ofCrAnOpF ⟨φ, i⟩
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-- Maps a list of states to the creation and annihilation free-algebra by taking
|
|
|
|
|
the product of their sums of creation and annihlation operators.
|
|
|
|
|
Roughly `[φ1, φ2]` gets sent to `(φ1ᶜ+ φ1ᵃ) * (φ2ᶜ+ φ2ᵃ)` etc. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def ofFieldOpListF (φs : List 𝓕.FieldOp) : FieldOpFreeAlgebra 𝓕 := (List.map ofFieldOpF φs).prod
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
/-- Coercion from `List 𝓕.FieldOp` to `FieldOpFreeAlgebra 𝓕` through `ofFieldOpListF`. -/
|
|
|
|
|
instance : Coe (List 𝓕.FieldOp) (FieldOpFreeAlgebra 𝓕) := ⟨ofFieldOpListF⟩
|
2025-01-24 07:18:48 +00:00
|
|
|
|
|
2025-01-20 15:17:48 +00:00
|
|
|
|
@[simp]
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpListF_nil : ofFieldOpListF ([] : List 𝓕.FieldOp) = 1 := rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpListF_cons (φ : 𝓕.FieldOp) (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
ofFieldOpListF (φ :: φs) = ofFieldOpF φ * ofFieldOpListF φs := rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpListF_singleton (φ : 𝓕.FieldOp) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
ofFieldOpListF [φ] = ofFieldOpF φ := by simp [ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpListF_append (φs φs' : List 𝓕.FieldOp) :
|
2025-02-03 11:10:20 +00:00
|
|
|
|
ofFieldOpListF (φs ++ φs') = ofFieldOpListF φs * ofFieldOpListF φs' := by
|
|
|
|
|
dsimp only [ofFieldOpListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rw [List.map_append, List.prod_append]
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpListF_sum (φs : List 𝓕.FieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ofFieldOpListF φs = ∑ (s : CrAnSection φs), ofCrAnListF s.1 := by
|
2025-01-20 15:17:48 +00:00
|
|
|
|
induction φs with
|
|
|
|
|
| nil => simp
|
|
|
|
|
| cons φ φs ih =>
|
|
|
|
|
rw [CrAnSection.sum_cons]
|
2025-02-03 11:21:11 +00:00
|
|
|
|
dsimp only [CrAnSection.cons, ofCrAnListF_cons]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
conv_rhs =>
|
|
|
|
|
enter [2, x]
|
|
|
|
|
rw [← Finset.mul_sum]
|
2025-02-03 11:10:20 +00:00
|
|
|
|
rw [← Finset.sum_mul, ofFieldOpListF_cons, ← ih]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
rfl
|
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Creation and annihilation parts of a state
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
/-- The algebra map taking an element of the free-state algbra to
|
|
|
|
|
the part of it in the creation and annihlation free algebra
|
|
|
|
|
spanned by creation operators. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def crPartF : 𝓕.FieldOp → 𝓕.FieldOpFreeAlgebra := fun φ =>
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ with
|
2025-02-03 11:28:14 +00:00
|
|
|
|
| FieldOp.inAsymp φ => ofCrAnOpF ⟨FieldOp.inAsymp φ, ()⟩
|
|
|
|
|
| FieldOp.position φ => ofCrAnOpF ⟨FieldOp.position φ, CreateAnnihilate.create⟩
|
|
|
|
|
| FieldOp.outAsymp _ => 0
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma crPartF_negAsymp (φ : 𝓕.Fields × Lorentz.Contr 4) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
crPartF (FieldOp.inAsymp φ) = ofCrAnOpF ⟨FieldOp.inAsymp φ, ()⟩ := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [crPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma crPartF_position (φ : 𝓕.Fields × SpaceTime) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
crPartF (FieldOp.position φ) =
|
|
|
|
|
ofCrAnOpF ⟨FieldOp.position φ, CreateAnnihilate.create⟩ := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [crPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma crPartF_posAsymp (φ : 𝓕.Fields × Lorentz.Contr 4) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
crPartF (FieldOp.outAsymp φ) = 0 := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [crPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-- The algebra map taking an element of the free-state algbra to
|
|
|
|
|
the part of it in the creation and annihilation free algebra
|
|
|
|
|
spanned by annihilation operators. -/
|
2025-02-03 11:28:14 +00:00
|
|
|
|
def anPartF : 𝓕.FieldOp → 𝓕.FieldOpFreeAlgebra := fun φ =>
|
2025-01-20 15:17:48 +00:00
|
|
|
|
match φ with
|
2025-02-03 11:28:14 +00:00
|
|
|
|
| FieldOp.inAsymp _ => 0
|
|
|
|
|
| FieldOp.position φ => ofCrAnOpF ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩
|
|
|
|
|
| FieldOp.outAsymp φ => ofCrAnOpF ⟨FieldOp.outAsymp φ, ()⟩
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma anPartF_negAsymp (φ : 𝓕.Fields × Lorentz.Contr 4) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
anPartF (FieldOp.inAsymp φ) = 0 := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [anPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma anPartF_position (φ : 𝓕.Fields × SpaceTime) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
anPartF (FieldOp.position φ) =
|
|
|
|
|
ofCrAnOpF ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [anPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 15:59:25 +00:00
|
|
|
|
lemma anPartF_posAsymp (φ : 𝓕.Fields × Lorentz.Contr 4) :
|
2025-02-03 11:28:14 +00:00
|
|
|
|
anPartF (FieldOp.outAsymp φ) = ofCrAnOpF ⟨FieldOp.outAsymp φ, ()⟩ := by
|
2025-01-30 06:24:17 +00:00
|
|
|
|
simp [anPartF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofFieldOpF_eq_crPartF_add_anPartF (φ : 𝓕.FieldOp) :
|
2025-02-03 11:13:23 +00:00
|
|
|
|
ofFieldOpF φ = crPartF φ + anPartF φ := by
|
|
|
|
|
rw [ofFieldOpF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
cases φ with
|
2025-02-03 11:28:14 +00:00
|
|
|
|
| inAsymp φ => simp [fieldOpToCrAnType]
|
|
|
|
|
| position φ => simp [fieldOpToCrAnType, CreateAnnihilate.sum_eq]
|
|
|
|
|
| outAsymp φ => simp [fieldOpToCrAnType]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## The basis of the creation and annihlation free-algebra.
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-02-03 11:28:14 +00:00
|
|
|
|
/-- The basis of the free creation and annihilation algebra formed by lists of CrAnFieldOp. -/
|
|
|
|
|
noncomputable def ofCrAnListFBasis : Basis (List 𝓕.CrAnFieldOp) ℂ (FieldOpFreeAlgebra 𝓕) where
|
2025-01-20 15:17:48 +00:00
|
|
|
|
repr := FreeAlgebra.equivMonoidAlgebraFreeMonoid.toLinearEquiv
|
|
|
|
|
|
|
|
|
|
@[simp]
|
2025-02-03 11:28:14 +00:00
|
|
|
|
lemma ofListBasis_eq_ofList (φs : List 𝓕.CrAnFieldOp) :
|
2025-02-03 11:21:11 +00:00
|
|
|
|
ofCrAnListFBasis φs = ofCrAnListF φs := by
|
|
|
|
|
simp only [ofCrAnListFBasis, FreeAlgebra.equivMonoidAlgebraFreeMonoid, MonoidAlgebra.of_apply,
|
2025-01-20 15:17:48 +00:00
|
|
|
|
Basis.coe_ofRepr, AlgEquiv.toLinearEquiv_symm, AlgEquiv.toLinearEquiv_apply,
|
2025-02-03 11:21:11 +00:00
|
|
|
|
AlgEquiv.ofAlgHom_symm_apply, ofCrAnListF]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
erw [MonoidAlgebra.lift_apply]
|
|
|
|
|
simp only [zero_smul, Finsupp.sum_single_index, one_smul]
|
|
|
|
|
rw [@FreeMonoid.lift_apply]
|
|
|
|
|
match φs with
|
|
|
|
|
| [] => rfl
|
2025-01-23 01:16:08 +01:00
|
|
|
|
| φ :: φs => erw [List.map_cons]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Some useful multi-linear maps.
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
/-- The bi-linear map associated with multiplication in `FieldOpFreeAlgebra`. -/
|
2025-02-03 11:42:56 +00:00
|
|
|
|
noncomputable def mulLinearMap : FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕 →ₗ[ℂ]
|
|
|
|
|
FieldOpFreeAlgebra 𝓕 where
|
2025-01-20 15:17:48 +00:00
|
|
|
|
toFun a := {
|
|
|
|
|
toFun := fun b => a * b,
|
2025-01-23 01:16:08 +01:00
|
|
|
|
map_add' := fun c d => by simp [mul_add]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
map_smul' := by simp}
|
|
|
|
|
map_add' := fun a b => by
|
|
|
|
|
ext c
|
|
|
|
|
simp [add_mul]
|
|
|
|
|
map_smul' := by
|
|
|
|
|
intros
|
|
|
|
|
ext c
|
|
|
|
|
simp [smul_mul']
|
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
lemma mulLinearMap_apply (a b : FieldOpFreeAlgebra 𝓕) :
|
2025-01-23 01:16:08 +01:00
|
|
|
|
mulLinearMap a b = a * b := rfl
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
/-- The linear map associated with scalar-multiplication in `FieldOpFreeAlgebra`. -/
|
|
|
|
|
noncomputable def smulLinearMap (c : ℂ) : FieldOpFreeAlgebra 𝓕 →ₗ[ℂ] FieldOpFreeAlgebra 𝓕 where
|
2025-01-20 15:17:48 +00:00
|
|
|
|
toFun a := c • a
|
|
|
|
|
map_add' := by simp
|
2025-01-23 01:16:08 +01:00
|
|
|
|
map_smul' m x := by simp [smul_smul, RingHom.id_apply, NonUnitalNormedCommRing.mul_comm]
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-02-03 11:05:43 +00:00
|
|
|
|
end FieldOpFreeAlgebra
|
2025-01-20 15:17:48 +00:00
|
|
|
|
|
2025-01-21 06:11:47 +00:00
|
|
|
|
end FieldSpecification
|