7_torsion_family_check

321 days ago by Ben.LeVeque

At the bottom of the worksheet are three new curves                     -7/7/11

x = var('x') K.<a> = NumberField(x^2-x-1);K 
       
Number Field in a with defining polynomial x^2 - x - 1
Number Field in a with defining polynomial x^2 - x - 1
f.readline().split() 
       
[]
[]
E = EllipticCurve(K, [1,1,a+1,-a+1,-a]) #no primes of bad reduction L = [] for p in primes(100): t = K.primes_above(p) if E.has_good_reduction(t[0]) and norm(t[0]) <= 100: L = L + t ##############################def primes_of_bounded_norm(B): ############################## v = sum([K.primes_above(p) for p in primes(B)],[]) ############################## v = [(p.norm(), p) for p in v if p.norm() <= B] ############################## v.sort() ############################## return [p[1] for p in v] ############################## ##############################L = primes_of_bounded_norm(250) #print L #print len(L) ############# Now L (list of primes) is defined ############## def apdictionary(line): #feed in line aps = line_parser(line) d = {} for i in range(100): try: d[str(L[i])] = aps[i] #assigns proper ap value for each prime except: pass return d def line_parser(s): r=s.split()[3:];r #t=r.split() return [modified_eval(i) for i in r] def modified_eval(s): if s == '?': return s else: return eval(s) ############################################################### def ap(p,line): #returns a particular aps value from d return (apdictionary(line))[str(p)] R.<x> = GF(2)[] def frob(p,line): return x^2 - ap(p,line)*x + int(p.norm()) def disc(p,line): t = ap(p,line) return t^2 - 4*p.norm() ############################################################### def isogeny_primes_readin(norm_bound, isog_degree_bound, line): dic = apdictionary(line) P = [p for p in L if dic[str(p)] != '?'] w = set(primes(isog_degree_bound+1)) i = 0 w.remove(2) while len(w) > 0 and i < len(P): d = disc(P[i],line) w = [ell for ell in w if not (legendre_symbol(d,ell) == -1)] i = i +1 i = 0 while i < len(P): if frob(P[i],line).is_irreducible(): break i = i+1 if i == len(P): w.insert(0,2) return w 
       
line1 = '145 11*a-8 0 -2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13' line2 = '31 5*a-2 0 -3 2 -2 2 4 -4 4 -4 -2 -2 ? ? -6 -6 12 -4 6 -2 -8 0 0 16 10 -6' line3 = '124 10*a-4 1 ? 2 -2 2 4 -4 4 -4 -2 -2 ? ? -6 -6 12 -4 6 -2 -8 0 0 16 10 -6' line4 = '256 16 0 ? 2 -2 10 -4 -4 4 4 -2 -2 0 0 2 2 12 12 -10 -10 8 8 -16 -16 -6 -6' isogeny_primes_readin(2000,2000,line4) 
       
[2]
[2]
f = open('/home/bleveque/unmatched1000.txt') 
       
possible = [] for line in f.readlines(): if 7 in isogeny_primes_readin(1000,1000,line): print line 
       
145	11*a-8	0	-2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6
13

145	11*a-3	1	-2 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4
13 6

164	2*a-14	1	? -4 -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

205	13*a-4	2	-2 -4 ? -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

205	13*a-9	3	-2 -4 ? -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

369	3*a-21	2	-2 ? -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

369	3*a+18	3	-2 ? -1 -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

451	3*a-23	0	-2 -4 -1 -6 ? ? 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

451	-3*a-20	1	-2 -4 -1 -6 ? ? -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

451	19*a-10	3	-2 -4 -1 -6 ? ? -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

451	19*a-9	3	-2 -4 -1 -6 ? ? 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

464	-4*a+24	2	? -4 -1 1 5 -2 -1 -8 ? ? 4 -3 -7 0 4 4 6 -8 9 16 -11 10 -1
-8

464	4*a+20	4	? -4 -1 1 -2 5 -8 -1 ? ? -3 4 0 -7 4 4 -8 6 16 9 10 -11 -8
-1

