Feynman diagrams #
Feynman diagrams are a graphical representation of the terms in the perturbation expansion of a quantum field theory.
The definition of Pre Feynman rules #
We define the notion of a pre-Feynman rule, which specifies the possible half-edges, edges and vertices in a diagram. It does not specify how to turn a diagram into an algebraic expression.
TODO #
Prove that the halfEdgeLimit
functor lands on limits of functors.
A PreFeynmanRule
is a set of rules specifying the allowed half-edges,
edges and vertices in a diagram. (It does not specify how to turn the diagram
into an algebraic expression.)
- HalfEdgeLabel : Type
The type labelling the different types of half-edges.
- EdgeLabel : Type
A type labelling the different types of edges.
- VertexLabel : Type
A type labelling the different types of vertices.
- edgeLabelMap : self.EdgeLabel → CategoryTheory.Over self.HalfEdgeLabel
A function taking
EdgeLabels
to the half edges it contains. This will usually land onFin 2 → _
- vertexLabelMap : self.VertexLabel → CategoryTheory.Over self.HalfEdgeLabel
A function taking
VertexLabels
to the half edges it contains. For example, if the vertex is of order-3 it will land onFin 3 → _
.
Instances For
The functor from Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
to Over (P.VertexLabel)
induced by projections on products.
Instances For
The functor from Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
to Over (P.EdgeLabel)
induced by projections on products.
Instances For
The functor from Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
to Over (P.HalfEdgeLabel)
induced by projections on products.
Equations
Instances For
The functor from Over P.VertexLabel
to Type
induced by pull-back along insertion of
v : P.VertexLabel
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor from Over (P.HalfEdgeLabel × 𝓔 × 𝓥)
to
Over P.HalfEdgeLabel
induced by pull-back along insertion of v : P.VertexLabel
.
For a given vertex, it returns all half edges corresponding to that vertex.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor from Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
to
Over P.HalfEdgeLabel
induced by pull-back along insertion of v : P.EdgeLabel
.
For a given edge, it returns all half edges corresponding to that edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Finiteness of pre-Feynman rules #
We define a class of PreFeynmanRule
which have nice properties with regard to
decidability and finiteness.
In practice, every pre-Feynman rule considered in the physics literature satisfies these properties.
A set of conditions on PreFeynmanRule
for it to be considered finite.
- edgeLabelDecidable : DecidableEq P.EdgeLabel
The type of edge labels is decidable.
- vertexLabelDecidable : DecidableEq P.VertexLabel
The type of vertex labels is decidable.
- halfEdgeLabelDecidable : DecidableEq P.HalfEdgeLabel
The type of half-edge labels is decidable.
- vertexMapFintype (v : P.VertexLabel) : Fintype (P.vertexLabelMap v).left
The type of half-edges associated with a vertex is finite.
- vertexMapDecidable (v : P.VertexLabel) : DecidableEq (P.vertexLabelMap v).left
The type of half-edges associated with a vertex is decidable.
- edgeMapFintype (v : P.EdgeLabel) : Fintype (P.edgeLabelMap v).left
The type of half-edges associated with an edge is finite.
- edgeMapDecidable (v : P.EdgeLabel) : DecidableEq (P.edgeLabelMap v).left
The type of half-edges associated with an edge is decidable.
Instances
If P
is a finite pre feynman rule, then equality of edge labels of P
is decidable.
If P
is a finite pre feynman rule, then equality of vertex labels of P
is decidable.
If P
is a finite pre feynman rule, then equality of half-edge labels of P
is decidable.
If P
is a finite pre-feynman rule, then every vertex has a finite
number of half-edges associated to it.
If P
is a finite pre-feynman rule, then the indexing set of half-edges associated
to a vertex is decidable.
If P
is a finite pre-feynman rule, then every edge has a finite
number of half-edges associated to it.
If P
is a finite pre-feynman rule, then the indexing set of half-edges associated
to an edge is decidable.
It is decidable to check whether a half edge of a diagram (an object in
Over (P.HalfEdgeLabel × 𝓔 × 𝓥)
) corresponds to a given vertex.
It is decidable to check whether a half edge of a diagram (an object in
Over (P.HalfEdgeLabel × 𝓔 × 𝓥)
) corresponds to a given edge.
If F
is an object in Over (P.HalfEdgeLabel × 𝓔 × 𝓥)
, with a decidable source,
then the object in Over P.HalfEdgeLabel
formed by following the functor preimageVertex
has a decidable source (since it is the same source).
Equations
The half edges corresponding to a given edge has an indexing set which is decidable.
Equations
The half edges corresponding to a given vertex has an indexing set which is decidable.
Equations
- P.preimageVertexFintype v F = Subtype.fintype (Membership.mem ((P.toVertex.obj F).hom ⁻¹' {v}))
The half edges corresponding to a given edge has an indexing set which is finite.
Equations
- P.preimageEdgeFintype v F = Subtype.fintype (Membership.mem ((P.toEdge.obj F).hom ⁻¹' {v}))
The half edges corresponding to a given vertex has an indexing set which is finite.
Equations
- P.preimageVertexMapFintype v f F = Pi.instFintype
Given an edge, there is a finite number of maps between the indexing set of the expected half-edges corresponding to that edges label, and the actual indexing set of half-edges corresponding to that edge. Given various finiteness conditions.
Equations
- P.preimageEdgeMapFintype v f F = Pi.instFintype
External and internal Vertices #
We say a vertex Label is external
if it has only one half-edge associated with it.
Otherwise, we say it is internal
.
We will show that for IsFinitePreFeynmanRule
the condition of been external is decidable.
A vertex is external if it has a single half-edge associated to it.
Equations
Instances For
Whether or not a vertex is external is decidable.
Equations
Conditions to form a diagram. #
The proposition on vertices which must be satisfied by an object
F : Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
for it to be a Feynman diagram.
This condition corresponds to the vertices of F
having the correct half-edges associated
with them.
Equations
- P.DiagramVertexProp F f = ∀ (v : 𝓥), CategoryTheory.IsIsomorphic (P.vertexLabelMap (f v)) ((P.preimageVertex v).obj F)
Instances For
The proposition on edges which must be satisfied by an object
F : Over (P.HalfEdgeLabel × P.EdgeLabel × P.VertexLabel)
for it to be a Feynman diagram.
This condition corresponds to the edges of F
having the correct half-edges associated
with them.
Equations
- P.DiagramEdgeProp F f = ∀ (v : 𝓔), CategoryTheory.IsIsomorphic (P.edgeLabelMap (f v)) ((P.preimageEdge v).obj F)
Instances For
The proposition DiagramVertexProp
is decidable given various decidability and finite
conditions.
Equations
The proposition DiagramEdgeProp
is decidable given various decidability and finite
conditions.
Equations
The definition of Feynman diagrams #
We now define the type of Feynman diagrams for a given pre-Feynman rule.
The type of Feynman diagrams given a PreFeynmanRule
.
- 𝓔𝓞 : CategoryTheory.Over P.EdgeLabel
The type of edges in the Feynman diagram, labelled by their type.
- 𝓥𝓞 : CategoryTheory.Over P.VertexLabel
The type of vertices in the Feynman diagram, labelled by their type.
- 𝓱𝓔To𝓔𝓥 : CategoryTheory.Over (P.HalfEdgeLabel × self.𝓔𝓞.left × self.𝓥𝓞.left)
The type of half-edges in the Feynman diagram, labelled by their type, the edge it belongs to, and the vertex they belong to.
- 𝓔Cond : P.DiagramEdgeProp self.𝓱𝓔To𝓔𝓥 self.𝓔𝓞.hom
Each edge has the correct type of half edges.
- 𝓥Cond : P.DiagramVertexProp self.𝓱𝓔To𝓔𝓥 self.𝓥𝓞.hom
Each vertex has the correct sort of half edges.
Instances For
The type of edges.
Instances For
The type of vertices.
Instances For
The type of half-edges.
Instances For
The object in Over P.HalfEdgeLabel generated by a Feynman diagram.
Equations
- F.𝓱𝓔𝓞 = P.toHalfEdge.obj F.𝓱𝓔To𝓔𝓥
Instances For
Making a Feynman diagram #
The condition which must be satisfied by maps to form a Feynman diagram.
Equations
- FeynmanDiagram.Cond 𝓔𝓞 𝓥𝓞 𝓱𝓔To𝓔𝓥 = (P.DiagramEdgeProp (CategoryTheory.Over.mk 𝓱𝓔To𝓔𝓥) 𝓔𝓞 ∧ P.DiagramVertexProp (CategoryTheory.Over.mk 𝓱𝓔To𝓔𝓥) 𝓥𝓞)
Instances For
Cond
is decidable.
Equations
- FeynmanDiagram.CondDecidable 𝓔𝓞 𝓥𝓞 𝓱𝓔To𝓔𝓥 = instDecidableAnd
Making a Feynman diagram from maps of edges, vertices and half-edges.
Equations
- FeynmanDiagram.mk' 𝓔𝓞 𝓥𝓞 𝓱𝓔To𝓔𝓥 C = { 𝓔𝓞 := CategoryTheory.Over.mk 𝓔𝓞, 𝓥𝓞 := CategoryTheory.Over.mk 𝓥𝓞, 𝓱𝓔To𝓔𝓥 := CategoryTheory.Over.mk 𝓱𝓔To𝓔𝓥, 𝓔Cond := ⋯, 𝓥Cond := ⋯ }
Instances For
Finiteness of Feynman diagrams #
As defined above our Feynman diagrams can have non-finite Types of half-edges etc.
We define the class of those Feynman diagrams which are finite
in the appropriate sense.
In practice, every Feynman diagram considered in the physics literature is finite
.
This finiteness condition will be used to prove certain Types
are Fintype
, and prove
that certain propositions are decidable.
A set of conditions on a Feynman diagram for it to be considered finite.
The type of edges is finite.
- 𝓔DecidableEq : DecidableEq F.𝓔
The type of edges is decidable.
The type of vertices is finite.
- 𝓥DecidableEq : DecidableEq F.𝓥
The type of vertices is decidable.
The type of half-edges is finite.
- 𝓱𝓔DecidableEq : DecidableEq F.𝓱𝓔
The type of half-edges is decidable.
Instances
The instance of a finite diagram given explicit finiteness and decidable conditions on the various maps making it up.
Equations
- FeynmanDiagram.instIsFiniteDiagramMk'OfFintypeOfDecidableEq 𝓔𝓞 𝓥𝓞 𝓱𝓔To𝓔𝓥 C = { 𝓔Fintype := h1, 𝓔DecidableEq := h2, 𝓥Fintype := h3, 𝓥DecidableEq := h4, 𝓱𝓔Fintype := h5, 𝓱𝓔DecidableEq := h6 }
If F
is a finite Feynman diagram, then its edges are finite.
If F
is a finite Feynman diagram, then its edges are decidable.
If F
is a finite Feynman diagram, then its vertices are finite.
If F
is a finite Feynman diagram, then its vertices are decidable.
If F
is a finite Feynman diagram, then its half-edges are finite.
If F
is a finite Feynman diagram, then its half-edges are decidable.
The proposition of whether the given an half-edge and an edge, the edge corresponding to the half edges is the given edge is decidable.
For a finite feynman diagram, the type of half edge labels, edges and vertices is decidable.
Morphisms of Feynman diagrams #
We define a morphism between Feynman diagrams, and properties thereof. This will be used to define the category of Feynman diagrams.
Given two maps F.𝓔 ⟶ G.𝓔
and F.𝓥 ⟶ G.𝓥
the corresponding map
P.HalfEdgeLabel × F.𝓔 × F.𝓥 → P.HalfEdgeLabel × G.𝓔 × G.𝓥
.
Instances For
Given equivalences F.𝓔 ≃ G.𝓔
and F.𝓥 ≃ G.𝓥
, the induced equivalence between
P.HalfEdgeLabel × F.𝓔 × F.𝓥
and P.HalfEdgeLabel × G.𝓔 × G.𝓥
Equations
- FeynmanDiagram.edgeVertexEquiv 𝓔 𝓥 = { toFun := FeynmanDiagram.edgeVertexMap 𝓔.toFun 𝓥.toFun, invFun := FeynmanDiagram.edgeVertexMap 𝓔.invFun 𝓥.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
The functor of over-categories generated by edgeVertexMap
.
Equations
Instances For
A morphism of Feynman diagrams.
The morphism of edge objects.
The morphism of vertex objects.
The morphism of half-edge objects.
Instances For
The morphism F.𝓱𝓔𝓞 ⟶ G.𝓱𝓔𝓞
induced by a homomorphism of Feynman diagrams.
Equations
- f.𝓱𝓔𝓞 = P.toHalfEdge.map f.𝓱𝓔To𝓔𝓥
Instances For
The identity morphism for a Feynman diagram.
Equations
- FeynmanDiagram.Hom.id F = { 𝓔𝓞 := CategoryTheory.CategoryStruct.id F.𝓔𝓞, 𝓥𝓞 := CategoryTheory.CategoryStruct.id F.𝓥𝓞, 𝓱𝓔To𝓔𝓥 := CategoryTheory.CategoryStruct.id F.𝓱𝓔To𝓔𝓥 }
Instances For
The composition of two morphisms of Feynman diagrams.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The condition on maps of edges, vertices and half-edges for it to be lifted to a morphism of Feynman diagrams.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If 𝓔
is a map between the edges of one finite Feynman diagram and another Feynman diagram,
then deciding whether 𝓔
from a morphism in Over P.EdgeLabel
between the edge
maps is decidable.
If 𝓥
is a map between the vertices of one finite Feynman diagram and another Feynman diagram,
then deciding whether 𝓥
from a morphism in Over P.VertexLabel
between the vertex
maps is decidable.
Given maps between parts of two Feynman diagrams, it is decidable to determine whether on mapping half-edges, the corresponding half-edge labels, edges and vertices are consistent.
Equations
- One or more equations did not get rendered due to their size.
The condition on whether a map of maps of edges, vertices and half-edges can be lifted to a morphism of Feynman diagrams is decidable.
Making a Feynman diagram from maps of edges, vertices and half-edges.
Equations
- FeynmanDiagram.Hom.mk' 𝓔 𝓥 𝓱𝓔 C = { 𝓔𝓞 := CategoryTheory.Over.homMk 𝓔 ⋯, 𝓥𝓞 := CategoryTheory.Over.homMk 𝓥 ⋯, 𝓱𝓔To𝓔𝓥 := CategoryTheory.Over.homMk 𝓱𝓔 ⋯ }
Instances For
The Category of Feynman diagrams #
Feynman diagrams, as defined above, form a category. We will be able to use this category to define the symmetry factor of a Feynman diagram, and the condition on whether a diagram is connected.
Feynman diagrams form a category.
Equations
An isomorphism of Feynman diagrams from isomorphisms of edges, vertices and half-edges.
Equations
- FeynmanDiagram.mkIso 𝓔 𝓥 𝓱𝓔 C = { hom := FeynmanDiagram.Hom.mk' (⇑𝓔) (⇑𝓥) (⇑𝓱𝓔) C, inv := FeynmanDiagram.Hom.mk' ⇑𝓔.symm ⇑𝓥.symm ⇑𝓱𝓔.symm ⋯, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The functor from Feynman diagrams to category over edge labels.
Equations
- FeynmanDiagram.func𝓔𝓞 = { obj := fun (F : FeynmanDiagram P) => F.𝓔𝓞, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => f.𝓔𝓞, map_id := ⋯, map_comp := ⋯ }
Instances For
The functor from Feynman diagrams to category over vertex labels.
Equations
- FeynmanDiagram.func𝓥𝓞 = { obj := fun (F : FeynmanDiagram P) => F.𝓥𝓞, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => f.𝓥𝓞, map_id := ⋯, map_comp := ⋯ }
Instances For
The functor from Feynman diagrams to category over half-edge labels.
Equations
- FeynmanDiagram.func𝓱𝓔𝓞 = { obj := fun (F : FeynmanDiagram P) => F.𝓱𝓔𝓞, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => FeynmanDiagram.Hom.𝓱𝓔𝓞 f, map_id := ⋯, map_comp := ⋯ }
Instances For
The functor from Feynman diagrams to Type
landing on edges.
Equations
- FeynmanDiagram.func𝓔 = { obj := fun (F : FeynmanDiagram P) => F.𝓔, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => FeynmanDiagram.Hom.𝓔 f, map_id := ⋯, map_comp := ⋯ }
Instances For
The functor from Feynman diagrams to Type
landing on vertices.
Equations
- FeynmanDiagram.func𝓥 = { obj := fun (F : FeynmanDiagram P) => F.𝓥, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => FeynmanDiagram.Hom.𝓥 f, map_id := ⋯, map_comp := ⋯ }
Instances For
The functor from Feynman diagrams to Type
landing on half-edges.
Equations
- FeynmanDiagram.func𝓱𝓔 = { obj := fun (F : FeynmanDiagram P) => F.𝓱𝓔, map := fun {X Y : FeynmanDiagram P} (f : X ⟶ Y) => FeynmanDiagram.Hom.𝓱𝓔 f, map_id := ⋯, map_comp := ⋯ }
Instances For
Symmetry factors #
The symmetry factor of a Feynman diagram is the cardinality of the group of automorphisms of that diagram.
We show that the symmetry factor for a finite Feynman diagram is finite.
An equivalence between SymmetryType
and permutation of edges, vertices and half-edges
satisfying Hom.Cond
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a finite Feynman diagram, the type of automorphisms of that Feynman diagram is finite.
Equations
- One or more equations did not get rendered due to their size.
The symmetry factor can be defined as the cardinal of the symmetry type. In general this is not a finite number.
Equations
Instances For
The symmetry factor of a Finite Feynman diagram, as a natural number.
Equations
Instances For
Connectedness #
Given a Feynman diagram we can create a simple graph based on the obvious adjacency relation. A feynman diagram is connected if its simple graph is connected.
TODO #
- Complete this section.
A relation on the vertices of Feynman diagrams. The proposition is true if the two vertices are not equal and are connected by a single edge. This is the adjacency relation.
Equations
Instances For
The condition on whether two vertices are adjacent is decidable.
Equations
From a Feynman diagram the simple graph showing those vertices which are connected.
Equations
- F.toSimpleGraph = { Adj := F.AdjRelation, symm := ⋯, loopless := ⋯ }
Instances For
The adjacency relation for a simple graph created by a finite Feynman diagram is a decidable relation.
For a finite feynman diagram it is decidable whether it is preconnected and has the Feynman diagram has a non-empty type of vertices.
For a finite Feynman diagram it is decidable whether the simple graph corresponding to it is connected.
A Feynman diagram is connected if its simple graph is connected.
Equations
Instances For
For a finite Feynman diagram it is decidable whether or not it is connected.