Package sage :: Package schemes :: Package elliptic_curves :: Module padic_lseries :: Class pAdicLseries
[hide private]
[frames] | no frames]

Class pAdicLseries

source code

                      object --+    
                               |    
structure.sage_object.SageObject --+
                                   |
                                  pAdicLseries
Known Subclasses:
pAdicLseriesOrdinary, pAdicLseriesSupersingular


The p-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 + (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)

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)        



Instance Methods [hide private]
 
__init__(self, E, p, normalize, use_eclib=False)
INPUT: E -- an elliptic curve p -- a prime of good reduction normalize -- (bool, default: True); whether or not to correctly normalize the L-series, up to a power of -1 and 2.
source code
 
elliptic_curve(self)
Return the elliptic curve to which this p-adic L-series is associated.
source code
 
prime(self)
EXAMPLES:...
source code
 
_repr_(self)
Return print representation.
source code
 
modular_symbol(self, r)
Return the modular symbol used to compute this p-adic L-series evaluated at r.
source code
 
measure(self, a, n, prec)
Return the measure on $\ZZ_p^*$ defined by $$ \mu_{E,\alpha}^+ ( a + p^n \ZZ_p ) = \frac{1}{\alpha^n} \modsym{a}{p^n} - \frac{1}{\alpha^{n+1}} \modsym{a}{p^{n-1}} $$ that is used to define this $p$-adic $L$-function.
source code
 
alpha(self, prec=20)
Return a p-adic root $\alpha$ of the polynomial $x^2 - a_p x + p$ with $\ord_p(\alpha) < 1$.
source code
 
order_of_vanishing(self)
Return the order of vanishing of this $p$-adic $L$-series.
source code
 
_c_bounds(self, n) source code
 
_prec_bounds(self, n, prec) source code
 
teichmuller(self, prec)
Return Teichmuller lifts to the given precision.
source code
 
_e_bounds(self, n, prec) source code
 
_get_series_from_cache(self, n, prec) source code
 
_set_series_in_cache(self, n, prec, f) source code

Inherited from structure.sage_object.SageObject: __hash__, __new__, __repr__, _axiom_, _axiom_init_, _gap_, _gap_init_, _gp_, _gp_init_, _interface_, _interface_init_, _interface_is_cached_, _kash_, _kash_init_, _macaulay2_, _macaulay2_init_, _magma_, _magma_init_, _maple_, _maple_init_, _mathematica_, _mathematica_init_, _maxima_, _maxima_init_, _octave_, _octave_init_, _pari_, _pari_init_, _r_init_, _sage_, _singular_, _singular_init_, category, db, dump, dumps, plot, rename, reset_name, save, version

Inherited from object: __delattr__, __getattribute__, __reduce__, __reduce_ex__, __setattr__, __str__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, E, p, normalize, use_eclib=False)
(Constructor)

source code 

INPUT:
    E -- an elliptic curve
    p -- a prime of good reduction
    normalize -- (bool, default: True); whether or not to correctly
         normalize the L-series, up to a power of -1 and 2.
         If False computations may be faster.

Overrides: object.__init__

elliptic_curve(self)

source code 

Return the elliptic curve to which this p-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

prime(self)

source code 

EXAMPLES:
    sage: L = EllipticCurve('11a').padic_lseries(5)
    sage: L.prime()
    5

_repr_(self)

source code 

Return print representation.

    sage: e = EllipticCurve('37a')
    sage: e.padic_lseries(3)
    3-adic L-series of Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field
    sage: e.padic_lseries(3,normalize=False)
    3-adic L-series of Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field (not normalized)
    sage: L = e.padic_lseries(3,normalize=False)
    sage: L.rename('(factor)*L_3(T)')
    sage: L
    (factor)*L_3(T)

modular_symbol(self, r)

source code 

Return the modular symbol used to compute this p-adic
L-series evaluated at r.

EXAMPLES:
    sage: L = EllipticCurve('11a').padic_lseries(5)
    sage: [L.modular_symbol(r) for r in [0,1/5,oo,1/11]]
    [1/5, 6/5, 0, 0]        

measure(self, a, n, prec)

source code 

Return the measure on $\ZZ_p^*$ defined by
   $$
     \mu_{E,\alpha}^+ ( a + p^n \ZZ_p  ) =
           \frac{1}{\alpha^n} \modsym{a}{p^n} - \frac{1}{\alpha^{n+1}} \modsym{a}{p^{n-1}}
   $$
that is used to define this $p$-adic $L$-function.

INPUT:
    a -- an integer
    n -- a non-negative integer
    prec -- an integer

EXAMPLES:
    sage: E = EllipticCurve('37a')
    sage: L = E.padic_lseries(5)
    sage: L.measure(1,2, prec=9)
    1 + 4*5 + 2*5^2 + 4*5^3 + 3*5^4 + 5^5 + 4*5^6 + 4*5^7 + 4*5^8 + O(5^9)

alpha(self, prec=20)

source code 

Return a p-adic root $\alpha$ of the polynomial $x^2 - a_p x
+ p$ with $\ord_p(\alpha) < 1$.  In the ordinary case this is
just the unit root.

INPUT:
    prec -- positive integer, the p-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)

order_of_vanishing(self)

source code 

Return the order of vanishing of this $p$-adic $L$-series.

The output of this function is provably correct, due to a
theorem of Kato.  This function will terminate if and only if
the Mazur-Tate-Teitelbaum analogue of the BSD conjecture about
the rank of the curve is true and the subgroup of elements of
p-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 p-adic BSD rank conjecture is
true and that the p-part of Sha is finite.

NOTE: currently $p$ must be a prime of good ordinary reduction.

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            

teichmuller(self, prec)

source code 

Return Teichmuller lifts to the given precision.

INPUT:
    prec -- a positive integer.
    
OUTPUT:
    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]