Zeroth-Order Moments¶
At zeroth order no interaction vertices contribute — the result is purely the Wick contraction of the observable under the free action \(S_0\).
Scalar Two-Point Function¶
The simplest non-trivial example: \(\langle\phi(x)\,\phi(y)\rangle_{S_0}\).
from sft_wick import Field, Action, compute_moment, reset_uid_counter
reset_uid_counter()
phi = Field('phi', 'physical')
obs = [phi('x'), phi('y')]
result = compute_moment(obs, Action(vertices=[]), order=0)
print(result.order(0).to_latex())
C(x, y)
Only one pairing exists, and it produces the correlation propagator.
Mixed-Field Four-Point Function¶
\(\langle\psi(x)\,\phi(x)\,\phi(x)\,\phi(x)\rangle_{S_0}\):
reset_uid_counter()
phi = Field('phi', 'physical')
psi = Field('psi', 'response')
obs = [psi('x'), phi('x'), phi('x'), phi('x')]
result = compute_moment(obs, Action(vertices=[]), order=0)
print(result.order(0).to_latex())
3 R(x, x) C(x, x)
Why the factor of 3? The single \(\psi\) must pair with one of the three \(\phi\)’s (3 choices, each giving \(R(x,x)\)), and the remaining two \(\phi\)’s pair together (\((2-1)!! = 1\) way, giving \(C(x,x)\)).
Pure Physical Four-Point Function¶
\(\langle\phi(x)\,\phi(y)\,\phi(z)\,\phi(w)\rangle_{S_0}\):
reset_uid_counter()
phi = Field('phi', 'physical')
obs = [phi('x'), phi('y'), phi('z'), phi('w')]
result = compute_moment(obs, Action(vertices=[]), order=0)
print(result.order(0).to_latex())
C(x, y) C(z, w) + C(x, z) C(y, w) + C(x, w) C(y, z)
The three pairings correspond to the three ways of pairing four items: \((2 \times 4 - 1)!! = 3\).
Vanishing Cases¶
An odd number of operators always gives zero:
obs = [phi('x'), phi('y'), phi('z')]
result = compute_moment(obs, Action(vertices=[]), order=0)
print(result.order(0).to_latex())
# 0
More \(\psi\)’s than \(\phi\)’s also gives zero (not enough physical fields to absorb all response fields):
obs = [psi('x'), psi('y'), phi('z')]
result = compute_moment(obs, Action(vertices=[]), order=0)
print(result.order(0).to_latex())
# 0