Elliptic curves over \(p\)-adic fields - Elliptic curves

Skip to content
Back to top
View this page
Edit this page

# Elliptic curves over \(p\)-adic fields

class sage.schemes.elliptic_curves.ell_padic_field.EllipticCurve_padic_field(R, data, category=None)

  Bases: `EllipticCurve_field`, `HyperellipticCurve_padic_field`

  Elliptic curve over a \(p\)-adic field.

  EXAMPLES:

  Sage

      sage: Qp = pAdicField(17)
      sage: E = EllipticCurve(Qp,[2,3]); E
      Elliptic Curve defined by y^2  = x^3 + (2+O(17^20))*x + (3+O(17^20))
       over 17-adic Field with capped relative precision 20
      sage: E == loads(dumps(E))
      True

  Python

      >>> from sage.all import *
      >>> Qp = pAdicField(Integer(17))
      >>> E = EllipticCurve(Qp,[Integer(2),Integer(3)]); E
      Elliptic Curve defined by y^2  = x^3 + (2+O(17^20))*x + (3+O(17^20))
       over 17-adic Field with capped relative precision 20
      >>> E == loads(dumps(E))
      True

  frobenius(P=None)

    Return the Frobenius as a function on the group of points of this elliptic curve.

    EXAMPLES:

    Sage

        sage: Qp = pAdicField(13)
        sage: E = EllipticCurve(Qp,[1,1])
        sage: type(E.frobenius())
        <... 'function'>
        sage: point = E(0,1)
        sage: E.frobenius(point)
        (0 : 1 + O(13^20) : 1 + O(13^20))

    Python

        >>> from sage.all import *
        >>> Qp = pAdicField(Integer(13))
        >>> E = EllipticCurve(Qp,[Integer(1),Integer(1)])
        >>> type(E.frobenius())
        <... 'function'>
        >>> point = E(Integer(0),Integer(1))
        >>> E.frobenius(point)
        (0 : 1 + O(13^20) : 1 + O(13^20))

    Check that Issue #29709 is fixed:

    Sage

        sage: Qp = pAdicField(13)
        sage: E = EllipticCurve(Qp,[0,0,1,0,1])
        sage: E.frobenius(E(1,1))
        Traceback (most recent call last):
        ...
        NotImplementedError: Curve must be in weierstrass normal form.
        sage: E = EllipticCurve(Qp,[0,1,0,0,1])
        sage: E.frobenius(E(0,1))
        (0 : 1 + O(13^20) : 1 + O(13^20))

    [Python]

        >>> from sage.all import *
        >>> Qp = pAdicField(Integer(13))
        >>> E = EllipticCurve(Qp,[Integer(0),Integer(0),Integer(1),Integer(0),Integer(1)])
        >>> E.frobenius(E(Integer(1),Integer(1)))
        Traceback (most recent call last):
        ...
        NotImplementedError: Curve must be in weierstrass normal form.
        >>> E = EllipticCurve(Qp,[Integer(0),Integer(1),Integer(0),Integer(0),Integer(1)])
        >>> E.frobenius(E(Integer(0),Integer(1)))
        (0 : 1 + O(13^20) : 1 + O(13^20))