[Next][Prev] [Right] [Left] [Up] [Index] [Root]

ELLIPTIC CURVES

 
Introduction
 
Creation Functions
      Creation of an Elliptic Curve
      Creation Predicates
      Changing the Base Ring
      Alternative Models
      Predicates on Curve Models
      Twisting Elliptic Curves
 
Operations on Curves
      Elementary Invariants
      Associated Structures
      Predicates on Elliptic Curves
 
Subgroup Schemes
      Creation of Subgroup Schemes
      Associated Structures
      Predicates on Subgroup Schemes
      Points of Subgroup Schemes
 
Operations on Point Sets
      Creation of Point Sets
      Associated Structures
      Predicates on Point Sets
 
Operations on Points
      Creation of Points
      Creation Predicates
      Access Operations
      Associated Structures
      Arithmetic
      Point Order
      Predicates on Points
      Weil Pairing
 
Function Field
      Function Field and Polynomial Ring
      Torsion Polynomials
 
Curves over the Rationals
      Invariants of Rational Curves
      Kodaira Symbols
      Mordell--Weil Group
      Heights and Height Pairing
      Periods and Elliptic Logarithms
 
Integral and S-integral Points
      Integral Points
      S-integral Points
 
Elliptic Curve Database
 
Curves over Finite Fields
      Predicates for Supersingularity
      Enumeration of Points
      Point Counting
      Abelian Group Structure
      Discrete Logarithms
 
Morphisms
      Creation Functions
      Structure Operations
      The Endomorphism Ring
      The Automorphism Group
      Predicates on Isogenies
 
Bibliography







DETAILS

 
Introduction

 
Creation Functions

      Creation of an Elliptic Curve
            EllipticCurve([a,b]) : [ RngElt ] -> CrvEll
            EllipticCurve(j) : RngElt -> CrvEll
            EllipticCurve(C) : CrvHyp -> CrvEll, Map, Map
            EllipticCurve(C) : Crv -> CrvEll, Map, Map
            EllipticCurve(C, P) : Crv, Pt -> CrvEll, Map, Map
            SupersingularEllipticCurve(K) : FldFin -> CrvEll

      Creation Predicates
            IsEllipticCurve([a,b]) : [ RngElt ] -> BoolElt, CrvEll
            IsEllipticCurve(C) : CrvHyp -> BoolElt, CrvEll, Map, Map
            Example CrvEll_Creation (H85E1)

      Changing the Base Ring
            BaseChange(E, K) : CrvEll, Rng -> CrvEll
            ChangeRing(E, K) : CrvEll, Rng -> CrvEll
            BaseChange(E, h) : CrvEll, Map -> CrvEll
            BaseChange(E, n) : CrvEll, RngIntElt -> CrvEll
            Example CrvEll_BaseExtend (H85E2)

      Alternative Models
            WeierstrassModel(E) : CrvEll -> CrvEll, Map, Map
            IntegralModel(E) : CrvEll -> CrvEll, Map, Map
            MinimalModel(E) : CrvEll -> CrvEll, Map, Map
            SimplifiedModel(E): CrvEll -> CrvEll, Map, Map

      Predicates on Curve Models
            IsWeierstrassModel(E) : CrvEll -> BoolElt
            IsIntegralModel(E) : CrvEll -> BoolElt
            IsMinimalModel(E) : CrvEll -> BoolElt
            IsSimplifiedModel(E) : CrvEll -> BoolElt
            Example CrvEll_Models (H85E3)

      Twisting Elliptic Curves
            QuadraticTwist(E, d) : CrvEll, RngElt -> CrvEll
            QuadraticTwist(E) : CrvEll -> CrvEll
            QuadraticTwists(E) : CrvEll -> SeqEnum
            Twists(E) : CrvEll -> SeqEnum
            Example CrvEll_Twists (H85E4)

 
Operations on Curves

      Elementary Invariants
            aInvariants(E) : CrvEll -> [ RngElt ]
            bInvariants(E) : CrvEll -> [ RngElt ]
            cInvariants(E) : CrvEll -> [ RngElt ]
            Discriminant(E) : CrvEll -> RngElt
            jInvariant(E) : CrvEll -> RngElt
            Example CrvEll_Invariants (H85E5)
            Example CrvEll_GenericCurve (H85E6)

      Associated Structures
            Category(E) : CrvEll -> Cat
            BaseRing(E) : CrvEll -> Rng

      Predicates on Elliptic Curves
            E eq F : CrvEll, CrvEll -> BoolElt
            E ne F : CrvEll, CrvEll -> BoolElt
            IsIsomorphic(E, F) : CrvEll, CrvEll -> BoolElt, Map
            IsIsogenous(E, F) : CrvEll, CrvEll -> BoolElt
            Example CrvEll_Twists2 (H85E7)

 
