### CUNY Academic Works CUNY Academic Works

Dissertations, Theses, and Capstone Projects CUNY Graduate Center

9-2016

### On The Free and G-Saturated Weight Monoids of Smooth Affine On The Free and G-Saturated Weight Monoids of Smooth Affine Spherical Varieties For G=SL(n)

### Spherical Varieties For G=SL(n)

Won Geun Kim

The Graduate Center, City University of New York

### How does access to this work benefit you? Let us know!

More information about this work at: https://academicworks.cuny.edu/gc_etds/1598 Discover additional works at: https://academicworks.cuny.edu

This work is made publicly available by the City University of New York (CUNY).

Contact: AcademicWorks@cuny.edu

### WEIGHT MONOIDS OF SMOOTH AFFINE SPHERICAL VARIETIES FOR G = SL(n)

### by

### Won Geun Kim

### A dissertation submitted to the Graduate Faculty in Mathematics in partial fulfillment of the requirements for the degree of Doctor of Philosophy, The City University of New York.

### 2016

### 2016 c

### Won Geun Kim

### All Rights Reserved

### This manuscript has been read and accepted for the Graduate Faculty in Mathematics in satisfaction of the dissertation requirements for the degree of Doctor of Philosophy.

### Gautam Chinta

### Date Chair of Examining Committee

### Ara Basmajian

### Date Executive Officer

### Raymond Hoobler

### Benjamin Steinberg

### Bart Van Steirteghem : co-advisor

### Supervisory Committee

### THE CITY UNIVERSITY OF NEW YORK

### Abstract

### ON THE FREE AND G-SATURATED WEIGHT MONOIDS OF SMOOTH AFFINE SPHERICAL VARIETIES FOR G = SL(n)

### by

### Won Geun Kim

### Advisor: Gautam Chinta and Bart Van Steirteghem

### Let X be an affine algebraic variety over C equipped with an action of a connected reductive group G. The weight monoid Γ(X) of X is the set of isomorphism classes of irreducible representations of G that occur in the coordinate ring C[X] of X. Losev has shown that if X is a smooth affine spherical variety, that is, if X is smooth and C[X] is multiplicity- free as a representation of G, then Γ(X) determines X up to equivariant automorphism.

### Pezzini and Van Steirteghem have recently obtained a combinatorial char- acterization of the weight monoids of smooth affine spherical varieties, using the combinatorial theory of spherical varieties and a smoothness criterion due to R. Camus. The first part of this thesis gives an implementation in Sage of a special case of this combinatorial characterization: given a free and

### “G-saturated” monoid Γ of dominant weights for G = SL(n), the algorithm decides whether there exists a smooth affine spherical G-variety X such that Γ(X) = Γ.

### In the second part of the thesis, we apply Pezzini and Van Steirteghem’s

### characterization to determine which subsets of the set of fundamental weights

### of SL(n) generate a monoid that is the weight monoid of a smooth affine

### spherical G-variety.

### First and foremost, I would like to thank my advisors, Gautam Chinta and Bart Van Steirteghem. Extremely gifted teachers, they have been a constant source of inspiration. Their rigor, determination and kindness have kept this project on track. My special thanks go to Ray Hoobler, a real mentor. If I had not met him at the City College of New York it is very likely that I would not have studied mathematics. I am grateful to Benjamin Steinberg for his generosity of serving as a committee member and for useful discussions.

### Thanks to Guido Pezzini for suggesting the problem solved in Chapter 4 and for other helpful suggestions. Thanks to Sage Days 65 and GAeL XXIV for funding support. Last but not least, I would also like to thank my wife, Nina, and family in the US and Korea for their words of advice and their encouragement in my study and life.

### v

### Introduction 1

### 1 Preliminaries 4

### 1.1 The Classification of Spherical Varieties . . . . 4

### 1.2 Combinatorial Invariants of Affine Spherical Varieties . . . . . 5

### 1.2.1 The Weight Monoid . . . . 6

### 1.2.2 N-Spherical Roots . . . . 8

### 2 Algorithm and Implementation 10 2.1 Combinatorial Invariants . . . . 11

### 2.1.1 The Inputs . . . . 11

### 2.1.2 Subalgorithm I . . . . 13

### 2.1.3 Subalgorithm II . . . . 15

### 2.1.4 Subalgorithm III . . . . 27

### 2.1.5 Subalgorithm IV . . . . 48

### 2.1.6 The Output . . . . 54

### 2.2 Implementation of Algorithm . . . . 54

### 3 Examples 57 3.1 The Weight Monoid of SL(10)/Sp(10) . . . . 57

### 3.2 The Weight Monoids of SL(7)/S(GL(4)×GL(3)) and SL(8)/S(GL(4)× GL(4)) . . . . 64

### 3.3 Weight Monoids Generated by Sets of Fundamental Weights of G = SL(n + 1) . . . . 66

### 4 Faces of the Dominant Cone of SL(n) 73 4.1 Weight Monoids Generated by Fundamental Weights . . . . . 73

### vi

### 4.1.1 Some facts about Σ

^{N}

### (Γ) . . . . 78

### 4.1.2 Proof of Proposition 4.9.(1) and 4.9.(2) . . . . 82

### 4.1.3 Proof of Proposition 4.9.(3) . . . 100

### 4.2 Smooth Weight Monoids of Full Rank for SL(n) . . . 105

### Bibliography 112

### Let G be a connected reductive algebraic group over C, in which we fix a Borel subgroup B and a closed subgroup H ⊂ G. The homogeneous space G/H (or the subgroup H) is spherical if B acts on G/H with an open orbit.

### Examples include flag varieties (where H is parabolic in G) and symmetric spaces (where H is the fixed point set of an involutive automorphism of G).

### A large part of the interest in spherical subgroups comes from represen- tation theory (Gel’fand pairs, multiplicity-free spaces). Indeed, the homoge- neous space G/H is spherical if and only if for any simple, rational G-module M , and for any multiplicative character χ of H, the χ-eigenspace of H in M is zero or a line.

### More generally, one defines a spherical variety as a normal algebraic variety with an action of G and a dense orbit of B. In the case where G is a torus (i.e. G = (C

^{∗}

### )

^{k}

### for some k), this recovers the definition of a toric variety.

### The geometry of spherical varieties combines that of flag varieties (e.g. the Bruhat decomposition and the Borel-Weil-Bott theorem) and of symmetric spaces (e.g. the little Weyl group and its role in equivariant embeddings).

### For more background information on spherical varieties we refer to [Bri94]

### in the 1994 ICM proceedings, from which the above was adapted, and to [Tim11].

### Before giving a brief overview of the thesis, we introduce some notation and provide some background information. The weight lattice of G is denoted by Λ. It is the character group of T and can be identified with the character group of B. The set of dominant weights of G with respect to B will be denoted by Λ

^{+}

### . It is a finitely generated submonoid of Λ. Highest weight theory says that the irreducible representations of G are classified by the elements of Λ

^{+}

### . We denote by V (λ) the irreducible G-module corresponding to λ ∈ Λ

^{+}

### .

### 1

### An affine G-variety X is spherical if and only if it is normal and the ring C[X] of regular functions on X is multiplicity-free as a representation of G.

### A combinatorial invariant of such a variety is its weight monoid Γ(X): it is the set of isomorphism classes of irreducible representations of G that occur in the coordinate ring C[X] of X. We identify Γ(X) with a finitely generated submonoid of the monoid Λ

^{+}

### of dominant weight:

### Γ(X) = {λ ∈ Λ

^{+}

### : Hom

G### (V (λ), C[X]) 6= 0}

