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 and according to the -adic version of the Birch and Swinnerton-Dyer conjecture [MTT], the order of vanishing at is just the rank of or this rank plus one if the reduction at is split multiplicative.
If is supersingular, the series will have coefficients in a quadratic extension of . 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.
See [SW] for more details.
REFERENCES:
AUTHORS:
Bases: sage.structure.sage_object.SageObject
The -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)
...
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 + (3*5 + O(5^2))*T^6 + (4 + 5 + O(5^2))*T^7 + (2 + 5 + O(5^2))*T^8 + O(5^2)*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)
the load-dumps test:
sage: lp = EllipticCurve('11a').padic_lseries(5)
sage: lp == loads(dumps(lp))
True
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
(1 + O(3^10))*alpha
sage: alpha^2 - E.ap(3)*alpha + 3
(O(3^10))*alpha^2 + (O(3^11))*alpha + (O(3^11))
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)
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
Return the measure on defined by
where is the modular symbol. This is used to define this -adic L-function (at least when the reduction is good).
The optional argument quadratic_twist replaces 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.
Note that the normalisation is not correct at this stage: use _quotient_of periods and _quotient_of periods_to_twist to 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:
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
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_twist to 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:
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, 0, -1]
sage: [lp.modular_symbol(r,quadratic_twist=-20) for r in [0,1/5,oo,1/11]]
[2, 2, 0, 1]
sage: lpt = E.quadratic_twist(-3).padic_lseries(5)
sage: et = E.padic_lseries(5)._quotient_of_periods_to_twist(-3)
sage: lpt.modular_symbol(0) == lp.modular_symbol(0,quadratic_twist=-3)/et
True
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]. This function will terminate if and only if the Mazur-Tate-Teitelbaum analogue [MTT] of the BSD conjecture about the rank of the curve is true and the subgroup of elements of -power order in the Shafarevich-Tate group of this curve is finite. I.e. if this function terminates (with no errors!), then you may conclude that the -adic BSD rank conjecture is true and that the -part of Sha is finite.
NOTE: currently must be a prime of good ordinary reduction.
REFERENCES:
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
We verify that Sha(E)(p) is finite for p=3,5,7 for the first curve of rank 2:
sage: e = EllipticCurve('389a')
sage: for p in primes(3,10):
... print p, e.padic_lseries(p).order_of_vanishing()
3 2
5 2
7 2
Returns the prime as in ‘p-adic L-function’.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5)
sage: L.prime()
5
Return Teichmuller lifts to the given precision.
INPUT:
OUTPUT:
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]
Bases: sage.schemes.elliptic_curves.padic_lseries.pAdicLseries
Return True if the elliptic that this L-function is attached to is ordinary.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5)
sage: L.is_ordinary()
True
Return True if the elliptic that this L function is attached to is supersingular.
EXAMPLES:
sage: L = EllipticCurve('11a').padic_lseries(5)
sage: L.is_supersingular()
False
Returns the -th approximation to the -adic L-series 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:
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 + (2*3 + O(3^2))*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 + 3 + O(3^2))*T^4 + O(T^5)
Checks if the precision can be changed (trac 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 + 3 + O(3^2))*T^4 + (1 + O(3^2))*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 --- conductor is greater than 10000
'15523a1'
This proves that the rank of ‘15523a1’ is zero, even if mwrank can not determine this.
Returns the -th approximation to the -adic L-series 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:
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 + (2*3 + O(3^2))*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 + 3 + O(3^2))*T^4 + O(T^5)
Checks if the precision can be changed (trac 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 + 3 + O(3^2))*T^4 + (1 + O(3^2))*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 --- conductor is greater than 10000
'15523a1'
This proves that the rank of ‘15523a1’ is zero, even if mwrank can not determine this.
Bases: sage.schemes.elliptic_curves.padic_lseries.pAdicLseries
Returns 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 v is given as v[1]*omega + v[2]*eta. The coordinates of v are 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))
Returns 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:
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))
Returns 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:
REFERENCE:
EXAMPLES:
sage: E = EllipticCurve('14a')
sage: L = E.padic_lseries(5)
sage: L.Dp_valued_series(4)
(1 + 4*5 + 4*5^3 + O(5^4) + (4 + O(5))*T + (1 + O(5))*T^2 + (4 + O(5))*T^3 + (2 + O(5))*T^4 + O(T^5), O(5^4) + O(5)*T + O(5)*T^2 + O(5)*T^3 + (2 + O(5))*T^4 + O(T^5))
Return the -adic sigma function of Bernardi in terms of . This is the same as padic_sigma with E2 = 0.
EXAMPLES:
sage: E = EllipticCurve('14a')
sage: L = E.padic_lseries(5)
sage: L.bernardi_sigma_function(5) # Todo: some sort of consistency check!?
z + 1/24*z^3 + 29/384*z^5 - 8399/322560*z^7 - 291743/92897280*z^9 - 4364831/5225472*z^10 + 2172371753/955514880*z^11 - 17875714529/6897623040*z^12 + 2839176621047/1605264998400*z^13 + 32012675789849/10042939146240*z^14 - 367444910151047/89894839910400*z^15 + 973773806885959/241030539509760*z^16 - 33997971208432501/17259809262796800*z^17 - 10331978660756704339/842918229599846400*z^18 + 18601407947897364480389/950670294194847744000*z^19 - 118837570440101901119321/8071784966648129126400*z^20 + O(z^21)
This returns a geometric Frobenius on the Diedonne module with respect to the basis , the invariant differential, and . It satisfies .
INPUT:
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)]
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 the unit root of the characteristic polynomial of Frobenius on and is the Neron period of .
INPUT:
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(3))*alpha + (O(3^2)) + ((O(3^-1))*alpha + (2*3^-1 + O(3^0)))*T + ((O(3^-1))*alpha + (2*3^-1 + O(3^0)))*T^2 + ((O(3^-2))*alpha + (O(3^-1)))*T^3 + ((O(3^-1))*alpha + (3^-1 + O(3^0)))*T^4 + O(T^5)
sage: L.alpha(2).parent()
Univariate Quotient Polynomial Ring in alpha over 3-adic Field with capped
relative precision 2 with modulus (1 + O(3^2))*x^2 + (3 + O(3^3))*x + (3 + O(3^3))
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 the unit root of the characteristic polynomial of Frobenius on and is the Neron period of .
INPUT:
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(3))*alpha + (O(3^2)) + ((O(3^-1))*alpha + (2*3^-1 + O(3^0)))*T + ((O(3^-1))*alpha + (2*3^-1 + O(3^0)))*T^2 + ((O(3^-2))*alpha + (O(3^-1)))*T^3 + ((O(3^-1))*alpha + (3^-1 + O(3^0)))*T^4 + O(T^5)
sage: L.alpha(2).parent()
Univariate Quotient Polynomial Ring in alpha over 3-adic Field with capped
relative precision 2 with modulus (1 + O(3^2))*x^2 + (3 + O(3^3))*x + (3 + O(3^3))