Logo University of Nantes

Christoph Sorger

Professor of mathematics at Nantes University

Logo French National Centre for Scientific Research

Varia

ADE singularities

Here are some assets/images of ADE singularities I made using surf and surfex. for a colloquium talk.

A2 Deformation

The deformations allow to see the Dynkin graph of the singularity.

If you have difficulties to install surf on a Mac or on Ubuntu, you might find some help here.

Linear determinantal representations of cubic surfaces

In Twisted cubics and Cubic Fourfolds we compute the number of non equivalent linear determinantal representations of a cubic surfaces of given singularity type. These are, as we show, in bijection with the \(W(R_0)\)-orbits on \(R\setminus R_0\) where \(R\) is the root system of \(E_6\) and where \(R_0\) corresponds to the singularity type (classified by the Dynkin subdiagrams of \(\widetilde{E}_6\)).

With the notations of Dolgachev’s beautiful book Classical Algebraic Geometry: A Modern View, Ch. 9:

\(R_0\) Type # \(R_0\) Type # \(R_0\) Type #
\(\emptyset\) I 72 \(4A_1\) XVI 13 \(A_1+2A_2\) XVII 6
\(A_1\) II 50 \(2A_1+A_2\) XIII 12 \(A_1+A_4\) XIV 4
\(2A_1\) IV 34 \(A_1+A_3\) X 10 \(A_5\) XI 4
\(A_2\) III 30 \(2A_2\) IX 12 \(D_5\) XV 2
\(3A_1\) VIII 22 \(A_4\) VII 8 \(A_1+A_5\) XIX 1
\(A_1+A_2\) VI 20 \(D_4\) XII 6 \(3A_2\) XXI 2
\(A_3\) V 16 \(2A_1+A_3\) XVIII 5 \(E_6\) X 0

These numbers can be computed as follows, the Gap interface of Sage.

def number_orbits(RS, S):
    """
    Given a root system RS and a subgroup S of the Weyl group,
    returns the number of orbits for the action of S on the roots.
    """
    P = RS.PositiveRoots()
    N = RS.NegativeRoots()
    R = gap.Concatenation('%s' % P.name(), '%s' % N.name())
    ol = gap.OrbitLengthsDomain('%s' % S.name(), '%s' % R.name())
    return len(ol.sage())

# E6 and its Weyl group
E6 = gap.SimpleLieAlgebra('"E"', '6', 'Rationals')
RS = E6.RootSystem()
W = RS.WeylGroup()
W_gens = W.GeneratorsOfGroup()

# The simple reflections that generate W, s[0]=[], s[1], ..., s[6]
s = [1] + W_gens.sage()
# Determine s[0] in terms of s[i] for i=1, ..., 6.
# We use sage's library combinat for that :
G = WeylGroup(['E', 6])
sr = G.simple_reflections()
reduced_word = sr[0].reduced_word()
s[0] = s[reduced_word[0]]
for i in range(1, len(reduced_word)):
    s[0] = gap.eval('%s * %s' % (s[0], s[reduced_word[i]]))

# Do the calculation :
S = W.Subgroup('[%s^2]' % s[1])
print "I, Ø =", number_orbits(RS, S)
S = W.Subgroup('[%s]' % s[1])
print "II, A1 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s]' % (s[1], s[3]))
print "III, A2 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s]' % (s[1], s[4]))
print "IV, 2A1 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s]' % (s[1], s[3], s[4]))
print "V, A3 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s]' % (s[1], s[4], s[5]))
print "VI, A1+A2 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s, %s]' % (s[1], s[3], s[4], s[5]))
print "VII, A4 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s]' % (s[1], s[4], s[6]))
print "VIII, 3A1 =", number_orbits(RS, S) - 3
S = W.Subgroup('[%s, %s, %s, %s]' % (s[1], s[3], s[5], s[6]))
print "IX, 2A2 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s, %s]' % (s[1], s[4], s[5], s[6]))
print "X, A1+A3 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s, %s, %s]' % (s[1], s[3], s[4], s[5], s[6]))
print "XI, A5 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s, %s]' % (s[3], s[4], s[5], s[2]))
print "XII, D4 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s, %s]' % (s[1], s[2], s[5], s[6]))
print "XIII, 2A1+A2 =", number_orbits(RS, S) - 3
S = W.Subgroup('[%s, %s, %s, %s, %s]' % (s[1], s[2], s[4], s[5], s[6]))
print "XIV, A1+A4 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s, %s, %s]' % (s[3], s[2], s[4], s[5], s[6]))
print "XV, D5 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s, %s]' % (s[1], s[4], s[0], s[6]))
print "XVI, 4A1 =", number_orbits(RS, S) - 4
S = W.Subgroup('[%s, %s, %s, %s, %s]' % (s[1], s[2], s[0], s[5], s[6]))
print "XVII, A1+2A2 =", number_orbits(RS, S) - 3
S = W.Subgroup('[%s, %s, %s, %s, %s]' % (s[1], s[0], s[4], s[5], s[6]))
print "XVIII, 2A1+A3 =", number_orbits(RS, S) - 3
S = W.Subgroup('[%s, %s, %s, %s, %s, %s]' % (s[0], s[1], s[3], s[4], s[5], s[6]))
print "XIX, A1+A5 =", number_orbits(RS, S) - 2
S = W.Subgroup('[%s, %s, %s, %s, %s, %s]' % (s[1], s[2], s[3], s[4], s[5], s[6]))
print "XX, E6 =", number_orbits(RS, S) - 1
S = W.Subgroup('[%s, %s, %s, %s, %s, %s]' % (s[1], s[3], s[5], s[6], s[2], s[0]))
print "XXI, 3A2 =", number_orbits(RS, S) - 3
Logo Laboratory of Mathematics Jean Leray
LMJL
UMR n° 6629
Logo Center of Mathematics Henri Lebesgue
Logo Institut Universitaire de France