Karim BELABAS on Tue, 1 Oct 2002 15:43:11 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Bug rnfconductor |
On 1 Oct 2002, Xavier-François Roblot wrote: > with the latest CVS development version: > > ? bnf = bnfinit(y^4 + 4*y^3 - 49*y^2 - 106*y + 787); > ? pol = x^3 + (-1/29*y^3 - 3/29*y^2 + 81/29*y - 236/29); > ? setrand(1); rnfconductor(bnf, pol) > %3 = [[[2, 0, 0, 0; 0, 2, 0, 0; 0, 0, 2, 0; 0, 0, 0, 2], []], [9, [3, > 3], [[0, -1, -1, -1]~, [21, 4, 0, 1; 0, 1, 0, 0; 0, 0, 3, 2; 0, 0, 0, > 1]]], [3, 2; 0, 1]] > ? setrand(2); rnfconductor(bnf, pol) > %4 = [[[2, 0, 0, 0; 0, 2, 0, 0; 0, 0, 2, 0; 0, 0, 0, 2], []], [9, [3, > 3], [[0, -1, -1, 0]~, [21, 4, 0, 1; 0, 1, 0, 0; 0, 0, 3, 2; 0, 0, 0, > 1]]], [3, 1; 0, 1]] > > Note the change in the last entry of the result (congruence subgroup) > from [3, 2; 0, 1] to [3, 1; 0, 1]. The second one is the correct one, by > the way. The bug doesn't show up in the stable version. This not a bug. Note also the change in the _second_ entry (3rd component): [0, -1, -1, -1]~ --> [0, -1, -1, 0]~ The output is in the form [conductor, gen, Artin group]. The norm group refers to a bnr computed with respect to the _true_ conductor, ie not the original one, in particular it is given wrt gen [ = bnr.gen ], and of course there's nothing canonical about these generators, so changing the random seed "changes" the norm group [ not its index of course ]. Karim. P.S: conductor() uses a highly inefficient algorithm, via orderofquotient(), computing many full bnr for different moduli, and many bnrisprincipal for each bnr, where the only question is whether all x = 1 mod^* (f / v), (x,f) = 1 [ v a place in the support of the divisor f ] belong to the congruence subgroup or not [ and if so, incrementally for f / v^2, ... ]. This can be checked trivially in (O_K / f)^* for the original f, since (O_K/f)^* / (O_K/(f/v))^* is cyclic with "obvious" generator. Using the general formalism for exact sequence of abelian groups from Cohen's (second) book is a real waste in this case. This code is copy-pasted in discrayrelall() and should be fixed here as well. I'll do it one of these days -- once I'm done checking late bug reports:-( -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud Email: Karim.Belabas@math.u-psud.fr F-91405 Orsay (France) http://www.math.u-psud.fr/~belabas/ -- PARI/GP Home Page: http://www.parigp-home.de/