Tate’s parametrisation of -adic curves with multiplicative reduction#
Let
See chapter V of [Sil1994] for more details.
AUTHORS:
Chris Wuthrich (23/05/2007): first version
William Stein (2007-05-29): added some examples; editing.
Chris Wuthrich (04/09): reformatted docstrings.
- class sage.schemes.elliptic_curves.ell_tate_curve.TateCurve(E, p)#
Bases:
SageObject
Tate’s
-adic uniformisation of an elliptic curve with multiplicative reduction.Note
Some of the methods of this Tate curve only work when the reduction is split multiplicative over
.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 sage: eq == loads(dumps(eq)) True
REFERENCES: [Sil1994]
- E2(prec=20)#
Return the value of the
-adic Eisenstein series of weight 2 evaluated on the elliptic curve having split multiplicative reduction.INPUT:
prec
– the -adic precision, default is 20.
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) sage: T = EllipticCurve('14').tate_curve(7) sage: T.E2(30) 2 + 4*7 + 7^2 + 3*7^3 + 6*7^4 + 5*7^5 + 2*7^6 + 7^7 + 5*7^8 + 6*7^9 + 5*7^10 + 2*7^11 + 6*7^12 + 4*7^13 + 3*7^15 + 5*7^16 + 4*7^17 + 4*7^18 + 2*7^20 + 7^21 + 5*7^22 + 4*7^23 + 4*7^24 + 3*7^25 + 6*7^26 + 3*7^27 + 6*7^28 + O(7^30)
- L_invariant(prec=20)#
Return the mysterious
-invariant associated to an elliptic curve with split multiplicative reduction.One instance where this constant appears is in the exceptional case of the
-adic Birch and Swinnerton-Dyer conjecture as formulated in [MTT1986]. See [Col2004] for a detailed discussion.INPUT:
prec
– the -adic precision, default is 20.
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)
- curve(prec=20)#
Return the
-adic elliptic curve of the form .This curve with split multiplicative reduction is isomorphic to the given curve over the algebraic closure of
.INPUT:
prec
– the -adic precision, default is 20.
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
- is_split()#
Return
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
- lift(P, prec=20)#
Given a point
in the formal group of the elliptic curve with split multiplicative reduction, this produces an element in mapped to the point by the Tate parametrisation. The algorithm return the unique such element in .INPUT:
P
– a point on the elliptic curve.prec
– the -adic precision, default is 20.
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^10)) 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))
- original_curve()#
Return the elliptic curve the Tate curve was constructed from.
EXAMPLES:
sage: eq = EllipticCurve('130a1').tate_curve(5) sage: eq.original_curve() Elliptic Curve defined by y^2 + x*y + y = x^3 - 33*x + 68 over Rational Field
- padic_height(prec=20)#
Return the canonical
-adic height function on the original curve.INPUT:
prec
– the -adic precision, default is 20.
OUTPUT:
A function that can be evaluated on rational points of
.
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) 2*5^-1 + 1 + 2*5 + 2*5^2 + 3*5^3 + 3*5^6 + 5^7 + O(5^9)
Check that it is a quadratic function:
sage: h(3*P)-3^2*h(P) O(5^9)
- padic_regulator(prec=20)#
Compute the canonical
-adic regulator on the extended Mordell-Weil group as in [MTT1986] (with the correction of [Wer1998] and sign convention in [SW2013].)The
-adic Birch and Swinnerton-Dyer conjecture predicts that this value appears in the formula for the leading term of the -adic L-function.INPUT:
prec
– the -adic precision, default is 20.
EXAMPLES:
sage: eq = EllipticCurve('130a1').tate_curve(5) sage: eq.padic_regulator() 2*5^-1 + 1 + 2*5 + 2*5^2 + 3*5^3 + 3*5^6 + 5^7 + 3*5^9 + 3*5^10 + 3*5^12 + 4*5^13 + 3*5^15 + 2*5^16 + 3*5^18 + 4*5^19 + 4*5^20 + 3*5^21 + 4*5^22 + O(5^23)
- parameter(prec=20)#
Return the Tate parameter
such that the curve is isomorphic over the algebraic closure of to the curve .INPUT:
prec
– the -adic precision, default is 20.
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)
- parametrisation_onto_original_curve(u, prec=None)#
Given an element
in , this computes its image on the original curve under the -adic uniformisation of .INPUT:
u
– a non-zero -adic number.prec
– the -adic precision, default is the relative precision ofu
otherwise 20.
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^10)) sage: eq.parametrisation_onto_original_curve(1+5+5^2+O(5^10), prec=20) Traceback (most recent call last): ... ValueError: requested more precision than the precision of u
Here is how one gets a 4-torsion point on
over :sage: R = Qp(5,30) sage: i = R(-1).sqrt() sage: T = eq.parametrisation_onto_original_curve(i, prec=30); T (2 + 3*5 + 4*5^2 + 2*5^3 + 5^4 + 4*5^5 + 2*5^7 + 5^8 + 5^9 + 5^12 + 3*5^13 + 3*5^14 + 5^15 + 4*5^17 + 5^18 + 3*5^19 + 2*5^20 + 4*5^21 + 5^22 + 3*5^23 + 3*5^24 + 4*5^25 + 3*5^26 + 3*5^27 + 3*5^28 + 3*5^29 + O(5^30) : 3*5 + 5^2 + 5^4 + 3*5^5 + 3*5^7 + 2*5^8 + 4*5^9 + 5^10 + 2*5^11 + 4*5^13 + 2*5^14 + 4*5^15 + 4*5^16 + 3*5^17 + 2*5^18 + 4*5^20 + 2*5^21 + 2*5^22 + 4*5^23 + 4*5^24 + 4*5^25 + 5^26 + 3*5^27 + 2*5^28 + O(5^30) : 1 + O(5^30)) sage: 4*T (0 : 1 + O(5^30) : 0)
- parametrisation_onto_tate_curve(u, prec=None)#
Given an element
in , this computes its image on the Tate curve under the -adic uniformisation of .INPUT:
u
– a non-zero -adic number.prec
– the -adic precision, default is the relative precision ofu
otherwise 20.
EXAMPLES:
sage: eq = EllipticCurve('130a1').tate_curve(5) sage: eq.parametrisation_onto_tate_curve(1+5+5^2+O(5^10), prec=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^10)) 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^10)) sage: eq.parametrisation_onto_tate_curve(1+5+5^2+O(5^10), prec=20) Traceback (most recent call last): ... ValueError: requested more precision than the precision of u
- prime()#
Return the residual characteristic
.EXAMPLES:
sage: eq = EllipticCurve('130a1').tate_curve(5) sage: eq.original_curve() Elliptic Curve defined by y^2 + x*y + y = x^3 - 33*x + 68 over Rational Field sage: eq.prime() 5