580	22*a-6	2	? -4 ? 1 -2 5 -8 -1 ? ? -3 4 0 -7 4 4 -8 6 16 9 10 -11 -8
-1

580	22*a-6	5	? 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4 13
6

580	22*a-16	6	? 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6
13

580	22*a-16	7	? -4 ? 1 5 -2 -1 -8 ? ? 4 -3 -7 0 4 4 6 -8 9 16 -11 10 -1
-8

639	3*a-27	2	-2 ? -1 8 -2 5 6 6 9 2 -3 4 -7 0 -3 -10 -1 6 ? ? -4 -4 -8 6

639	3*a+24	3	-2 ? -1 8 5 -2 6 6 2 9 4 -3 0 -7 -10 -3 6 -1 ? ? -4 -4 6 -8

656	4*a-28	0	? -4 -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

656	4*a+24	2	? -4 -1 -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

725	5*a+25	4	-2 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4
13 6

725	5*a+25	6	2 -3 ? -8 -2 5 1 8 ? ? -10 -3 0 7 3 -4 13 -8 2 -12 -10 4
-13 -6

725	-5*a+30	6	2 -3 ? -8 5 -2 8 1 ? ? -3 -10 7 0 -4 3 -8 13 -12 2 4 -10
-6 -13

725	-5*a+30	7	-2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10
6 13

779	25*a-11	1	-2 -4 -1 -6 5 -2 ? ? 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

779	-25*a+14	1	-2 -4 -1 -6 -2 5 ? ? 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

779	2*a+27	2	-2 -4 -1 -6 5 -2 ? ? 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

779	-2*a+29	2	-2 -4 -1 -6 -2 5 ? ? 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4
-1 -8

820	26*a-18	4	? -4 ? -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11
-8 -1

820	26*a-8	5	? -4 ? -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1
-8

905	-27*a+11	2	-2 -4 ? 1 -2 -2 -1 -8 -5 2 -3 4 7 0 4 4 -1 -8 -12 9 3 -11
-1 -8
145	11*a-8	0	-2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13

145	11*a-3	1	-2 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4 13 6

164	2*a-14	1	? -4 -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

205	13*a-4	2	-2 -4 ? -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

205	13*a-9	3	-2 -4 ? -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

369	3*a-21	2	-2 ? -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

369	3*a+18	3	-2 ? -1 -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

451	3*a-23	0	-2 -4 -1 -6 ? ? 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

451	-3*a-20	1	-2 -4 -1 -6 ? ? -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

451	19*a-10	3	-2 -4 -1 -6 ? ? -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

451	19*a-9	3	-2 -4 -1 -6 ? ? 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

464	-4*a+24	2	? -4 -1 1 5 -2 -1 -8 ? ? 4 -3 -7 0 4 4 6 -8 9 16 -11 10 -1 -8

464	4*a+20	4	? -4 -1 1 -2 5 -8 -1 ? ? -3 4 0 -7 4 4 -8 6 16 9 10 -11 -8 -1

580	22*a-6	2	? -4 ? 1 -2 5 -8 -1 ? ? -3 4 0 -7 4 4 -8 6 16 9 10 -11 -8 -1

580	22*a-6	5	? 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4 13 6

580	22*a-16	6	? 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13

580	22*a-16	7	? -4 ? 1 5 -2 -1 -8 ? ? 4 -3 -7 0 4 4 6 -8 9 16 -11 10 -1 -8

639	3*a-27	2	-2 ? -1 8 -2 5 6 6 9 2 -3 4 -7 0 -3 -10 -1 6 ? ? -4 -4 -8 6

639	3*a+24	3	-2 ? -1 8 5 -2 6 6 2 9 4 -3 0 -7 -10 -3 6 -1 ? ? -4 -4 6 -8

656	4*a-28	0	? -4 -1 -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

656	4*a+24	2	? -4 -1 -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

725	5*a+25	4	-2 3 ? 8 -2 5 -1 -8 ? ? -10 -3 0 7 -3 4 13 -8 2 -12 10 -4 13 6