### It is possible for two non-isomorphic affine spherical varieties to have the same weight monoid, but the weight monoid is a complete invariant for smooth affine spherical varieties. Indeed, in the mid 1990s, F. Knop conjectured and in [Los09a] I. Losev proved the following result:

### Theorem. A smooth affine spherical G-variety X is uniquely determined (up to equivariant isomorphism) by its weight monoid Γ(X).

### One of the motivations to study smooth affine spherical G-varieties is an application to Hamiltonian K-manifolds where K ⊂ G is a maximal compact subgroup. These are symplectic K-manifolds which are equipped with a moment map. Locally, a Hamiltonian K-manifold is isomorphic to a smooth affine G-variety [Sja98]. A Hamiltonian K-manifold is called mul- tiplicity free if all symplectic reductions are zero-dimensional. Multiplicity free Hamiltonian K-manifolds have smooth affine spherical varieties as local models [Bri86]. In [Kno11], Knop proved the following two facts:

### (a) A multiplicity-free Hamiltonian manifold for a connected compact Lie Group is uniquely determined by its generic isotropy group and its mo- ment polytope.

### (b) Locally, the moment polytope of a multiplicity-free Hamiltonian mani- fold looks like the weight monoid of a smooth affine spherical variety.

### Part (a) was known as Delzant’s conjecture [Delzant90] and Knop used the theorem above to prove it.

### The image of the map X 7→ Γ(X) that sends a smooth affine spherical

### variety to its weight monoid is still somewhat mysterious. We call a sub-

### monoid Γ of Λ

^{+}

### smooth if it lies in the image of this map, that is, if there

### exists a smooth affine G-variety X such that C[X] ∼ = M

λ∈Γ

### V (λ) (1)

### as G-modules.

### Combining the combinatorial theory of spherical varieties [LV83, Lun01]

### and a smoothness criterion of R. Camus [Cam01], Pezzini and Van Steirteghem [PVS16] gave a combinatorial characterization of smooth submonoids of Λ

^{+}

### .

### In the first part of this thesis we give an implementation of Pezzini and Van Steirteghem’s combinatorial characterization as an algorithm in Sage, under the assumption that G = SL(n) and that Γ is a free and G-saturated monoid: We say that Γ is free if there is a subset F of Λ

^{+}

### such that F generates Γ as a monoid and F is linearly independent in Λ. The submonoid Γ of Λ

^{+}

### is G-saturated if the following equality holds in Λ:

### ZΓ ∩ Λ

^{+}

### = Γ

### If Γ is a G-saturated submonoid of Λ

^{+}

### , then there exists a unique (up to G-equivariant isomorphism) affine spherical G-variety, denoted by X

_{Γ}

### , such that X

_{Γ}

### is the most generic affine spherical G-variety with weight monoid Γ [BCF08]. This is the only affine spherical G-variety of weight monoid Γ which can be smooth. The basic idea of the algorithm is to compute enough combinatorial invariants of X

Γ### from Γ to determine whether X

Γ### is smooth.

### To carry out the implementation of the algorithm we use Sage Math [Sage]

### by W. Stein. The algorithm determining whether a given weight monoid Γ is smooth or not will be explained in Chapter 2. Then Chapter 3 will be devoted to some examples of the implementation.

### The second part of this thesis applies the result in [PVS16] to certain

### families of weight monoids. In our main result, Theorem 4.1, we find all

### subsets of the set of fundamental weights of SL(n+1) that generate a smooth

### weight monoid Γ. Before proving it, we “discovered” this result by running

### our algorithm for all such subsets for SL(n + 1) with n ≤ 12. The algorithm

### also gave us hints towards the proof. In Theorem 4.42, we show that for

### SL(n) with n ≥ 3 the only smooth, free and G-saturated submonoids of Λ

^{+}

### that have the maximal rank n − 1 are Λ

^{+}

### and 2Λ

^{+}

### .

## Preliminaries

### 1.1 The Classification of Spherical Varieties

### We continue to use the notations from the introduction. One of the most important results in the theory of spherical varieties is their complete (com- binatorial) classification. It required two parts:

### (a) the classification of spherical embeddings G/H ,→ X for fixed G/H (b) the classification of spherical subgroups H ⊆ G for fixed G.

### Part (a) was done by the Luna-Vust theory in [LV83], see also [Kno91].

### Such embeddings are classified by so-called “colored fans”. The conjectural classification of spherical subgroups of a fixed connected reductive complex algebraic group G was proposed by Luna in [Lun01]: He attached a quadru- ples of combinatorial data, called “spherical homogeneous data” to every spherical subgroup H of G; he proposed a conjectural list of axioms explic- itly describing (abstract) spherical homogeneous data, and he conjectured that his map

### {H ⊂ G : H is a spherical subgroup}/conjugation

### −→ { homogeous spherical data for G} (1.1) is a bijection. Luna proved his conjecture for groups of type A in [Lun01]

### and the injectivity of (1.1) was shown (for general G) by Losev in [Los09a].

### The surjectivity turned out to be more difficult. In [BP16], Bravi and Pezzini

### 4

### completed the proof building on earlier results. There is another geometric proof proposed by Cupit-Foutou [CF14]. We refer to [Bri], [Lun01] and [Tim11] for basic facts about spherical varieties and more information about their combinatorial classification.

### The combinatorial characterization in [PVS16] of smooth weight monoids is obtained by combining the aforementioned classification of spherical vari- eties with a (combinatorial) smoothness criterion due to Camus [Cam01]. We give a bit more information about the basic idea behind the characterization.

### Let Γ be a finitely generated submonoid of Λ

^{+}

### . By [AB05] there exist finitely many affine spherical G-varieties X

_{1}

### , X

_{2}

### , . . . , X

_{d}

### with weight monoid Γ which can be smooth (if Γ is G-saturated, then d = 1). It is possible to determine the homogeneous spherical datum and the colored fan (which consists of just one “colored cone”) for each of these varieties directly from Γ.

### Camus’ criterion then allows one to decide from this combinatorial in- formation whether X

_{i}

### is smooth. The assumption that Γ is G-saturated, which we make in this thesis, considerably simplifies the required verifica- tions (compare Theorem 4.2 to Theorem 1.12 in [PVS16]).

### 1.2 Combinatorial Invariants of Affine Spher- ical Varieties

### In this section, we briefly recall notions from the theory of affine spherical varieties that we will need in this thesis. As before, let G be a connected complex reductive algebraic group. We fix a Borel subgroup B of G and a maximal torus T contained in B. The set of simple roots of G determined by B and T is denoted by S. The weight lattice of G is denoted by Λ.

### The weight lattice Λ is the character group of T , and is identified with the

### character group of B. For α ∈ S, we denote the corresponding coroot by

### α

^{∨}

### . The set of dominant weights of G with respect to B will be denoted by

### Λ

^{+}

### . It is a finitely generated submonoid of Λ. Highest weight theory tells us

### that the elements of Λ

^{+}

### are in natural bijection with the isomorphism classes

### of irreducible representations of G. We denote by V (λ) the irreducible G-

### module corresponding to λ ∈ Λ

^{+}

### .

### From Chapter 2 onwards we will take G = SL(n + 1) for some n ≥ 1. We can then take B to be the subgroup of upper triangular matrices of determinant 1, and T the subgroup of diagonal matrices of determinant 1.

### The weight lattice is

### Λ =

n+1

### M

i=1

### Zε

^{i}

### /Z(ε

^{1}

### + ε

2### + · · · + ε

n+1### ) (1.2) where ε

_{i}

### is the character of T given by ε

_{i}

### (t

_{1}

### , . . . , t