Subgroup Schemes

      Creation of Subgroup Schemes
            SubgroupScheme(G, f) : SchGrpEll, RngUPolElt -> SchGrpEll
            TorsionSubgroupScheme(G, n) : SchGrpEll, RngIntElt -> SchGrpEll

      Associated Structures
            Category(G) : SchGrpEll -> Cat
            Curve(G) : SchGrpEll -> CrvEll
            BaseRing(G) : SchGrpEll -> Rng
            DefiningSubschemePolynomial(G) : SchGrpEll -> RngUPolElt

      Predicates on Subgroup Schemes
            G1 eq G2 : SchGrpEll, SchGrpEll -> BoolElt
            G1 ne G2 : SchGrpEll, SchGrpEll -> BoolElt

      Points of Subgroup Schemes
            # G: SchGrpEll -> RngIntElt
            FactoredOrder(G) : SchGrpEll -> RngIntElt
            Points(G) : SchGrpEll -> SetIndx
            Example CrvEll_SubgroupSchemes (H85E8)

 
Operations on Point Sets

      Creation of Point Sets
            E(L) : CrvEll, Rng -> SetPtEll
            E(m) : CrvEll, Map -> SetPtEll

      Associated Structures
            Category(H) : SetPtEll -> Cat
            Scheme(H) : SetPtEll -> CrvEll
            Curve(H) : SetPtEll -> CrvEll
            Ring(H) : SetPtEll -> Rng

      Predicates on Point Sets
            H1 eq H2 : SetPtEll, SetPtEll -> BoolElt
            H1 ne H2 : SetPtEll, SetPtEll -> BoolElt
            Example CrvEll_PointSets (H85E9)

 
Operations on Points

      Creation of Points
            Points(H, x) : SetPtEll, RngElt -> [ PtEll ]
            PointsAtInfinity(H) : SetPtEll -> @ PtEll @

      Creation Predicates
            IsPoint(H, S) : SetPtEll, [ RngElt ] -> BoolElt, PtEll
            IsPoint(H, x) : SetPtEll, RngElt -> BoolElt, PtEll

      Access Operations
            P[i] : PtEll, RngIntElt -> RngElt
            ElementToSequence(P): PtEll -> [ RngElt ]

      Associated Structures
            Category(P) : PtEll -> Cat
            Parent(P) : PtEll -> SetPtEll
            Scheme(P) : SetPtEll -> CrvEll

      Arithmetic
            - P : PtEll -> PtEll
            P + Q : PtEll, PtEll -> PtEll
            P +:= Q : PtEll, PtEll ->
            P - Q : PtEll, PtEll -> PtEll
            P -:= Q : PtEll, PtEll ->
            n * P : RngIntElt, PtEll -> PtEll
            P *:= n : PtEll, RngIntElt ->
            Example CrvEll_PointArithmetic (H85E10)
            Example CrvEll_GenericPoint (H85E11)

      Point Order
            Order(P) : PtEll -> RngIntElt
            FactoredOrder(P) : PtEll -> RngIntElt
            Example CrvEll_PlayWithPoints (H85E12)

      Predicates on Points
            IsId(P) : PtEll -> BoolElt
            P eq Q : PtEll, PtEll -> BoolElt
            P ne Q : PtEll, PtEll -> BoolElt
            P in H : PtEll, SetPtEll -> BoolElt
            P in E : PtEll, CrvEll -> BoolElt
            IsOrder(P, m) : PtEll, RngIntElt -> BoolElt
            IsIntegral(P) : PtEll -> BoolElt
            IsSIntegral(P, S) : PtEll, SeqEnum -> BoolElt

      Weil Pairing
            WeilPairing(P, Q, n) : PtEll, PtEll, RngIntElt -> RngElt
            IsLinearlyIndependent(S, n) : [ PtEll ], RngIntElt -> BoolElt
            IsLinearlyIndependent(P, Q, n) : PtEll, PtEll, RngIntElt -> BoolElt
            Example CrvEll_WeilPairing (H85E13)

 
Function Field

      Function Field and Polynomial Ring
            FunctionField(E) : CrvEll -> FldFun
            EquationOrder(E) : CrvEll -> RngOrdFun
            PolynomialRing(E) : CrvEll -> RngMPol, Map
            DefiningPolynomial(E) : CrvEll -> RngMPolElt

      Torsion Polynomials
            DivisionFunction(E, n) : Fld, RngIntElt -> RngFunOrdElt
            DivisionPolynomial(E, n) : CrvEll, RngIntElt -> RngUPolElt, RngUPolElt, RngUPolElt
            TwoTorsionPolynomial(E) : CrvEll -> RngMPolElt
            Example CrvEll_DivisionPolynomial (H85E14)

 