725	5*a+25	6	2 -3 ? -8 -2 5 1 8 ? ? -10 -3 0 7 3 -4 13 -8 2 -12 -10 4 -13 -6

725	-5*a+30	6	2 -3 ? -8 5 -2 8 1 ? ? -3 -10 7 0 -4 3 -8 13 -12 2 4 -10 -6 -13

725	-5*a+30	7	-2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13

779	25*a-11	1	-2 -4 -1 -6 5 -2 ? ? 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

779	-25*a+14	1	-2 -4 -1 -6 -2 5 ? ? 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

779	2*a+27	2	-2 -4 -1 -6 5 -2 ? ? 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

779	-2*a+29	2	-2 -4 -1 -6 -2 5 ? ? 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

820	26*a-18	4	? -4 ? -6 5 -2 -1 6 9 2 4 -10 ? ? 4 -3 -8 6 9 -12 -4 -11 -8 -1

820	26*a-8	5	? -4 ? -6 -2 5 6 -1 2 9 -10 4 ? ? -3 4 6 -8 -12 9 -11 -4 -1 -8

905	-27*a+11	2	-2 -4 ? 1 -2 -2 -1 -8 -5 2 -3 4 7 0 4 4 -1 -8 -12 9 3 -11 -1 -8
 
       
def fun(t): return EllipticCurve(K,[-t^2+t+1,-t^3+t^2,-t^3+t^2,0,0]) 
       
B=30 for i in [-B..B]: for j in [-B..B]: t = i + j*a try: E = fun(t) N = E.conductor().norm() if N in [145,164,205,369,451,464,580,639,656,725,779,820,905]: print i, j, N except ArithmeticError: pass 
       
-5 3 639
-4 3 145
-2 -3 639
-2 1 905
-1 -3 145
-1 -1 905
2 1 905
2 3 145
3 -1 905
3 3 639
5 -3 145
6 -3 639
-5 3 639
-4 3 145
-2 -3 639
-2 1 905
-1 -3 145
-1 -1 905
2 1 905
2 3 145
3 -1 905
3 3 639
5 -3 145
6 -3 639
fun(-5+3*a).is_isogenous(fun(-2-3*a)) 
       
False
False
Li = [] for p in primes(100): t = K.primes_above(p) if norm(t[0]) <= 100: Li = Li + t 
       
def X7(strr,primelist): aplist = strr.split()[3:] primelist = primelist[:len(aplist)] ret = [] for i,api in enumerate(aplist): if api != '?': ans = mod(1-eval(api)+primelist[i].norm(),7) if ans==0: print api, '1 is a root of x^2-ap*x+N(p)' else: print api, '1 is NOT a root of x^2-ap*x+N(p)' 
       
X7('145 11*a-8 0 -2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13',Li) 
       
-2 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
10 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
10 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
X7('725 5*a+25 6 2 -3 ? -8 -2 5 1 8 ? ? -10 -3 0 7 3 -4 13 -8 2 -12 -10 4 -13 -6',Li) 
       
2 1 is NOT a root of x^2-ap*x+N(p)
-3 1 is NOT a root of x^2-ap*x+N(p)
-8 1 is NOT a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
1 1 is NOT a root of x^2-ap*x+N(p)
8 1 is NOT a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
3 1 is NOT a root of x^2-ap*x+N(p)
-4 1 is NOT a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
-10 1 is NOT a root of x^2-ap*x+N(p)
4 1 is NOT a root of x^2-ap*x+N(p)
-13 1 is NOT a root of x^2-ap*x+N(p)
-6 1 is NOT a root of x^2-ap*x+N(p)
2 1 is NOT a root of x^2-ap*x+N(p)
-3 1 is NOT a root of x^2-ap*x+N(p)
-8 1 is NOT a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
1 1 is NOT a root of x^2-ap*x+N(p)
8 1 is NOT a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
3 1 is NOT a root of x^2-ap*x+N(p)
-4 1 is NOT a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
-10 1 is NOT a root of x^2-ap*x+N(p)
4 1 is NOT a root of x^2-ap*x+N(p)
-13 1 is NOT a root of x^2-ap*x+N(p)
-6 1 is NOT a root of x^2-ap*x+N(p)
X7('725 -5*a+30 7 -2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13',Li) 
       
