Code accompanying "Minimal degree of an isogeny between a supersingular elliptic curve and its conjugate" by Yves Aubry, Roger Oyono and Christelle Vincent
The folders bases and results contain, respectively, files with names bases[primenumber].sage and results[primenumber].sage, respectively, where [primenumber] is a prime.
- For a given prime p,
basesp.sagecontains a list containing a basis for each maximal order of the quaternion algebra over QQ ramified at p and infinity. This list is readable by SageMath, and the value of i^2 and j^2 are either those chosen by SageMath upon instantiatingB.<i,j,k> = QuaternionAlgebra(p)in SageMath version 10.0.rc3 (in this case,B.<i,j,k> = QuaternionAlgebra(p)is the first line of the file) or those chosen by Magma V2.28-23 or V2.29-2 (in this case, the first line of the file readsB.<i,j,k> = QuaternionAlgebra(a,b)where i^2 = a and j^2 = b). - For a given prime p,
resultsp.sagecontains a list containing a basis for each maximal order of the quaternion algebra over QQ ramified at p and infinity as well as the tuple (N1,N2,N3) giving the successive minima of the quadratic module R of Section 5.1.
The folder delta_p dictionaries contains three files each containing a dictionary whose keys are primes and whose values are the associated value of delta_p. The exact content of each dictionary is given as the first line of each file.
Finally, the folder code contains the code used to obtain the results of this article.
-
The file
basiscomputation.magcontains a single Magma procedure to compute a basis for each maximal order of the quaternion algebra over QQ ramified at a prime p and at infinity. To produce the timing of this function given in Section 5.2, for example, we used the following commands:p := 263429; output_file := "bases" cat Sprint(p) cat ".sage"; Load("basiscomputation.mag"); T := Time(); compute_bases(p,output_file); Time(T); -
The file
deltacomputation.sagecontains the functions necessary to compute delta_p for a prime p. The two main functions arefind_dpwhich calls Magma internally to create the file containing a basis for each maximal order of the quaternion algebra ramified at p and infinity, andfind_dp_magmawhich assumes the existence of a file containing a basis for each maximal order of the quaternion algebra ramified at p and infinity. To produce the timing of the second function given in Section 5.2, for example, we used the following commands:p = 263429 input_file = 'bases' + str(p) + '.sage' output_file = 'results' + str(p) + '.sage' load('deltacomputation.sage') %time find_dp_magma(p, input_file, output_file) -
The file
sieving.magcontains a single function that verifies a necessary condition for a prime p to admit a supersingular elliptic curve E defined over FFbar_p with delta(E) = delta_p. To produce the timing of this function given in Section 5.2, for example, we used the commands:Load("sieving.mag"); T := Time(); verify(265231); Time(T);To pass the
verboseflag, one can type, for example:verify(264949: verbose:=true);