Generalities on GKM graphs
Definition
Although the definition below is written for smooth algebraic GKM spaces, the functionality of this package applies equally well to Hamiltonian GKM spaces as discussed in the supporting article of this package. By GKM space we will mean either a GKM variety as defined below, or a Hamiltonian GKM space.
GKM spaces have been introduced in [GKM98]. Many of the combinatorial definitions in this package follow [GZ00]. For the purpose of this package, by GKM variety we mean a smooth projective variety over $\mathbb{C}$ with an algebraic torus action such that the action has a finite number of fixed points and a finite number of 1-dimensional orbits.
The GKM graph associated to a torus $T$ acting on a GKM variety $X$ is the following datum:
- A graph having the fixed points as vertices, such that two vertices are connected by an unoriented edge if there is a 1-dimensional orbit passing through the two fixed points.
- An axial function $\mathrm{w}\colon E \rightarrow M$ from the set of oriented edges of the graph to the weight lattice $M$ of $T$. By oriented edge we mean an unoriented edge of the graph plus a choice of orientation.
In this package, the codomain $M$ of the axial function can be a free $\mathbb{Z}$-module or a free $\mathbb{Q}$-module. Since the GKM graph of a GKM variety is always regular, with the valency of every vertex being the complex dimension of the space, this package assumes that GKM graphs are regular.
Famous examples of GKM varieties include projective space, generalized/partial flag varieties, smooth Schubert varieties, and smooth toric varieties; see Examples.
This package represents GKM varieties purely by their GKM graphs. For some applications, the additional datum of a GKM connection is necessary; see Connections.
We have added support for non-compact GKM spaces, which arise for example from quasi-projective algebraic GKM spaces or as total spaces of GKM vector bundles over GKM spaces. On the level of GKM graphs, this means that standalone flags (sometimes called semi-infinite edges) are allowed:
- Each vertex $p$ of the GKM graph has a set of flags. These are given by the $T$-invariant linear subspaces of $T_pX$.
- The axial function assigns to each flag the $T$-weight of that linear subspace.
- Two flags at different vertices form an edge if and only if they correspond to tangent spaces of the same 1-dimensional orbit.
- Every edge consists of precisely two flags.
Saving graphs in a file
It is possible to save in a file a GKM graph, for fast loading afterwards.
GKMtools.serialize_gkm_graph — Function
serialize_gkm_graph(path, G)Store in a file the GKM graph G in the path given by the string path. The cohomology of the graph is not stored, but it is recomputed when loading the graph. Use deserialize_gkm_graph(path) to restore the graph, with Oscar and GKMtools loaded.
The file format could be changed in future versions of GKMtools, so retro-compatibility is not guaranteed.
julia> G = generalized_gkm_flag(root_system(:A, 3), [1, 2]);
julia> path = tempname();
julia> serialize_gkm_graph(path, G);
julia> G = deserialize_gkm_graph(path)
GKM graph with 4 nodes, valency 3 and axial function:
s3 -> id => (0, 0, 1, -1)
s2*s3 -> id => (0, 1, 0, -1)
s2*s3 -> s3 => (0, 1, -1, 0)
s1*s2*s3 -> id => (1, 0, 0, -1)
s1*s2*s3 -> s3 => (1, 0, -1, 0)
s1*s2*s3 -> s2*s3 => (1, -1, 0, 0)
Birkhoff-Grothendieck connection for GKM graph with 4 nodes and valency 3
julia> rm(path);GKMtools.deserialize_gkm_graph — Function
deserialize_gkm_graph(path)Restore a generalized GKM graph saved by serialize_gkm_graph.
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.
Index
GKMtools.GKMClassGKMtools.InertiaStackGKMtools.InertiaStackVertexGKMtools.QuantumSchubertContextGKMtools.SmallEquivariantQuantumClassGKMtools.SmallEquivariantQuantumCohomologyGKMtools.StackyConeGKMtools.StackyFanAbstractAlgebra.degreeAbstractAlgebra.direct_sumBase.:*Base.:*Base.:/Base.convertGKMtools.PsiGKMtools.QH_classGKMtools.QH_ss_check_GLLXBRGKMtools.Seidel_spaceGKMtools.abelian_group_elementsGKMtools.admits_index_increasing_xiGKMtools.admits_weakly_index_increasing_xiGKMtools.all_quantum_schubert_productsGKMtools.ambient_graphGKMtools.apply_embeddingGKMtools.baseofGKMtools.billey_schubert_basisGKMtools.bott_samelsonGKMtools.build_gkm_connectionGKMtools.class_oneGKMtools.coefficientGKMtools.compact_flagsGKMtools.conjecture_O_eigenvaluesGKMtools.curve_classGKMtools.delocalizeGKMtools.derivated_functorGKMtools.deserialize_gkm_graphGKMtools.deserialize_polynomial_classGKMtools.equivariant_coefficient_ringGKMtools.evGKMtools.fano_indexGKMtools.fiber_representationGKMtools.fiber_weightGKMtools.find_vertex_indexGKMtools.first_chern_classGKMtools.flag_varietyGKMtools.flagsGKMtools.generalized_gkm_flagGKMtools.generalized_gkm_schubertGKMtools.generic_xi_representativesGKMtools.gens_coeffRingGKMtools.gens_cohomRingGKMtools.gkm_2dGKMtools.gkm_3d_positive_non_toricGKMtools.gkm_3d_twisted_flagGKMtools.gkm_graph_of_orbifold_toricGKMtools.gkm_graph_of_toricGKMtools.gkm_independenceGKMtools.gkm_line_bundle_of_toricGKMtools.gkm_vector_bundle_of_toricGKMtools.grassmannianGKMtools.gromov_wittenGKMtools.gromov_witten_nomarksGKMtools.index_increasing_xi_representativesGKMtools.index_periodic_bettiGKMtools.inertia_stackGKMtools.integrate_gkm_classGKMtools.is2_indepGKMtools.is3_indepGKMtools.is_compactGKMtools.is_genericGKMtools.is_gkm_splineGKMtools.is_index_increasingGKMtools.is_strictly_nefGKMtools.is_validGKMtools.is_weakly_index_increasingGKMtools.labelGKMtools.line_bundle_OGKMtools.localizeGKMtools.localize_at_vertexGKMtools.localized_classGKMtools.matrix_small_quantum_productGKMtools.num_edgesGKMtools.num_verticesGKMtools.number_vertex_of_labelGKMtools.orbifold_line_bundleGKMtools.orbifold_vector_bundleGKMtools.other_vertexGKMtools.poincare_dualGKMtools.polynomial_classGKMtools.polynomial_gkm_ringGKMtools.print_connectionGKMtools.print_curve_classesGKMtools.print_labelsGKMtools.pseudo_indexGKMtools.quantum_chevalley_productGKMtools.quantum_classGKMtools.quantum_coefficientsGKMtools.quantum_productGKMtools.quantum_schubert_coefficientGKMtools.quantum_schubert_contextGKMtools.quantum_schubert_matrixGKMtools.quantum_schubert_productGKMtools.quantum_schubert_tableGKMtools.rank_of_bdGKMtools.rank_torusGKMtools.reduced_virtual_zero_sectionGKMtools.schubert_basisGKMtools.schubert_cohomology_ringGKMtools.sector_countGKMtools.serialize_gkm_graphGKMtools.serialize_polynomial_classGKMtools.serialize_quantum_schubert_productsGKMtools.small_equivariant_quantum_cohomologyGKMtools.small_quantum_cohomology_ringGKMtools.stacky_weighted_projective_space_fanGKMtools.subgraphGKMtools.subgraph_from_verticesGKMtools.sym_productGKMtools.tautological_and_univ_bdGKMtools.tautological_bdGKMtools.truncation_degreesGKMtools.twisted_intersection_matrixGKMtools.twisted_matrix_small_quantum_productGKMtools.twisted_sectorsGKMtools.unit_cohomology_ringGKMtools.untwisted_sectorGKMtools.valencyGKMtools.vector_bundleGKMtools.vector_bundle_OGKMtools.vertices_structureGKMtools.virtual_zero_sectionGKMtools.weakly_index_increasing_xi_representativesGKMtools.wedge_productGKMtools.weight_classGKMtools.weighted_blowupGKMtools.xi_indexHecke.dualHecke.is_effectiveHecke.latticeHecke.tensor_productLinearAlgebra.rankNemo.integrateOscar.IntersectionTheory.blowupOscar.IntersectionTheory.chern_numberOscar.IntersectionTheory.cotangent_bundleOscar.IntersectionTheory.line_bundleOscar.IntersectionTheory.point_classOscar.IntersectionTheory.schubert_classOscar.IntersectionTheory.schubert_classesOscar.IntersectionTheory.tangent_bundleOscar.IntersectionTheory.total_chern_classOscar.betti_numbersOscar.chern_classOscar.chern_classesOscar.coreOscar.edgesOscar.graphOscar.intersection_matrixOscar.projective_spaceOscar.projectivizationOscar.restrictionsOscar.total_spaceOscar.verticesOscar.weight