_{n+1}

### ) = t

_{i}

### . The fundamen- tal weights of SL(n + 1) are ω

_{i}

### = ε

_{1}

### + ε

_{2}

### + · · · + ε

_{i}

### where i ∈ {1, 2, . . . , n}.

### Then Λ

^{+}

### = hω

_{1}

### , ω

_{2}

### , . . . , ω

_{n}

### i

N

### . The set of simple roots is S = {α

_{1}

### , α

_{2}

### , . . . , α

_{n}

### } where

### α

_{k}

### = ε

_{k}

### − ε

_{k+1}

### = −ω

_{k−1}

### + 2ω

_{k}

### − ω

_{k+1}

### (1.3) for k ∈ {1, 2, . . . , n}. Here we used the convention that ω

_{0}

### = ω

_{n+1}

### = 0. The set S of simple roots of SL(n+1), or the root system they generate, is denoted by A

_{n}

### . Finally, we recall that the simple coroots α

^{∨}

_{1}

### , α

^{∨}

_{2}

### , . . . , α

^{∨}

_{n}

### ∈ Hom

_{Z}

### (Λ, Z) are uniquely determined by

### hα

^{∨}

_{i}

### , ω

_{j}

### i = δ

_{ij}

### . (1.4) where i, j ∈ {1, 2, . . . , n}.

### 1.2.1 The Weight Monoid

### Let X be an affine G-variety. Its ring of regular function becomes a G-module for the following action:

### (g · f )(x) = f (g

^{−1}

### x) for g ∈ G, f ∈ C[X] and x ∈ X. (1.5) Recall that such a variety is spherical if and only if it is normal and C[X] is multiplicity free as a representation of G.

### Given an affine spherical G-variety X we identify its weight monoid Γ(X) with a submonoid of Λ

^{+}

### :

### Γ(X) = {λ ∈ Λ

^{+}

### : Hom

_{G}

### (V (λ), C[X]) 6= 0}. (1.6)

### In other words, Γ(X) tells us which irreducible representations of G occur in

### the coordinate ring C[X] of the variety X.

### Example 1.1. If G = SL(2) and X = G/T then Γ(X) = h2ωi

_{N}

### , where ω is the fundamental weight of SL(2).

### Definition 1.2. We call a submonoid Γ of Λ

^{+}

### smooth if and only if there exists a smooth affine G-variety X such that

### C[X] ∼ = M

λ∈Γ

### V (λ) (1.7)

### as G modules, that is, if there exists a smooth affine spherical G-variety X with Γ(X) = Γ.

### Definition 1.3. Let Γ be a submonoid of the monoid Λ

^{+}

### of dominant weights of G.

### (a) We say that Γ is free if there is a subset F of Λ

^{+}

### such that F generates Γ as a monoid and F is linearly independent in Λ.

### (b) We say that Γ is G-saturated if the following equality holds in Λ:

### ZΓ ∩ Λ

^{+}

### = Γ. (1.8)

### The following lemma is a convenient way of characterizing G-saturated submonoids of Λ

^{+}

### among the free ones.

### Lemma 1.4 ([BCF08]). Let λ

1### , λ

2### , · · · , λ

k### be linearly independent dominant weights. The following are equivalent:

### (a) the monoid hλ

_{1}

### , λ

_{2}

### , · · · , λ

_{k}

### i

N

### , is G-saturated (b) there exist k simple roots α

t1### , α

t2### , · · · , α

t_{k}

### such that

### D λ

i### , α

^{∨}

_{t}

_{j}

### E

### 6= 0 ⇐⇒

### i = j

### Example 1.5. Let G = SL(4). Γ(X) = hω

_{1}

### , ω

_{2}

### + ω

_{3}

### , ω

_{3}

### i

_{N}

### is free, but not

### G-saturated.

### 1.2.2 N-Spherical Roots

### In this subsection, X will be an affine spherical G-variety. A second invari- ant of X, besides Γ(X), is the (finite) set Σ

^{N}

### (Γ) of its “N-spherical roots.”

### Roughly speaking, this set measures to what extent the algebra C[X] fails to be graded by Γ(X) : Σ

^{N}

### (X) = ∅ ⇐⇒ C[X] is graded by Γ(X).

### Definition 1.6. The root monoid R(X) of X is the submonoid of Λ gen- erated by

### {λ + µ − ν : λ, µ, ν ∈ Λ

^{+}

### such that C[X]

(ν)### ⊂

### C[X]

(λ)### C[X]

(µ)C

### } where for δ ∈ Λ

^{+}

### we used C[X]

(δ)### for the isotypic component of type δ in C[X]. By a theorem of F. Knop [Kno96], the saturation of R(X), i.e., the intersection of the cone and the lattice spanned by R(X), is a free submonoid of Λ.

### Definition 1.7. Denote by Σ

^{N}

### (X) the set of N-spherical roots of X, which is the basis of the saturation of R(X).

### Example 1.8. If G = SL(2) and X = G/T , then Σ

^{N}

### (X) = {2α} = {4ω}, where α is the simple root of SL(2).

### The following proposition is a consequence of results in [BCF08] and [AB05]

### Proposition 1.9. If Γ is a free and G-saturated submonoid of Λ

^{+}

### then there exists a unique (up to G-equivariant isomorphism) affine spherical G-variety X

_{Γ}

### such that

### (a) the weight monoid of X

Γ### is Γ; and

### (b) if X is an affine spherical G-variety with weight monoid Γ then Σ

^{N}

### (X) ⊂ Σ

^{N}

### (X

_{Γ}

### ).

### Remark 1.10. If Γ is free and G-saturated, then X

_{Γ}

### is the “most generic”

### affine spherical variety with weight monoid Γ. This is the only affine spherical variety of weight monoid Γ which can be smooth.

### Definition 1.11. Let σ be an element of the root lattice Λ

_{R}

### of G and let σ = X

α∈S

### n

_{α}

### α

### be its unique expression as a linear combination of the simple roots. The support of σ is

### supp(σ) := {α ∈ S : n

_{α}

### 6= 0}.

### The type of supp(σ) is the Dynkin type of the subroot system generated by supp(σ) in the root system of G.

### Definition 1.12. The set Σ

^{sc}

### (SL(n + 1)) of spherically closed spherical roots of SL(n+1) is the subset of NS defined by: an element σ of NS belongs to Σ

^{sc}

### (SL(n + 1)) if after numbering the simple roots in supp(σ) as in (1.3), σ is listed in Table 1.12.

### Table.1.12 Spherically closed spherical roots of type A Type of support σ ∈ Σ

^{sc}

### (G)

### A

_{1}

### α

### A

1### 2α

### A

_{1}

### × A

_{1}

### α + α

^{0}

### A

_{r}

### , r ≥ 2 α

_{1}

### + α

_{2}

### + · · · + α

_{r}

### A

3### α

1### + 2α

2### + α

3### Example 1.13. Σ

^{sc}

### (SL(4)) = {α

_{1}

### , α

_{2}

### , α

_{3}

### } ∪ {2α

_{1}

### , 2α

_{2}

### , 2α

_{3}

### } ∪ {α

_{1}

### + α

_{3}

### } ∪

### {α

_{1}

### + α

_{2}

### , α

_{2}

### + α

_{3}

### , α

_{1}

### + α

_{2}

### + α

_{3}

### } ∪ {α

_{1}

### + 2α

_{3}

### + α

_{3}

### }

## Algorithm and Implementation

