Properties of GKM graphs
These are the main properties of GKM graphs.
Oscar.betti_numbers
— Functionbetti_numbers(G::GKM_graph) -> Vector{Int64}
Return the array betti_numbers
such that betti_numbers[i+1]
is the 2i-th combinatorial Betti number for i from 0 to the valency of G
, as defined in [GZ01, section 1.3].
i
ranges from 0 to the valency ofG
, that can be obtained byvalency(G)
.- From [GZ01, Theorem 1.3.2], the combinatorial Betti numbers equal the Betti numbers of the underlying GKM space if the torus action is Hamiltonian. This holds automatically for smooth projective varieties with algebraic torus action (cf. [MFK94, Example 8.1 (ii)]).
Examples
julia> H6 = gkm_graph_of_toric(hirzebruch_surface(NormalToricVariety, 6));
julia> betti_numbers(H6)
3-element Vector{Int64}:
1
2
1
GKMtools.valency
— Functionvalency(G::GKM_graph) -> Int64
Return the valency of G
, i.e. the degree of each vertex.
Example:
The valency of the GKM graph of $\mathbb{P}^3$ is 3, since all of the fixed points $[1:0:0:0], \dots, [0:0:0:1]$ are connected to each other via some $T$-invariant $\mathbb{P}^1$'s. For example, $[1:0:0:0]$ and $[0:1:0:0]$ are connected by $\{[x:y:0:0] : x,y\in\mathbb{C}\}$.
julia> valency(projective_space(GKM_graph, 3))
3
julia> valency(grassmannian(GKM_graph, 2, 4)) # The Grassmannian of 2-planes in C^4
4
julia> valency(flag_variety(GKM_graph, [1, 1, 1, 1])) # The variety of full flags in C^4
6
GKMtools.rank_torus
— Functionrank_torus(G::GKM_graph) -> Int64
Return the rank of the torus acting on G
. That is, the rank of the character group.
Examples
By default, the torus acting on $\mathbb{P}^n$ is $(\mathbb{C}^\times)^{n+1}$, acting by rescaling the homogeneous coordinates.
julia> P3 = projective_space(GKM_graph, 3);
julia> rank_torus(P3)
4
Taking products adds the rank:
julia> H6 = gkm_graph_of_toric(hirzebruch_surface(NormalToricVariety, 6));
julia> rank_torus(H6)
4
julia> rank_torus(H6 * P3)
8
GKMtools.is2_indep
— Functionis2_indep(G::GKM_graph) -> Bool
Return true
if G
is 2-independent, i.e. the weights of every two edges at a vertex are linearly independent.
GKMtools.is3_indep
— Functionis3_indep(G::GKM_graph) -> Bool
Return true
if G
is 3-independent, i.e. the weights of every three edges at a vertex are linearly independent.
Example
The weights of $\mathbb{P}^3$ at the fixed point $[1:0:0:0]$ are $\{t_i-t_0:i\in\{1, 2, 3\}\}$, which are linearly independent over $\mathbb{C}$.
julia> is3_indep(projective_space(GKM_graph, 3))
true
The variety of complete flags in $\mathbb{C}^3$ is an example of a GKM graph that is not 3-independent:
julia> G = flag_variety(GKM_graph, [1, 1, 1])
GKM graph with 6 nodes, valency 3 and axial function:
13 -> 12 => (0, -1, 1)
21 -> 12 => (-1, 1, 0)
23 -> 13 => (-1, 1, 0)
23 -> 21 => (-1, 0, 1)
31 -> 13 => (-1, 0, 1)
31 -> 21 => (0, -1, 1)
32 -> 12 => (-1, 0, 1)
32 -> 23 => (0, -1, 1)
32 -> 31 => (-1, 1, 0)
julia> is3_indep(G)
false
GKMtools.is_strictly_nef
— Functionis_strictly_nef(G::GKM_graph) -> Bool
It returns true
if and only if the Chern numbers of all curve classes corresponding to edges of the GKM graph are strictly positive.
Examples
julia> F3 = flag_variety(GKM_graph, [1,1,1]);
julia> print_curve_classes(F3)
13 -> 12: (0, 1), Chern number: 2
21 -> 12: (1, 0), Chern number: 2
23 -> 13: (1, 1), Chern number: 4
23 -> 21: (0, 1), Chern number: 2
31 -> 13: (1, 0), Chern number: 2
31 -> 21: (1, 1), Chern number: 4
32 -> 12: (1, 1), Chern number: 4
32 -> 23: (1, 0), Chern number: 2
32 -> 31: (0, 1), Chern number: 2
julia> is_strictly_nef(F3)
true
julia> H5 = gkm_graph_of_toric(hirzebruch_surface(NormalToricVariety, 5))
GKM graph with 4 nodes, valency 2 and axial function:
2 -> 1 => (1, 0, -1, 0)
3 -> 2 => (5, 1, 0, -1)
4 -> 1 => (0, 1, 5, -1)
4 -> 3 => (-1, 0, 1, 0)
julia> print_curve_classes(H5)
2 -> 1: (-5, 1), Chern number: -3
3 -> 2: (1, 0), Chern number: 2
4 -> 1: (1, 0), Chern number: 2
4 -> 3: (0, 1), Chern number: 7
julia> is_strictly_nef(H5)
false