Package sage :: Package schemes :: Package elliptic_curves :: Module ell_tate_curve :: Class TateCurve
[hide private]
[frames] | no frames]

Class TateCurve

source code

                      object --+    
                               |    
structure.sage_object.SageObject --+
                                   |
                                  TateCurve


Tate's $p$-adic uniformisation of an elliptic curve with
multiplicative reduction.  Reference : Silverman. Advanced Topics
in the Arithmetic of Elliptic Curves.

NOTE : Some of the methods of this Tate curve only work when the
reduction is split multiplicative over $\QQ_p$.

EXAMPLES:
    sage: e = EllipticCurve('130a1')
    sage: eq = e.tate_curve(5); eq
    5-adic Tate curve associated to the Elliptic Curve defined by y^2 + x*y + y = x^3 - 33*x + 68 over Rational Field



Instance Methods [hide private]
 
__init__(self, E, p)
INPUT: E -- an elliptic curve p -- a prime where E has multiplicative reduction, i.
source code
 
_repr_(self)
Return print representation.
source code
 
originial_curve(self)
Returns the elliptic curve the Tate curve was constructed from.
source code
 
prime(self)
Returns the residual characteristic.
source code
 
parameter(self, prec=20)
Returns the Tate parameter $q$ such that the curve is isomorphic over the algebraic closure of $\QQ_p$ to the curve $\QQ_p^{\times}/q^{\ZZ}$.
source code
 
__sk(self, k, prec) source code
 
__delta(self, prec) source code
 
curve(self, prec=20)
Returns the p-adic elliptic curve of the form $y^2+x y = x^3 + s_4 x+s_6$.
source code
 
_Csquare(self, prec=20)
Returns the square of the constant C such that the canonical Neron differential $\omega$ and the canoncial differential $ rac{du}{u}$ on $\QQ^{ imes}/q^{\ZZ}$ are linked by $\omega = C rac{du}{u}$.
source code
 
E2(self, prec=20)
Returns value of the $p$-adic Eisenstein series of weight 2 evaluated on the elliptic curve having split multiplicative reduction.
source code
 
is_split(self)
Returns True if the given elliptic curve has split multiplicative reduction.
source code
 
parametrisation_onto_tate_curve(self, u, prec=20)
Given an element $u$ in $\QQ_p^{ imes}$, this computes its image on the Tate curve under the $p$-adic uniformisation of E.
source code
 
L_invariant(self, prec=20)
Returns the ``mysterious'' $\mathcal{L}$-invariant associated to an elliptic curve with split multiplicative reduction.
source code
 
_isomorphism(self, prec=20)
Returns the isomorphism between self.curve() and the given curve in the form of a vector $[u,r,s,t]$ of $p$-adic numbers.
source code
 
_inverse_isomorphism(self, prec=20)
Returns the isomorphism between the given curve and self.curve() in the form of a vector $[u,r,s,t]$ of $p$-adic numbers.
source code
 
lift(self, P, prec=20)
Given a point $P$ in the formal group of the elliptic curve $E$ with split multiplicative reduction, this produces an element u in $\QQ_p^{ imes}$ mapped to the point $P$ by the Tate parametrisation.
source code
 
parametrisation_onto_original_curve(self, u, prec=20)
Given an element $u$ in $\QQ_p^{ imes}$, this computes its image on the original curve under the $p$-adic uniformisation of E.
source code
 
__padic_sigma_square(self, u, prec=20) source code
 
padic_height(self, prec=20)
Returns the canonical $p$-adic height function on the original curve.
source code
 
padic_regulator(self, prec=20)
Computes the canonical p-adic regulator on the extended Mordell-Weil group as in MTT.
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)
(Constructor)

source code 

INPUT:
    E -- an elliptic curve
    p -- a prime where E has multiplicative reduction,
         i. e. such that j(E) has negative valuation

Overrides: object.__init__

originial_curve(self)

source code 

Returns the elliptic curve the Tate curve was constructed from.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.originial_curve()
    Elliptic Curve defined by y^2 + x*y + y = x^3 - 33*x + 68 over Rational Field

prime(self)

source code 

Returns the residual characteristic.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.originial_curve()
    Elliptic Curve defined by y^2 + x*y + y = x^3 - 33*x + 68 over Rational Field
    sage: eq.prime()
    5

parameter(self, prec=20)

source code 