### In this chapter, we shall describe an algorithm that implements a special case of the combinatorial characterization of the weight monoids of smooth affine spherical varieties given in [PVS16]. Specifically, we implement Theorem 1.12 in [PVS16] (cf. Theorem 2.10 below) under the additional assumptions that G = SL(n + 1) and that the weight monoid Γ is free. We also describe the combinatorial invariants of spherical varieties used in our algorithm. For our implementation of the algorithm we used the mathematical software package SageMath [Sage] written by William Stein and collaborators. SageMath is an interpreter of the Python programming language [Pyth] and is equipped with many useful computational tools and mathematical packages. To explain the steps of the algorithm in the sections of this chapter, we divide the algorithm into four parts.

### We recall from [PVS16] that given a free and G-saturated monoid Γ of dominant weights there is a unique affine spherical G-variety X

_{Γ}

### with weight monoid Γ which can be smooth. The algorithm determining whether X

_{Γ}

### is smooth or not can be summarized as follows:

### INPUT. Subroutines in the input system produce the generators of the given weight monoid Γ as a linear combination of fundamental weights of the given group G = SL(n + 1).

### SUBALGRITHM I. The first part of the algorithm determines the set Σ

^{sc}

### (G) of the spherically closed spherical roots of type A as in Table 1.12.

### SUBALGRITHM II. The second part of the algorithm computes some

### 10

### of the Luna invariants of X

_{Γ}

### from Γ: Given Γ and Σ

^{sc}

### (G) (as inputs) the subroutines in this subalgorithm derives a triple of combinatorial data.

### SUBALGRITHM III. The third part of the algorithm determines whether the computed triple in Subalgorithm II is admissible or not by comparing it to the primitive admissible triples of List 2.8.

### SUBALGRITHM IV. In this part, the subroutines check the two re- maining conditions in Theorem 1.12 of [PVS16].

### OUTPUT. Subroutines in the output system of the algorithm produce the main computational result: the given weight monoid Γ is smooth or not.

### Rather then giving scripts in pseudo code, we have chosen to use a actual computer programming language (Python/SageMath) to illustrate our im- plementation. Because the primary implementation language of SageMath is Python, our code is written in Python2.7.

### 2.1 Combinatorial Invariants

### 2.1.1 The Inputs

### Implementation 2.1. Before inputting the weight monoid Γ, we realize the fundamental weights and simple roots as elements of the weight lattice Λ in Sage. To this end, in Subroutine 2.1.1 below we use the built-in Sage Class called RootSystem() which takes the type and rank of the root system as inputs and bring out the root system together with various methods (func- tions). All the outputs of this subroutine become the global variables of the program throughout the code.

### Subroutine 2.1.1.

### INPUT: the rank of the root system, the type of the root system

### OUTPUT: the root system, root lattice, the weight lattice, the set of simple

### roots and coroots, and set of indexes

### rank=input("Enter the rank:")

### Type=input("Enter the type(only type A currently):")

### R=RootSystem([type,rank]) LR=R.root_lattice()

### L=R.weight_lattice() alpha=LR.simple_roots()

### alphacheck=LR.simple_coroots() Lambda=L.fundamental_weights() indexes = L.index_set()

### If Γ is generated by λ

1### , λ

2### , · · · , λ

k### and λ

i### = P

α∈S

### m

i,α### ω

α### is the unique expression of λ

_{i}

### as a linear combination of the fundamental weights, then Subroutine 2.1.2 takes the input file in which the k × n matrix (m

_{i,α}

### ) is stored by the user.

### The outputs of subroutine 2.1.1 generated by Methods of Class RootSys- tem() are used in Subroutine 2.1.2 as inputs. The output of Subroutine 2.1.2 is the set of generators of the weight monoid Γ as linear combinations of the fundamental weights of G.

### Subroutine 2.1.2.

### INPUT: the fundamental weights, file containing the matrix whose rows are coefficients of the generators Γ

### OUTPUT: the free (G-saturated) weight monoid Γ ⊂ Λ

^{+}

### def ZGamma():

### inputfile=raw_input("Enter the file name of the monoid:") infile=open(inputfile,’rt’)

### lambdas=list(Lambda) GAMMA=[]

### while True:

### line=infile.readline() if not line:

### break

### coefficients=[int(p) for p in line.split(’,’)]

### weights=[coefficients[i]*lambdas[i] for i in range(len(lambdas))]

### if sum(weights)!=0:

### GAMMA.append(sum(weights)) infile.close()

### return GAMMA

### 2.1.2 Subalgorithm I

### This subalgorithm determines the set Σ

^{sc}

### (G) of the spherically closed spher- ical roots of G = SL(n + 1).

### Implementation 2.2. Subroutines in this part produce the subsets of Σ

^{sc}

### (G) corresponding to the different types of spherical roots in the Table 1.12. The input of each subroutine below is the set of simple roots S from Subrou- tine 2.1.1.

### Subroutine 2.2.1 generates the subset of Σ

^{sc}

### (G) consisting of the doubles of simple roots of G: {2α

_{1}

### , 2α

_{2}

### , · · · , 2α

_{n}

### } ⊂ Σ

^{sc}

### (G).

### Subroutine 2.2.1.

### INPUT: the set of simple roots S

### OUTPUT: the set {2α : α ∈ S} ⊂ Σ

^{sc}

### (G).

### def double_roots(alphas):

### return [2*x for x in alphas]

### Subroutine 2.2.2 generates the subset of Σ

^{sc}

### (G) of spherical roots of G with type of support A

_{1}

### × A

_{1}

### : {α

_{1}

### + α

_{3}

### , α

_{1}

### + α

_{4}

### , · · · , α

_{1}

### + α

_{n}

### , α

_{2}

### + α

_{4}

### , α

_{2}

### + α

_{5}

### , · · · , α

_{2}

### + α

_{n}

### , · · · , α

_{n−2}

### + α

_{n}

### } ⊂ Σ

^{sc}

### (G).

### Subroutine 2.2.2.

### INPUT: the rank n of the group G, the set of simple roots S

### OUTPUT: spherically closed spherical roots of G with type of support A

_{1}

### ×A

_{1}

### def roots2(n, alphas):

### ranges = []

### for x in range(n):

### for y in range(x+2, n):

### ranges.append((x,y)) ROOTS2 = []

### for x,y in ranges:

### ROOTS2.append(alphas[x] + alphas[y]) return ROOTS2

### Subroutine 2.2.3 generates the subset of spherical roots of G with type of supports A

_{2}

### , A

_{3}

### , · · · , A

_{n}

### : {α

_{1}

### + α

_{2}

### , α

_{2}

### + α

_{3}

### , · · · , α

_{n−1}

### + α

_{n}

### } ∪ {α

_{1}

### + α

_{2}

### + α

_{3}

### , α

_{3}

### + α

_{4}

### + α

_{5}

### , · · · , α

_{n−2}

### + α

_{n−1}

### + α

_{n}

### } ∪ · · · ∪ {α

_{1}

### + α

_{2}

### + α

_{3}

### + α

_{4}

### + α

_{5}

### + α

_{6}

### + · · · + α

_{n−2}

### + α

_{n−1}

### + α

_{n}

### } ⊂ Σ

^{sc}

### (G).

### Subroutine 2.2.3.

### INPUT: the rank n of the group G, the set of simple roots S

### OUTPUT: the spherically closed spherical roots of G with type of supports A

_{2}

### , A

_{3}

### , · · · , A

_{n}

### def plus_roots(n, alphas):

### size = range(2, n+1) #NOTE: discarding the simple roots ROOTS=[]

### for root_size in size:

### l = []

### indexes = range(n-root_size+1) for i in indexes:

### terms = alphas[i:i+root_size]

### expr = sum(terms) l.append(expr) for k in range(len(l)):

