diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean index 0326d2e..f02df74 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean @@ -423,10 +423,12 @@ lemma timeOrder_ofFieldOpList_singleton (ฯ† : ๐“•.FieldOp) : ๐“ฃ(ofFieldOpList [ฯ†]) = ofFieldOpList [ฯ†] := by rw [ofFieldOpList, timeOrder_eq_ฮน_timeOrderF, timeOrderF_ofFieldOpListF_singleton] +/-- The time order of a list `๐“ฃ(ฯ†โ‚€โ€ฆฯ†โ‚™)` is equal to +`๐“ข(ฯ†แตข,ฯ†โ‚€โ€ฆฯ†แตขโ‚‹โ‚) โ€ข ฯ†แตข * ๐“ฃ(ฯ†โ‚€โ€ฆฯ†แตขโ‚‹โ‚ฯ†แตขโ‚Šโ‚ฯ†โ‚™)` where `ฯ†แตข` is the maximal time field in `ฯ†โ‚€โ€ฆฯ†โ‚™`-/ lemma timeOrder_eq_maxTimeField_mul_finset (ฯ† : ๐“•.FieldOp) (ฯ†s : List ๐“•.FieldOp) : ๐“ฃ(ofFieldOpList (ฯ† :: ฯ†s)) = ๐“ข(๐“• |>โ‚› maxTimeField ฯ† ฯ†s, ๐“• |>โ‚› โŸจ(eraseMaxTimeField ฯ† ฯ†s).get, - (Finset.filter (fun x => - (maxTimeFieldPosFin ฯ† ฯ†s).succAbove x < maxTimeFieldPosFin ฯ† ฯ†s) Finset.univ)โŸฉ) โ€ข + (Finset.univ.filter (fun x => + (maxTimeFieldPosFin ฯ† ฯ†s).succAbove x < maxTimeFieldPosFin ฯ† ฯ†s))โŸฉ) โ€ข ofFieldOp (maxTimeField ฯ† ฯ†s) * ๐“ฃ(ofFieldOpList (eraseMaxTimeField ฯ† ฯ†s)) := by rw [ofFieldOpList, timeOrder_eq_ฮน_timeOrderF, timeOrderF_eq_maxTimeField_mul_finset] rfl diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean index f20cc45..cc93f86 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Basic.lean @@ -50,12 +50,14 @@ remark naming_convention := " This is to avoid confusion when working within the context of `FieldOpAlgebra` which is defined as a quotient of `FieldOpFreeAlgebra`." -/-- Maps a creation and annihlation state to the creation and annihlation free-algebra. -/ +/-- For a field specification `๐“•`, the element of `๐“•.FieldOpFreeAlgebra` formed by a + single `๐“•.CrAnFieldOp`. -/ def ofCrAnOpF (ฯ† : ๐“•.CrAnFieldOp) : FieldOpFreeAlgebra ๐“• := FreeAlgebra.ฮน โ„‚ ฯ† -/-- Maps a list creation and annihlation state to the creation and annihlation free-algebra - by taking their product. -/ +/-- For a field specification `๐“•`, `ofCrAnListF ฯ†s` of `๐“•.FieldOpFreeAlgebra` formed by a + list `ฯ†s` of `๐“•.CrAnFieldOp`. For example for the list `[ฯ†โ‚แถœ, ฯ†โ‚‚แตƒ, ฯ†โ‚ƒแถœ]` we schematically + get `ฯ†โ‚แถœฯ†โ‚‚แตƒฯ†โ‚ƒแถœ`. The set of all `ofCrAnListF ฯ†s` forms a basis of `FieldOpFreeAlgebra ๐“•`. -/ def ofCrAnListF (ฯ†s : List ๐“•.CrAnFieldOp) : FieldOpFreeAlgebra ๐“• := (List.map ofCrAnOpF ฯ†s).prod @[simp] @@ -71,14 +73,16 @@ lemma ofCrAnListF_append (ฯ†s ฯ†s' : List ๐“•.CrAnFieldOp) : lemma ofCrAnListF_singleton (ฯ† : ๐“•.CrAnFieldOp) : ofCrAnListF [ฯ†] = ofCrAnOpF ฯ† := by simp [ofCrAnListF] -/-- Maps a state to the sum of creation and annihilation operators in - creation and annihilation free-algebra. -/ +/-- 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 `ฯ†โ‚แถœ + ฯ†โ‚แตƒ`. -/ def ofFieldOpF (ฯ† : ๐“•.FieldOp) : FieldOpFreeAlgebra ๐“• := โˆ‘ (i : ๐“•.fieldOpToCrAnType ฯ†), ofCrAnOpF โŸจฯ†, iโŸฉ -/-- 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. -/ +/-- 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แตƒ)`. -/ def ofFieldOpListF (ฯ†s : List ๐“•.FieldOp) : FieldOpFreeAlgebra ๐“• := (List.map ofFieldOpF ฯ†s).prod /-- Coercion from `List ๐“•.FieldOp` to `FieldOpFreeAlgebra ๐“•` through `ofFieldOpListF`. -/ diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Grading.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Grading.lean index 8f0c9df..ecc22ec 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Grading.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/Grading.lean @@ -237,7 +237,9 @@ lemma directSum_eq_bosonic_plus_fermionic conv_lhs => rw [hx, hy] abel -/-- The instance of a graded algebra on `FieldOpFreeAlgebra`. -/ +/-- 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. -/ instance fieldOpFreeAlgebraGrade : GradedAlgebra (A := ๐“•.FieldOpFreeAlgebra) statisticSubmodule where one_mem := by diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean index 05d8dd6..2cded43 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/SuperCommute.lean @@ -23,18 +23,18 @@ namespace FieldOpFreeAlgebra open FieldStatistic -/-- The super commutor on the creation and annihlation algebra. For two bosonic operators - or a bosonic and fermionic operator this corresponds to the usual commutator - whilst for two fermionic operators this corresponds to the anti-commutator. -/ +/-- 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. -/ noncomputable def superCommuteF : ๐“•.FieldOpFreeAlgebra โ†’โ‚—[โ„‚] ๐“•.FieldOpFreeAlgebra โ†’โ‚—[โ„‚] ๐“•.FieldOpFreeAlgebra := Basis.constr ofCrAnListFBasis โ„‚ fun ฯ†s => Basis.constr ofCrAnListFBasis โ„‚ fun ฯ†s' => ofCrAnListF (ฯ†s ++ ฯ†s') - ๐“ข(๐“• |>โ‚› ฯ†s, ๐“• |>โ‚› ฯ†s') โ€ข ofCrAnListF (ฯ†s' ++ ฯ†s) -/-- The super commutor on the creation and annihlation algebra. For two bosonic operators - or a bosonic and fermionic operator this corresponds to the usual commutator - whilst for two fermionic operators this corresponds to the anti-commutator. -/ +@[inherit_doc superCommuteF] scoped[FieldSpecification.FieldOpFreeAlgebra] notation "[" ฯ†s "," ฯ†s' "]โ‚›ca" => superCommuteF ฯ†s ฯ†s' /-! diff --git a/scripts/MetaPrograms/notes.lean b/scripts/MetaPrograms/notes.lean index efa8d8e..3355d54 100644 --- a/scripts/MetaPrograms/notes.lean +++ b/scripts/MetaPrograms/notes.lean @@ -137,6 +137,11 @@ def perturbationTheory : Note where .h2 "Field-operator free algebra", .name `FieldSpecification.FieldOpFreeAlgebra, .name `FieldSpecification.FieldOpFreeAlgebra.naming_convention, + .name `FieldSpecification.FieldOpFreeAlgebra.ofCrAnOpF, + .name `FieldSpecification.FieldOpFreeAlgebra.ofCrAnListF, + .name `FieldSpecification.FieldOpFreeAlgebra.ofFieldOpF, + .name `FieldSpecification.FieldOpFreeAlgebra.ofFieldOpListF, + .name `FieldSpecification.FieldOpFreeAlgebra.fieldOpFreeAlgebraGrade, .name `FieldSpecification.FieldOpFreeAlgebra.superCommuteF, .h2 "Field-operator algebra", .name `FieldSpecification.FieldOpAlgebra, @@ -146,6 +151,7 @@ def perturbationTheory : Note where .name `FieldSpecification.crAnTimeOrderSign, .name `FieldSpecification.FieldOpFreeAlgebra.timeOrderF, .name `FieldSpecification.FieldOpAlgebra.timeOrder, + .name `FieldSpecification.FieldOpAlgebra.timeOrder_eq_maxTimeField_mul_finset, .h1 "Normal ordering", .name `FieldSpecification.normalOrderRel, .name `FieldSpecification.normalOrderSign, @@ -169,6 +175,8 @@ def perturbationTheory : Note where .h2 "Cardinality", .name `WickContraction.card_eq_cardFun, .h1 "Time and static contractions", + .h1 "Useful results", + .h1 "The three Wick's theorems", .name `FieldSpecification.wicks_theorem, .name `FieldSpecification.FieldOpAlgebra.static_wick_theorem,