Returns the Tate parameter $q$ such that the curve is isomorphic over the algebraic closure of $\QQ_p$ to the curve
$\QQ_p^{\times}/q^{\ZZ}$.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.parameter(prec=5)
    3*5^3 + 3*5^4 + 2*5^5 + 2*5^6 + 3*5^7 + O(5^8)

curve(self, prec=20)

source code 

Returns the p-adic elliptic curve of the form $y^2+x y = x^3 + s_4 x+s_6$.
This curve with split multiplicative reduction is isomorphic to the given curve
over the algebraic closure of $\QQ_p$.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.curve(prec=5)
    Elliptic Curve defined by y^2 + (1+O(5^5))*x*y  = x^3 +
    (2*5^4+5^5+2*5^6+5^7+3*5^8+O(5^9))*x + (2*5^3+5^4+2*5^5+5^7+O(5^8)) over 5-adic
    Field with capped relative precision 5

_Csquare(self, prec=20)

source code 

Returns the square of the constant C such that the canonical Neron differential $\omega$
and the canoncial differential $rac{du}{u}$ on $\QQ^{  imes}/q^{\ZZ}$ are linked by
$\omega = C rac{du}{u}$. This constant is only a square in $\QQ_p$ if the curve has split
multiplicative reduction.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq._Csquare(prec=5)
    4 + 2*5^2 + 2*5^4 + O(5^5)

E2(self, prec=20)

source code 

Returns value of the $p$-adic Eisenstein series of weight 2 evaluated on the elliptic
curve having split multiplicative reduction.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.E2(prec=10)
    4 + 2*5^2 + 2*5^3 + 5^4 + 2*5^5 + 5^7 + 5^8 + 2*5^9 + O(5^10)

is_split(self)

source code 

Returns True if the given elliptic curve has split multiplicative reduction.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.is_split()
    True

    sage: eq = EllipticCurve('37a1').tate_curve(37)
    sage: eq.is_split()
    False

parametrisation_onto_tate_curve(self, u, prec=20)

source code 

Given an element $u$ in $\QQ_p^{        imes}$, this computes its image on the Tate curve
under the $p$-adic uniformisation of E.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.parametrisation_onto_tate_curve(1+5+5^2+O(5^10))
    (5^-2 + 4*5^-1 + 1 + 2*5 + 3*5^2 + 2*5^5 + 3*5^6 + O(5^7) :
    4*5^-3 + 2*5^-1 + 4 + 2*5 + 3*5^4 + 2*5^5 + O(5^6) : 1 + O(5^20))

L_invariant(self, prec=20)

source code 

Returns the ``mysterious'' $\mathcal{L}$-invariant associated
to an elliptic curve with split multiplicative reduction. One
instance where this constant appears is in the exceptional
case of the $p$-adic Birch and Swinnerton-Dyer conjecture as
formulated by Mazur-Tate-Teitelbaum (Invent. Math. 84, 1986).

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.L_invariant(prec=10)
    5^3 + 4*5^4 + 2*5^5 + 2*5^6 + 2*5^7 + 3*5^8 + 5^9 + O(5^10)

_isomorphism(self, prec=20)

source code 

Returns the isomorphism between self.curve() and the given curve in the
form of a vector $[u,r,s,t]$ of $p$-adic numbers. For this to exist
the given curve has to have split multiplicative reduction over Q_p.

More precisely, if $E$ has coordinates $x$ and $y$ and the Tate curve
has coordinates $X$, $Y$ with $Y^2 + XY = X^3 + s_4 X +s_6$ then
$X = u^2 x +r$ and $Y = u^3 y +s u^2 x +t$

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq._isomorphism(prec=5)
    [2 + 3*5^2 + 2*5^3 + 4*5^4 + O(5^5), 4 + 3*5 + 4*5^2 + 2*5^3 + O(5^5),
     3 + 2*5 + 5^2 + 5^3 + 2*5^4 + O(5^5), 2 + 5 + 3*5^2 + 5^3 + 5^4 + O(5^5)]

_inverse_isomorphism(self, prec=20)

source code 

Returns the isomorphism between the given curve and self.curve() in the
form of a vector $[u,r,s,t]$ of $p$-adic numbers. For this to exist
the given curve has to have split multiplicative reduction over Q_p.

More precisely, if $E$ has coordinates $x$ and $y$ and the Tate curve
has coordinates $X$, $Y$ with $Y^2 + XY = X^3 + s_4 X +s_6$ then
$x = u^2 X +r$ and $y = u^3 Y +s u^2 X +t$

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq._inverse_isomorphism(prec=5)
    [3 + 2*5 + 3*5^3 + O(5^5), 4 + 2*5 + 4*5^3 + 3*5^4 + O(5^5),
    1 + 5 + 4*5^3 + 2*5^4 + O(5^5), 5 + 2*5^2 + 3*5^4 + O(5^5)]

