/krs_lift_congruence

A package for checking congruences between K-R-S lifts and non-lifts

Primary LanguagePython

krs_lift_congruence

This package checks congruence between Kim-Ramakrishnan-Shahidi lifts and non-lifts. We check congruences for lifts of elliptic modular forms of level one and of weight 16, 18, 20.

Dependencies

Installation

  1. Install SageMath. We use SageMath 6.5.
  2. degree2 and this package are packages written in pure Python. Place them to an appropriate directory so that SageMath can find these packages.

Usage

First prepare a directory for saving data. For example, we create “~/krs_lift_data_dir” for the data directory.

$ mkdir ~/krs_lift_data_dir

And in SageMath, evaluate the following code.

sage: import krs_lift_congruence.utils
sage: import os
sage: krs_lift_congruence.utils.data_dir = os.path.expanduser("~/krs_lift_data_dir")

Computation of basis, lifts and non-lifts

To compute basis of weights det^17 Sym(14), det^19 Sym(16) and det^21 Sym(18), lifts and non-lifts with precision 6, evaluate the following code. This takes about 15 hours (OS: Ubuntu 14.04 64 bit, Memory: 20GB, CPU: core i7-3770).

sage: from krs_lift_congruence.check_krs_cong import compute_lift_and_non_lift
sage: compute_lift_and_non_lift()

Then basis, lifts and non-lifts will be saved in the data directory. For example to load the lift of weight det^17 Sym(14) and non-lift of the same weight, try the following code.

sage: from degree2.elements import SymWtModFmElt
sage: lift = SymWtModFmElt.load_from("~/krs_lift_data_dir/lift_17_14_prec6.sobj")
sage: nonlift = SymWtModFmElt.load_from("~/krs_lift_data_dir/nonlift_17_14_prec6.sobj")

Checking congruences

To check congruences, evaluate the following code.

sage: from krs_lift_congruence.check_krs_cong import check_congruence
sage: check_congruence()

Computation of critical values

To compute the critical value of symmetric 6th of elliptic modular form, try the following code (here we compute L(Sym^6, 46, f16) where f16 is the primitive form of level 1 and weight 16).

sage: from krs_lift_congruence.symmetric_l_calculator import Symm6Calculator
sage: f16 = CuspForms(1, 16).basis()[0] # The primitive form of weight 16.
sage: lcalc = Symm6Calculator(f16, digits=150)
sage: alg_part = lcalc.algebraic_part_numeric(46) # The conjectural algebraic part.
sage: alg_part
1.87966186352303659892877519163336698098888790010700567447336739672714532309789854529673272542132901080918376259689834113363757245781300129905679338263e-41
sage: alg_part_normalized = alg_part * 2^(-6*16) * gamma(46) * gamma(46-16) * gamma(46-32)
sage: cfls = continued_fraction_list(alg_part_normalized, bits=502); cfls
[1562540000945356473049039526,
 1,
 1,
 1,
 2,
 6,
 1,
 1,
 1,
 199192463969969370870280561,
 ...]
sage: continued_fraction(cfls[:9]).value().factor()
2^26 * 3^14 * 5^4 * 7^6 * 11^2 * 13^-2 * 92467

Data of Fourier coefficients

Fourier coefficients of lifts and non-lifts are stored in CSV files.

krs_lift_data.zip

krs_lift_data.zip in Google Drive

License

Licensed under GPL.