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)[source]¶
Bases:
SageObjectTate’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)[source]¶
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: 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)[source]¶
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: 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)[source]¶
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: 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()[source]¶
Return
Trueif 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)[source]¶
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 curveprec– the -adic precision (default: 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()[source]¶
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)[source]¶
Return the canonical
-adic height function on the original curve.INPUT:
prec– the -adic precision (default: 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)[source]¶
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 -function.INPUT:
prec– the -adic precision (default: 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)[source]¶
Return the Tate parameter
such that the curve is isomorphic over the algebraic closure of to the curve .INPUT:
prec– the -adic precision (default: 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)[source]¶
Given an element
in , this computes its image on the original curve under the -adic uniformisation of .INPUT:
u– a nonzero -adic numberprec– 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)[source]¶
Given an element
in , this computes its image on the Tate curve under the -adic uniformisation of .INPUT:
u– a nonzero -adic numberprec– 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