Modular subgroups

Construction of modular subgroups

modular_subgroup_via_right_action — Function
modular_subgroup_via_right_action(s::PermGroupElem, t::PermGroupElem; check::Bool=true)

Construct a ModularGroup object corresponding to the finite-index subgroup of ${\rm SL}_2(\mathbb{Z})$ described by the permutations $s$ and $t$.

For check = true, this constructor tests if the given permutations actually describe the (right) coset action of the matrices

\[S = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}, \qquad T= \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix},\]

by checking that they act transitively and satisfy the relations $s^4 = (s^3 t)^3 = s^2 t s^{-2} t^{-1} = 1$. The point $1$ corresponds to the coset of the identity matrix.

Examples

julia> s = cperm([1,2], [3,4], [5,6], [7,8], [9,10])
(1,2)(3,4)(5,6)(7,8)(9,10)

julia> t = cperm([1,4], [2,5,9,10,8], [3,7,6])
(1,4)(2,5,9,10,8)(3,7,6)

julia> G = modular_subgroup_via_right_action(s, t)
modular subgroup of index 10
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
modular_subgroup_via_left_action — Function
modular_subgroup_via_left_action(s::PermGroupElem, t::PermGroupElem; check::Bool=true)

Same as modular_subgroup_via_right_action, but now the permutations describe the action by left multiplication on the left cosets.

Under the bijection $gH \mapsto Hg^{-1}$ this is the right action of the inverse matrices, hence the subgroup is stored via the inverse permutations.

Examples

julia> s = cperm([1,2], [3,4], [5,6], [7,8], [9,10])
(1,2)(3,4)(5,6)(7,8)(9,10)

julia> t = cperm([1,4], [2,5,9,10,8], [3,7,6])
(1,4)(2,5,9,10,8)(3,7,6)

julia> G = modular_subgroup_via_left_action(s, t)
modular subgroup of index 10
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
s_right_perm — Function
s_right_perm(G::ModularGroup)

Return the permutation describing the action of the matrix $S = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$ on the right cosets of G.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
t_right_perm — Function
t_right_perm(G::ModularGroup)

Return the permutation describing the action of the matrix $T= \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}$ on the right cosets of G.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
r_right_perm — Function
r_right_perm(G::ModularGroup)

Return the permutation describing the action of the matrix $R= \begin{pmatrix} 1 & 0 \\ 1 & 1 \end{pmatrix}$ on the right cosets of G.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
j_right_perm — Function
j_right_perm(G::ModularGroup)

Return the permutation describing the action of the matrix $J= \begin{pmatrix} 0 & 1 \\ -1 & 1 \end{pmatrix}$ on the right cosets of G.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source

Generators and membership

word_gens — Function
word_gens(G::ModularGroup)

Return generators of G as words in the generators S and T of the finitely presented group returned by Oscar._SL2Z_fp().

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
s_t_decomposition — Function
s_t_decomposition(M::ZZMatrix)

Return the matrix M in ${\rm SL}_2(\mathbb{Z})$ as a word in the generators S and T of the finitely presented group returned by Oscar._SL2Z_fp().

Examples

julia> G = modular_subgroup_via_right_action(cperm([2, 3]), cperm([1, 2]))
modular subgroup of index 3

julia> A = gens(G)[2]
[1 -2; 0 1] in modular group of index 3

julia> s_t_decomposition(matrix(A))
T^-2
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
is_word_element_of — Function
is_word_element_of(w::FPGroupElem, G::ModularGroup)

Return whether the word w in the generators S and T of the finitely presented group returned by Oscar._SL2Z_fp() represents an element of G.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
coset_right_action_of — Function
coset_right_action_of(A::ZZMatrix, G::ModularGroup)

Return the permutation describing the action of the matrix A in ${\rm SL}_2(\mathbb{Z})$ on the right cosets of G by right multiplication.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
coset_left_action_of — Function
coset_left_action_of(A::ZZMatrix, G::ModularGroup)

Return the permutation describing the action of the matrix A in ${\rm SL}_2(\mathbb{Z})$ on the left cosets of G by left multiplication, see modular_subgroup_via_left_action.

Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source