lift(self, P, prec=20)

source code 

Given a point $P$ in the formal group of the elliptic curve $E$ with split multiplicative reduction,
this produces an element u in $\QQ_p^{  imes}$ mapped to the point $P$ by the Tate parametrisation.
The algorithm return the unique such element in $1+p\ZZ_p$.

EXAMPLES:
    sage: e = EllipticCurve('130a1')
    sage: eq = e.tate_curve(5)
    sage: P = e([-6,10])
    sage: l = eq.lift(12*P, prec=10); l
    1 + 4*5 + 5^3 + 5^4 + 4*5^5 + 5^6 + 5^7 + 4*5^8 + 5^9 + O(5^10)

Now we map the lift l back and check that it is indeed right.
    sage: eq.parametrisation_onto_original_curve(l)
    (4*5^-2 + 2*5^-1 + 4*5 + 3*5^3 + 5^4 + 2*5^5 + 4*5^6 + O(5^7) : 2*5^-3 + 5^-1 + 4 + 4*5 + 5^2 + 3*5^3 + 4*5^4 + O(5^6) : 1 + O(5^20))
    sage: e5 = e.change_ring(Qp(5,9))
    sage: e5(12*P)
    (4*5^-2 + 2*5^-1 + 4*5 + 3*5^3 + 5^4 + 2*5^5 + 4*5^6 + O(5^7) : 2*5^-3 + 5^-1 + 4 + 4*5 + 5^2 + 3*5^3 + 4*5^4 + O(5^6) : 1 + O(5^9))

parametrisation_onto_original_curve(self, u, prec=20)

source code 

Given an element $u$ in $\QQ_p^{        imes}$, this computes its image on the original curve
under the $p$-adic uniformisation of E.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.parametrisation_onto_original_curve(1+5+5^2+O(5^10))
    (4*5^-2 + 4*5^-1 + 4 + 2*5^3 + 3*5^4 + 2*5^6 + O(5^7) :
    3*5^-3 + 5^-2 + 4*5^-1 + 1 + 4*5 + 5^2 + 3*5^5 + O(5^6) : 1 + O(5^20))

    # here is how one gets a 4-torsion point on $E$ over $\QQ_5$
    sage: R = Qp(5,10)
    sage: i = R(-1).sqrt()
    sage: T = eq.parametrisation_onto_original_curve(i); T
    (2 + 3*5 + 4*5^2 + 2*5^3 + 5^4 + 4*5^5 + 2*5^7 + 5^8 + 5^9 + O(5^10) :
    3*5 + 5^2 + 5^4 + 3*5^5 + 3*5^7 + 2*5^8 + 4*5^9 + O(5^10) : 1 + O(5^20))

    sage: 4*T
    (0 : 1 + O(5^20) : 0)

padic_height(self, prec=20)

source code 

Returns the canonical $p$-adic height function on the original curve.

EXAMPLES:
    sage: e = EllipticCurve('130a1')
    sage: eq = e.tate_curve(5)
    sage: h = eq.padic_height(prec=10)
    sage: P=e.gens()[0]
    sage: h(P)
    3*5^-1 + 3 + 2*5 + 2*5^2 + 5^3 + 4*5^4 + 4*5^5 + 5^6 + 3*5^7 + O(5^8)

    #this is a quadratic function
    sage: h(3*P)-3^2*h(P)
    O(5^8)

padic_regulator(self, prec=20)

source code 

Computes the canonical p-adic regulator on the extended Mordell-Weil group as in MTT.
(with the correction of Annette Werner.) The $p$-adic Birch and Swinnerton-Dyer conjecture
predicts that this value appears in the formula for the leading term of the
$p$-adic $L$-function.

EXAMPLES:
    sage: eq = EllipticCurve('130a1').tate_curve(5)
    sage: eq.padic_regulator()
    3*5^-1 + 3 + 2*5 + 2*5^2 + 5^3 + 4*5^4 + 4*5^5 + 5^6 + 3*5^7 + 4*5^8 + 5^9 +
    5^10 + 4*5^11 + 5^12 + 4*5^14 + 5^15 + 2*5^16 + 4*5^17 + 5^18 + O(5^19)