Specializing parameters
Sometimes one likes to specify some of the free variables in the tables to simplify the often very complicated values a bit.
GenericCharacterTables.set_congruence
— Functionset_congruence(x::CharTable, congruence::Tuple{ZZRingElem, ZZRingElem})
Return a new generic character table based on x
where the main parameter is additionally assumed to be congruent to congruence[1]
modulo congruence[2]
. So the entries of x
can potentially be simplified further.
set_congruence(x::CharTable; remainder::Union{Int, ZZRingElem}, modulus::Union{Int, ZZRingElem})
Return a new generic character table based on x
where the main parameter is additionally assumed to be congruent to remainder
modulo modulus
. So the entries of x
can potentially be simplified further. All existing congruences in x
will be preserved. This function is usefull for decomposing tensor products.
Examples
julia> g=generic_character_table("GL2")
Generic character table GL2
of order q^4 - q^3 - q^2 + q
with 4 irreducible character types
with 4 class types
with parameters (i, j, l, k)
julia> set_congruence(g; remainder=0, modulus=2)
Generic character table GL2*
of order q^4 - q^3 - q^2 + q
restricted to q congruent to 0 modulo 2
with 4 irreducible character types
with 4 class types
with parameters (i, j, l, k)
GenericCharacterTables.specialize
— Functionspecialize(class::GenericConjugacyClass, var::UPoly, expr::RingElement)
Return the generic conjugacy class where the parameter var
is replaced with expr
in class
.
Examples
julia> g=generic_character_table("GL2");
julia> conjugacy_class_type(g, 1)
Generic conjugacy class of GL2
with parameters
i ∈ {1,…, q - 1}
of order 1
with values
exp(2π𝑖((2*i*k)//(q - 1)))
q*exp(2π𝑖((2*i*k)//(q - 1)))
(q + 1)*exp(2π𝑖((i*l + i*k)//(q - 1)))
(q - 1)*exp(2π𝑖((i*k)//(q - 1)))
julia> q,(i,j,l,k) = parameters(g);
julia> specialize(conjugacy_class_type(g, 1), i, q)
Generic conjugacy class of GL2
with parameters
i ∈ {1,…, q - 1}, substitutions: i = q
of order 1
with values
exp(2π𝑖((2*k)//(q - 1)))
q*exp(2π𝑖((2*k)//(q - 1)))
(q + 1)*exp(2π𝑖((l + k)//(q - 1)))
(q - 1)*exp(2π𝑖(k//(q - 1)))
specialize(char::GenericCharacter, var::UPoly, expr::RingElement)
Return the generic character where the parameter var
is replaced with expr
in char
.
Examples
julia> g=generic_character_table("GL2");
julia> g[1]
Generic character of GL2
with parameters
k ∈ {1,…, q - 1}
of degree 1
with values
exp(2π𝑖((2*i*k)//(q - 1)))
exp(2π𝑖((2*i*k)//(q - 1)))
exp(2π𝑖((i*k + j*k)//(q - 1)))
exp(2π𝑖((i*k)//(q - 1)))
julia> q,(i,j,l,k) = parameters(g);
julia> specialize(g[1], i, q)
Generic character of GL2
with parameters
k ∈ {1,…, q - 1}, substitutions: i = q
of degree 1
with values
exp(2π𝑖((2*k)//(q - 1)))
exp(2π𝑖((2*k)//(q - 1)))
exp(2π𝑖((j*k + k)//(q - 1)))
exp(2π𝑖(k//(q - 1)))