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 10This function is part of the experimental code in Oscar. Please read here for more details.
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 10This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
Generators and membership
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^-2This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.