Torsion points on modular abelian varieties¶
AUTHORS:
William Stein (2007-03)
Peter Bruin (2014-12): move TorsionPoint to a separate file
- class sage.modular.abvar.torsion_point.TorsionPoint(parent, element, check=True)[source]¶
Bases:
ModuleElementAn element of a finite subgroup of a modular abelian variety.
INPUT:
parent– a finite subgroup of a modular abelian varietyelement– a \(\QQ\)-vector space element that represents this element in terms of the ambient rational homologycheck– boolean (default:True); whether to check that element is in the appropriate vector space
EXAMPLES:
The following calls the
TorsionPointconstructor implicitly:sage: J = J0(11) sage: G = J.finite_subgroup([[1/3,0], [0,1/5]]); G Finite subgroup with invariants [15] over QQbar of Abelian variety J0(11) of dimension 1 sage: type(G.0) <class 'sage.modular.abvar.finite_subgroup.FiniteSubgroup_lattice_with_category.element_class'>
>>> from sage.all import * >>> J = J0(Integer(11)) >>> G = J.finite_subgroup([[Integer(1)/Integer(3),Integer(0)], [Integer(0),Integer(1)/Integer(5)]]); G Finite subgroup with invariants [15] over QQbar of Abelian variety J0(11) of dimension 1 >>> type(G.gen(0)) <class 'sage.modular.abvar.finite_subgroup.FiniteSubgroup_lattice_with_category.element_class'>
J = J0(11) G = J.finite_subgroup([[1/3,0], [0,1/5]]); G type(G.0)
- additive_order()[source]¶
Return the additive order of
self.EXAMPLES:
sage: J = J0(11); G = J.finite_subgroup([[1/3,0], [0,1/5]]) sage: G.0.additive_order() 3 sage: G.1.additive_order() 5 sage: (G.0 + G.1).additive_order() 15 sage: (3*G.0).additive_order() 1
>>> from sage.all import * >>> J = J0(Integer(11)); G = J.finite_subgroup([[Integer(1)/Integer(3),Integer(0)], [Integer(0),Integer(1)/Integer(5)]]) >>> G.gen(0).additive_order() 3 >>> G.gen(1).additive_order() 5 >>> (G.gen(0) + G.gen(1)).additive_order() 15 >>> (Integer(3)*G.gen(0)).additive_order() 1
J = J0(11); G = J.finite_subgroup([[1/3,0], [0,1/5]]) G.0.additive_order() G.1.additive_order() (G.0 + G.1).additive_order() (3*G.0).additive_order()
- element()[source]¶
Return a vector over \(\QQ\) defining
self.OUTPUT:
A vector in the rational homology of the ambient modular Jacobian variety.
EXAMPLES:
We create some elements of \(J_0(11)\):
sage: J = J0(11) sage: G = J.finite_subgroup([[1/3,0], [0,1/5]]); G Finite subgroup with invariants [15] over QQbar of Abelian variety J0(11) of dimension 1 sage: G.0.element() (1/3, 0)
>>> from sage.all import * >>> J = J0(Integer(11)) >>> G = J.finite_subgroup([[Integer(1)/Integer(3),Integer(0)], [Integer(0),Integer(1)/Integer(5)]]); G Finite subgroup with invariants [15] over QQbar of Abelian variety J0(11) of dimension 1 >>> G.gen(0).element() (1/3, 0)
J = J0(11) G = J.finite_subgroup([[1/3,0], [0,1/5]]); G G.0.element()
The underlying element is a vector over the rational numbers:
sage: v = (G.0-G.1).element(); v (1/3, -1/5) sage: type(v) <class 'sage.modules.vector_rational_dense.Vector_rational_dense'>
>>> from sage.all import * >>> v = (G.gen(0)-G.gen(1)).element(); v (1/3, -1/5) >>> type(v) <class 'sage.modules.vector_rational_dense.Vector_rational_dense'>
v = (G.0-G.1).element(); v type(v)