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.WickContraction.InsertAndContract public import Physlib.QFT.PerturbationTheory.WickAlgebra.NormalOrder.Lemmas

Time contractions

@[expose] public section

For a list φs = φ₀…φₙ of 𝓕.FieldOp, a Wick contraction φsΛ of φs, an element φ of 𝓕.FieldOp, and a i ≤ φs.length, then the following relation holds:

(φsΛ ↩Λ φ i none).staticContract = φsΛ.staticContract

The proof of this result ultimately is a consequence of definitions.

𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succ a, (superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i none).fstFieldOfContract (congrLift (insertLift i none a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i none).sndFieldOfContract (congrLift (insertLift i none a))))), = φsΛ.staticContract 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succa:φsΛ(superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i none).fstFieldOfContract (congrLift (insertLift i none a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i none).sndFieldOfContract (congrLift (insertLift i none a))))), = (superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a))), All goals completed! 🐙

For a list φs = φ₀…φₙ of 𝓕.FieldOp, a Wick contraction φsΛ of φs, an element φ of 𝓕.FieldOp, a i ≤ φs.length and a k in φsΛ.uncontracted, then (φsΛ ↩Λ φ i (some k)).staticContract is equal to the product of

    [anPart φ, φs[k]]ₛ if i ≤ k or [anPart φs[k], φ]ₛ if k < i

    φsΛ.staticContract.

The proof of this result ultimately is a consequence of definitions.

𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted(superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift {i, i.succAbove j}, ))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift {i, i.succAbove j}, )))), * a, (superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift (insertLift i (some j) a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift (insertLift i (some j) a))))), = (if i < i.succAbove j then (superCommute (anPart φ)) (ofFieldOp φs[j]), else (superCommute (anPart φs[j])) (ofFieldOp φ), ) * φsΛ.staticContract 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted(superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift {i, i.succAbove j}, ))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift {i, i.succAbove j}, )))), = if i < i.succAbove j then (superCommute (anPart φ)) (ofFieldOp φs[j]), else (superCommute (anPart φs[j])) (ofFieldOp φ), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted a, (superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift (insertLift i (some j) a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift (insertLift i (some j) a))))), = φsΛ.staticContract 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted(superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift {i, i.succAbove j}, ))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift {i, i.succAbove j}, )))), = if i < i.succAbove j then (superCommute (anPart φ)) (ofFieldOp φs[j]), else (superCommute (anPart φs[j])) (ofFieldOp φ), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted(superCommute (anPart (φs.insertIdx (↑i) φ)[(if i < i.succAbove j then Fin.cast i else Fin.cast (i.succAbove j))])) (ofFieldOp (φs.insertIdx (↑i) φ)[(if i < i.succAbove j then Fin.cast (i.succAbove j) else Fin.cast i)]), = if i < i.succAbove j then (superCommute (anPart φ)) (ofFieldOp φs[j]), else (superCommute (anPart φs[j])) (ofFieldOp φ), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontractedh✝:i < i.succAbove j(superCommute (anPart (φs.insertIdx (↑i) φ)[(Fin.cast i)])) (ofFieldOp (φs.insertIdx (↑i) φ)[(Fin.cast (i.succAbove j))]), = (superCommute (anPart φ)) (ofFieldOp φs[j]), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontractedh✝:¬i < i.succAbove j(superCommute (anPart (φs.insertIdx (↑i) φ)[(Fin.cast (i.succAbove j))])) (ofFieldOp (φs.insertIdx (↑i) φ)[(Fin.cast i)]), = (superCommute (anPart φs[j])) (ofFieldOp φ), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontractedh✝:i < i.succAbove j(superCommute (anPart (φs.insertIdx (↑i) φ)[(Fin.cast i)])) (ofFieldOp (φs.insertIdx (↑i) φ)[(Fin.cast (i.succAbove j))]), = (superCommute (anPart φ)) (ofFieldOp φs[j]), 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontractedh✝:¬i < i.succAbove j(superCommute (anPart (φs.insertIdx (↑i) φ)[(Fin.cast (i.succAbove j))])) (ofFieldOp (φs.insertIdx (↑i) φ)[(Fin.cast i)]), = (superCommute (anPart φs[j])) (ofFieldOp φ), All goals completed! 🐙 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracted a, (superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift (insertLift i (some j) a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift (insertLift i (some j) a))))), = φsΛ.staticContract 𝓕:FieldSpecificationφ:𝓕.FieldOpφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthi:Fin φs.length.succj:φsΛ.uncontracteda:φsΛ(superCommute (anPart ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).fstFieldOfContract (congrLift (insertLift i (some j) a)))))) (ofFieldOp ((φs.insertIdx (↑i) φ).get ((φsΛ↩Λφ i some j).sndFieldOfContract (congrLift (insertLift i (some j) a))))), = (superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a))), All goals completed! 🐙
All goals completed! 🐙𝓕:FieldSpecificationφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthh:¬GradingCompliant φs φsΛ a, (superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a))), = 0 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengthh: x, (x_1 : x φsΛ), ¬(𝓕|>ₛφs[(φsΛ.fstFieldOfContract x, x_1)]) = 𝓕|>ₛφs[(φsΛ.sndFieldOfContract x, x_1)] a, (superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a))), = 0 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengtha:Finset (Fin φs.length)ha:a φsΛha2:¬(𝓕|>ₛφs[(φsΛ.fstFieldOfContract a, ha)]) = 𝓕|>ₛφs[(φsΛ.sndFieldOfContract a, ha)] a, (superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a))), = 0 𝓕:FieldSpecificationφs:List 𝓕.FieldOpφsΛ:WickContraction φs.lengtha:Finset (Fin φs.length)ha:a φsΛha2:¬(𝓕|>ₛφs[(φsΛ.fstFieldOfContract a, ha)]) = 𝓕|>ₛφs[(φsΛ.sndFieldOfContract a, ha)](superCommute (anPart (φs.get (φsΛ.fstFieldOfContract a, ha)))) (ofFieldOp (φs.get (φsΛ.sndFieldOfContract a, ha))), = 0 All goals completed! 🐙