Imports
/- 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 -/ module public import Physlib.QFT.PerturbationTheory.WickAlgebra.NormalOrder.Lemmas public import Physlib.QFT.PerturbationTheory.WickAlgebra.TimeOrder

Time contractions

We define the state algebra of a field structure to be the free algebra generated by the states.

@[expose] public section

For a field specification 𝓕, and φ and ψ elements of 𝓕.FieldOp, the element of 𝓕.WickAlgebra, timeContract φ ψ is defined to be 𝓣(φψ) - 𝓝(φψ).

def timeContract (φ ψ : 𝓕.FieldOp) : 𝓕.WickAlgebra := 𝓣(ofFieldOp φ * ofFieldOp ψ) - 𝓝(ofFieldOp φ * ofFieldOp ψ)
lemma timeContract_eq_smul (φ ψ : 𝓕.FieldOp) : timeContract φ ψ = 𝓣(ofFieldOp φ * ofFieldOp ψ) + (-1 : ℂ) • 𝓝(ofFieldOp φ * ofFieldOp ψ) := 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOp⊢ timeContract φ ψ = timeOrder (ofFieldOp φ * ofFieldOp ψ) + -1 • normalOrder (ofFieldOp φ * ofFieldOp ψ) All goals completed! 🐙

For a field specification 𝓕, and φ and ψ elements of 𝓕.FieldOp, if φ and ψ are time-ordered then

timeContract φ ψ = [anPart φ, ofFieldOp ψ]ₛ.

𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:timeOrderRel φ ψ⊢ (crPart φ + anPart φ) * (crPart ψ + anPart ψ) - (crPart φ * crPart ψ + (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) • (crPart ψ * anPart φ) + crPart φ * anPart ψ + anPart φ * anPart ψ) = anPart φ * crPart ψ - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) • (crPart ψ * anPart φ) 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:timeOrderRel φ ψ⊢ crPart φ * crPart ψ + anPart φ * crPart ψ + (crPart φ * anPart ψ + anPart φ * anPart ψ) - (crPart φ * crPart ψ + (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) • (crPart ψ * anPart φ) + crPart φ * anPart ψ + anPart φ * anPart ψ) = anPart φ * crPart ψ - (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) • (crPart ψ * anPart φ) All goals completed! 🐙
All goals completed! 🐙

For a field specification 𝓕, and φ and ψ elements of 𝓕.FieldOp, if φ and ψ are not time-ordered then

timeContract φ ψ = 𝓢(𝓕 |>ₛ φ, 𝓕 |>ₛ ψ) • [anPart ψ, ofFieldOp φ]ₛ.

𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψh1:timeOrderRel φ ψ ∨ timeOrderRel ψ φ⊢ timeOrderRel ψ φ All goals completed! 🐙
All goals completed! 🐙

For a field specification 𝓕, and φ and ψ elements of 𝓕.FieldOp, then timeContract φ ψ is in the center of 𝓕.WickAlgebra.

𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψ⊢ (superCommute (anPart ψ)) (ofFieldOp φ) ∈ Subalgebra.center ℂ 𝓕.WickAlgebra𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψh1:timeOrderRel φ ψ ∨ timeOrderRel ψ φ⊢ timeOrderRel ψ φ All goals completed! 🐙
𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) • 0 = 0𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ (𝓕|>ₛψ) ≠ 𝓕|>ₛφ𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ (𝓕|>ₛψ) ≠ 𝓕|>ₛφ𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψ⊢ timeOrderRel ψ φ 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:(𝓕|>ₛφ) ≠ 𝓕|>ₛψh1:¬timeOrderRel φ ψht:timeOrderRel φ ψ ∨ timeOrderRel ψ φ⊢ timeOrderRel ψ φ All goals completed! 🐙𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph:¬timeOrderRel φ ψh1:timeOrderRel ψ φ⊢ (exchangeSign (𝓕|>ₛφ)) (𝓕|>ₛψ) = 0 ∨ normalOrder ((superCommute (anPart ψ)) (ofFieldOp φ)) = 0 All goals completed! 🐙𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:timeOrderRel φ ψh2:timeOrderRel ψ φa:𝓕.WickAlgebrab:𝓕.WickAlgebra⊢ timeOrder (a * (superCommute (anPart φ)) (∑ i, ofCrAnOp ⟨ψ, i⟩) * b) = (superCommute (anPart φ)) (∑ i, ofCrAnOp ⟨ψ, i⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:timeOrderRel φ ψh2:timeOrderRel ψ φa:𝓕.WickAlgebrab:𝓕.WickAlgebra⊢ ∑ x, timeOrder (a * (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, x⟩) * b) = ∑ i, (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, i⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:timeOrderRel φ ψh2:timeOrderRel ψ φa:𝓕.WickAlgebrab:𝓕.WickAlgebra⊢ (fun x => timeOrder (a * (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, x⟩) * b)) = fun i => (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, i⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:timeOrderRel φ ψh2:timeOrderRel ψ φa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψ⊢ timeOrder (a * (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (anPart φ)) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) match φ with 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.inAsymp φ) ψh2:timeOrderRel ψ (FieldOp.inAsymp φ)⊢ timeOrder (a * (superCommute (anPart (FieldOp.inAsymp φ))) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (anPart (FieldOp.inAsymp φ))) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) All goals completed! 🐙 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:timeOrderRel (FieldOp.position φ) ψh2:timeOrderRel ψ (FieldOp.position φ)⊢ timeOrder (a * (superCommute (anPart (FieldOp.position φ))) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (anPart (FieldOp.position φ))) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:timeOrderRel (FieldOp.position φ) ψh2:timeOrderRel ψ (FieldOp.position φ)⊢ timeOrder (a * (superCommute (ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩)) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (ofCrAnOp ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩)) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:timeOrderRel (FieldOp.position φ) ψh2:timeOrderRel ψ (FieldOp.position φ)⊢ crAnTimeOrderRel ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ ⟨ψ, x⟩𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:timeOrderRel (FieldOp.position φ) ψh2:timeOrderRel ψ (FieldOp.position φ)⊢ crAnTimeOrderRel ⟨ψ, x⟩ ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:timeOrderRel (FieldOp.position φ) ψh2:timeOrderRel ψ (FieldOp.position φ)⊢ crAnTimeOrderRel ⟨ψ, x⟩ ⟨FieldOp.position φ, CreateAnnihilate.annihilate⟩ All goals completed! 🐙 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.outAsymp φ) ψh2:timeOrderRel ψ (FieldOp.outAsymp φ)⊢ timeOrder (a * (superCommute (anPart (FieldOp.outAsymp φ))) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (anPart (FieldOp.outAsymp φ))) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.outAsymp φ) ψh2:timeOrderRel ψ (FieldOp.outAsymp φ)⊢ timeOrder (a * (superCommute (ofCrAnOp ⟨FieldOp.outAsymp φ, ()⟩)) (ofCrAnOp ⟨ψ, x⟩) * b) = (superCommute (ofCrAnOp ⟨FieldOp.outAsymp φ, ()⟩)) (ofCrAnOp ⟨ψ, x⟩) * timeOrder (a * b) 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.outAsymp φ) ψh2:timeOrderRel ψ (FieldOp.outAsymp φ)⊢ crAnTimeOrderRel ⟨FieldOp.outAsymp φ, ()⟩ ⟨ψ, x⟩𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.outAsymp φ) ψh2:timeOrderRel ψ (FieldOp.outAsymp φ)⊢ crAnTimeOrderRel ⟨ψ, x⟩ ⟨FieldOp.outAsymp φ, ()⟩ 𝓕:FieldSpecificationφ✝:𝓕.FieldOpψ:𝓕.FieldOpa:𝓕.WickAlgebrab:𝓕.WickAlgebrax:𝓕.fieldOpToCrAnType ψφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:timeOrderRel (FieldOp.outAsymp φ) ψh2:timeOrderRel ψ (FieldOp.outAsymp φ)⊢ crAnTimeOrderRel ⟨ψ, x⟩ ⟨FieldOp.outAsymp φ, ()⟩ All goals completed! 🐙𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:timeOrderRel φ ψh2:timeOrderRel ψ φb:𝓕.WickAlgebra⊢ timeContract φ ψ * timeOrder (1 * b) = timeContract φ ψ * timeOrder b All goals completed! 🐙𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:¬(timeOrderRel φ ψ ∧ timeOrderRel ψ φ)h2:¬timeOrderRel φ ψ⊢ timeOrder ((superCommute (anPart ψ)) (∑ i, ofCrAnOp ⟨φ, i⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:¬(timeOrderRel φ ψ ∧ timeOrderRel ψ φ)h2:¬timeOrderRel φ ψ⊢ ∑ x, timeOrder ((superCommute (anPart ψ)) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:¬(timeOrderRel φ ψ ∧ timeOrderRel ψ φ)h2:¬timeOrderRel φ ψ⊢ ∀ x ∈ Finset.univ, timeOrder ((superCommute (anPart ψ)) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ:𝓕.FieldOph1:¬(timeOrderRel φ ψ ∧ timeOrderRel ψ φ)h2:¬timeOrderRel φ ψx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univ⊢ timeOrder ((superCommute (anPart ψ)) (ofCrAnOp ⟨φ, x⟩)) = 0 match ψ with 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:¬(timeOrderRel φ (FieldOp.inAsymp ψ) ∧ timeOrderRel (FieldOp.inAsymp ψ) φ)h2:¬timeOrderRel φ (FieldOp.inAsymp ψ)⊢ timeOrder ((superCommute (anPart (FieldOp.inAsymp ψ))) (ofCrAnOp ⟨φ, x⟩)) = 0 All goals completed! 🐙 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:¬(timeOrderRel φ (FieldOp.position ψ) ∧ timeOrderRel (FieldOp.position ψ) φ)h2:¬timeOrderRel φ (FieldOp.position ψ)⊢ timeOrder ((superCommute (anPart (FieldOp.position ψ))) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:¬(timeOrderRel φ (FieldOp.position ψ) ∧ timeOrderRel (FieldOp.position ψ) φ)h2:¬timeOrderRel φ (FieldOp.position ψ)⊢ timeOrder ((superCommute (ofCrAnOp ⟨FieldOp.position ψ, CreateAnnihilate.annihilate⟩)) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.PositionLabel f) × SpaceTimeh1:¬(timeOrderRel φ (FieldOp.position ψ) ∧ timeOrderRel (FieldOp.position ψ) φ)h2:¬timeOrderRel φ (FieldOp.position ψ)⊢ ¬(crAnTimeOrderRel ⟨FieldOp.position ψ, CreateAnnihilate.annihilate⟩ ⟨φ, x⟩ ∧ crAnTimeOrderRel ⟨φ, x⟩ ⟨FieldOp.position ψ, CreateAnnihilate.annihilate⟩) All goals completed! 🐙 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:¬(timeOrderRel φ (FieldOp.outAsymp ψ) ∧ timeOrderRel (FieldOp.outAsymp ψ) φ)h2:¬timeOrderRel φ (FieldOp.outAsymp ψ)⊢ timeOrder ((superCommute (anPart (FieldOp.outAsymp ψ))) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:¬(timeOrderRel φ (FieldOp.outAsymp ψ) ∧ timeOrderRel (FieldOp.outAsymp ψ) φ)h2:¬timeOrderRel φ (FieldOp.outAsymp ψ)⊢ timeOrder ((superCommute (ofCrAnOp ⟨FieldOp.outAsymp ψ, ()⟩)) (ofCrAnOp ⟨φ, x⟩)) = 0 𝓕:FieldSpecificationφ:𝓕.FieldOpψ✝:𝓕.FieldOpx:𝓕.fieldOpToCrAnType φhx:x ∈ Finset.univψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumh1:¬(timeOrderRel φ (FieldOp.outAsymp ψ) ∧ timeOrderRel (FieldOp.outAsymp ψ) φ)h2:¬timeOrderRel φ (FieldOp.outAsymp ψ)⊢ ¬(crAnTimeOrderRel ⟨FieldOp.outAsymp ψ, ()⟩ ⟨φ, x⟩ ∧ crAnTimeOrderRel ⟨φ, x⟩ ⟨FieldOp.outAsymp ψ, ()⟩) All goals completed! 🐙

The time contraction of an incoming asymptotic field with another incoming asymptotic field is zero.

This prevents Feynman diagrams where incoming vertices are connected to incoming vertices.

𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (if timeOrderRel (FieldOp.inAsymp φ) (FieldOp.inAsymp ψ) then (superCommute (anPart (FieldOp.inAsymp φ))) (ofFieldOp (FieldOp.inAsymp ψ)) else (exchangeSign (𝓕|>ₛFieldOp.inAsymp φ)) (𝓕|>ₛFieldOp.inAsymp ψ) • (superCommute (anPart (FieldOp.inAsymp ψ))) (ofFieldOp (FieldOp.inAsymp φ))) = 0 All goals completed! 🐙

The time contraction of an outgoing asymptotic field with another outgoing asymptotic field is zero.

This prevents Feynman diagrams where outgoing vertices are connected to outgoing vertices.

𝓕:FieldSpecificationφ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentumψ:((f : 𝓕.Field) × 𝓕.AsymptoticLabel f) × Momentum⊢ (if timeOrderRel (FieldOp.outAsymp φ) (FieldOp.outAsymp ψ) then (superCommute (anPart (FieldOp.outAsymp φ))) (anPart (FieldOp.outAsymp ψ)) else (exchangeSign (𝓕|>ₛFieldOp.outAsymp φ)) (𝓕|>ₛFieldOp.outAsymp ψ) • (superCommute (anPart (FieldOp.outAsymp ψ))) (anPart (FieldOp.outAsymp φ))) = 0 All goals completed! 🐙