p-adic L-functions of elliptic curves¶
To an elliptic curve
over the rational numbers and a prime
, one
can associate a
-adic L-function; at least if
does not have additive
reduction at
. This function is defined by interpolation of L-values of
at twists. Through the main conjecture of Iwasawa theory it should also be
equal to a characteristic series of a certain Selmer group.
If
is ordinary, then it is an element of the Iwasawa algebra
, where
is the group
of
-st roots of unity in
, and
where
is a generator of
. (There is a slightly different
description for
.)
One can decompose this algebra as the direct product of the subalgebras
corresponding to the characters of
, which are simply the powers
(
) of the Teichmueller character
. Projecting the L-function into these components gives
power series in
, each with coefficients in
.
If
is supersingular, the series will have coefficients in a quadratic
extension of
, and the coefficients will be unbounded. In this case we
have only implemented the series for
. We have also implemented the
-adic L-series as formulated by Perrin-Riou [BP], which has coefficients in
the Dieudonne module
of
. There is a different
description by Pollack [Po] which is not available here.
According to the
-adic version of the Birch and Swinnerton-Dyer conjecture
[MTT], the order of vanishing of the
-function at the trivial character
(i.e. of the series for
at
) is just the rank of
, or
this rank plus one if the reduction at
is split multiplicative.
See [SW] for more details.
REFERENCES:
- [MTT] B. Mazur, J. Tate, and J. Teitelbaum,
On
-adic analogues of the conjectures of Birch and
Swinnerton-Dyer, Inventiones mathematicae 84, (1986), 1-48. - [BP] Dominique Bernardi and Bernadette Perrin-Riou,
Variante
-adique de la conjecture de Birch et
Swinnerton-Dyer (le cas supersingulier), C. R. Acad. Sci. Paris,
Sér I. Math., 317 (1993), no. 3, 227-232. - [Po] Robert Pollack, On the
-adic
-function of a modular form
at a supersingular prime, Duke Math. J. 118 (2003), no. 3, 523-558. - [SW] William Stein and Christian Wuthrich, Algorithms for the Arithmetic of Elliptic Curves using Iwasawa Theory, Mathematics of Computation 82 (2013), 1757-1792.
AUTHORS:
- William Stein (2007-01-01): first version
- Chris Wuthrich (22/05/2007): changed minor issues and added supersingular things
- Chris Wuthrich (11/2008): added quadratic_twists
- David Loeffler (01/2011): added nontrivial Teichmueller components
-
class
sage.schemes.elliptic_curves.padic_lseries.pAdicLseries(E, p, implementation='eclib', normalize='L_ratio')¶ Bases:
sage.structure.sage_object.SageObjectThe
-adic L-series of an elliptic curve.EXAMPLES: An ordinary example:
sage: e = EllipticCurve('389a') sage: L = e.padic_lseries(5) sage: L.series(0) Traceback (most recent call last): ... ValueError: n (=0) must be a positive integer sage: L.series(1) O(T^1) sage: L.series(2) O(5^4) + O(5)*T + (4 + O(5))*T^2 + (2 + O(5))*T^3 + (3 + O(5))*T^4 + O(T^5) sage: L.series(3, prec=10) O(5^5) + O(5^2)*T + (4 + 4*5 + O(5^2))*T^2 + (2 + 4*5 + O(5^2))*T^3 + (3 + O(5^2))*T^4 + (1 + O(5))*T^5 + O(5)*T^6 + (4 + O(5))*T^7 + (2 + O(5))*T^8 + O(5)*T^9 + O(T^10) sage: L.series(2,quadratic_twist=-3) 2 + 4*5 + 4*5^2 + O(5^4) + O(5)*T + (1 + O(5))*T^2 + (4 + O(5))*T^3 + O(5)*T^4 + O(T^5)
A prime p such that E[p] is reducible:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.series(1) 5 + O(5^2) + O(T) sage: L.series(2) 5 + 4*5^2 + O(5^3) + O(5^0)*T + O(5^0)*T^2 + O(5^0)*T^3 + O(5^0)*T^4 + O(T^5) sage: L.series(3) 5 + 4*5^2 + 4*5^3 + O(5^4) + O(5)*T + O(5)*T^2 + O(5)*T^3 + O(5)*T^4 + O(T^5)
An example showing the calculation of nontrivial Teichmueller twists:
sage: E=EllipticCurve('11a1') sage: lp=E.padic_lseries(7) sage: lp.series(4,eta=1) 3 + 7^3 + 6*7^4 + 3*7^5 + O(7^6) + (2*7 + 7^2 + O(7^3))*T + (1 + 5*7^2 + O(7^3))*T^2 + (4 + 4*7 + 4*7^2 + O(7^3))*T^3 + (4 + 3*7 + 7^2 + O(7^3))*T^4 + O(T^5) sage: lp.series(4,eta=2) 5 + 6*7 + 4*7^2 + 2*7^3 + 3*7^4 + 2*7^5 + O(7^6) + (6 + 4*7 + 7^2 + O(7^3))*T + (3 + 2*7^2 + O(7^3))*T^2 + (1 + 4*7 + 7^2 + O(7^3))*T^3 + (6 + 6*7 + 6*7^2 + O(7^3))*T^4 + O(T^5) sage: lp.series(4,eta=3) O(7^6) + (5 + 4*7 + 2*7^2 + O(7^3))*T + (6 + 5*7 + 2*7^2 + O(7^3))*T^2 + (5*7 + O(7^3))*T^3 + (7 + 4*7^2 + O(7^3))*T^4 + O(T^5)
(Note that the last series vanishes at
, which is consistent withsage: E.quadratic_twist(-7).rank() 1
This proves that
has rank 1 over
.)the load-dumps test:
sage: lp = EllipticCurve('11a').padic_lseries(5) sage: lp == loads(dumps(lp)) True
-
alpha(prec=20)¶ Return a
-adic root
of the polynomial
with
. In the ordinary case this is
just the unit root.INPUT: -
prec- positive integer, the
-adic precision of the root.EXAMPLES: Consider the elliptic curve 37a:
sage: E = EllipticCurve('37a')An ordinary prime:
sage: L = E.padic_lseries(5) sage: alpha = L.alpha(10); alpha 3 + 2*5 + 4*5^2 + 2*5^3 + 5^4 + 4*5^5 + 2*5^7 + 5^8 + 5^9 + O(5^10) sage: alpha^2 - E.ap(5)*alpha + 5 O(5^10)
A supersingular prime:
sage: L = E.padic_lseries(3) sage: alpha = L.alpha(10); alpha alpha + O(alpha^21) sage: alpha^2 - E.ap(3)*alpha + 3 O(alpha^22)
A reducible prime:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.alpha(5) 1 + 4*5 + 3*5^2 + 2*5^3 + 4*5^4 + O(5^5)
-
elliptic_curve()¶ Return the elliptic curve to which this
-adic L-series is associated.EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.elliptic_curve() Elliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 over Rational Field
-
measure(a, n, prec, quadratic_twist=1, sign=1)¶ Return the measure on
defined by![\mu_{E,\alpha}^+ ( a + p^n \ZZ_p ) =
\frac{1}{\alpha^n} \left [\frac{a}{p^n}\right]^{+} -
\frac{1}{\alpha^{n+1}} \left[\frac{a}{p^{n-1}}\right]^{+}](../../../_images/math/d3ad91cab15db112c54209c3a4fd15d7b1e29ed9.png)
where
is the modular symbol. This is used to define
this
-adic L-function (at least when the reduction is good).The optional argument
signallows the minus symbol
to
be substituted for the plus symbol.The optional argument
quadratic_twistreplaces
by the twist in
the above formula, but the twisted modular symbol is computed using a
sum over modular symbols of
rather then finding the modular symbols
for the twist. Quadratic twists are only implemented if the sign is
.Note that the normalisation is not correct at this stage: use
_quotient_of periodsand_quotient_of periods_to_twistto correct.Note also that this function does not check if the condition on the
quadratic_twist=Dis satisfied. So the result will only be correct if for each prime
dividing
, we have
, where
is the conductor of the curve.INPUT:
a- an integern- a non-negative integerprec- an integerquadratic_twist(default = 1) - a fundamental discriminant of a quadratic field, should be coprime to the conductor of
sign(default = 1) - an integer, which should be
.
EXAMPLES:
sage: E = EllipticCurve('37a') sage: L = E.padic_lseries(5) sage: L.measure(1,2, prec=9) 2 + 3*5 + 4*5^3 + 2*5^4 + 3*5^5 + 3*5^6 + 4*5^7 + 4*5^8 + O(5^9) sage: L.measure(1,2, quadratic_twist=8,prec=15) O(5^15) sage: L.measure(1,2, quadratic_twist=-4,prec=15) 4 + 4*5 + 4*5^2 + 3*5^3 + 2*5^4 + 5^5 + 3*5^6 + 5^8 + 2*5^9 + 3*5^12 + 2*5^13 + 4*5^14 + O(5^15) sage: E = EllipticCurve('11a1') sage: a = E.quadratic_twist(-3).padic_lseries(5).measure(1,2,prec=15) sage: b = E.padic_lseries(5).measure(1,2, quadratic_twist=-3,prec=15) sage: a == b * E.padic_lseries(5)._quotient_of_periods_to_twist(-3) True
-
modular_symbol(r, sign=1, quadratic_twist=1)¶ Return the modular symbol evaluated at
.
This is used to compute this
-adic
L-series.Note that the normalisation is not correct at this stage: use
_quotient_of periods_to_twistto correct.Note also that this function does not check if the condition on the quadratic_twist=D is satisfied. So the result will only be correct if for each prime
dividing
, we have
, where
is the conductor of the curve.INPUT:
r- a cusp given as either a rational number or oosign- +1 (default) or -1 (only implemented without twists)quadratic_twist- a fundamental discriminant of a quadratic field or +1 (default)
EXAMPLES:
sage: E = EllipticCurve('11a1') sage: lp = E.padic_lseries(5) sage: [lp.modular_symbol(r) for r in [0,1/5,oo,1/11]] [1/5, 6/5, 0, 0] sage: [lp.modular_symbol(r,sign=-1) for r in [0,1/3,oo,1/7]] [0, 1/2, 0, -1/2] sage: [lp.modular_symbol(r,quadratic_twist=-20) for r in [0,1/5,oo,1/11]] [1, 1, 0, 1/2] sage: E = EllipticCurve('20a1') sage: Et = E.quadratic_twist(-4) sage: lpt = Et.padic_lseries(5) sage: eta = lpt._quotient_of_periods_to_twist(-4) sage: lpt.modular_symbol(0) == lp.modular_symbol(0,quadratic_twist=-4) / eta True
-
order_of_vanishing()¶ Return the order of vanishing of this
-adic L-series.The output of this function is provably correct, due to a theorem of Kato [Ka].
NOTE: currently
must be a prime of good ordinary reduction.REFERENCES:
- [MTT] B. Mazur, J. Tate, and J. Teitelbaum,
On
-adic analogues of the conjectures of Birch and
Swinnerton-Dyer, Inventiones mathematicae 84, (1986), 1-48. - [Ka] Kayuza Kato,
-adic Hodge theory and values of zeta functions of modular
forms, Cohomologies
-adiques et applications arithmetiques III,
Asterisque vol 295, SMF, Paris, 2004.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(3) sage: L.order_of_vanishing() 0 sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.order_of_vanishing() 0 sage: L = EllipticCurve('37a').padic_lseries(5) sage: L.order_of_vanishing() 1 sage: L = EllipticCurve('43a').padic_lseries(3) sage: L.order_of_vanishing() 1 sage: L = EllipticCurve('37b').padic_lseries(3) sage: L.order_of_vanishing() 0 sage: L = EllipticCurve('389a').padic_lseries(3) sage: L.order_of_vanishing() 2 sage: L = EllipticCurve('389a').padic_lseries(5) sage: L.order_of_vanishing() 2 sage: L = EllipticCurve('5077a').padic_lseries(5, implementation = 'eclib') sage: L.order_of_vanishing() 3
- [MTT] B. Mazur, J. Tate, and J. Teitelbaum,
On
-
prime()¶ Return the prime
as in ‘p-adic L-function’.EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.prime() 5
-
teichmuller(prec)¶ Return Teichmuller lifts to the given precision.
INPUT:
prec- a positive integer.
OUTPUT:
- a list of
-adic numbers, the cached Teichmuller lifts
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(7) sage: L.teichmuller(1) [0, 1, 2, 3, 4, 5, 6] sage: L.teichmuller(2) [0, 1, 30, 31, 18, 19, 48]
-
-
class
sage.schemes.elliptic_curves.padic_lseries.pAdicLseriesOrdinary(E, p, implementation='eclib', normalize='L_ratio')¶ Bases:
sage.schemes.elliptic_curves.padic_lseries.pAdicLseriesINPUT:
E- an elliptic curvep- a prime of good reductionimplementation- string (default:’eclib’); either ‘eclib’ to use John Cremona’seclibfor the computation of modular symbols or ‘sage’ to use Sage’s own implementationnormalize-'L_ratio'(default),'period'or'none'; this is describes the way the modular symbols are normalized. Seemodular_symbolof an elliptic curve over Q for more details.
EXAMPLES:
sage: E = EllipticCurve('11a1') sage: Lp = E.padic_lseries(3) sage: Lp.series(2,prec=3) 2 + 3 + 3^2 + 2*3^3 + O(3^4) + (1 + O(3))*T + (1 + O(3))*T^2 + O(T^3)
-
is_ordinary()¶ Return True if the elliptic curve that this L-function is attached to is ordinary.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.is_ordinary() True
-
is_supersingular()¶ Return True if the elliptic curve that this L function is attached to is supersingular.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5) sage: L.is_supersingular() False
-
power_series(n=2, quadratic_twist=1, prec=5, eta=0)¶ Return the
-th approximation to the
-adic L-series, in the
component corresponding to the
-th power of the Teichmueller
character, as a power series in
(corresponding to
with
as a generator of
). Each coefficient is a
-adic number whose precision is provably correct.Here the normalization of the
-adic L-series is chosen
such that
where
is the unit root of the characteristic
polynomial of Frobenius on
and
is the
Neron period of
.INPUT:
n- (default: 2) a positive integerquadratic_twist- (default: +1) a fundamental discriminant of a quadratic field, coprime to the conductor of the curveprec- (default: 5) maximal number of terms of the series to compute; to compute as many as possible just give a very large number forprec; the result will still be correct.eta(default: 0) an integer (specifying the power of the Teichmueller character on the group of roots of unity in
)
ALIAS: power_series is identical to series.
EXAMPLES: We compute some
-adic L-functions associated to the elliptic
curve 11a:sage: E = EllipticCurve('11a') sage: p = 3 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(3) 2 + 3 + 3^2 + 2*3^3 + O(3^5) + (1 + 3 + O(3^2))*T + (1 + 2*3 + O(3^2))*T^2 + O(3)*T^3 + O(3)*T^4 + O(T^5)
Another example at a prime of bad reduction, where the
-adic L-function has an extra 0 (compared to the non
-adic L-function):sage: E = EllipticCurve('11a') sage: p = 11 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(2) O(11^4) + (10 + O(11))*T + (6 + O(11))*T^2 + (2 + O(11))*T^3 + (5 + O(11))*T^4 + O(T^5)
We compute a
-adic L-function that vanishes to order 2:sage: E = EllipticCurve('389a') sage: p = 3 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(1) O(T^1) sage: L.series(2) O(3^4) + O(3)*T + (2 + O(3))*T^2 + O(T^3) sage: L.series(3) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + (1 + O(3))*T^4 + O(T^5)
Checks if the precision can be changed (trac ticket #5846):
sage: L.series(3,prec=4) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + O(T^4) sage: L.series(3,prec=6) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + (1 + O(3))*T^4 + (1 + O(3))*T^5 + O(T^6)
Rather than computing the
-adic L-function for the curve ‘15523a1’, one can
compute it as a quadratic_twist:sage: E = EllipticCurve('43a1') sage: lp = E.padic_lseries(3) sage: lp.series(2,quadratic_twist=-19) 2 + 2*3 + 2*3^2 + O(3^4) + (1 + O(3))*T + (1 + O(3))*T^2 + O(T^3) sage: E.quadratic_twist(-19).label() # optional -- database_cremona_ellcurve '15523a1'
This proves that the rank of ‘15523a1’ is zero, even if
mwrankcan not determine this.We calculate the
-series in the nontrivial Teichmueller components:sage: L = EllipticCurve('110a1').padic_lseries(5) sage: for j in [0..3]: print(L.series(4, eta=j)) O(5^6) + (2 + 2*5 + 2*5^2 + O(5^3))*T + (5 + 5^2 + O(5^3))*T^2 + (4 + 4*5 + 2*5^2 + O(5^3))*T^3 + (1 + 5 + 3*5^2 + O(5^3))*T^4 + O(T^5) 4 + 3*5 + 2*5^2 + 3*5^3 + 5^4 + O(5^6) + (1 + 3*5 + 4*5^2 + O(5^3))*T + (3 + 4*5 + 3*5^2 + O(5^3))*T^2 + (3 + 3*5^2 + O(5^3))*T^3 + (1 + 2*5 + 2*5^2 + O(5^3))*T^4 + O(T^5) 2 + O(5^6) + (1 + 5 + O(5^3))*T + (2 + 4*5 + 3*5^2 + O(5^3))*T^2 + (4 + 5 + 2*5^2 + O(5^3))*T^3 + (4 + O(5^3))*T^4 + O(T^5) 3 + 5 + 2*5^2 + 5^3 + 3*5^4 + 4*5^5 + O(5^6) + (1 + 2*5 + 4*5^2 + O(5^3))*T + (1 + 4*5 + O(5^3))*T^2 + (3 + 2*5 + 2*5^2 + O(5^3))*T^3 + (5 + 5^2 + O(5^3))*T^4 + O(T^5)
It should now also work with
(trac ticket #20798):sage: E = EllipticCurve("53a1") sage: lp = E.padic_lseries(2) sage: lp.series(7) O(2^8) + (1 + 2^2 + 2^3 + O(2^5))*T + (1 + 2^3 + O(2^4))*T^2 + (2^2 + 2^3 + O(2^4))*T^3 + (2 + 2^2 + O(2^3))*T^4 + O(T^5) sage: E = EllipticCurve("109a1") sage: lp = E.padic_lseries(2) sage: lp.series(6) 2^2 + 2^6 + O(2^7) + (2 + O(2^4))*T + O(2^3)*T^2 + (2^2 + O(2^3))*T^3 + (2 + O(2^2))*T^4 + O(T^5)
-
series(n=2, quadratic_twist=1, prec=5, eta=0)¶ Return the
-th approximation to the
-adic L-series, in the
component corresponding to the
-th power of the Teichmueller
character, as a power series in
(corresponding to
with
as a generator of
). Each coefficient is a
-adic number whose precision is provably correct.Here the normalization of the
-adic L-series is chosen
such that
where
is the unit root of the characteristic
polynomial of Frobenius on
and
is the
Neron period of
.INPUT:
n- (default: 2) a positive integerquadratic_twist- (default: +1) a fundamental discriminant of a quadratic field, coprime to the conductor of the curveprec- (default: 5) maximal number of terms of the series to compute; to compute as many as possible just give a very large number forprec; the result will still be correct.eta(default: 0) an integer (specifying the power of the Teichmueller character on the group of roots of unity in
)
ALIAS: power_series is identical to series.
EXAMPLES: We compute some
-adic L-functions associated to the elliptic
curve 11a:sage: E = EllipticCurve('11a') sage: p = 3 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(3) 2 + 3 + 3^2 + 2*3^3 + O(3^5) + (1 + 3 + O(3^2))*T + (1 + 2*3 + O(3^2))*T^2 + O(3)*T^3 + O(3)*T^4 + O(T^5)
Another example at a prime of bad reduction, where the
-adic L-function has an extra 0 (compared to the non
-adic L-function):sage: E = EllipticCurve('11a') sage: p = 11 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(2) O(11^4) + (10 + O(11))*T + (6 + O(11))*T^2 + (2 + O(11))*T^3 + (5 + O(11))*T^4 + O(T^5)
We compute a
-adic L-function that vanishes to order 2:sage: E = EllipticCurve('389a') sage: p = 3 sage: E.is_ordinary(p) True sage: L = E.padic_lseries(p) sage: L.series(1) O(T^1) sage: L.series(2) O(3^4) + O(3)*T + (2 + O(3))*T^2 + O(T^3) sage: L.series(3) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + (1 + O(3))*T^4 + O(T^5)
Checks if the precision can be changed (trac ticket #5846):
sage: L.series(3,prec=4) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + O(T^4) sage: L.series(3,prec=6) O(3^5) + O(3^2)*T + (2 + 2*3 + O(3^2))*T^2 + (2 + O(3))*T^3 + (1 + O(3))*T^4 + (1 + O(3))*T^5 + O(T^6)
Rather than computing the
-adic L-function for the curve ‘15523a1’, one can
compute it as a quadratic_twist:sage: E = EllipticCurve('43a1') sage: lp = E.padic_lseries(3) sage: lp.series(2,quadratic_twist=-19) 2 + 2*3 + 2*3^2 + O(3^4) + (1 + O(3))*T + (1 + O(3))*T^2 + O(T^3) sage: E.quadratic_twist(-19).label() # optional -- database_cremona_ellcurve '15523a1'
This proves that the rank of ‘15523a1’ is zero, even if
mwrankcan not determine this.We calculate the
-series in the nontrivial Teichmueller components:sage: L = EllipticCurve('110a1').padic_lseries(5) sage: for j in [0..3]: print(L.series(4, eta=j)) O(5^6) + (2 + 2*5 + 2*5^2 + O(5^3))*T + (5 + 5^2 + O(5^3))*T^2 + (4 + 4*5 + 2*5^2 + O(5^3))*T^3 + (1 + 5 + 3*5^2 + O(5^3))*T^4 + O(T^5) 4 + 3*5 + 2*5^2 + 3*5^3 + 5^4 + O(5^6) + (1 + 3*5 + 4*5^2 + O(5^3))*T + (3 + 4*5 + 3*5^2 + O(5^3))*T^2 + (3 + 3*5^2 + O(5^3))*T^3 + (1 + 2*5 + 2*5^2 + O(5^3))*T^4 + O(T^5) 2 + O(5^6) + (1 + 5 + O(5^3))*T + (2 + 4*5 + 3*5^2 + O(5^3))*T^2 + (4 + 5 + 2*5^2 + O(5^3))*T^3 + (4 + O(5^3))*T^4 + O(T^5) 3 + 5 + 2*5^2 + 5^3 + 3*5^4 + 4*5^5 + O(5^6) + (1 + 2*5 + 4*5^2 + O(5^3))*T + (1 + 4*5 + O(5^3))*T^2 + (3 + 2*5 + 2*5^2 + O(5^3))*T^3 + (5 + 5^2 + O(5^3))*T^4 + O(T^5)
It should now also work with
(trac ticket #20798):sage: E = EllipticCurve("53a1") sage: lp = E.padic_lseries(2) sage: lp.series(7) O(2^8) + (1 + 2^2 + 2^3 + O(2^5))*T + (1 + 2^3 + O(2^4))*T^2 + (2^2 + 2^3 + O(2^4))*T^3 + (2 + 2^2 + O(2^3))*T^4 + O(T^5) sage: E = EllipticCurve("109a1") sage: lp = E.padic_lseries(2) sage: lp.series(6) 2^2 + 2^6 + O(2^7) + (2 + O(2^4))*T + O(2^3)*T^2 + (2^2 + O(2^3))*T^3 + (2 + O(2^2))*T^4 + O(T^5)
-
class
sage.schemes.elliptic_curves.padic_lseries.pAdicLseriesSupersingular(E, p, implementation='eclib', normalize='L_ratio')¶ Bases:
sage.schemes.elliptic_curves.padic_lseries.pAdicLseriesINPUT:
E- an elliptic curvep- a prime of good reductionimplementation- string (default:’eclib’); either ‘eclib’ to use John Cremona’seclibfor the computation of modular symbols or ‘sage’ to use Sage’s own implementationnormalize-'L_ratio'(default),'period'or'none'; this is describes the way the modular symbols are normalized. Seemodular_symbolof an elliptic curve over Q for more details.
EXAMPLES:
sage: E = EllipticCurve('11a1') sage: Lp = E.padic_lseries(3) sage: Lp.series(2,prec=3) 2 + 3 + 3^2 + 2*3^3 + O(3^4) + (1 + O(3))*T + (1 + O(3))*T^2 + O(T^3)
-
Dp_valued_height(prec=20)¶ Return the canonical
-adic height with values in the Dieudonne module
.
It is defined to be
where
is made out of the sigma function of Bernardi and
is
.
The answer vis given asv[1]*omega + v[2]*eta. The coordinates ofvare dependent of the Weierstrass equation.EXAMPLES:
sage: E = EllipticCurve('53a') sage: L = E.padic_lseries(5) sage: h = L.Dp_valued_height(7) sage: h(E.gens()[0]) (3*5 + 5^2 + 2*5^3 + 3*5^4 + 4*5^5 + 5^6 + 5^7 + O(5^8), 5^2 + 4*5^4 + 2*5^7 + 3*5^8 + O(5^9))
-
Dp_valued_regulator(prec=20, v1=0, v2=0)¶ Return the canonical
-adic regulator with values in the Dieudonne module
as defined by Perrin-Riou using the
-adic height with values in
.
The result is written in the basis
,
, and hence the
coordinates of the result are independent of the chosen Weierstrass equation.NOTE: The definition here is corrected with respect to Perrin-Riou’s article [PR]. See [SW].
REFERENCES:
- [PR] Perrin Riou, Arithmetique des courbes elliptiques a reduction supersinguliere en
,
Experiment. Math. 12 (2003), no. 2, 155-186. - [SW] William Stein and Christian Wuthrich, Computations About Tate-Shafarevich Groups using Iwasawa theory, preprint 2009.
EXAMPLES:
sage: E = EllipticCurve('43a') sage: L = E.padic_lseries(7) sage: L.Dp_valued_regulator(7) (5*7 + 6*7^2 + 4*7^3 + 4*7^4 + 7^5 + 4*7^7 + O(7^8), 4*7^2 + 2*7^3 + 3*7^4 + 7^5 + 6*7^6 + 4*7^7 + O(7^8))
- [PR] Perrin Riou, Arithmetique des courbes elliptiques a reduction supersinguliere en
-
Dp_valued_series(n=3, quadratic_twist=1, prec=5)¶ Return a vector of two components which are p-adic power series. The answer v is such that
v[1]
v[2]
as an element of the Dieudonne module
where
is the invariant differential and
is the Frobenius on
.
According to the
-adic Birch and Swinnerton-Dyer
conjecture [BP] this function has a zero of order
rank of
and it’s leading term is contains the order of
the Tate-Shafarevich group, the Tamagawa numbers, the order of the
torsion subgroup and the
-valued
-adic regulator.INPUT:
n- (default: 3) a positive integerprec- (default: 5) a positive integer
REFERENCE:
- [BP] Dominique Bernardi and Bernadette Perrin-Riou,
Variante
-adique de la conjecture de Birch et
Swinnerton-Dyer (le cas supersingulier), C. R. Acad. Sci. Paris,
Ser I. Math, 317 (1993), no 3, 227-232.
EXAMPLES:
sage: E = EllipticCurve('14a') sage: L = E.padic_lseries(5) sage: L.Dp_valued_series(4) # long time (9s on sage.math, 2011) (1 + 4*5 + O(5^2) + (4 + O(5))*T + (1 + O(5))*T^2 + (4 + O(5))*T^3 + (2 + O(5))*T^4 + O(T^5), 5^2 + O(5^3) + O(5^2)*T + (4*5 + O(5^2))*T^2 + (2*5 + O(5^2))*T^3 + (2 + 2*5 + O(5^2))*T^4 + O(T^5))
-
bernardi_sigma_function(prec=20)¶ Return the
-adic sigma function of Bernardi in terms of
.
This is the same as padic_sigmawithE2 = 0.EXAMPLES:
sage: E = EllipticCurve('14a') sage: L = E.padic_lseries(5) sage: L.bernardi_sigma_function(prec=5) # Todo: some sort of consistency check!? z + 1/24*z^3 + 29/384*z^5 - 8399/322560*z^7 - 291743/92897280*z^9 + O(z^10)
-
frobenius(prec=20, algorithm='mw')¶ This returns a geometric Frobenius
on the Diedonne module
with respect to the basis
, the invariant differential, and
.
It satisfies
.INPUT:
prec- (default: 20) a positive integeralgorithm- either ‘mw’ (default) for Monsky-Washintzer or ‘approx’ for the algorithm described by Bernardi and Perrin-Riou (much slower and not fully tested)
EXAMPLES:
sage: E = EllipticCurve('14a') sage: L = E.padic_lseries(5) sage: phi = L.frobenius(5) sage: phi [ 2 + 5^2 + 5^4 + O(5^5) 3*5^-1 + 3 + 5 + 4*5^2 + 5^3 + O(5^4)] [ 3 + 3*5^2 + 4*5^3 + 3*5^4 + O(5^5) 3 + 4*5 + 3*5^2 + 4*5^3 + 3*5^4 + O(5^5)] sage: -phi^2 [5^-1 + O(5^4) O(5^4)] [ O(5^5) 5^-1 + O(5^4)]
-
is_ordinary()¶ Return True if the elliptic curve that this L-function is attached to is ordinary.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(19) sage: L.is_ordinary() False
-
is_supersingular()¶ Return True if the elliptic curve that this L function is attached to is supersingular.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(19) sage: L.is_supersingular() True
-
power_series(n=3, quadratic_twist=1, prec=5, eta=0)¶ Return the
-th approximation to the
-adic L-series as a
power series in
(corresponding to
with
as a generator of
). Each
coefficient is an element of a quadratic extension of the
-adic
number whose precision is probably correct.Here the normalization of the
-adic L-series is chosen
such that
where
is a root of the characteristic
polynomial of Frobenius on
and
is the
Neron period of
.INPUT:
n- (default: 2) a positive integerquadratic_twist- (default: +1) a fundamental discriminant of a quadratic field, coprime to the conductor of the curveprec- (default: 5) maximal number of terms of the series to compute; to compute as many as possible just give a very large number forprec; the result will still be correct.eta(default: 0) an integer (specifying the power of the Teichmueller character on the group of roots of unity in
)
OUTPUT:
a power series with coefficients in a quadratic ramified extension of the
-adic numbers generated by a root
of the characteristic
polynomial of Frobenius on
.ALIAS: power_series is identical to series.
EXAMPLES: A superingular example, where we must compute to higher precision to see anything:
sage: e = EllipticCurve('37a') sage: L = e.padic_lseries(3); L 3-adic L-series of Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field sage: L.series(2) O(T^3) sage: L.series(4) # takes a long time (several seconds) O(alpha) + (alpha^-2 + O(alpha^0))*T + (alpha^-2 + O(alpha^0))*T^2 + O(T^5) sage: L.alpha(2).parent() Eisenstein Extension of 3-adic Field with capped relative precision 2 in alpha defined by (1 + O(3^2))*x^2 + (3 + O(3^3))*x + (3 + O(3^3))
An example where we only compute the leading term (trac ticket #15737):
sage: E = EllipticCurve("17a1") sage: L = E.padic_lseries(3) sage: L.series(4,prec=1) alpha^-2 + alpha^-1 + 2 + 2*alpha + ... + O(alpha^38) + O(T)
It works also for
:sage: E = EllipticCurve("11a1") sage: lp = E.padic_lseries(2) sage: lp.series(10) O(alpha^-3) + (alpha^-4 + O(alpha^-3))*T + (alpha^-4 + O(alpha^-3))*T^2 + (alpha^-5 + alpha^-4 + O(alpha^-3))*T^3 + (alpha^-4 + O(alpha^-3))*T^4 + O(T^5)
-
series(n=3, quadratic_twist=1, prec=5, eta=0)¶ Return the
-th approximation to the
-adic L-series as a
power series in
(corresponding to
with
as a generator of
). Each
coefficient is an element of a quadratic extension of the
-adic
number whose precision is probably correct.Here the normalization of the
-adic L-series is chosen
such that
where
is a root of the characteristic
polynomial of Frobenius on
and
is the
Neron period of
.INPUT:
n- (default: 2) a positive integerquadratic_twist- (default: +1) a fundamental discriminant of a quadratic field, coprime to the conductor of the curveprec- (default: 5) maximal number of terms of the series to compute; to compute as many as possible just give a very large number forprec; the result will still be correct.eta(default: 0) an integer (specifying the power of the Teichmueller character on the group of roots of unity in
)
OUTPUT:
a power series with coefficients in a quadratic ramified extension of the
-adic numbers generated by a root
of the characteristic
polynomial of Frobenius on
.ALIAS: power_series is identical to series.
EXAMPLES: A superingular example, where we must compute to higher precision to see anything:
sage: e = EllipticCurve('37a') sage: L = e.padic_lseries(3); L 3-adic L-series of Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field sage: L.series(2) O(T^3) sage: L.series(4) # takes a long time (several seconds) O(alpha) + (alpha^-2 + O(alpha^0))*T + (alpha^-2 + O(alpha^0))*T^2 + O(T^5) sage: L.alpha(2).parent() Eisenstein Extension of 3-adic Field with capped relative precision 2 in alpha defined by (1 + O(3^2))*x^2 + (3 + O(3^3))*x + (3 + O(3^3))
An example where we only compute the leading term (trac ticket #15737):
sage: E = EllipticCurve("17a1") sage: L = E.padic_lseries(3) sage: L.series(4,prec=1) alpha^-2 + alpha^-1 + 2 + 2*alpha + ... + O(alpha^38) + O(T)
It works also for
:sage: E = EllipticCurve("11a1") sage: lp = E.padic_lseries(2) sage: lp.series(10) O(alpha^-3) + (alpha^-4 + O(alpha^-3))*T + (alpha^-4 + O(alpha^-3))*T^2 + (alpha^-5 + alpha^-4 + O(alpha^-3))*T^3 + (alpha^-4 + O(alpha^-3))*T^4 + O(T^5)

with a 2-isogeny.