/- 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 -/ import HepLean.PerturbationTheory.FieldSpecification.TimeOrder import HepLean.PerturbationTheory.Algebras.CrAnAlgebra.SuperCommute import HepLean.PerturbationTheory.Koszul.KoszulSign /-! # Norm-time Ordering in the CrAnAlgebra -/ namespace FieldSpecification variable {๐“• : FieldSpecification} open FieldStatistic namespace CrAnAlgebra noncomputable section open HepLean.List /-! ## Norm-time order -/ /-- The normal-time ordering on `CrAnAlgebra`. -/ def normTimeOrder : CrAnAlgebra ๐“• โ†’โ‚—[โ„‚] CrAnAlgebra ๐“• := Basis.constr ofCrAnListBasis โ„‚ fun ฯ†s => normTimeOrderSign ฯ†s โ€ข ofCrAnList (normTimeOrderList ฯ†s) @[inherit_doc normTimeOrder] scoped[FieldSpecification.CrAnAlgebra] notation "๐“ฃ๐“แถ (" a ")" => normTimeOrder a lemma normTimeOrder_ofCrAnList (ฯ†s : List ๐“•.CrAnStates) : ๐“ฃ๐“แถ (ofCrAnList ฯ†s) = normTimeOrderSign ฯ†s โ€ข ofCrAnList (normTimeOrderList ฯ†s) := by rw [โ† ofListBasis_eq_ofList] simp only [normTimeOrder, Basis.constr_basis] end end CrAnAlgebra end FieldSpecification