/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
import Mathlib.Logic.Function.Basic
import HepLean.Meta.Informal.Basic
import HepLean.Meta.Notes.Basic
import HepLean.Lorentz.RealVector.Basic
/-!
# Wick Species
Note: There is very likely a much better name for what we here call a Wick Species.
A Wick Species is a structure containing the basic information needed to write wick contractions
for a theory, and calculate their corresponding Feynman diagrams.
-/
/-! TODO: There should be some sort of notion of a group action on a Wick Species. -/
namespace Wick
note "
Wick Species
To do perturbation theory for a quantum field theory, we need a quantum field theory, or
at least enough data from a quantum field theory to write down necessary constructions.
The first bit of data we need is a type of fields `π―`. We also need to know what fields
are dual to what other fields, for example in a complex scalar theory `Ο` is dual to `Οβ `.
We can encode this information in an involution `ΞΎ : π― β π―`.
The second bit of data we need is how the fields interact with each other. In other words,
a list of interaction vertices `π`, and the type of fields associated to each vertex.
This necessary information to do perturbation theory is encoded in a `Wick Species`, which
we define as:
"
/-- The basic structure needed to write down Wick contractions for a theory and
calculate the corresponding Feynman diagrams.
WARNING: This definition is not yet complete. -/
@[note_attr]
structure Species where
/-- The color of Field operators which appear in a theory.
One may wish to call these `half-edges`, however we restrict this terminology
to Feynman diagrams. -/
π― : Type
/-- The map taking a field operator to its dual operator. -/
ΞΎ : π― β π―
/-- The condition that `ΞΎ` is an involution. -/
ΞΎ_involutive : Function.Involutive ΞΎ
/-- The color of interaction terms which appear in a theory.
One may wish to call these `vertices`, however we restrict this terminology
to Feynman diagrams. -/
π : Type
/-- The fields associated to each interaction term. -/
πFields : π β Ξ£ n, Fin n β π―
/-- The map taking a field to `0` if it is a boson and `1` if it is a fermion.
Note that this definition suffers a similar problem to Boolean Blindness. -/
grade : π― β Fin 2
namespace Species
variable (S : Species)
/-- When commuting two fields `f` and `g`, in the super commuator which is sematically
`[f, g] = f g + c * g f`, this is `c`. -/
def commFactor (f g : S.π―) : β := - (- 1) ^ (S.grade f * S.grade g : β)
informal_definition π where
math :β "The orbits of the involution `ΞΎ`.
May have to define a multiplicative action of β€β on `π―`, and
take the orbits of this."
physics :β "The different types of fields present in a theory."
deps :β [``Species]
end Species
end Wick