Curves over the Rationals

      Invariants of Rational Curves
            Conductor(E) : CrvEll -> RngIntElt
            BadPrimes(E) : CrvEll -> [ RngIntElt ]
            TamagawaNumber(E, p) : CrvEll, RngIntElt -> RngIntElt
            TamagawaNumbers(E) : CrvEll -> [ RngIntElt ]
            LocalInformation(E, p) : CrvEll, RngIntElt -> <RngIntElt, RngIntElt, RngIntElt, RngIntElt, SymKod>
            LocalInformation(E) : CrvEll, RngIntElt -> [ Tup ]

      Kodaira Symbols
            KodairaSymbol(E, p) : CrvEll, RngIntElt -> SymKod
            KodairaSymbols(E) : CrvEll -> [ SymKod ]
            KodairaSymbol(s) : MonStgElt -> SymKod
            h eq k : SymKod, SymKod -> BoolElt
            h ne k : SymKod, SymKod -> BoolElt
            Example CrvEll_Kodaira (H85E15)

      Mordell--Weil Group
            Rank(H: parameters) : SetPtEll -> RngIntElt
            RankBounds(H: parameters) : SetPtEll -> RngIntElt, RngIntElt
            AbelianGroup(H: parameters) : SetPtEll -> GrpAb, Map
            TorsionSubgroup(H) : SetPtEll -> GrpAb, Map
            Generators(H) : SetPtEll -> [ PtEll ]
            NumberOfGenerators(H) : SetPtEll -> RngIntElt
            H . i : SetPtEll, RngIntElt -> PtEll
            Example CrvEll_MordellWeil (H85E16)
            Example CrvEll_Rank (H85E17)

      Heights and Height Pairing
            NaiveHeight(P) : PtEll -> FldPrElt
            Height(P: parameters) : PtEll -> FldPrElt
            LocalHeight(P, p) : PtEll, RngIntElt -> FldPrElt
            HeightPairing(P, Q: parameters) : PtEll, PtEll -> FldPrElt
            SilvermanBound(H) : SetPtEll -> FldPrElt
            Regulator(S) : [ PtEll ] -> FldPrElt
            Regulator(H: parameters) : SetPtEll -> FldPrElt
            IsLinearlyIndependent(P, Q) : PtEll, PtEll -> BoolElt, ModTupElt
            IsLinearlyIndependent(S) : [ PtEll ] -> BoolElt, ModTupElt
            Example CrvEll_FunWithHeights (H85E18)
            Example CrvEll_LinearIndependence (H85E19)

      Periods and Elliptic Logarithms
            Periods(E: parameters) : CrvEll -> [ FldPRElt ]
            RealPeriod(E: parameters) : CrvEll -> FldPRElt
            EllipticLogarithm(P: parameters): PtEll -> FldPrElt
            pAdicEllipticLogarithm(P, p: parameters): PtEll, RngIntElt -> FldLocElt

 
Integral and S-integral Points

      Integral Points
            IntegralPoints(E) : CrvEll -> [ PtEll ], [ Tup ]
            Example CrvEll_IntegralPoints (H85E20)
            IntegralQuarticPoints(Q) : [ RngIntElt ] -> [ SeqEnum ]
            IntegralQuarticPoints(Q, P) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
            Example CrvEll_IntegralPointsSequence (H85E21)

      S-integral Points
            SIntegralPoints(E, S) : CrvEll, SeqEnum -> [ PtEll ], [ Tup ]
            Example CrvEll_SIntegralPoints (H85E22)
            SIntegralQuarticPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
            SIntegralLjunggrenPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
            SIntegralDesbovesPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
            Example CrvEll_Desboves (H85E23)

 
Elliptic Curve Database
      CremonaDatabase(: parameters) : -> DB
      SetBufferSize(D, n) : DB, RngIntElt ->
      LargestConductor(D) : DB -> RngIntElt
      ConductorRange(D) : DB -> RngIntElt, RngIntElt
      # D : DB -> RngIntElt
      NumberOfCurves(D, N) : DB, RngIntElt -> RngIntElt
      NumberOfCurves(D, N, i) : DB, RngIntElt, RngIntElt -> RngIntElt
      NumberOfIsogenyClasses(D, N) : DB, RngIntElt -> RngIntElt
      EllipticCurve(D, N, I, J): DB, RngIntElt, RngIntElt, RngIntElt -> CrvEll
      EllipticCurve(D, S): DB, RngIntElt, MonStgElt -> CrvEll
      Random(D) : DB -> CrvEll
      CremonaReference(D, E) : CrvEll -> MonStgElt
      Example CrvEll_ecdb1 (H85E24)
      EllipticCurves(D, N, I) : DB, RngIntElt, RngIntElt -> [ CrvEll ]
      EllipticCurves(D, N) : DB, RngIntElt -> [ CrvEll ]
      EllipticCurves(D, S) : DB, MonStgElt -> [ CrvEll ]
      EllipticCurves(D) : DB -> [ CrvEll ]
      Example CrvEll_ecdb2 (H85E25)

 
