Congruence subgroups \(\Gamma_0(N)\) of \(\mathrm{GL}_{2}(\mathbb{F}_{q}[T])\).¶
By definition, it is the subgroup of matrices whose bottom left coefficient is divislble by \(N\).
AUTHORS:
Cécile Armana, Xavier Caruso (2026-02): initial version
- class sage.modular.drinfeld_modform.congroup_gamma0.Gamma0Element(parent, elt)[source]¶
Bases:
MultiplicativeGroupElementAn element in a congruence subgroup.
- class sage.modular.drinfeld_modform.congroup_gamma0.Gamma0_drinfeld(base, level)[source]¶
Bases:
Group,UniqueRepresentationA congruence subgroup.
- Element[source]¶
alias of
Gamma0Element
- base_ring()[source]¶
Return the base ring of this congruence subgroup.
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T^4 + 2*T + 3).base_ring() Univariate Polynomial Ring in T over Finite Field of size 5
- genus()[source]¶
” Return the genus of this congruence subgroup, i.e. the genus of the attached Drinfeld modular curve.
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T - 1).genus() 0 sage: Gamma0(T^3 + 1).genus() 5 sage: Gamma0(T^5 - 3*T^4 + 1).genus() 155
If the level \(N\) is irreducible, the formula simplifies as follows:
sage: def genus_irr(N): ....: q = N.base_ring().cardinality() ....: d = N.degree() ....: if is_even(d): ....: g = (q^d - q^2) / (q^2 - 1) ....: else: ....: g = (q^d - q) / (q^2 - 1) ....: return g sage: N = T^6 + T^4 + 4*T^3 + T^2 + 2 sage: N.is_irreducible() True sage: Gamma0(N).genus() == genus_irr(N) True sage: N = T^7 + 3*T + 3 sage: N.is_irreducible() True sage: Gamma0(N).genus() == genus_irr(N) True
REFERENCE:
[Gek2001], Theorem 8.1
- index()[source]¶
Return the index of this congruence subgroup as a subgroup of \(\mathrm{GL}_{2}(A)\) (where \(A\) is the base ring).
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T^4 - 3*T^2 + 1).index() 900
If the level \(N\) is irreducible, the index is \(1 + q^{\mathrm{deg}(N)}\). We check it on an example below:
sage: N = T^4 + 4*T^2 + 4*T + 2 sage: N.is_irreducible() True sage: q = A.base_ring().cardinality() sage: Gamma0(N).index() == 1 + q^4 True
- level()[source]¶
Return the level of this congruence subgroup.
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T^4 + 2*T + 3).level() T^4 + 2*T + 3
- matrix_space()[source]¶
Return the matrix space of this congruence subgroup.
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T^4 + 2*T + 3).matrix_space() Full MatrixSpace of 2 by 2 dense matrices over Univariate Polynomial Ring in T over Finite Field of size 5
- ncusps()[source]¶
Return the number of cusps of this congruence subgroup, i.e. the number of cusps of the attached Drinfeld modular curve.
EXAMPLES:
sage: A.<T> = GF(5)[] sage: Gamma0(T - 1).ncusps() 2 sage: Gamma0(T^3 + 1).ncusps() 4 sage: Gamma0(T^7 - 3*T^4 + 1).ncusps() 8
If the level \(N\) is irreducible, the number of cusps is \(2\). We check it below:
sage: N = T^6 + T^4 + 4*T^3 + T^2 + 2 sage: N.is_irreducible() True sage: Gamma0(N).ncusps() == 2 True
sage: N = T^7 + 3*T + 3 sage: N.is_irreducible() True sage: Gamma0(N).ncusps() == 2 True
REFERENCE:
[Gek2001], Proposition 6.7