Package: darmonpoints
A package to compute Darmon points(or just p-adically construct elliptic curves, or p-adic Darmon-Vonk points,...)(for the full documentation, please seehttp://mmasdeu.github.io/darmonpoints/doc/html/)What is this?Thedarmonpointspackage can compute many different types of what is
known as Darmon points. These are known asStark-Heegnerpoints in
some literature, and originated in[Darmon]. Subsequent
generalizations were introduced by[Greenberg]and[Trifkovic]. This has been
generalized by[GMS1]to elliptic
curves defined over number fields of arbitrary signature. Darmon points
are attached to triples(F,E,K), whereFis a number field,E/Fis an elliptic curve defined overF, andK/Fis a quadratic extension. These triples must satisfy certain conditions
for Darmon points to be attached to them. The article[GMS1]contains an overview of all
of this. We include also a variation used in[KP].Thedarmonpointspackage can also compute equations for some
elliptic curvesE/Fdefined over number
fieldsF, as long as certain conditions
are satisfied. Namely:Fhas narrow class number1.ifNis the conductor of the elliptic
curve, it must admit a factorization of the formN = PDM, where:P,DandMare relative coprime.Pis a prime ideal ofFof prime norm.Dis the discriminant of a
quaternion algebra overFwhich
is split at only one infinite place.Finally, we include the modulepadicperiods, which allows for the
computation ofp-adic periods attached to
two-dimensional components of the cohomology of the same arithmetic
groups, and which has allowed us to find the corresponding abelian
surfaces in some cases (see[GM]).The full documentation can be found athttp://mmasdeu.github.io/darmonpoints/doc/html/InstallationInstallation of thedarmonpointspackage has been greatly simplified,
thanks to Matthias Köppe "Sample Sage"
(https://github.com/mkoeppe/sage_sample). For most operations onedoes needto haveMagma(https://magma.maths.usyd.edu.au/magma/)
installed, although we do hope that in the future Sage will include the
required functionality.We include for convenience the dependency Magma packageKleinianGroupsby Aurel Page, the original of which can be found athttp://www.normalesup.org/~page/Recherche/Logiciels/KleinianGroups/KleinianGroups-1.0.tar.gz.To install the package use the following command:sage -pip install --user --upgrade darmonpointsIf you rather install the cutting-edge version from the github
repository (which is likely to be broken), then use the following
command:sage -pip install --user --upgrade -v git+https://github.com/mmasdeu/darmonpoints.gitBasic usageThe filesdarmonpoints.py,findcurve.pyandpadicperiods.pycontain the high level routines from which show how to use the package,
although one can use parts of the package in other ways if one feels
adventurous. Here are some sample calculations that one can try:sage: from darmonpoints.darmonpoints import darmon_pointA classical Darmon (a.k.a. Stark-Heegner) point. The following will
perform a7-adic calculation to
precision7^20, to find a point over
the real quadratic field of discriminant41for the elliptic curve35a1:sage: darmon_point(7,EllipticCurve('35a1'),41,20)A quaternionic Darmon (a.k.a. Greenberg) point:sage: darmon_point(13,EllipticCurve('78a1'),5,20)A Darmon point for a curve over a field of mixed signature:sage: F.<r> = NumberField(x^3 - x^2 - x + 2)
sage: E = EllipticCurve([-r -1, -r, -r - 1,-r - 1, 0])
sage: N = E.conductor()
sage: P = F.ideal(r^2 - 2*r - 1)
sage: beta = -3*r^2 + 9*r - 6
sage: darmon_point(P,E,beta,30)We can alsodiscoverequations of curves!We first find a curve over the rationals. The following command will
find a curve of conductor30, using a5-adic calculation with precision of5^20, and the quaternion algebra of
discriminant `6`:sage: from darmonpoints.findcurve import find_curve
sage: find_curve(5,6,30,20)This constructs the curve with equation:y^2 + x*y + y = x^3 + x + 2Now for a curve defined over a real quadratic field. Note that here
we must specify which place will ramify in the quaternion algebra:sage: from darmonpoints.findcurve import find_curve
sage: F.<r> = QuadraticField(5)
sage: P = F.ideal(3/2*r + 1/2)
sage: D = F.ideal(3)
sage: find_curve(P,D,P*D,30,ramification_at_infinity = F.real_places()[:1])This returns something like:y^2 + (1/2*r-1/2)*x*y = x^3 + (1/2*r+1/2)*x^2 + (285/2*r-793/2)*x + (3153/2*r-7689/2)A curve over a cubic field of mixed signature:sage: from darmonpoints.findcurve import find_curve
sage: F.<r> = NumberField(x^3 -3)
sage: P = F.ideal(r-2)
sage: D = F.ideal(r-1)
sage: find_curve(P,D,P*D,30)This should return an elliptic curve like this:y^2 + r*x*y + (r+1)*y = x^3 + (-575*r^2-829*r-1195)*x + (-13327*r^2-19221*r-27721)Finally, there is also code to compute Darmon-Vonk quantities. Here are
a couple of examples.A Darmon-Vonk point for the matrix group:sage: from darmonpoints.darmonvonk import darmon_vonk_point
sage: darmon_vonk_point(5, 1, 3, 13, 60, recognize_point='lindep')A quaternionic Darmon-Vonk point:sage: from darmonpoints.darmonvonk import darmon_vonk_point
sage: darmon_vonk_point(5, 6, 53, 92, 120, scaling=12, recognize_point='algdep')DarmonH.Darmon.Integration on Hp x H and arithmetic applications. Annals of
Math.DarmonVonkH.Darmon, J.Vonk.Singular moduli for real quadratic fields: a rigid
analytic approach. Duke Math.GMX.Guitart, M.Masdeu.Periods of modular GL2-type abelian varieties and
p-adic integration. Experimental Mathematics.GMS1X.Guitart, M.Masdeu, M.H.Sengun.Darmon points on elliptic curves over
number fields of arbitrary signature. Proc. LMS.GMS2X.Guitart, M.Masdeu, M.H.Sengun.Uniformization of modular elliptic
curves via p-adic methods. Journal of Algebra.GMXX.Guitart, M.Masdeu, X.XarlesA quaternionic construction of p-adic
singular moduli. Res. Math. Sci.GreenbergM.Greenberg.Stark-Heegner points and the cohomology of quaternionic
Shimura varieties. Duke Math.KPA.Pacetti, D.Kohen (with an appendix by M.Masdeu)On Heegner points for
primes of additive reduction ramifying in the base field. Transactions
of the AMS.TrifkovicM.Trifkovic.Stark-Heegner points on elliptic curves defined over
imaginary quadratic fields. Duke Math.