/- 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 /-! # 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 /-- 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. -/ 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 β†’ 𝓯 namespace Species variable (S : Species) 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