Splice Diagrams
Splice diagrams are graphs decorated with integer labels at each end of each edge and a number of arrows, often none at all, attached to each vertex. They are fully described in [EN85]. No description of the meaning of splice diagrams will be given here, only the functions that Magma has for manipulating them. (There are two common features of splice diagrams that cannot yet be realised. First, omitting edge labels which are \(1\) is common but is not allowed. Second, and less trivially, arrow weights are not allowed.
Other data that is also stored with the diagram are vertex multiplicities, canonical multiplicities, and total linking numbers of vertices. The distinction between a splice diagram and its underlying directed graph, as well as that between a splice diagram vertex and its underlying vertex, is often left implicit.
Creation of Splice Diagrams
Splice diagrams are usually created from geometric objects like plane curve singularities or jacobian pencils. They can also be built explicitly by hand. The section on translations between graphs describes functions which create splice diagrams associated to resolution graphs.
- SpliceDiagram(C, p): Sch, Pt -> GrphSpl
The splice diagram of the plane curve singularity of \(C\) at the point \(p\).
- RegularSpliceDiagram(P): LinearSys -> GrphSpl
The regular splice diagram at infinity of the jacobian pencil \(P\). This diagram is considered to be rooted at vertex \(1\) corresponding to the line at infinity of the ambient plane of \(P\). Its underlying graph is directed away from this root.
- MakeSpliceDiagram(g, e, a): GrphDir, SeqEnum, SeqEnum -> GrphSpl
A splice diagram on directed graph \(g\). The edge labels are taken from the sequence \(e\). The elements of this sequence are sequences of pairs of integers \([a,b]\). The \(i\)-th element of \(e\) will be assigned to the \(i\)-th edge of \(g\) (in the order returned by
Edges(g)) with \(a\) as the near label and \(b\) as the far label (with respect to the directions of the edges of \(g\)). The number of arrows at each vertex are taken from the sequence of integers \(a\).
- MakeSpliceDiagram(e, l, a): SeqEnum, SeqEnum, SeqEnum -> GrphSpl
The splice diagram described by the data in the sequences \(e\), \(l\), \(a\). The first two contain sequences of two integers: \(e\) is interpreted as a set of directed edges, the integers appearing in it being the vertex indices of the resulting graph. Edge labels are determined by the sequence \(l\) as in the previous function. The number of arrows at each vertex are taken from the sequence of integers \(a\).
- SpliceDiagramVertex(s, i): GrphSpl, RngIntElt -> GrphSplVert
The vertex of the splice diagram \(s\) having index \(i\).
- UnderlyingVertex(v): GrphSplVert -> GrphVert
- Vertex(v): GrphSplVert -> GrphVert
The vertex of the underlying graph corresponding to the vertex \(v\) of a splice diagram.
Numerical Functions of Splice Diagrams
The raw numerical data of a splice diagram is the collection of labels on its edges and vertices together with data recovered from the underlying graph. First we list functions to get hold of this data, and then some more substantial functions which derive many of the natural conclusions of this data, linking number, euler characteristic, and so on.
- TotalLinking(v): GrphSplVert -> RngIntElt
The total linking number of the vertex \(v\) of a splice diagram.
- LinkingNumbers(s): GrphSpl -> SeqEnum
The total linking numbers of the vertices of the splice diagram \(s\).
- Linking(u, v): GrphSplVert, GrphSplVert -> RngIntElt
The linking number of vertices \(u\) and \(v\) of a splice diagram.
- EdgeDeterminant(u, v): GrphSplVert, GrphSplVert -> RngIntElt
The edge determinant of the edge joining the vertex \(u\) to the vertex \(v\) of a splice diagram.
- Valency(v): GrphSplVert -> RngIntElt
The splice valency of the vertex \(v\) of a splice diagram. This is the valency of \(v\) in the underlying graph plus the number of arrows at \(v\).
- IsReduced(s): GrphSpl -> BoolElt
Returns
trueif and only if the splice diagram \(s\) is reduced, that is, it has no valency \(2\) nodes and no weight \(1\) leaves.
- HasIrregularFibres(s): GrphSpl -> BoolElt
Returns
trueif and only if the splice diagram \(s\) has a vertex with zero linking number.