计算非阿基米德达蒙点
darmonpoints的Python项目详细描述
(有关完整文档,请参见http://mmasdeu.github.io/darmonpoints/doc/html/)
这是什么?
darmon points包可以计算许多不同类型的所谓darmon点。这些在一些文献中被称为stark heegner点,起源于[Darmon]。随后的推广由[Greenberg]和[Trifkovic]引入。这已通过[GMS1]推广到定义在任意签名的数字域上的椭圆曲线。达蒙点附加到三元组(f,e,k),其中f是一个数域,e/f是在f上定义的椭圆曲线,k/f是一个二次扩张。这些三元组必须满足附加达蒙点的某些条件。本文[GMS1]包含了所有这些内容的概述。我们还包括[KP]中使用的变体。
只要满足某些条件,darmonpoints包还可以计算某些椭圆曲线的方程。即:
- f具有窄类数1。
- 如果n是椭圆曲线的导体,则它必须接受n=pdm形式的因式分解,其中:
- p、d和m是相对互质的。
- pp是素数范数的ff的素数理想。
- d是四元数代数对仅在一个无限处分裂的f的判别式。
最后,我们包括模块padicPeriods,它允许计算附属于同一算术群的上同调的二维分量的p-adic周期,并且它允许我们在某些情况下找到相应的阿贝尔曲面(参见[GM])。
安装
由于matthias kóppe“sample sage”(https://github.com/mkoeppe/sage_sample),安装darmonpoints包已经大大简化。对于大多数操作,确实需要安装magma(https://magma.maths.usyd.edu.au/magma/),尽管我们确实希望sage在将来包含所需的功能。
为了方便起见,我们在aurel page中包含依赖magma包kleiniangroups,其原始版本可以在http://www.normalesup.org/~page/Recherche/Logiciels/KleinianGroups/KleinianGroups-1.0.tar.gz中找到。
要安装软件包,请使用以下命令:
sage -pip install --user --upgrade darmonpoints
如果您更愿意从github存储库安装最新版本(可能会损坏),请使用以下命令:
sage -pip install --user --upgrade -v git+https://github.com/mmasdeu/darmonpoints.git
基本用法
文件darmonpoints.py、findcurve.py和padicperiods.py包含显示如何使用包的高级例程,但如果您觉得有冒险精神,也可以使用包的其他部分。以下是一些可以尝试的示例计算:
sage: from darmonpoints.darmonpoints import darmon_point
经典的达蒙(又名斯塔克·希格纳)观点。下面将对椭圆曲线35a1:
进行精度7^20的ADIC计算,以在判别41的实二次域上找到一个点sage: darmon_point(7,EllipticCurve('35a1'),41,20)
四元数达蒙(又名格林伯格)点:
sage: darmon_point(13,EllipticCurve('78a1'),5,20)
混合签名域上曲线的达蒙点:
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,20)
我们还可以发现曲线方程!
我们首先找到了一条关于理性的曲线。以下命令将使用精度为5^20的ADIC计算和判别式6的四元数代数,找到导体30的曲线:
sage: from darmonpoints.findcurve import find_curve sage: find_curve(5,6,30,20)
这将使用公式构造曲线:
y^2 + x*y + y = x^3 + x + 2
对于在实二次域上定义的曲线。注意,这里我们必须指定ace将在四元数代数中分支:
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])
返回如下内容:
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)
三次混合签名域上的曲线:
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)
这将返回一条椭圆曲线,如下所示:
y^2 + r*x*y + (r+1)*y = x^3 + (-575*r^2-829*r-1195)*x + (-13327*r^2-19221*r-27721)
[Darmon] | H.Darmon. Integration on Hp x H and arithmetic applications. Annals of Math. |
[Greenberg] | M.Greenberg. Stark-Heegner points and the cohomology of quaternionic Shimura varieties. Duke Math. |
[GM] | X.Guitart, M.Masdeu. Periods of modular GL2-type abelian varieties and p-adic integration. Experimental Mathematics. |
[GMS1] | (1, 2) X.Guitart, M.Masdeu, M.H.Sengun. Darmon points on elliptic curves over number fields of arbitrary signature. Proc. LMS. |
[GMS2] | X.Guitart, M.Masdeu, M.H.Sengun. Uniformization of modular elliptic curves via p-adic methods. Journal of Algebra. |
[KP] | A.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. |
[Trifkovic] | M.Trifkovic. Stark-Heegner points on elliptic curves defined over imaginary quadratic fields. Duke Math. |