### ROOTS.append(l[k]) return ROOTS

### Subroutine 2.2.4 generates the subset of spherical roots of G with type of

### supports A

_{3}

### : {α

_{1}

### + 2α

_{2}

### + α

_{3}

### , α

_{3}

### + 2α

_{4}

### + α

_{5}

### , · · · , α

_{n−2}

### + 2α

_{n−1}

### + α

_{n}

### } ⊂ Σ

^{sc}

### (G).

### Subroutine 2.2.4.

### INPUT: the rank n of the group G, the set of simple roots S

### OUTPUT: spherically closed spherical roots of G with type of support A

_{3}

### def roots3(n, alphas):

### root_size = 3 ROOTS3 = []

### for i in range(n - root_size + 1):

### ROOTS3.append(alphas[i] + 2*alphas[i+1] + alphas[i+2]) return ROOTS3

### 2.1.3 Subalgorithm II

### Given Γ and Σ

^{sc}

### (G) (as inputs) the subroutine in this subalgorithm II derives some of the combinatorial invariants of the spherical variety X

_{Γ}

### . The first combinatorial invariant is S

^{p}

### (Γ), the set of simple roots orthogonal to Γ. It is computed in Subroutine 2.3.3 of Implementation 2.3.

### Definition 2.1. The set of simple roots orthogonal to Γ is S

^{p}

### (Γ) = {α ∈ S : hλ, α

^{∨}

### i = 0, ∀λ ∈ Γ}.

### Implementation 2.3. .

### Subroutine 2.3.1 produces the matrix form m1 of the free weight monoid Γ ⊂ Λ

^{+}

### given by the natural pairing hλ

_{i}

### , α

^{∨}

_{j}

### i between N

_{Q}

### and M

_{Q}

### with i, j ∈ {1, 2, · · · , n} the index set of the simple roots of G. To generate the matrix m1 Subroutine 2.3.1 uses Methods matrix(), scalar() in Class Matrix() and the data type called double list comprehension in Sage.

### Subroutine 2.3.1.

### INPUT: the simple coroots S

^{∨}

### , the index set of the weight lattice Λ, and the generators λ = P

α∈S

### m

_{α}

### ω of the weight monoid Γ.

### OUTPUT: the matrix m1 of the free weight monoid Γ ⊂ Λ

^{+}

### def ZGmatrix(ZG):

### m1=matrix([[ZG[i].scalar(alphacheck[j]) \ for j in L.index_set()] for i in range(len(ZG))]) return m1

### Subroutine 2.3.2 takes the matrix m1 and returns a free module ZΓ over the ring of integers Z using Method span() in Class Matrix().

### Subroutine 2.3.2.

### INPUT: the matrix m1 of the weight monoid Γ ⊂ Λ

^{+}

### OUTPUT: the free module ZΓ of rank r with basis hλ

1### , λ

_{2}

### , · · · , λ

_{r}

### i

N

### def ZGspan(m1):

### ZGammaSpan=span(m1,ZZ) return ZGammaSpan

### Subroutine 2.3.3 computes the subset S

^{p}

### (Γ) of simple roots S that are orthogonal to the weight monoid Γ using the columns of matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of the weight monoid Γ. Note that Method is zero() in Class Matrix() is used to determine the orthogonality hλ

_{i}

### , α

^{∨}

_{j}

### i = 0.

### Subroutine 2.3.3.

### INPUT: the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of the weight monoid Γ ⊂ Λ

^{+}

### , the set of simple roots S

### OUTPUT: the set S

^{p}

### (Γ) = {α ∈ S : hλ, α

^{∨}

### i = 0, ∀λ ∈ Γ}

### def SpGamma(m1):

### Sp_=[m1.column(k).is_zero() for k in range(len(m1.columns()))]

### Sp_Gamma=[]

### for i in range(len(Sp_)):

### if Sp_[i]==True:

### Sp_Gamma.append(alpha[i+1]) return Sp_Gamma

### The subroutines in Implementation 2.4 determine the set Σ

^{N}

### (Γ) of N -

### spherical roots of X

_{Γ}

### . In computing the set of N -spherical roots of X

_{Γ}

### Implementation 2.4 uses Proposition 2.3 below:

### Definition 2.2. Let σ ∈ Σ

^{sc}

### (G). We define

### S

^{p}

### (σ) = {α ∈ S : hσ, α

^{∨}

### i = 0, ∀σ ∈ Σ

^{N}

### (Γ)};

### S

^{pp}

### (σ) = supp(σ) ∩ S

^{p}

### (σ).

### Proposition 2.3 ([BVS15]). Let Γ be G-saturated monoid of dominant weight and let σ ∈ Σ

^{sc}

### (G). Then σ is N-adapted to Γ ⇐⇒ the following conditions are all satisfied:

### (i) σ / ∈ S.

### (ii) σ ∈ ZΓ.

### (iii) σ is compatible with S

^{p}

### (Γ),i.e., S

^{pp}

### (σ) ⊂ S

^{p}

### (Γ) ⊂ S

^{p}

### (σ), (iv) If σ = 2α, then hα

^{∨}

### , γi ∈ 2Z, ∀γ ∈ ZΓ.

### (v) If σ = α + β and α⊥β, then hα

^{∨}

### , γi = hβ

^{∨}

### , γi , ∀γ ∈ ZΓ.

### Implementation 2.4. Subroutines in this part of Sub-algorithm II imple- ments the conditions in Proposition 2.3. Later in the algorithm we combine the subroutines to obtain the set Σ

^{N}

### (Γ) of N -spherical roots of X

_{Γ}

### from Γ and the set Σ

^{sc}

### (G) of spherical roots of the given group G. Note that the first item(i) in the proposition 2.3 above is already taken care of in Subrou- tine 2.2.3: that subroutine generates Σ

^{sc}

### (G) \ S.

### To implement each statement in Proposition 2.3 we reduce the given prob- lem to the problems of linear algebra (free module over PID) and utilize Class Matrix() with Methods in Sage. The weight monoid Γ has been expressed in terms of a matrix over Z in Subroutine 2.3.1 and as a free submodule over the ring Z in Subroutine 2.3.2.

### Subroutine 2.4.1 checks the condition (ii) in Proposition 2.3,i.e.,it returns the set of spherical roots σ that are in ZΓ. First, each spherical root σ is expressed in the linear combination of fundamental weights ω. Second, a module is obtained as a span of the spherical root σ in the weight lattice Λ.

### Method scalar() is used to produce the generator of the submodule by pick- ing the coefficients of the spherical roots σ. Finally, Method is submodule() determines whether the module is a submodule of ZΓ for each σ.

### Subroutine 2.4.1.

### INPUT: the lattice of weight monoid ZΓ, the set of spherical roots Σ

^{sc}

### (G) OUTPUT: the set of spherical roots Σ

^{sc}

### (G) of G that satisfy the condition (ii) in proposition 2.3

### def is_sigma_in_ZGamma(sigmas,ZGamma):

### SIGMA_GAMM=[]

### for i in range(len(sigmas)):

### sigma1=L(sigmas[i])

### Spa=[sigma1.scalar(alphacheck[j]) for j in L.index_set()]

### Sigma1=span([Spa],ZZ)

### if Sigma1.is_submodule(ZGamma)==True:

### SIGMA_GAMM.append(sigmas[i]) return SIGMA_GAMM

### Subroutine 2.4.2 computes for each spherical root σ in Σ

^{sc}

### (G) the set S

^{p}

### (σ) of the simple roots that are orthogonal to σ. First, each spherical root σ is expressed in the linear combination of fundamental weights ω. Then, using the dual pairing hσ, α

