I think that this is exactly what I need. Nevertheless I cannot use neither i.section() nor i.inverse_image(). The second one because of the same reason as you, and the first one when I try it is says "TypeError: 'NoneType' object is not callable".
On Thursday, April 17, 2014 12:07:18 PM UTC+2, John Cremona wrote: > > OK, that makes sense now. It boils down to this: given an element of > F12=GF(p^12) which happens to lie in F2 = GF(p^2), how to express it > in terms of a generator of F2. This is not quite as easy as it should > be but this works (assuming that you have defined F12 with generator a > and F2 with generator b): > > sage: bb = b.minpoly().roots(F12)[0][0] > sage: i = F2.hom([bb],F12) > sage: j = i.section() > > Here we have defined an embedding i of F2 into F12 by find a place to > map b (called bb) and set j to be an inverse to i. (I think we should > be use i.inverse_image() but that gave me a NotImplementedError, which > is a pity since I have used sort of construction easily in extensions > of number fields). > > Now if f is your polynomial in F12[x] whose coefficients lie in F2 you can > say > > sage: PolynomialRing(F2,'X')([j(c) for c in f.coeffs()]) > > to get what you want, I hope! > > John > > On 17 April 2014 02:52, Irene <irene....@gmail.com <javascript:>> wrote: > > Sorry, I didn't write it correctly. I meant GF(p^12,'a') instead of > > GF(p^13,'a'). As 2 divides 12, GF(p^12,'a') is an extension of > GF(p^2,'b'). > > My question is the same now with the correct data. > > > > On Thursday, April 17, 2014 11:04:40 AM UTC+2, John Cremona wrote: > >> > >> On 17 April 2014 01:55, Irene <irene....@gmail.com> wrote: > >> > Hello! > >> > > >> > I want to define a polynomial that I know lies in GF(p^2,'b')[x], > >> > p=3700001. > >> > The problem is that I have to define it as a product > >> > E=(X-a_1)*(X-a_2)*(X-a_3)*(X-a_4)*(X-a_5)*(X-a_6), where every a_j is > in > >> > GF(p^13,'a')[X]. > >> > I tried to do GF(p^2,'b')[x](E), but then Sage just changes the > >> > generator > >> > 'a' and writes the same expression with the generator 'b'. > >> > Any idea about how to do this? > >> > Thank you!! > >> > >> Did you write that correctly? GF(p^13) is not an extension of > >> GF(p^2). If a1 is in GF(p^13) then a1.minpoly() will give its min > >> poly, in GF(p)[x]. > >> > >> John Cremona > >> > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "sage-support" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send > >> > an > >> > email to sage-support...@googlegroups.com. > >> > To post to this group, send email to sage-s...@googlegroups.com. > >> > Visit this group at http://groups.google.com/group/sage-support. > >> > For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "sage-support" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to sage-support...@googlegroups.com <javascript:>. > > To post to this group, send email to > > sage-s...@googlegroups.com<javascript:>. > > > Visit this group at http://groups.google.com/group/sage-support. > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.