/-
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
-/modulepublicimportPhyslib.QFT.PerturbationTheory.WickAlgebra.StaticWickTerm
Static Wick's theorem
@[expose]publicsection
For a list Ļs of š.FieldOp, the static version of Wick's theorem states that
Ļs = ā ĻsĪ, ĻsĪ.staticWickTerm
where the sum is over all Wick contraction ĻsĪ.
The proof is via induction on Ļs.
The base case Ļs = [] is handled by staticWickTerm_empty_nil.
The inductive step works as follows:
For the LHS:
The proof considers Ļāā¦Ļā as Ļā(Ļāā¦Ļā) and uses the induction hypothesis on Ļāā¦Ļā.
This gives terms of the form Ļ * ĻsĪ.staticWickTerm on which
mul_staticWickTerm_eq_sum is used where ĻsĪ is a Wick contraction of Ļāā¦Ļā,
to rewrite terms as a sum over optional uncontracted elements of ĻsĪ
On the LHS we now have a sum over Wick contractions ĻsĪ of Ļāā¦Ļā (from 1) and optional
uncontracted elements of ĻsĪ (from 2)
For the RHS:
The sum over Wick contractions of Ļāā¦Ļā on the RHS
is split via insertLift_sum into a sum over Wick contractions ĻsĪ of Ļāā¦Ļā and
sum over optional uncontracted elements of ĻsĪ.
Both sides are now sums over the same thing and their terms equate by the nature of the
lemmas used.