^{∨}

_{j}

### i with j ∈ {1, 2, · · · , n} the subroutine 2.4.2 checks the orthogonality for each α in S.

### Subroutine 2.4.2.

### INPUT: σ ∈ Σ

^{sc}

### (G)

### OUTPUT: S

^{p}

### (σ) = {α ∈ S : hσ, α

^{∨}

### i = 0}

### def SpSigma(sigma): #(iii) sigma1=L(sigma)

### Sp=[sigma1.scalar(alphacheck[j]) for j in L.index_set()]

### Sp_sigma=[]

### for i in range(len(Sp)):

### if Sp[i]==0:

### Sp_sigma.append(alpha[i+1]) return Sp_sigma

### Subroutine 2.4.3 computes for each spherical root σ in Σ

^{sc}

### (G) the set

### supp(σ) of the support of σ. For each spherical root σ Subroutine 2.4.3

### checks whether each term of σ = P

j∈S

### n

_{j}

### α is zero or not. If it is not zero, n

j### 6= 0, j ∈ {1, 2, · · · , n}, then the subroutine returns corresponding simple roots α

_{j}

### .

### Subroutine 2.4.3.

### INPUT: σ = P

αj∈S

### n

j### α

j### ∈ Σ

^{sc}

### (G) OUTPUT: supp(σ)= {α

_{j}

### ∈ S : n

_{j}

### 6= 0}.

### def suppSigma(sigma): #(iii)

### n_alpha=[sigma[j] for j in L.index_set()]

### Supp_sigma=[]

### for i in range(len(n_alpha)):

### if n_alpha[i]!=0:

### Supp_sigma.append(alpha[i+1]) return Supp_sigma

### Subroutine 2.4.4 checks condition(iii) in Proposition 2.3:

### S

^{pp}

### (σ) ⊂ S

^{p}

### (Γ) ⊂ S

^{p}

### (σ)

### Notice that the second subset relation S

^{p}

### (Γ) ⊂ S

^{p}

### (σ) in the condition(iii) is always true because σ ∈ ZΓ. Thus, Subroutine 2.4.4 checks only the first subset relation S

^{pp}

### (σ) ⊂ S

^{p}

### (Γ) in the condition(iii). For each spherical root σ in Σ

^{sc}

### (G), Subroutine 2.4.4 calls Subroutine 2.3.3 to compute S

^{p}

### (Γ) , Sub- routine 2.4.2 to compute S

^{p}

### (σ), and Subroutine 2.4.3 to compute supp(σ), and then S

^{pp}

### (σ) = supp(σ) ∩ S

^{p}

### (σ) is computed using Methods Set() and in- tersection() in Class Set() in Sage. Finally, the subset relation S

^{pp}

### (σ) ⊂ S

^{p}

### (Γ) is determined using Method issubset() in Class Set() in Sage.

### Subroutine 2.4.4.

### INPUT: the set of spherical roots σ ∈ Σ

^{sc}

### (G), the matrix m1 of Γ

### OUTPUT: the set of spherical roots σ that satisfy condition(iii) in Proposi- tion 2.3.

### def compatibility(sigmas,m1): #(iii) SIGMA_GAMMA=[]

### for i in range(len(sigmas)):

### Sp_sigma=SpSigma(sigmas[i])

### Supp_sigma=suppSigma(sigmas[i]) Sp_Gamma=SpGamma(m1)

### Supp_SpSigma=Set(Supp_sigma).intersection(Set(Sp_sigma)) if Supp_SpSigma.issubset(Set(Sp_Gamma))==True:

### SIGMA_GAMMA.append(sigmas[i]) return SIGMA_GAMMA

### Subroutine 2.4.5 checks condition (iv) in Proposition 2.3: using the columns of the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of the weight monoid Γ. If all the entries in a column of m1 are divisible by 2, then subroutine 2.4.5 returns the double of the corresponding simple roots α.

### Subroutine 2.4.5.

### INPUT: the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of Γ, the set of simple roots S

### OUTPUT: the set of spherical roots of type A

_{1}

### i.e., σ = 2α such that hα

^{∨}

### , γi ∈ 2Z, ∀γ ∈ ZΓ

### def two_times_alpha(m1): #(iv) Sigma_Gamma=[]

### for k in range(len(m1.columns())):

### if m1.column(k) % 2 == 0:

### Sigma_Gamma.append(2*alpha[k+1]) return Sigma_Gamma

### Subroutine 2.4.6 checks the last condition (v) in Proposition 2.3: It checks: first, the condition α

_{i}

### ⊥α

_{j}

### using the dual pairing α

_{i}

### , α

^{∨}

_{j}

### with co- roots; second, the condition hα

^{∨}

_{i}

### , γi = α

^{∨}

_{j}

### , γ , ∀γ ∈ ZΓ using the columns of matrix m1= hλ

i### , α

^{∨}

_{j}

### i of the weight monoid Γ. Subroutine 2.4.6 returns the set of spherical roots σ = α

_{i}

### + α

_{j}

### of type A

_{1}

### × A

_{1}

### that satisfy condition(v) in Proposition 2.3.

### Subroutine 2.4.6.

### INPUT: the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of Γ, the set of simple roots S and coroots

### S

^{∨}

### of G

### OUTPUT: the set of spherical roots of type A

_{1}

### × A

_{1}

### ,i.e., σ = α

_{i}

### + α

_{j}

### with α

i### ⊥α

j### such that hα

^{∨}

_{i}

### , γi = α

^{∨}

_{j}

### , γ , ∀γ ∈ ZΓ

### def alpha_Beta(m1): #(v) Sigma_Gamma=[]

### for i in L.index_set():

### for j in L.index_set():

### if alpha[i].scalar(alphacheck[j])==0 \ and m1.column(i-1)==m1.column(j-1) \ and alpha[i]+alpha[j] not in Sigma_Gamma:

### Sigma_Gamma.append(alpha[i]+alpha[j]) return Sigma_Gamma

### The last part of Subalgorithm II determines a third combinatorial invari- ant S

_{Γ}

### which we briefly describe now.

### The affine spherical G-variety X

_{Γ}

### has an open G-orbit. Let H(Γ) be the stabilizer of a point in this orbit, which can be identified with G/H(Γ). The Luna-Vust theory of spherical embeddings [LV83],[Kno91] implies that the equivariant embedding G/H(Γ) ,→ X

_{Γ}

### is determined by a certain strictly convex cone in the vector space N

_{Q}

### = Hom

_{Z}

### (ZΓ, Q). Under the assumption that Γ is G-saturated, this cone is spanned by certain simple co-roots of G.

### Proposition 2.4 determines the corresponding simple roots:

### Proposition 2.4 ([PVS16]). Let Γ be G-saturated submonoid of Λ

^{+}

### . Among all the subsets F of S such that the relative interior of the cone spanned by {α

^{∨}

### |

_{ZΓ}

### : α ∈ F } in Hom

_{Z}

### (ZΓ, Q) intersects V(Γ) there is a unique one, denoted S

Γ### , that contains all the others.

### Proposition 2.4 could be implemented using the Fourier-Motzkin elim- ination algorithm. We have decided to use some existing package in toric geometry instead. We need some more notation to explain our implemen- tation of Proposition 2.4. Let M = ZΓ and N = Hom

Z### (M, Z) be its dual with the canonical pairing h·, ·i : M × N → Z. Denote by N

Q### = Q ⊗

Z### N and M

_{Q}

### = Q ⊗

Z### M their scalar extensions to Q and by h·, ·i : M

Q### × N

_{Q}

