Note: To load magma with any one of these programs, type e.g.
nice magma tors
(in general replacing "tors" with the name of the program).
Patrick Corn's TC program, Version 1.0 (of 10/25/07)
(tors)
Creates the function TC(i,N,B). Here i is one of the 13 integral j-invariants, accorded
according to increasing discriminant of the quadratic order (in particular i = 4 corresponds to j = 1728, unlike in
arxivpreprint.pdf), N > 3 is an odd prime, and B is a bound. The
program begins with the generic Kubert curve E(b,c), computes one polynomial corresponding
to j(E(b,c)) = ji, another polynomial corresponding to N*(0,0) = O, then computes
the resultant R(b) of these two polynomials, which is a polynomial in Z[b]. Then for all odd
primes p <= b, it factors R(b) over the integers mod p and returns the sequence of degrees
of the irreducible factors for each p (in non-decreasing order). Finally, it keeps track
of the maximum over the primes p <= B of the minimum degree of an irreducible factor and
returns this at the end, saying "Looks like the smallest degree is..."
This final output number -- let us
call it d(i,N,B) -- is a lower bound for the degree of a number field K over which there
exists a CM elliptic curve with j-invariant ji and a K-rational N-torsion point.
There may not be such an elliptic curve for either of two reasons: first, in order to solve
for the c-coordinates corresponding to a given b-coordinate we may need to further extend
the number field Q(b) (however, one might expect this extension usually to be unnecessary;
we'll see!), and second it is possible for a univariate polynomial to be "more reducible"
modulo every prime than it is over Z.
Remark: One can input any odd value of N into the program. But since the equations for an N-torsion point in Kubert normal form are really N*(0,0) = O, M*(0,0) =\= O for 1 <= M < N, when N is not prime (except, I suppose, N = 9), the degree sequences for N will include degree sequences for all M > 3 which
divide N. However, by running the program also for such divisors M and removing the degree
sequences from those of TC(i,N,B), one should get the appropriate degree sequences for N.
This should be implemented!