produce symmetric generating sets for SL(n, )

This commit is contained in:
kalmar 2017-06-08 21:36:18 +02:00
parent 1f2cadc5e4
commit 8725772d67

View File

@ -43,20 +43,22 @@ end
function SL_generatingset(n::Int)
indexing = [(i,j) for i in 1:n for j in 1:n if i≠j]
G = Nemo.MatrixSpace(Nemo.ZZ, n, n)
S = [E(i,j,G) for (i,j) in indexing];
S = vcat(S, [transpose(x) for x in S]);
S = [E(i,j,G) for (i,j) in indexing]
S = vcat(S, [transpose(x) for x in S])
S = vcat(S, [inv(x) for x in S])
return G, unique(S)
end
function SL_generatingset(n::Int, p::Int)
p == 0 && return SL_generatingset(n)
(p > 1 && n > 1) || throw("Both n and p should be positive integers!")
@info("Size(SL($n,$p)) = $(SLsize(n,p))")
info("Size(SL($n,$p)) = $(SLsize(n,p))")
F = Nemo.ResidueRing(Nemo.ZZ, p)
G = Nemo.MatrixSpace(F, n, n)
indexing = [(i,j) for i in 1:n for j in 1:n if i≠j]
S = [E(i, j, G) for (i,j) in indexing]
S = vcat(S, [transpose(x) for x in S])
S = vcat(S, [inv(x) for x in S])
return G, unique(S)
end