### → Q.

### Define the cone

### C

_{Γ}

### = Q

^{≥0}

### {α

^{∨}

_{i}

### |

_{ZΓ}

### : α

_{i}

### ∈ S \ S

^{p}

### (Γ)} ⊆ N

_{Q}

### .

### The so-called the valuation cone of X

_{Γ}

### is

### V(Γ) = {v ∈ N

_{Q}

### : hv, σi ≤ 0, ∀ σ ∈ Σ

^{N}

### (Γ)}.

### Proposition 2.5. Denote by IC the cone C

_{Γ}

### ∩ V(Γ) in N

_{Q}

### . If F

_{min}

### is the minimal face of the cone C

_{Γ}

### containing IC and F

_{max}

### is the maximal face of the cone C

_{Γ}

### whose relative interior meets V(Γ), then F

_{min}

### is equal to F

_{max}

### . In particular, S

_{Γ}

### := S

^{p}

### (Γ) ∪ E where E = {α ∈ S : α

^{∨}

### |

_{ZΓ}

### ∈ F

_{min}

### }.

### Proof. If F is a face of a cone, we will use

◦

### F for its relative interior and ∂F for its boundary. In particular,

◦

### F = F \ ∂F . Proposition 2.5 follows from the following two claims.

### Claim 1. F

_{max}

### contains IC, which implies F

_{min}

### ⊂ F

_{max}

### .

### Proof of Claim.1. Let v ∈ IC. Then v ∈ C

_{Γ}

### and v ∈ V(Γ). Since v ∈ C

_{Γ}

### , there exists a face F

_{1}

### of C

_{Γ}

### such that v ∈ F

_{1}

### .

### (a) If v ∈

◦

### F

_{1}

### , then v ∈ F

_{max}

### because F

_{1}

### ⊂ F

_{max}

### , by the definition of F

_{max}

### , and we are done.

### (b) If v / ∈ F

^{◦}

_{1}

### , then v ∈ ∂F

_{1}

### . Since ∂F

_{1}

### is a union of faces of C

_{Γ}

### whose dimentions are strictly smaller than dim F

_{1}

### (See [Ewald]4.4 Lemma(p.15)) there exists a face F

_{2}

### of C

_{Γ}

### with dim F

_{2}

### < dim F

_{1}

### such that v ∈ F

2### .

### i. If v ∈

◦

### F

_{2}

### , then v ∈ F

_{max}

### because F

_{2}

### ⊂ F

_{max}

### and we are done.

### ii. If v / ∈ F

^{◦}

_{2}

### , then there exists a face F

_{3}

### of C

_{Γ}

### with dim F

_{3}

### <

### dim F

2### such v ∈ F

3### .

### Since dim C

_{Γ}

### is finite, this process ends with a face F

_{k}

### of C

_{Γ}

### for some k such that v ∈

◦

### F

_{k}

### , hence, F

_{k}

### ⊂ F

_{max}

### . This proves Claim.1.

### Claim 2. There is no face F of C

_{Γ}

### with F ( F

max### such that F contains IC.

### Proof of Claim.2. Suppose that F is a face of C

Γ### such that F ( F

^{max}

### and F contains IC. Then

### IC = C

Γ### ∩ V(Γ) ⊆ F ⊆ ∂F

max### = F

max### \

◦

### F

max### .

### By the definition of F

_{max}

### , we have

◦

### F

_{max}

### ∩ V(Γ) 6= ∅. Therefore F

_{max}

^{◦}

### ∩ V(Γ)∩C

_{Γ}

### 6= ∅ (since F

_{max}

^{◦}

### ⊂ C

_{Γ}

### ). Thus,

◦

### F

_{max}

### ∩IC 6= ∅ which contradicts the fact that IC ⊆ F

_{max}

### \ F

_{max}

^{◦}

### . This proves Claim.2.

### Remark 2.6. Note that S

^{p}

### (Γ) ⊂ S

Γ### since α

^{∨}

### |

_{ZΓ}

### = 0 for all α ∈ S

^{p}

### (Γ).

### The subroutines in Implementation 2.5 implements Proposition 2.5.

### Implementation 2.5. Subroutines in this part of subalgorithm II imple- ment Proposition 2.5 to obtain S

_{Γ}

### , using the combinatorics of cones in convex geometry. We carry out the computation of S

_{Γ}

### using the Sage Class Cone(), and its Methods ToricLattice() and dual().

### Subroutine 2.5.1 determines the cone C

_{Γ}

### =:C1 spanned by the coroots α

^{∨}

### |

_{ZΓ}

### restricted to ZΓ such that corresponding simple root α is not in S

^{p}

### (Γ).

### First, the lattice N ∼ = Z

^{r}

### where r is the rank of the free module ZΓ is gen- erated by Method ToricLattice(). Then, the non-zero columns of the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of Γ are used to generate the convex rational polyhedral cone C

_{Γ}

### in the vector space N

_{Q}

### .

### Subroutine 2.5.1.

### INPUT: the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of Γ, ZΓ

### OUTPUT: C1= C

_{Γ}

### = Q

≥0### {α

^{∨}

_{i}

### |

_{ZΓ}

### : α

_{i}

### ∈ S \ S

^{p}

### (Γ)}

### def cones(ZG,m1):

### N=ToricLattice(len(ZG))

### Sp_=[m1.column(k).is_zero() for k in range(len(m1.columns()))]

### Columns=[]

### for i in range(len(Sp_)):

### if Sp_[i]==False:

### Columns.append(m1.columns()[i]) C1=Cone(Columns,N)

### return C1

### Recall that the variety X

_{Γ}

### has valuation cone

### V(Γ) = {v ∈ N

_{Q}

### : hv, σi ≤ 0, ∀ σ ∈ Σ

^{N}

### (Γ)}.

### Thus, the valuation cone V(Γ) can be realized as the opposite of the dual cone to the cone generated by the spherical roots of X

Γ### in M

_{Q}

### :

### V(Γ) = −(Q

≥0### Σ

^{N}

### (Γ))

^{∨}

### ⊂ N

_{Q}

### (Γ).

### Given ZΓ and Σ

^{N}

### (Γ) as inputs Subroutine 2.5.2 determines the valuation cone V(Γ) of X

_{Γ}

### . To do this, we first find the coordinates of each σ ∈ Σ

^{N}

### (Γ) in the basis {λ

1### , λ

2### , . . . , λ

r### } of ZΓ.

### Recall that since σ ∈ ZΓ, there exists integers b

k### such that σ =

r

### X

k=1

### b

_{k}

### λ

_{k}

### .

### Because Γ is free this expression is unique. The first part of Subroutine 2.5.2 uses some linear algebra to compute the b

_{k}

### . For i ∈ {1, . . . , r} and j ∈ {1, . . . , n}, let a

ij### := λ

i### , α

^{∨}

_{j}

### . Then

### λ

_{i}

### =

n

### X

j=1

### a

_{ij}

### ω

_{j}

### =

n

### X

j=1

### λ

_{i}

### , α

^{∨}

_{j}

### ω

_{j}

### for every i ∈ {1, . . . , r}. We denote the matrix (a

ij### ) by m1 in Subrou- tine 2.5.2. Let σ

_{i}

### ∈ Σ

^{N}

### (Γ) and for every j ∈ {1, . . . , n} let c

_{ij}

### ∈ Z such that

### σ

_{i}

### =

n

### X

j=1

### c

_{ij}

### ω

_{j}

### In Subroutine 2.5.2, (m2)

_{ij}

### = c

_{ij}

### = σ

_{i}

### , α

^{∨}

_{j}

### . Solving the linear system