Curves over Finite Fields

      Predicates for Supersingularity
            IsSupersingular(E: parameters) : CrvEll -> BoolElt
            IsProbablySupersingular(E) : CrvEll -> BoolElt
            IsOrdinary(E) : CrvEll -> BoolElt

      Enumeration of Points
            Points(H) : SetPtEll -> @ PtEll @
            Random(H): SetPtEll -> PtEll

      Point Counting
            # H: SetPtEll -> RngIntElt
            FactoredOrder(H) : SetPtEll -> RngIntElt
            SEA(H: parameters) : SetPtEll -> RngIntElt
            Example CrvEll_SEA (H85E26)
            SetVerbose("SEA", v) : MonStgElt, RngIntElt ->
            Order(H, r) : SetPtEll, RngIntElt -> RngIntElt
            Trace(H): SetPtEll -> RngIntElt
            Trace(H, r): SetPtEll, RngIntElt -> RngIntElt
            Example CrvEll_Order (H85E27)
            Example CrvEll_Twists (H85E28)
            ZetaFunction(E) : CrvEll -> FldFunRatUElt
            Example CrvEll_Invariants (H85E29)

      Abelian Group Structure
            AbelianGroup(H) : SetPtEll -> GrpAb, Map
            Generators(H) : SetPtEll -> [ PtEll ]
            NumberOfGenerators(H) : SetPtEll -> RngIntElt
            H . i : SetPtEll, RngIntElt -> PtEll
            Example CrvEll_AbelianGroup (H85E30)

      Discrete Logarithms
            Log(Q, P) : PtEll, PtEll -> RngIntElt
            Log(Q, P, t) : PtEll, PtEll, RngIntElt -> RngIntElt
            Example CrvEll_ECDL (H85E31)

 
Morphisms

      Creation Functions
            Morphism(E, F, psi, phi, omega) : CrvEll, CrvEll, RngMPolElt, RngMPolElt, RngMPolElt -> Map
            Example CrvEll_Isogeny (H85E32)
            Isomorphism(E, F, [r, s, t, u]) : CrvEll, CrvEll, Seq -> Map
            Isomorphism(E, F) : CrvEll, CrvEll -> Map
            Automorphism(E, [r, s, t, u]) : CrvEll, Seq -> Map
            IsomorphismData(I) : Map -> [ RngElt ]
            Example CrvEll_Isomorphisms (H85E33)
            IsIsomorphism(I) : Map -> BoolElt, Map
            IsomorphismToIsogeny(I) : Map -> Map
            Example CrvEll_Isomorphism (H85E34)
            TranslationMap(E, P) : CrvEll, PtEll -> Map
            RationalMap(i, t) : CrvEll, PtEll -> Map
            Example CrvEll_Map (H85E35)
            IsogenyFromKernel(G) : CrvEllSubgroup -> CrvEll, Map
            IsogenyFromKernelFactored(G) : CrvEllSubgroup -> CrvEll, Map
            IsogenyFromKernel(E, psi) : CrvEll, RngUPolElt -> CrvEll, Map
            IsogenyFromKernelFactored(E, psi) : CrvEllSubgroup -> CrvEll, Map
            PushThroughIsogeny(I, v) : Map, RngUPolElt -> RngUPolElt
            Example CrvEll_DualIsogeny (H85E36)

      Structure Operations
            IsogenyMapPsi(I) : Map -> RngUPolElt
            IsogenyMapPsiMulti(I) : Map -> RngUPolElt
            IsogenyMapPsiSquared(I) : Map -> RngUPolElt
            IsogenyMapPhi(I) : Map -> RngUPolElt
            IsogenyMapPhiMulti(I) : Map -> RngUPolElt
            IsogenyMapOmega(I) : Map -> RngMPolElt
            Kernel(I) : Map -> CrvEllSubgroup
            Degree(I) : Map -> RngIntElt

      The Endomorphism Ring
            MultiplicationByMMap(E, m) : CrvEll, RngIntElt -> Map
            IdentityIsogeny(E) : CrvEll -> Map
            IdentityMap(E) : CrvEll -> Map
            FrobeniusMap(E, i) : CrvEll, RngIntElt -> Map
            FrobeniusMap(E) : CrvEll -> Map
            Example CrvEll_Frobenius (H85E37)

      The Automorphism Group
            IdentityMap(E) : CrvEll -> Map
            NegationMap(E) : CrvEll -> Map
            f * g : Map, Map -> Map

      Predicates on Isogenies
            IsZero(I) : Map -> BoolElt

 
Bibliography