-2 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
10 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
10 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
13 1 is a root of x^2-ap*x+N(p)
X7('905 -27*a+11 2 -2 -4 ? 1 -2 -2 -1 -8 -5 2 -3 4 7 0 4 4 -1 -8 -12 9 3 -11 -1 -8',Li) 
       
-2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
1 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-5 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
9 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
-11 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
1 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-5 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
-12 1 is a root of x^2-ap*x+N(p)
9 1 is a root of x^2-ap*x+N(p)
3 1 is a root of x^2-ap*x+N(p)
-11 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
X7('639 3*a-27 2 -2 ? -1 8 -2 5 6 6 9 2 -3 4 -7 0 -3 -10 -1 6 ? ? -4 -4 -8 6',Li) 
       
-2 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
9 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
8 1 is a root of x^2-ap*x+N(p)
-2 1 is a root of x^2-ap*x+N(p)
5 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
9 1 is a root of x^2-ap*x+N(p)
2 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
4 1 is a root of x^2-ap*x+N(p)
-7 1 is a root of x^2-ap*x+N(p)
0 1 is a root of x^2-ap*x+N(p)
-3 1 is a root of x^2-ap*x+N(p)
-10 1 is a root of x^2-ap*x+N(p)
-1 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
-4 1 is a root of x^2-ap*x+N(p)
-8 1 is a root of x^2-ap*x+N(p)
6 1 is a root of x^2-ap*x+N(p)
'145 11*a-8 0 -2 3 ? 8 5 -2 -8 -1 ? ? -3 -10 7 0 4 -3 -8 13 -12 2 -4 10 6 13'.split()[3:] 
       
['-2', '3', '?', '8', '5', '-2', '-8', '-1', '?', '?', '-3', '-10', '7',
'0', '4', '-3', '-8', '13', '-12', '2', '-4', '10', '6', '13']
['-2', '3', '?', '8', '5', '-2', '-8', '-1', '?', '?', '-3', '-10', '7', '0', '4', '-3', '-8', '13', '-12', '2', '-4', '10', '6', '13']
norm(-a+6) 
       
29
29

E1-E3 are new curves with 7-torsion points:

E1 = fun(-4+3*a) print E1.conductor().norm(), E1.conductor(), '---', ap2(E1,K.primes_above(2)[0]), '------', E1.a_invariants(),'---', E1.discriminant().norm() 
       
145 Fractional ideal (11*a - 8) --- -2 ------ (18*a - 28, -105*a + 170,
-105*a + 170, 0, 0) --- 2265625
145 Fractional ideal (11*a - 8) --- -2 ------ (18*a - 28, -105*a + 170, -105*a + 170, 0, 0) --- 2265625
E2 = fun(-5 + 3*a) print E2.conductor().norm(),E2.conductor(),'---', ap2(E2,K.primes_above(2)[0]), '------', E2.a_invariants() 
       
639 Fractional ideal (3*a - 27) --- -2 ------ (24*a - 38, -165*a + 267,
-165*a + 267, 0, 0)
639 Fractional ideal (3*a - 27) --- -2 ------ (24*a - 38, -165*a + 267, -165*a + 267, 0, 0)
E3 = fun(-2 + 1*a) print E3.conductor().norm(),E3.conductor(),'---', ap2(E3,K.primes_above(2)[0]), '------', E3.a_invariants() 
       
905 Fractional ideal (-27*a + 11) --- -2 ------ (4*a - 6, -11*a + 18,
-11*a + 18, 0, 0)
905 Fractional ideal (-27*a + 11) --- -2 ------ (4*a - 6, -11*a + 18, -11*a + 18, 0, 0)
 
       
def ap2(E,p): return E.change_ring(p.residue_field()).trace_of_frobenius()