n

### X

j=1

### c

_{ij}

### ω

_{j}

### =

r

### X

k=1

### b

_{k}

n

### X

j=1

### a

_{kj}

### ω

_{j}

### .

### in the variables b

_{k}

### for every i with 1 ≤ i ≤ |Σ

^{N}

### (Γ)|, gives us the generators of the convex polyhedral cone C

_{2}

### = (Q

≥0### Σ

^{N}

### (Γ)) in the vector space ZΓ⊗Q = M

_{Q}

### . That is, the i-th column of sigma lambda in Subroutine 2.5.2 consists of the coefficients of σ

_{i}

### in terms of the basis {λ

_{1}

### , λ

_{2}

### , . . . , λ

_{r}

### } of ZΓ and C

2### is the cone in M

_{Q}

### generated by the columns of sigma lambda.

### Using Method dual() in Class Cone() in Sage, Subroutine 2.5.2 then de-

### termines the convex polyhedral cone C

_{2}

^{∨}

### = (Q

≥0### Σ

^{N}

### (Γ))

^{∨}

### in the vector space

### N

_{Q}

### . Then V(Γ) = −C

_{2}

^{∨}

### . Notice that if Σ

^{N}

### (Γ) = ∅, then V(Γ) = N

_{Q}

### (Γ).

### Subroutine 2.5.2.

### INPUT: ZΓ, Σ

^{N}

### (Γ), the set of simple coroots S

^{∨}

### of G OUTPUT: V(Γ) = {v ∈ N

_{Q}

### : hv, σi ≤ 0, ∀ σ ∈ Σ

^{N}

### (Γ)}

### def valuationCone(ZG,Sigma_Gamma):

### N=ToricLattice(len(ZG)) M=N.dual()

### if Sigma_Gamma!=[]:

### m1=matrix([[ZG[i].scalar(alphacheck[j])

### for j in L.index_set()] for i in range(len(ZG))]) m2=matrix([[Sigma_Gamma[i].scalar(alphacheck[j])

### for j in L.index_set()] for i in range(len(Sigma_Gamma))]) m1t=m1.transpose()

### m2t=m2.transpose()

### sigma_lambda=m1t.solve_right(m2t) C2=Cone(sigma_lambda.columns(),M) D=C2.dual()

### minus_D=-1*D.rays()

### V=Cone(minus_D.transpose()) else:

### V=Cone([M(0)]).dual() #if Sigma_Gamma is empty, V=N return V

### Subroutine 2.5.3 of Implementation 2.5 determines the intersection cone IC which is the intersection of C

Γ### with the valuation cone V(Γ) in the vector space N

_{Q}

### (Γ) associated with coweight lattice Λ

^{∗}

### using Method intersection() in Class Cone() in Sage.

### Subroutine 2.5.3.

### INPUT: C

_{Γ}

### ,V(Γ)

### OUTPUT: IC := C

Γ### ∩ V(Γ) def intersectionCone(C1,V):

### IC=C1.intersection(V)

### return IC

### Given C

_{Γ}

### and IC Subroutine 2.5.4 of implementation 2.5 computes the minimal face F

min### of the cone C

Γ### that contains all the rays of the intersection cone IC := C

_{Γ}

### ∩ V(Γ) using Method intersection() in Class Cone() in Sage.

### Subroutine 2.5.4.

### INPUT: C

_{Γ}

### , IC

### OUTPUT: the face F

_{min}

### of the cone C

_{Γ}

### that contains all the rays of the intersection cone IC := C

Γ### ∩ V(Γ)

### def facesCone(C1,IC):

### Face=[]

### for j in range(IC.dim(),C1.dim()+1):

### for k in range(len(C1.faces(j))):

### Fmin=[C1.faces(j)[k].contains(IC.rays()[l])

### for l in range(len(IC.rays()))]

### if Fmin==[True for i in range(len(Fmin))]:

### Face.append(C1.faces(j)[k]) break

### if Face!=[]:break return Face

### Subroutine 2.5.5 determines the set S

_{Γ}

### = {α ∈ S : α

^{∨}

### |

_{ZΓ}

### ∈ F

_{min}

### } ∪ S

^{p}

### (Γ) using the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of ZΓ and the minimal face F

min### of the cone C

_{Γ}

### containing all the rays of IC. Notice that if the set {α ∈ S : α

^{∨}

### |

_{ZΓ}

### ∈ C

_{Γ}

### } turns out to be empty Subroutine 2.5.5 will assign the set S

^{P}

### (Γ) as S

_{Γ}

### . Subroutine 2.5.5.

### INPUT: the matrix m1= hλ

_{i}

### , α

^{∨}

_{j}

### i of Γ, the minimal face F

_{min}

### of the cone C

_{Γ}

### containing IC, the set of simple roots S of G

### OUTPUT: S

_{Γ}

### = {α ∈ S : α

^{∨}

### |

_{ZΓ}

### ∈ F

_{min}

### } ∪ S

^{p}

### (Γ) def S_Gamma(m1,Face):

### S_GAMMA=[]

### for i in range(len(Face)):

### for j in range(len(m1.columns())):

### if Face[i].contains(m1.column(j)):

### S_GAMMA.append(alpha[j+1])

### return S_GAMMA

### 2.1.4 Subalgorithm III

### This part of the algorithm implements condition (c) of Theorem 2.10 below which is [PVS16, Theorem 1.12]. The main part, Implementation 2.6, of Subalgorithm III implements the statement (c) of Theorem 2.10. That is, the subroutines of Implementation 2.6 determine whether the triples computed in Subalgorithm II are admissible or not using the primitive admissible triples in List 2.8. The following Definition 2.7 and List 2.8 tell us how to determine if given triples are admissible triples. We also need them to state Theorem 2.10.

### Definition 2.7. Let S be the set of simple roots of a root system. Let S

^{p}

### be a subset of S. Let Σ

^{N}

### be a subset of NS. We say that the triple

### (S, S

^{p}

### , Σ

^{N}

### )

### is admissible if there exists a finite index set I and for every i ∈ I a triple (S

_{i}

### , S

_{i}

^{p}

### , Σ

^{N}

_{i}

### )

### from List 2.8 below and an automorphism f

i### of the Dynkin diagram of S

i### such that the Dynkin diagram of S is the union over i ∈ I of the Dynkin diagrams of the S

_{i}

### , that S

^{p}

### = ∪

_{i}

### f

_{i}

### (S

_{i}

^{p}

### ) and that Σ

^{N}

### = ∪

_{i}

### f

_{i}

### (Σ

^{N}

_{i}

### ).

### List 2.8. Primitive Admissible Triples of Type A

### (1) (S, S, ∅) where S is the set of simple roots of an irreducible root system of type A.

### (2) (A

_{n}

### , {α

_{2}

### , α

_{3}

### , . . . , α

_{n}

### }, ∅) for n ≥ 1.

### (3) (A

_{n}

### , {α

_{1}

### , α

_{3}

### , α

_{5}

### , . . . , α

_{n−1}

### }, {α

_{1}

### + 2α

_{2}

### + α

_{3}

### , α

_{3}

### + 2α

_{4}

### + α

_{5}

### , . . . , α

_{n−3}

### + 2α

_{n−2}

### + α

_{n−1}

### }) for n ≥ 4, n even.

### (4) (A

_{n}

### × A

_{k}

### , {α

_{k+2}

### , α

_{k+3}

### , . . . , α

_{n}

### }, {α

_{1}

### + α

^{0}

_{1}

### , α

_{2}

### + α

^{0}

_{2}

### . . . , α

_{k}

### + α

^{0}

_{k}