Read("pi1.txt");

#######################################
## GAP input for the perturbations
## of simple singularities
#######################################

#######################################
## Perturbations of E_8
#######################################

# E_8 -> A_4 + A_3
r1 := RA([], 4);
r2 := RA(y*x^2, 5);
r3 := RA(y*x*y*x^2*y*x^2, 1);
Size(G/[r1, r2, r3, G.1^3]);
#> 360
g := G/[r1, r2, r3, rho^5];
h := DerivedSubgroup(g);
AbelianInvariants(h);
#> [ ]

# E_8 -> A_4 + A_2 + A_1
r1 := RA([], 5);
r2 := RA(y*x^2, 3);
r3 := RA(y*x*y*x^2, 2);
Size(G/[r1, r2, r3, G.1^2]);
#> 120
g := G/[r1, r2, r3, rho^5];
h := DerivedSubgroup(g);
AbelianInvariants(h);

# E_8 -> D_5 + A_2
r1 := RA([], 3);
r2 := D(y*x^2, 1);
Size(G/Union(r2, [r1, G.1^5]));
#> 600
g := G/Union(r2, [r1, rho^5]);
Size(g);
#> 1800
h := DerivedSubgroup(g);
StructureDescription(h);
#> "SL(2,5)"

# E_8 -> A_6 + A_1
r1 := RA([], 7);
r2 := RA(y*x^2, 2);
r3 := RA((y*x^2)^3, 1);
Size(G/[r1, r2, r3, rho^5]);
#> 15

# E_8 -> E_6 + A_1
r1 := RA([], 2);
r2 := E6(y);
Size(G/Union(r2, [r1, rho^5]));
#> 15

# E_8 -> E_7
r1 := RA([], 1);
r2 := E7([]);
Size(G/Union(r2, [r1, rho^5]));
#> 15


#######################################
## Perturbations of E_7
#######################################

# $\delta_i$ in terms of $\beta_i$
Braid(Path(x), G, [G.1, G.2, G.3]);

# E_7 -> A_4 + A_2
r1 := RA([], 3);
r2 := RA(x, 5);
r3 := RA(y*x^2*y*x^2, 1);
g := G/[r1, r2, r3, rho^3];
Size(g);
#> 1080
h := DerivedSubgroup(g);
StructureDescription(h);
#> "SL(2,5)"

# E_7 -> A_3 + A_2 + A_1
r1 := RA([], 4);
r2 := RA(x, 3);
r3 := RA(y*x^2, 2);

# E_7 -> A_2 + 3A_1
r1 := RA([], 2);
r2 := RA(x, 3);
r3 := RA(y*x^2, 2);

# E_7 -> A_5 + A_1
r1 := RA([], 6);
r2 := RA(x, 2);
r3 := RA(y*x*y*x^2, 1);

# E_7 -> D_5 + A_1
r1 := RA([], 2);
r2 := D(x, 1);


#######################################
## Perturbations of E_6
#######################################

# E_6 -> 2A_2 + A_1
r1 := RA([], 3);
r2 := RA(x, 3);
r3 := RA(y*x^2, 2);

# E_6 -> 2A_2
r1 := RA([], 3);
r2 := RA(x, 3);
r3 := RA(y*x^2, 1);

# E_6 -> A_5
r1 := RA([], 6);  ## irrelevant
r2 := RA(y*x^2, 1);
r3 := RA(x*y*x^2, 1);

# E_6 -> A_4 + A_1
r1 := RA([], 2);
r2 := RA(x, 5);
r3 := RA(y*x^2*y*x, 1);
