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
1: E(q - 1)^(2*i*k)
2: q*E(q - 1)^(2*i*k)
3: (q + 1)*E(q - 1)^(i*l + i*k)
4: (q - 1)*E(q - 1)^(i*k)
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
1: E(q - 1)^(2*k)
2: q*E(q - 1)^(2*k)
3: (q + 1)*E(q - 1)^(l + k)
4: (q - 1)*E(q - 1)^kspecialize(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
1: E(q - 1)^(2*i*k)
2: E(q - 1)^(2*i*k)
3: E(q - 1)^(i*k + j*k)
4: E(q - 1)^(i*k)
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
1: E(q - 1)^(2*k)
2: E(q - 1)^(2*k)
3: E(q - 1)^(j*k + k)
4: E(q - 1)^k