From ee2134e448cba578a42a6693ff5edd0d454c6aa0 Mon Sep 17 00:00:00 2001 From: jstoobysmith <72603918+jstoobysmith@users.noreply.github.com> Date: Thu, 6 Feb 2025 13:28:52 +0000 Subject: [PATCH] doc: Related to time ordering --- .../FieldOpAlgebra/TimeOrder.lean | 16 ++++++++-- .../FieldOpFreeAlgebra/TimeOrder.lean | 7 +++-- .../FieldSpecification/TimeOrder.lean | 29 +++++++++++-------- scripts/MetaPrograms/notes.lean | 12 ++++---- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean index 98cec2d..b3f17fc 100644 --- a/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpAlgebra/TimeOrder.lean @@ -367,7 +367,14 @@ lemma ฮน_timeOrderF_eq_of_equiv (a b : ๐“•.FieldOpFreeAlgebra) (h : a โ‰ˆ b) : simp only [LinearMap.mem_ker, โ† map_sub] exact ฮน_timeOrderF_zero_of_mem_ideal (a - b) h -/-- Time ordering on `FieldOpAlgebra`. -/ +/-- For a field specification `๐“•`, `timeOrder` is the linear map + +`FieldOpAlgebra ๐“• โ†’โ‚—[โ„‚] FieldOpAlgebra ๐“•` + +defined as the decent of `ฮน โˆ˜โ‚— timeOrderF` from `FieldOpFreeAlgebra ๐“•` to `FieldOpAlgebra ๐“•`. +This decent exists because `timeOrderF` is well-defined on equivalence classes. + +The notation `๐“ฃ(a)` is used for `timeOrder a`. -/ noncomputable def timeOrder : FieldOpAlgebra ๐“• โ†’โ‚—[โ„‚] FieldOpAlgebra ๐“• where toFun := Quotient.lift (ฮน.toLinearMap โˆ˜โ‚— timeOrderF) ฮน_timeOrderF_eq_of_equiv map_add' x y := by @@ -423,8 +430,11 @@ 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 `ฯ†โ‚€โ€ฆฯ†โ‚™`-/ +/-- For a field specification `๐“•`, the time order operator acting on a + list of `๐“•.FieldOp`, `๐“ฃ(ฯ†โ‚€โ€ฆฯ†โ‚™)`, is equal to + `๐“ข(ฯ†แตข,ฯ†โ‚€โ€ฆฯ†แตขโ‚‹โ‚) โ€ข ฯ†แตข * ๐“ฃ(ฯ†โ‚€โ€ฆฯ†แตขโ‚‹โ‚ฯ†แตขโ‚Šโ‚ฯ†โ‚™)` where `ฯ†แตข` is the maximal time field in `ฯ†โ‚€โ€ฆฯ†โ‚™`. + + The proof of this result ultimitley relies on basic properties of ordering and signs. -/ lemma timeOrder_eq_maxTimeField_mul_finset (ฯ† : ๐“•.FieldOp) (ฯ†s : List ๐“•.FieldOp) : ๐“ฃ(ofFieldOpList (ฯ† :: ฯ†s)) = ๐“ข(๐“• |>โ‚› maxTimeField ฯ† ฯ†s, ๐“• |>โ‚› โŸจ(eraseMaxTimeField ฯ† ฯ†s).get, (Finset.univ.filter (fun x => diff --git a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean index 19b4b5a..75ef74d 100644 --- a/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldOpFreeAlgebra/TimeOrder.lean @@ -26,9 +26,12 @@ open HepLean.List -/ -/-- Time ordering for the `FieldOpFreeAlgebra` defined by taking +/-- For a field specification `๐“•`, `timeOrderF` is the linear map + `FieldOpFreeAlgebra ๐“• โ†’โ‚—[โ„‚] FieldOpFreeAlgebra ๐“•` + defined by its action on the basis `ofCrAnListF ฯ†s`, taking `ofCrAnListF ฯ†s` to `crAnTimeOrderSign ฯ†s โ€ข ofCrAnListF (crAnTimeOrderList ฯ†s)`. - The notation `๐“ฃแถ (a)` is used for the time-ordering of `a : FieldOpFreeAlgebra`. -/ + + The notation `๐“ฃแถ (a)` is used for `timeOrderF a` -/ def timeOrderF : FieldOpFreeAlgebra ๐“• โ†’โ‚—[โ„‚] FieldOpFreeAlgebra ๐“• := Basis.constr ofCrAnListFBasis โ„‚ fun ฯ†s => crAnTimeOrderSign ฯ†s โ€ข ofCrAnListF (crAnTimeOrderList ฯ†s) diff --git a/HepLean/PerturbationTheory/FieldSpecification/TimeOrder.lean b/HepLean/PerturbationTheory/FieldSpecification/TimeOrder.lean index c6a7f6f..4243840 100644 --- a/HepLean/PerturbationTheory/FieldSpecification/TimeOrder.lean +++ b/HepLean/PerturbationTheory/FieldSpecification/TimeOrder.lean @@ -191,14 +191,17 @@ lemma timeOrderList_eq_maxTimeField_timeOrderList (ฯ† : ๐“•.FieldOp) (ฯ†s : Lis -/ -/-- For a field specification `๐“•`, `๐“•.crAnTimeOrderRel` is time ordering relation on - `๐“•.CrAnFieldOp` defined to put those field operators with greatest time to the left on - ordering a list. Thus `๐“•.crAnTimeOrderRel ฯ†โ‚€ ฯ†โ‚` is true if and only if one of the following is - true -- `ฯ†โ‚€` is an outgoing asymptotic creation and annihilation field operator -- `ฯ†โ‚` is an incoming asymptotic creation and annihilation field operator -- `ฯ†โ‚€` and `ฯ†โ‚` are both position operators where `ฯ†โ‚€` occurs at a time greater then or equal to - that of `ฯ†โ‚`. -/ +/-- For a field specification `๐“•`, `๐“•.crAnTimeOrderRel` is a relation on + `๐“•.CrAnFieldOp` representing time ordering. + It is defined as such that `๐“•.crAnTimeOrderRel ฯ†โ‚€ ฯ†โ‚` is true if and only if one of the following + holds +- `ฯ†โ‚€` is an *outgoing* asymptotic operator +- `ฯ†โ‚` is an *incoming* asymptotic field operator +- `ฯ†โ‚€` and `ฯ†โ‚` are both position field operators where + the `SpaceTime` point of `ฯ†โ‚€` has a time *greater* then or equal to that of `ฯ†โ‚`. + +Thus, colloquially `๐“•.crAnTimeOrderRel ฯ†โ‚€ ฯ†โ‚` if `ฯ†โ‚€` has time *greater* then or equal to `ฯ†โ‚`. + -/ def crAnTimeOrderRel (a b : ๐“•.CrAnFieldOp) : Prop := ๐“•.timeOrderRel a.1 b.1 /-- The relation `crAnTimeOrderRel` is decidable, but not computablly so due to @@ -218,9 +221,10 @@ instance : IsTrans ๐“•.CrAnFieldOp ๐“•.crAnTimeOrderRel where lemma crAnTimeOrderRel_refl (ฯ† : ๐“•.CrAnFieldOp) : crAnTimeOrderRel ฯ† ฯ† := by exact (IsTotal.to_isRefl (r := ๐“•.crAnTimeOrderRel)).refl ฯ† -/-- The sign associated with putting a list of `CrAnFieldOp` into time order (with - the state of greatest time to the left). - We pick up a minus sign for every fermion paired crossed. -/ +/-- For a field specification `๐“•`, and a list `ฯ†s` of `๐“•.CrAnFieldOp`, + `๐“•.crAnTimeOrderSign ฯ†s` is the sign corresponding to the number of `ferimionic`-`fermionic` + undertaken to time-order (i.e. order with respect to `๐“•.crAnTimeOrderRel`) `ฯ†s` using the + insertion sort algorithm. -/ def crAnTimeOrderSign (ฯ†s : List ๐“•.CrAnFieldOp) : โ„‚ := Wick.koszulSign ๐“•.crAnStatistics ๐“•.crAnTimeOrderRel ฯ†s @@ -246,7 +250,8 @@ lemma crAnTimeOrderSign_swap_eq_time {ฯ† ฯˆ : ๐“•.CrAnFieldOp} crAnTimeOrderSign (ฯ†s ++ ฯ† :: ฯˆ :: ฯ†s') = crAnTimeOrderSign (ฯ†s ++ ฯˆ :: ฯ† :: ฯ†s') := by exact Wick.koszulSign_swap_eq_rel _ _ h1 h2 _ _ -/-- Sort a list of `CrAnFieldOp` based on `crAnTimeOrderRel`. -/ +/-- For a field specification `๐“•`, and a list `ฯ†s` of `๐“•.CrAnFieldOp`, + `๐“•.crAnTimeOrderList ฯ†s` is the list `ฯ†s` time-ordered using the insertion sort algorithm. -/ def crAnTimeOrderList (ฯ†s : List ๐“•.CrAnFieldOp) : List ๐“•.CrAnFieldOp := List.insertionSort ๐“•.crAnTimeOrderRel ฯ†s diff --git a/scripts/MetaPrograms/notes.lean b/scripts/MetaPrograms/notes.lean index b87f0bb..0d63e2e 100644 --- a/scripts/MetaPrograms/notes.lean +++ b/scripts/MetaPrograms/notes.lean @@ -179,17 +179,17 @@ def perturbationTheory : Note where .name ``FieldSpecification.FieldOpAlgebra.fieldOpAlgebraGrade .complete, .name ``FieldSpecification.FieldOpAlgebra.superCommute .complete, .h1 "Time ordering", - .name ``FieldSpecification.crAnTimeOrderRel .incomplete, - .name ``FieldSpecification.crAnTimeOrderSign .incomplete, - .name ``FieldSpecification.FieldOpFreeAlgebra.timeOrderF .incomplete, - .name ``FieldSpecification.FieldOpAlgebra.timeOrder .incomplete, - .name ``FieldSpecification.FieldOpAlgebra.timeOrder_eq_maxTimeField_mul_finset .incomplete, + .name ``FieldSpecification.crAnTimeOrderRel .complete, + .name ``FieldSpecification.crAnTimeOrderList .complete, + .name ``FieldSpecification.crAnTimeOrderSign .complete, + .name ``FieldSpecification.FieldOpFreeAlgebra.timeOrderF .complete, + .name ``FieldSpecification.FieldOpAlgebra.timeOrder .complete, + .name ``FieldSpecification.FieldOpAlgebra.timeOrder_eq_maxTimeField_mul_finset .complete, .h1 "Normal ordering", .name ``FieldSpecification.normalOrderRel .incomplete, .name ``FieldSpecification.normalOrderSign .incomplete, .name ``FieldSpecification.FieldOpFreeAlgebra.normalOrderF .incomplete, .name ``FieldSpecification.FieldOpAlgebra.normalOrder .incomplete, - .h2 "Some lemmas", .name ``FieldSpecification.normalOrderSign_eraseIdx .incomplete, .name ``FieldSpecification.FieldOpAlgebra.ofCrAnOp_superCommute_normalOrder_ofCrAnList_sum .incomplete, .name ``FieldSpecification.FieldOpAlgebra.ofFieldOp_mul_normalOrder_ofFieldOpList_eq_sum .incomplete,