In [38]:
E = EllipticCurve([0, 1])
for p in primes(0, 200):
if E.has_good_reduction(p):
print p, p % 3, E.ap(p)
It appears that $a_p = 0$ just in case $p \equiv 2 \pmod{3}$. We test this hypothesis below.
In [13]:
E = EllipticCurve([0, 1])
succ = True
for p in primes(0, 2^10):
ap = E.ap(p)
if p % 3 == 2 and ap != 0:
print "Counterexample:", p, ap
succ = False
elif p % 3 == 1 and ap == 0:
print "Counterexample:", p, ap
succ = False
if succ:
print "Success!"
In [28]:
E = EllipticCurve([0, 1])
A = E.aplist(2^24)
P = prime_range(0, 2^24)
X = [A[i]/sqrt(RR(P[i])) for i in range(0,len(A))]
for k in [12, 16, 20, 24]:
l = len(prime_range(0, 2^k))
M = [sum([X[i]^n for i in range(0, l)])/l for n in [0..10]]
print M
This appears to be $\binom{2m-1}{m}$ for $n = 2m > 0$, $1$ for $n = 0$, and $0$ otherwise. OEIS was used to find this information. We now test $n = 12, 14$.
In [66]:
E = EllipticCurve([0, 1])
A = E.aplist(2^24)
P = prime_range(0, 2^24)
X = [A[i]/sqrt(RR(P[i])) for i in range(0,len(A))]
for k in [12, 16, 20, 24]:
l = len(prime_range(0, 2^k))
M = [sum([X[i]^n for i in range(0, l)])/l for n in [12, 14]]
print M
These appear to be converging to the expected values of $462$ and $1716$.
In [60]:
for E in map(EllipticCurve, [[-595, 5586], [-608, 5776], [-9504, 365904]]):
print E, factor(E.minimal_model().discriminant())
for p in primes(0, 200):
if E.has_good_reduction(p):
print p, E.ap(p)
print
From OEIS, it appears that $a_p = 0$ when either $p = 2$ or $p$ is nonsquare modulo $7$, $19$, and $11$, respectively. These are the least odd primes at which the curves have poor reduction, i.e. the least odd primes dividing the discriminants of the minimal models of the curves. We check this below.
In [63]:
succ = True
for E in map(EllipticCurve, [[-595, 5586], [-608, 5776], [-9504, 365904]]):
disc = dict(factor(E.minimal_model().discriminant()))
disc[2] = None
del disc[2]
mp = min(disc.keys())
for p in primes(3, 2^10):
ap = E.ap(p)
if kronecker(p, mp) == -1 and ap != 0:
print "Counterexample:", E, p, ap
succ = False
elif kronecker(p, mp) == 1 and ap == 0:
print "Counterexample:", E, p, ap
succ = False
if succ:
print "Success!"
We now look at the moment statistics.
In [64]:
P = prime_range(0, 2^24)
for E in map(EllipticCurve, [[-595, 5586], [-608, 5776], [-9504, 365904]]):
A = E.aplist(2^24)
X = [A[i]/sqrt(RR(P[i])) for i in range(0,len(A))]
M = [sum([a^n for a in X])/len(X) for n in [0..10]]
print M
These indeed appear to converge to the same sequence conjectured in (b).
In [71]:
idn = 4072
E1 = EllipticCurve([-595, 5586])
E2 = E1.quadratic_twist(idn)
for p in primes(0, 200):
if E1.has_good_reduction(p):
print p, E1.ap(p), E2.ap(p), kronecker(idn, p)
A = E.aplist(2^24)
X = [A[i]/sqrt(RR(P[i])) for i in range(0,len(A))]
M = [sum([a^n for a in X])/len(X) for n in [0..10]]
print M
The values of $a_p$ appear to be the same, except negated when $4072$ is not a square modulo $p$. The moment statistics are approximately the same.