refactor: Update supercommute notation

This commit is contained in:
jstoobysmith 2025-02-13 10:44:15 +00:00
parent d2ce55ddd0
commit 82fae67ba3
12 changed files with 197 additions and 188 deletions

View file

@ -34,7 +34,14 @@ def signFinset (c : WickContraction n) (i1 i2 : Fin n) : Finset (Fin n) :=
to the number of `fermionic`-`fermionic` exchanges that must be done to put
contracted pairs within `φsΛ` next to one another, starting recursively
from the contracted pair
whose first element occurs at the left-most position. -/
whose first element occurs at the left-most position.
As an example, if `[φ1, φ2, φ3, φ4]` correspond to fermionic fields then the sign
associated with
- `{{0, 1}}` is `1`
- `{{0, 1}, {2, 3}}` is `1`
- `{{0, 2}, {1, 3}}` is `-1`
-/
def sign (φs : List 𝓕.FieldOp) (φsΛ : WickContraction φs.length) : :=
∏ (a : φsΛ.1), 𝓢(𝓕 |>ₛ φs[φsΛ.sndFieldOfContract a],
𝓕 |>ₛ ⟨φs.get, φsΛ.signFinset (φsΛ.fstFieldOfContract a) (φsΛ.sndFieldOfContract a)⟩)