reu-2011-06-20

339 days ago by rado

We want to make the curve   [1,a+1,a,a,0] 

y^2 + xy + ay = x^3 + (a+1)x^2 + ax

#the field K.<a> = NumberField(x^2 - x -1) embs = K.embeddings(RR) 
       
# examples E1 = EllipticCurve([1,a+1,a,a,0]) E1.torsion_subgroup() 
       
\newcommand{\Bold}[1]{\mathbf{#1}}\frac{\ZZ}{8\ZZ}
\newcommand{\Bold}[1]{\mathbf{#1}}\frac{\ZZ}{8\ZZ}
class TableData(): def __init__(self, E): # computations cond = E.conductor() cond_factors = cond.factor() j = E.j_invariant() d = E.discriminant() d_factors = d.factor() gens = E.gens() tors = E.torsion_subgroup() jden = j.denominator_ideal() jden_factors = jden.factor() # store self.__d = {'ainv' : E.a_invariants(), 'cond' : cond, 'gens' : gens, 'j' : j, 'kods' : map(lambda P: E.kodaira_symbol(P), map(lambda a:a[0], cond_factors)), 'tors' : tors, 'T' : len(tors), 'tama' : E.tamagawa_numbers(), 'disc' : d, 'r' : len(gens), 'dsign1': '-' if sign(embs[0](d)) == -1 else '+', 'dsign2': '-' if sign(embs[1](d)) == -1 else '+', 'dpows': map(lambda a: a[1], d_factors), 'jpows': map(lambda a: a[1], jden_factors), 'emb1' : E.period_lattice(embs[0]), 'emb2' : E.period_lattice(embs[1])} def __getattr__(self, a): return self.__d[a] def pprint(self): string = ''' a_invariants: \t %s cond_norm: \t %s conductor: \t %s discriminant: \t %s num_gens: \t %s generators: \t %s kodiara sym: \t %s tamagawa: \t %s torsion: \t %s torsion_gens: \t %s ''' % (self.ainv, self.cond.norm(), self.cond, self.disc, len(self.gens), self.gens, self.kods, self.tama, len(self.tors), self.tors.gens()) return string def cremona_data(self): return (self.ainv, self.r, self.T, self.dsign1, self.dsign2, self.dpows, self.jpows, self.tama, self.kods) def cremona(self): c_data = self.cremona_data() out = 'N = %s ; Norm = %s\n' % (self.cond, self.cond.norm()) out += ('%s\t' * len(c_data)) % c_data return out def html(self): c_data = self.cremona_data() h = html.table([c_data]) return h 
       
d = TableData(E1) d.ainv d.html() 
       
\left(1, a + 1, a, a, 0\right) 2 8 + - \left[1\right] \left[1\right] \left[1\right] \left[$I_{1}$\right]
\left(1, a + 1, a, a, 0\right) 2 8 + - \left[1\right] \left[1\right] \left[1\right] \left[$I_{1}$\right]
curves_str = ''' [1,a+1,a,a,0] [1,-a-1,a,0,0] [a,a-1,a,-1,-a+1] [0,-a,a,0,0] [0,a-1,a+1,0,-a] ''' curves = map(EllipticCurve, map(eval, curves_str.split())) print 'a1 a2 a3 a4 a6\t\t r\t |T|\t s\tord(D)\t ord_j\t cp\t Kodiara' for E in curves: data = TableData(E) print data.cremona() 
       
a1 a2 a3 a4 a6		 r	 |T|	 s	ord(D)	 ord_j	 cp	 Kodiara
N = Fractional ideal (5*a - 2) ; Norm = 31
(1, a + 1, a, a, 0)	2	8	+	-	[1]	[1]	[1]	[I1]	
N = Fractional ideal (5*a - 3) ; Norm = 31
(1, -a - 1, a, 0, 0)	2	8	-	+	[1]	[1]	[1]	[I1]	
N = Fractional ideal (6) ; Norm = 36
(a, a - 1, a, -1, -a + 1)	2	10	-	-	[2, 1]	[2, 1]	[2, 1]	[I2, I1]	
N = Fractional ideal (a + 6) ; Norm = 41
(0, -a, a, 0, 0)	0	7	-	-	[1]	[1]	[1]	[I1]	
N = Fractional ideal (a - 7) ; Norm = 41
(0, a - 1, a + 1, 0, -a)	0	7	-	-	[1]	[1]	[1]	[I1]	
a1 a2 a3 a4 a6		 r	 |T|	 s	ord(D)	 ord_j	 cp	 Kodiara
N = Fractional ideal (5*a - 2) ; Norm = 31
(1, a + 1, a, a, 0)	2	8	+	-	[1]	[1]	[1]	[I1]	
N = Fractional ideal (5*a - 3) ; Norm = 31
(1, -a - 1, a, 0, 0)	2	8	-	+	[1]	[1]	[1]	[I1]	
N = Fractional ideal (6) ; Norm = 36
(a, a - 1, a, -1, -a + 1)	2	10	-	-	[2, 1]	[2, 1]	[2, 1]	[I2, I1]	
N = Fractional ideal (a + 6) ; Norm = 41
(0, -a, a, 0, 0)	0	7	-	-	[1]	[1]	[1]	[I1]	
N = Fractional ideal (a - 7) ; Norm = 41
(0, a - 1, a + 1, 0, -a)	0	7	-	-	[1]	[1]	[1]	[I1]	
 
       
all_curves = ''' [1,a+1,a,a,0] [1,-a-1,a,0,0] [a,a-1,a,-1,-a+1] [0,-a,a,0,0] [0,a-1,a+1,0,-a] [1,1,1,0,0] [0,a,1,1,0] [1,-a+1,1,-a,0] [1,a,1,a-1,0] [0,a-1,0,-a,0] [a,a+1,a,a,0] [a+1,a-1,1,0,0] [a,-a+1,1,-1,0] [a+1,0,1,-a-1,0] [1,0,a+1,-2*a-1,0] [1,0,a,a-2,-a+1] [a,a+1,0,a+1,0] [a+1,a-1,a,0,0] [0,1,0,-1,0] [1,-1,a,-2*a,a] [a+1,-1,1,-a-1,0] [a,-a,1,-1,0] [a,a+1,a,2*a,a] [a+1,a-1,1,-a+1,-1] [a+1,0,0,1,0] [a,-a+1,0,1,0] [1,0,1,-1,-2] [a,a-1,a+1,-a,-a] [1,-1,a,-a,0] [1,-a,a,a+2,-a] [1,a-1,a+1,-2*a+3,-1] [1,-1,a+1,-1,-a] [0,-1,1,0,0] '''