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! 🐙