The L2-quotient algorithm
The L2-quotient algorithm computes for a finitely presented group
all quotients isomorphic to PSL(2,q) or PGL(2,q),
simultaneously for all prime powers q.
A Magma implementation is available here: l2.tgz.
This includes an algorithm to compute minimal associated primes.
The algorithm requires a Magma version >= 2.19.
To use the algorithm, after starting magma, type
> Attach("minass.magma");
> AttachSpec("l2.spec");
Note that the algorithm does not return images
onto the groups PSL(2,2) = Sym(3), PSL(2,3) = Alt(4), and PSL(2,4) = PSL(2,5) = Alt(5).
Contents
Basic usage
L2Quotients
The main method is L2Quotients,
which takes a finitely presented group and computes all L2-quotients.
> G := Group< a,b | a^2, b^3, (a*b)^7, (a,b)^11 >;
> L2Quotients(G);
[
L_2(43)
]
> H := Group< a,b,c | a^3, b^7, c^19, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >;
> L2Quotients(H);
[
L_2(113)
]
This means that G has PSL(2,43) as quotient, but no other PSL(2,q) or PGL(2,q) is a quotient of G.
Similarly, the only L2-quotient of H is PSL(2,113).
> G := Group< a,b | a^2, b^3, (a*b)^16, (a,b)^11 >;
> L2Quotients(G);
[
PGL(2,23),
PGL(2,23),
PGL(2,463)
]
In this example, PGL(2,23) occurs twice. This means that there are two epimorphisms of G onto PGL(2,23)
which do
not differ by an automorphism of PGL(2,23). In other words, the kernels of the epimorphisms
are distinct.
Some groups have infinitely many L2-quotients.
This is indicated by one of the L2-quotients L_2(infty^k), L_2(p^(infty^d)), or L_2(infty^(infty^d)).
See below for an interpretation of this output, and how to use Magma to get more information about
the quotients.
> G := Group< a,b,c | a^3, b^7, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >;
> L2Quotients(G);
[
L_2(infty^6)
]
> H := Group< a,b,c | a^3, (a,c) = (c,a^-1), a*b*a = b*a*b, a*b*a*c^-1 = c*a*b*a >;
> L2Quotients(H);
[
L_2(3^infty)
]
> K := Group< a,b | a^3*b^3 >;
> L2Quotients(K);
[
L_2(infty^infty)
]
Even without further interpretation of the output, this tells us that these groups are all infinite.
GetMatrices
For a finite L2-quotient of G, that is, a quotient L_2(p^k) or PGL(2,p^k), we can compute the matrix images
of the generators, using
GetMatrices.
This method takes an L2-quotient and returns a matrix group H and a list A of 2x2 matrices in H,
where A[i] corresponds to the i-th generator of G.
> H := Group< a,b,c | a^3, b^7, c^19, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >;
> quot := L2Quotients(H); quot;
[
L_2(113)
]
> H, A := GetMatrices(quot[1]);
> H;
MatrixGroup(2, GF(113))
Generators:
[ 0 1]
[112 112]
[ 0 85]
[109 24]
[102 104]
[ 63 72]
> A;
[
[ 0 1]
[112 112],
[ 0 85]
[109 24],
[102 104]
[ 63 72]
]
Note that G -> H, G.i -> A[i] does in general not define a homomorphism,
but the induced map G -> H/Z(H) does.
Intermediate usage
Coxeter groups
A
Coxeter group is a finitely presented group on m generators, such that the only other relations are (g_i*g_j)^M[i,j],
where M is a symmetric matrix with non-negative integer entries and 1's along the diagonal.
The matrix M is also called a
Coxeter matrix.
Often when dealing with Coxeter groups we are only interested in
smooth quotients, that is, those which
preserve the orders.
The method
L2Quotients accepts a Coxeter matrix as input, and computes the smooth quotients
of the associated Coxeter group.
However, it omits the quotients in characteristic p if M[1,2] = p.
Furthermore, if a quotient has characteristic p and p divides some entry of M, then the quotient is not guaranteed to be smooth.
> M := Matrix([[1,2,3,3],[2,1,4,5],[3,4,1,6],[3,5,6,1]]);
> L2Quotients(M);
[
L_2(4391),
L_2(71)
]
Specifying orders
Even if the finitely presented group in question is not a Coxeter group, we often are only interested
in quotients where certain orders are satisfied (for instance, we might know that the generator must have
a certain order). Usually this yields a great speed-up in the computation, or even allows the computation
to finish in the first place.
The orders can be specified using the optional parameter
exactOrders.
This is a list of pairs, where the first entry is a word in the group, and the second entry is the order.
> G< a,b,c > := Group< a,b,c | a^16, b^4, c^2, (a*b)^8, (a,b)^4 >;
> time quot := L2Quotients(G :
time> exactOrders := [< a, 16 >, < b, 4 >, < c, 2 >, < a*b ,8 >, < (a,b), 4 >]);
Time: 1.530
Advanced usage
There are several parameters to influence the run of
L2Quotients
saturate
The algorithm discards prime ideals containing rho = x1^2 + x2^2 + x12^2 - x1*x2*x12 - 4.
If the optional boolean parameter
saturate is
true (default:
false),
then prior to the primary decomposition the ideal is saturated at rho,
which can be faster in some cases.
addMoreRelations
If the optional boolean parameter
addMoreRelations is
true (default:
false),
then the algorithm adds further relations to the ideal, which speeds up the computation in some cases.
exclude
The optional boolean parameter
exclude is a list of primes (default:
[]).
The algorithm does not compute L2-quotients in characteristic p if p is in
exclude.
Parameters influencing minimal associated primes
The optional parameters
useRandomTechniques,
factorizationBound,
trialDivisionBound, and
groebnerBasisBound
are passed to the method
MinimalAssociatedPrimes (see documentation there).
Handling infinite L2-quotients
There are three types of infinite quotients,
L_2(infty^k), L_2(p^(infty^d)), and L_2(infty^(infty^d))
Quotients of type L_2(infty^k)
If G has a quotient L_2(infty^k), then for almost all (all but finitely many) primes p,
G has finitely many quotients of type PSL(2,p^r) or PGL(2,p^(r/2)) with r <= k.
So L_2(infty^k) is a mnemonic, where infty in the base stands for infinitely many primes,
and k stands for the highest possible exponent.
There are two basic methods to further investigate such quotients.
The first is
SpecifyCharacteristic,
which takes an L2-quotient and an integer n, and computes the L2-quotients
in characteristic p|n.
> G := Group< a,b | a^2, b^3, (a*b)^7 >;
> quot := L2Quotients(G); quot;
[
L_2(infty^3)
]
> Q := quot[1];
> SpecifyCharacteristic(Q, 7);
[
L_2(7)
]
> SpecifyCharacteristic(Q, 11);
[
L_2(11^3)
]
> SpecifyCharacteristic(Q, 13);
[
L_2(13),
L_2(13),
L_2(13)
]
The second is
AddGroupRelations,
which takes an L2-quotient and a list of group elements interpreted as relations,
and computes the L2-quotients which satisfy these relations.
> G := Group< a,b | a^2, b^3, (a*b)^7 >;
> quot := L2Quotients(G); quot;
[
L_2(infty^3)
]
> Q := quot[1];
> AddGroupRelations(Q, [(a*b*a*b^-1*a*b)^12]);
[
L_2(13),
L_2(7)
]
Quotients of type L_2(p^(infty^d))
If G has a quotient L_2(p^(infty^d)), then there are infinitely many positive integers k
such that G has a quotient of type PSL(2,p^k) or PGL(2,p^k).
So L_2(p^(infty^d)) is a mnemonic, where infty in the exponent stands for infinitely many possible exponents.
The parameter d describes the degree of infinity, and is ommited if d = 1.
Again, we can use
AddGroupRelations
to sudy this quotient further.
> H< a,b,c > := Group< a,b,c | a^3, (a,c) = (c,a^-1), a*b*a = b*a*b, a*b*a*c^-1 = c*a*b*a >;
> quot := L2Quotients(H); quot;
[
L_2(3^infty)
]
> Q := quot[1];
> AddGroupRelations(Q, [((b^2*c^3)^2*a)^5]);
[
L_2(3^2),
L_2(3^4)
]
Another possibility is to add further ring relations to the ideal describing the L2-quotient,
using the method
AddRingRelations.
It takes an L2-quotient and a list of polynomials, and computes the L2-quotients
whose traces satisfy these polynomial relations.
> H< a,b,c > := Group< a,b,c | a^3, (a,c) = (c,a^-1), a*b*a = b*a*b, a*b*a*c^-1 = c*a*b*a >;
> quot := L2Quotients(H); quot;
[
L_2(3^infty)
]
> Q := quot[1];
> Q`Ideal;
Ideal of Graded Polynomial ring of rank 7 over Integer Ring
Order: Grevlex with weights [3, 2, 2, 2, 1, 1, 1]
Variables: x123, x23, x13, x12, x3, x2, x1
Variable weights: [3, 2, 2, 2, 1, 1, 1]
Inhomogeneous, Dimension >0
Groebner basis:
[
x123^2 + 2*x123*x3 + 1,
x23 + 2*x3,
x13 + 2*x3,
x12 + 2,
x2 + 1,
x1 + 1,
3
]
> R< x123, x23, x13, x12, x3, x2, x1 > := Generic(Q`Ideal);
> AddRingRelations(Q, [x3^(3^4) - x3]);
[
L_2(3^2),
L_2(3^4),
L_2(3^4),
L_2(3^4),
L_2(3^4),
L_2(3^4),
L_2(3^4),
PGL(2,3^2),
PGL(2,3^2),
L_2(3^4),
L_2(3^8),
L_2(3^8),
L_2(3^8),
L_2(3^8),
L_2(3^8),
L_2(3^4)
]
Quotients of type L_2(infty^(infty^d))
If G has a quotient L_2(infty^(infty^d)), then for almost all primes p and infinitely many positive integers k,
G has a quotient of type PSL(2,p^k) or PGL(2,p^k).
So L_2(infty^(infty^d)) is a mnemonic, where infty in the base stands for infinitely many primes, and infty in the exponent stands for infinitely many possible exponents.
The parameter d describes the degree of infinity, and is ommited if d = 1.
These quotients can be further investigated using the methods
AddGroupRelations,
AddRingRelations, and
SpecifyCharacteristic.
Verbose printing
Use
SetVerbose("L2Quotients", d) to set the verbose
printing for L2Quotients, where
d is a value between
0 and 3.
References
[1] |
S. Jambor
An L2-quotient algorithm for finitely presented groups on aribtrarily many generators
Preprint (2014).
|
[2] |
W. Plesken and A. Fabianska
An L2-quotient algorithm for finitely presented groups
J. Algebra 322 (2009), no. 3, 914--935.
|