diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean index 92ac539c..a72bd169 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/Basic.lean @@ -501,18 +501,18 @@ def anPart (Ο : π.FieldOp) : π.FieldOpAlgebra := ΞΉ (anPartF Ο) lemma anPart_eq_ΞΉ_anPartF (Ο : π.FieldOp) : anPart Ο = ΞΉ (anPartF Ο) := rfl @[simp] -lemma anPart_negAsymp (Ο : π.IncomingAsymptotic) : +lemma anPart_negAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : anPart (FieldOp.inAsymp Ο) = 0 := by simp [anPart, anPartF] @[simp] -lemma anPart_position (Ο : π.PositionFieldOp) : +lemma anPart_position (Ο : π.Fields Γ SpaceTime) : anPart (FieldOp.position Ο) = ofCrAnFieldOp β¨FieldOp.position Ο, CreateAnnihilate.annihilateβ© := by simp [anPart, ofCrAnFieldOp] @[simp] -lemma anPart_posAsymp (Ο : π.OutgoingAsymptotic) : +lemma anPart_posAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : anPart (FieldOp.outAsymp Ο) = ofCrAnFieldOp β¨FieldOp.outAsymp Ο, ()β© := by simp [anPart, ofCrAnFieldOp] @@ -522,18 +522,18 @@ def crPart (Ο : π.FieldOp) : π.FieldOpAlgebra := ΞΉ (crPartF Ο) lemma crPart_eq_ΞΉ_crPartF (Ο : π.FieldOp) : crPart Ο = ΞΉ (crPartF Ο) := rfl @[simp] -lemma crPart_negAsymp (Ο : π.IncomingAsymptotic) : +lemma crPart_negAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : crPart (FieldOp.inAsymp Ο) = ofCrAnFieldOp β¨FieldOp.inAsymp Ο, ()β© := by simp [crPart, ofCrAnFieldOp] @[simp] -lemma crPart_position (Ο : π.PositionFieldOp) : +lemma crPart_position (Ο : π.Fields Γ SpaceTime) : crPart (FieldOp.position Ο) = ofCrAnFieldOp β¨FieldOp.position Ο, CreateAnnihilate.createβ© := by simp [crPart, ofCrAnFieldOp] @[simp] -lemma crPart_posAsymp (Ο : π.OutgoingAsymptotic) : +lemma crPart_posAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : crPart (FieldOp.outAsymp Ο) = 0 := by simp [crPart] diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean index afbf9dd4..0326d2ef 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean @@ -506,5 +506,13 @@ lemma timeOrder_timeOrder_right (a b : π.FieldOpAlgebra) : rw [timeOrder_timeOrder_mid] simp +/-- Time ordering is a projection. -/ +lemma timeOrder_timeOrder (a : π.FieldOpAlgebra) : + π£(π£(a)) = π£(a) := by + trans π£(π£(a) * 1) + Β· simp + Β· rw [β timeOrder_timeOrder_left] + simp + end FieldOpAlgebra end FieldSpecification diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean index 81293383..46d88511 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean @@ -34,11 +34,12 @@ super commutation relations between creation and annihilation operators. namespace FieldSpecification variable {π : FieldSpecification} -/-- The creation and annihlation free-algebra. - The free algebra generated by `CrAnFieldOp`, - that is a position based states or assymptotic states with a specification of - whether the state is a creation or annihlation state. - As a module `FieldOpFreeAlgebra` is spanned by lists of `CrAnFieldOp`. -/ +/-- For a field specification `π`, the algebra `π.FieldOpFreeAlgebra` is + the algebra is 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. +-/ abbrev FieldOpFreeAlgebra (π : FieldSpecification) : Type := FreeAlgebra β π.CrAnFieldOp namespace FieldOpFreeAlgebra @@ -120,18 +121,18 @@ def crPartF : π.FieldOp β π.FieldOpFreeAlgebra := fun Ο => | FieldOp.outAsymp _ => 0 @[simp] -lemma crPartF_negAsymp (Ο : π.IncomingAsymptotic) : +lemma crPartF_negAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : crPartF (FieldOp.inAsymp Ο) = ofCrAnOpF β¨FieldOp.inAsymp Ο, ()β© := by simp [crPartF] @[simp] -lemma crPartF_position (Ο : π.PositionFieldOp) : +lemma crPartF_position (Ο : π.Fields Γ SpaceTime) : crPartF (FieldOp.position Ο) = ofCrAnOpF β¨FieldOp.position Ο, CreateAnnihilate.createβ© := by simp [crPartF] @[simp] -lemma crPartF_posAsymp (Ο : π.OutgoingAsymptotic) : +lemma crPartF_posAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : crPartF (FieldOp.outAsymp Ο) = 0 := by simp [crPartF] @@ -145,18 +146,18 @@ def anPartF : π.FieldOp β π.FieldOpFreeAlgebra := fun Ο => | FieldOp.outAsymp Ο => ofCrAnOpF β¨FieldOp.outAsymp Ο, ()β© @[simp] -lemma anPartF_negAsymp (Ο : π.IncomingAsymptotic) : +lemma anPartF_negAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : anPartF (FieldOp.inAsymp Ο) = 0 := by simp [anPartF] @[simp] -lemma anPartF_position (Ο : π.PositionFieldOp) : +lemma anPartF_position (Ο : π.Fields Γ SpaceTime) : anPartF (FieldOp.position Ο) = ofCrAnOpF β¨FieldOp.position Ο, CreateAnnihilate.annihilateβ© := by simp [anPartF] @[simp] -lemma anPartF_posAsymp (Ο : π.OutgoingAsymptotic) : +lemma anPartF_posAsymp (Ο : π.Fields Γ Lorentz.Contr 4) : anPartF (FieldOp.outAsymp Ο) = ofCrAnOpF β¨FieldOp.outAsymp Ο, ()β© := by simp [anPartF] diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean index 6a5ec8f8..56813f8f 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean @@ -26,7 +26,9 @@ open HepLean.List -/ -/-- Time ordering for the `FieldOpFreeAlgebra`. -/ +/-- Time ordering for the `FieldOpFreeAlgebra` defined by taking + `ofCrAnListF Οs` to `crAnTimeOrderSign Οs β’ ofCrAnListF (crAnTimeOrderList Οs)`. + The notation `π£αΆ (a)` is used for the time-ordering of `a : FieldOpFreeAlgebra`. -/ def timeOrderF : FieldOpFreeAlgebra π ββ[β] FieldOpFreeAlgebra π := Basis.constr ofCrAnListFBasis β fun Οs => crAnTimeOrderSign Οs β’ ofCrAnListF (crAnTimeOrderList Οs) diff --git a/HepLean/PerturbationTheory/FieldSpecification/Basic.lean b/HepLean/PerturbationTheory/FieldSpecification/Basic.lean index 95b42a66..faa5e7aa 100644 --- a/HepLean/PerturbationTheory/FieldSpecification/Basic.lean +++ b/HepLean/PerturbationTheory/FieldSpecification/Basic.lean @@ -45,28 +45,24 @@ structure FieldSpecification where namespace FieldSpecification variable (π : FieldSpecification) -/-- An incoming asymptotic state is a field and a momentum. -/ -def IncomingAsymptotic : Type := π.Fields Γ Lorentz.Contr 4 - -/-- An outgoing asymptotic states is a field and a momentum. -/ -def OutgoingAsymptotic : Type := π.Fields Γ Lorentz.Contr 4 - -/-- A position state is a field and a space-time position. -/ -def PositionFieldOp : Type := π.Fields Γ SpaceTime - -/-- The type FieldOp is the inductive type combining the asymptotic states and position states. -/ +/-- For a field specification `π`, the type `π.FieldOp` is defined such that every element of + `FieldOp` corresponds either to: +- an incoming asymptotic field operator `.inAsymp` specified by a field and a `4`-momentum. +- an position operator `.position` specified by a field and a point in spacetime. +- an outgoing asymptotic field operator `.outAsymp` specified by a field and a `4`-momentum. +-/ inductive FieldOp (π : FieldSpecification) where - | inAsymp : π.IncomingAsymptotic β π.FieldOp - | position : π.PositionFieldOp β π.FieldOp - | outAsymp : π.OutgoingAsymptotic β π.FieldOp + | inAsymp : π.Fields Γ Lorentz.Contr 4 β π.FieldOp + | position : π.Fields Γ SpaceTime β π.FieldOp + | outAsymp : π.Fields Γ Lorentz.Contr 4 β π.FieldOp -/-- Taking a state to its underlying field. -/ +/-- Taking a field operator to its underlying field. -/ def fieldOpToField : π.FieldOp β π.Fields | FieldOp.inAsymp Ο => Ο.1 | FieldOp.position Ο => Ο.1 | FieldOp.outAsymp Ο => Ο.1 -/-- The bool on `FieldOp` which is true only for position states. -/ +/-- The bool on `FieldOp` which is true only for position field operator. -/ def statesIsPosition : π.FieldOp β Bool | FieldOp.position _ => true | _ => false diff --git a/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean b/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean index 724a107b..9bf4c783 100644 --- a/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean +++ b/HepLean/PerturbationTheory/FieldSpecification/CrAnFieldOp.lean @@ -34,9 +34,9 @@ In this module in addition to defining `CrAnFieldOp` we also define some maps: namespace FieldSpecification variable (π : FieldSpecification) -/-- To each state the specificaition of the type of creation and annihlation parts. - For asymptotic staes there is only one allowed part, whilst for position states - there is two. -/ +/-- To each field operator the specificaition of the type of creation and annihlation parts. + For asymptotic staes there is only one allowed part, whilst for position + field operator there is two. -/ def fieldOpToCrAnType : π.FieldOp β Type | FieldOp.inAsymp _ => Unit | FieldOp.position _ => CreateAnnihilate @@ -62,12 +62,19 @@ def fieldOpToCreateAnnihilateTypeCongr : {i j : π.FieldOp} β i = j β π.fieldOpToCrAnType i β π.fieldOpToCrAnType j | _, _, rfl => Equiv.refl _ -/-- A creation and annihlation state is a state plus an valid specification of the - creation or annihliation part of that state. (For asympotic states there is only one valid - choice). -/ +/-- +For a field specification `π`, the type `π.CrAnFieldOp` is defined such that every element +corresponds to +- an incoming asymptotic field operator `.inAsymp` and the unique element of `Unit`, + corresponding to the statement that an `inAsymp` state is a creation operator. +- a position operator `.position` and an element of `CreateAnnihilate`, + corresponding to either the creation part or the annihilation part of a position operator. +- an outgoing asymptotic field operator `.outAsymp` and the unique element of `Unit`, + corresponding to the statement that an `outAsymp` state is an annihilation operator. +-/ def CrAnFieldOp : Type := Ξ£ (s : π.FieldOp), π.fieldOpToCrAnType s -/-- The map from creation and annihlation states to their underlying states. -/ +/-- The map from creation and annihlation field operator to their underlying states. -/ def crAnFieldOpToFieldOp : π.CrAnFieldOp β π.FieldOp := Sigma.fst @[simp] diff --git a/HepLean/PerturbationTheory/FieldStatistics/Basic.lean b/HepLean/PerturbationTheory/FieldStatistics/Basic.lean index f7595e6c..90c50660 100644 --- a/HepLean/PerturbationTheory/FieldStatistics/Basic.lean +++ b/HepLean/PerturbationTheory/FieldStatistics/Basic.lean @@ -15,9 +15,8 @@ Basic properties related to whether a field, or list of fields, is bosonic or fe -/ -/-- A field can either be bosonic or fermionic in nature. - That is to say, they can either have Bose-Einstein statistics or - Fermi-Dirac statistics. -/ +/-- The type `FieldStatistic` is the type containing two elements `bosonic` and `fermionic`. + This type is used to specify if a field or operator obeys bosonic or fermionic statistics. -/ inductive FieldStatistic : Type where | bosonic : FieldStatistic | fermionic : FieldStatistic diff --git a/HepLean/PerturbationTheory/FieldStatistics/ExchangeSign.lean b/HepLean/PerturbationTheory/FieldStatistics/ExchangeSign.lean index 53ca3a7b..e3949722 100644 --- a/HepLean/PerturbationTheory/FieldStatistics/ExchangeSign.lean +++ b/HepLean/PerturbationTheory/FieldStatistics/ExchangeSign.lean @@ -24,10 +24,12 @@ namespace FieldStatistic variable {π : Type} -/-- The exchange sign of two field statistics is defined to be - `-1` if both field statistics are `fermionic` and `1` otherwise. - It is a group homomorphism from `FieldStatistic` to the group of homomorphisms from - `FieldStatistic` to `β`. -/ +/-- The exchange sign is the group homomorphism `FieldStatistic β* FieldStatistic β* β`, + which on two field statistics `a` and `b` is defined to be + `-1` if both `a` and `b` are `fermionic` and `1` otherwise. + It corresponds to the sign that one picks up when swapping fields `ΟβΟβ β ΟβΟβ` with + `Οβ` and `Οβ` of statistics `a` and `b` respectively. + The notation `π’(a, b)` is used for the exchange sign of `a` and `b`. -/ def exchangeSign : FieldStatistic β* FieldStatistic β* β where toFun a := { @@ -55,8 +57,7 @@ def exchangeSign : FieldStatistic β* FieldStatistic β* β where <;> fin_cases b <;> fin_cases c <;> simp -/-- The echange sign of two field statistics. - Defined to be `-1` if both field statistics are `fermionic` and `1` otherwise. -/ +@[inherit_doc exchangeSign] scoped[FieldStatistic] notation "π’(" a "," b ")" => exchangeSign a b /-- The exchange sign is symmetric. -/ diff --git a/docs/CuratedNotes/PerturbationTheory.html b/docs/CuratedNotes/PerturbationTheory.html index 4b92ccf4..56095026 100644 --- a/docs/CuratedNotes/PerturbationTheory.html +++ b/docs/CuratedNotes/PerturbationTheory.html @@ -51,6 +51,11 @@
{{ entry.content }}
{% endif %} + {% if entry.type == "warning" %} +