Orbifold GKM graphs

Orbifold GKM graphs encode the same fixed-point and 1-dimensional-orbit combinatorics, together with the finite stabilizer data that appears in orbifold charts. In this package an orbifold GKM graph is represented by:

  • An underlying GKM graph with vertices, flags, edges, and axial weights.
  • For every vertex $p$, a finite abelian isotropy group $G_p$ and its representation on the tangent space $T_pX$.
  • For every flag, a finite abelian isotropy group of the corresponding 1-dimensional stratum.
  • For every flag incident to a vertex, an embedding from the flag isotropy group into the vertex isotropy group.

The isotropy groups are stored by their cyclic factors, for example $[2, 3]$ represents $\mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/3\mathbb{Z}$. The tangent representation at a vertex is stored as an integer matrix whose rows correspond to cyclic factors of the vertex isotropy group and whose columns correspond to tangent weight lines. Similarly, the flag embedding matrix records how the stabilizer of a 1-dimensional stratum maps into the stabilizer of an endpoint.

Geometrically, this extra data allows the package to distinguish an ordinary smooth GKM graph from a stacky or orbifold one, even when the underlying graph and axial weights look similar. For instance, weighted projective spaces have orbifold GKM graphs: the vertices are the torus fixed points, while some vertices and 1-dimensional strata may carry non-trivial finite stabilizers.

This orbifold data is used by constructions such as the inertia stack, orbifold vector bundles, and Chern classes of orbifold GKM vector bundles.

Inertia stack

GKMtools.inertia_stack — Function
inertia_stack(X::OrbifoldGKMGraph) -> InertiaStack

Construct the inertia stack IX of the orbifold GKM graph X.

The returned InertiaStack is the disjoint union of its connected sectors. Each component is an OrbifoldGKMGraph whose vertices are pairs (v, g).

source
GKMtools.twisted_sectors — Function
twisted_sectors(IX::InertiaStack)

Return the connected orbifold GKM graph components with nonidentity sector elements.

source

Orbifold vector bundles

GKMtools.orbifold_vector_bundle — Function
orbifold_vector_bundle(G, M, GMtoM, weights; fiber_reps=nothing)

Construct an equivariant vector bundle over an orbifold GKM graph.

The matrix weights stores the torus weights of the fibre over each fixed point: weights[v, i] is the weight of the i-th line summand over vertex v.

The optional fiber_reps stores the action of the vertex stabilizers on the fibre. For a rank r bundle, fiber_reps[v] is a matrix with length(G.vertex_isotropy[v].isotropy_group) rows and r columns. Its i-th column is the character of the local isotropy group on the i-th fibre summand. If omitted, the stabilizers act trivially on the fibres.

source
GKMtools.orbifold_line_bundle — Function
orbifold_line_bundle(
  G::AbstractOrbifoldGKMGraph{R,V,F},
  M::AbstractAlgebra.Generic.FreeModule{R},
  GMtoM::AbstractAlgebra.Generic.ModuleHomomorphism{R},
  weights::Vector{AbstractAlgebra.Generic.FreeModuleElem{R}};
  fiber_reps::Union{Nothing,Vector{ZZMatrix}} = nothing,

) where {R,V,F}

Construct a rank-one equivariant vector bundle over an orbifold GKM graph.

source
GKMtools.fiber_representation — Function
fiber_representation(E::OrbifoldGKMVectorBundle, v::Integer) -> ZZMatrix

Return the matrix describing the action of the isotropy group at vertex v on the fibre of E. Rows correspond to cyclic isotropy factors and columns to the weight lines of the fibre.

source

Stacky data and isotropy

GKMtools.InertiaStack — Type
InertiaStack{R,V,F,X}

The inertia stack of an orbifold GKM graph.

It stores the original orbifold graph in base and its connected sectors as a disjoint union of orbifold GKM graphs in components.

source
GKMtools.abelian_group_elements — Function
abelian_group_elements(structure::Vector{Int}) -> Vector{Vector{Int}}

Enumerate all elements of Z/n1 × Z/n2 × ... × Z/nk. Returns a vector of tuples represented as Vector{Int}. The identity is the zero vector.

source
GKMtools.apply_embedding — Function
apply_embedding(embedding::ZZMatrix, h::Vector{Int},
                src_structure::Vector{Int},
                tgt_structure::Vector{Int}) -> Vector{Int}

Apply the homomorphism encoded by embedding to a flag isotropy element. Here embedding is the map Hflag -> Gvertex: rows index the target vertex isotropy factors and columns index the source flag isotropy factors.

source
Base.convert — Method
convert(OrbifoldGKMGraph{R,V,F}, G::GKMGraph{R,V,F})

Regard a smooth GKM graph as an orbifold GKM graph with trivial isotropy. The combinatorial data and connection of G are reused.

source