#codimensions-unstable-loci
Calculating extremal values for codimensions of unstable loci of SL_2 subgroups of SL_n
- Valdemar Tsanov (University of Bochum; valdemar.tsanov at rub.de)
- Yana Staneva (University of Cologne; ystaneva at math.uni-koeln.de, yanastaneva8 at gmail.com)
Date: Oct 2021
Let X=G/B be the flag variety of a semisimple complex Lie group G, B being a fixed Borel subgroup. We are interested in the description of the GIT-classes of ample line bundles on X w.r.t. a given reductive subgroup. More specifically, we are interested in extremal values of the codimensions of unstable loci. These values are obtained by a Weyl group calculation with fundamental weights, which is implemented here.
The basic step is the following: for a given pair of vectors h,A (dominant weights), we compute the minimal length L of a Weyl group element w such that the scalar product (A,wh)<0, and we present an expression for w as a product of simple reflections.
The number L is interpreted suitably as the codimension of the unstable locus of the one parameter subgroup -h acting on the line bundle defined by A.
For our purposes, we run the procedure for fixed h, and let A run over
- the fundamental weights
- the sum of the fundamental weights for every w. Our choices for h are also among the above, with a few additional cases, as needed.
Python 3.9
You need a running version of Python 3. To setup Visual Studio Code, see here: https://code.visualstudio.com/docs/python/python-tutorial
Packages needed: numpy, itertools, pandas, tabulate, tqdm
- Clone the repository
- Open any .py script corresponding to the group type you are interested in using, e.g. E_6.py
- Scroll down to the function called generate_reflections(n) and uncomment the line which contains the number of generators of the desired length L you wish to test, i.e. if you want to test reflections of length L=5, then the generate_reflections(n) function should look like:
def generate_reflections(n):
for i in range(1, n+1):
generators.append("r"+str(i))
# all_possible_roots.extend(generators)
# for subset in itertools.product(generators, generators):
# for subset in itertools.product(generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators):
for subset in itertools.product(generators, generators, generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators, generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators, generators, generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators, generators, generators, generators, generators, generators):
# for subset in itertools.product(generators, generators, generators, generators, generators, generators, generators, generators, generators, generators):
all_possible_roots.append('*'.join(subset))
return(all_possible_roots)
- You are now ready to run/debug the script.
The current scripts deliver results for lengths up to 10 due to hardware limitations. We strongly believe that the code can be optimized and improved for future use. Any comments and/or feedback are more than welcome.
The results and code are made available via the generous support provided by the Collaborative Research Centre/Transregio (CRC/TRR 191) on “Symplectic Structures in Geometry, Algebra and Dynamics” (http://www.mi.uni-koeln.de/CRC-TRR191/)