Manin symbols¶
This module defines the class ManinSymbol. A Manin symbol of
weight \(k\), level \(N\) has the form \([P(X,Y),(u:v)]\) where
\(P(X,Y)\in\ZZ[X,Y]\) is homogeneous of weight \(k-2\) and
\((u:v)\in\mathbb{P}^1(\ZZ/N\ZZ).\) The ManinSymbol class
holds a “monomial Manin symbol” of the simpler form
\([X^iY^{k-2-i},(u:v)]\), which is stored as a triple \((i,u,v)\); the
weight and level are obtained from the parent structure, which is a
sage.modular.modsym.manin_symbol_list.ManinSymbolList
.
Integer matrices \([a,b;c,d]\) act on Manin symbols on the right, sending \([P(X,Y),(u,v)]\) to \([P(aX+bY,cX+dY),(u,v)g]\). Diagonal matrices (with \(b=c=0\), such as \(I=[-1,0;0,1]\) and \(J=[-1,0;0,-1]\)) and anti-diagonal matrices (with \(a=d=0\), such as \(S=[0,-1;1,0]\)) map monomial Manin symbols to monomial Manin symbols, up to a scalar factor. For general matrices (such as \(T=[0,1,-1,-1]\) and \(T^2=[-1,-1;0,1]\)) the image of a monomial Manin symbol is expressed as a formal sum of monomial Manin symbols, with integer coefficients.
-
class
sage.modular.modsym.manin_symbol.
ManinSymbol
¶ Bases:
sage.structure.element.Element
A Manin symbol \([X^i Y^{k-2-i}, (u, v)]\).
INPUT:
parent
–ManinSymbolList
t
– a triple \((i, u, v)\) of integers
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,2) sage: s = ManinSymbol(m,(2,2,3)); s (2,3) sage: s == loads(dumps(s)) True
sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)); s [X^2*Y^4,(2,3)]
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s.parent() Manin Symbol List of weight 8 for Gamma0(5)
-
apply
(a, b, c, d)¶ Return the image of self under the matrix \([a,b;c,d]\).
Not implemented for raw ManinSymbol objects, only for members of ManinSymbolLists.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,2) sage: m.apply(10,[1,0,0,1]) # not implemented for base class
-
endpoints
(N=None)¶ Return cusps \(alpha\), \(beta\) such that this Manin symbol, viewed as a symbol for level \(N\), is \(X^i*Y^{k-2-i} \{alpha, beta\}\).
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)); s [X^2*Y^4,(2,3)] sage: s.endpoints() (1/3, 1/2)
-
i
¶
-
level
()¶ Return the level of this Manin symbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s.level() 5
-
lift_to_sl2z
(N=None)¶ Return a lift of this Manin symbol to \(SL_2(\ZZ)\).
If this Manin symbol is \((c,d)\) and \(N\) is its level, this function returns a list \([a,b, c',d']\) that defines a 2x2 matrix with determinant 1 and integer entries, such that \(c=c'\) (mod \(N\)) and \(d=d'\) (mod \(N\)).
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s [X^2*Y^4,(2,3)] sage: s.lift_to_sl2z() [1, 1, 2, 3]
-
modular_symbol_rep
()¶ Return a representation of
self
as a formal sum of modular symbols.The result is not cached.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s.modular_symbol_rep() 144*X^6*{1/3, 1/2} - 384*X^5*Y*{1/3, 1/2} + 424*X^4*Y^2*{1/3, 1/2} - 248*X^3*Y^3*{1/3, 1/2} + 81*X^2*Y^4*{1/3, 1/2} - 14*X*Y^5*{1/3, 1/2} + Y^6*{1/3, 1/2}
-
tuple
()¶ Return the 3-tuple \((i,u,v)\) of this Manin symbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s.tuple() (2, 2, 3)
-
u
¶
-
v
¶
-
weight
()¶ Return the weight of this Manin symbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(5,8) sage: s = ManinSymbol(m,(2,2,3)) sage: s.weight() 8
-
sage.modular.modsym.manin_symbol.
is_ManinSymbol
(x)¶ Return
True
ifx
is aManinSymbol
.EXAMPLES:
sage: from sage.modular.modsym.manin_symbol import ManinSymbol, is_ManinSymbol sage: from sage.modular.modsym.manin_symbol_list import ManinSymbolList_gamma0 sage: m = ManinSymbolList_gamma0(6, 4) sage: s = ManinSymbol(m, m.symbol_list()[3]) sage: s [Y^2,(1,2)] sage: is_ManinSymbol(s) True sage: is_ManinSymbol(m[3]) True