On Nov 25, 11:27 am, Simon King <simon.k...@uni-jena.de> wrote: > Hi Luis! > > On 25 Nov., 10:34, luisfe <lftab...@yahoo.es> wrote: > > > Suppose the following: > > > sage: K.<r4> = NumberField(x^4-2) > > sage: L1.<r2_1> = NumberField(x^2-2, embedding = r4**2) > > sage: L2.<r2_2> = NumberField(x^2-2, embedding = -r4**2) > > sage: K.has_coerce_map_from(L1) > > True > > sage: K.has_coerce_map_from(L2) > > True > > sage: L3.<a> = NumberField(x^2-2) > > > If there where coercions from non-embedded fields to embedding field, > > there would be an embedding from L3 to L1 and L3 to L2. So, the > > coercion model would discover two possible coercions from L3 to K. How > > can we make them compatible? > > Excellent argument! > > I was not aware that there already is a coercion from L1 and L2 to K. > Then, indeed, it is not possible to extend everything consistently in > a structure preserving way, and I have to withdraw the answer that I > just gave to John. > > > By the way, is there a problem with coercions? > > With the first set of fields I encounter the following error: > > > sage: r4+r2_1 > > r4^2 + r4 > > sage: r4+r2_2 > > -r4^2 + r4 > > sage: r2_1+r2_2 > > ERROR: An unexpected error occurred while tokenizing input > > The following traceback may be corrupted or invalid > > The error message is: ('EOF in multi-line statement', (1077, 0)) > > That seems fine to me. You can add r4 with r2_1 or r2_2, because there > is coercion from L1 or L2 to K. But I guess there is no way to > construct a canonical parent into which both L1 and L2 coerce (K is > certainly not canonical, or is it?). So, the coercion system would not > find a parent structure in which to perform the sum of r2_1 and r2_2.
As long as you construct L1 with a specified embedding to K, from a user point of view you are stating "I am working on this subfield L1 of K, but I want a subfield representation in terms of powers of r2_1". In that sense yes, K would be canĂ³nical. It would not be in L2 had not an embedding to K or an embedding to a different field. I am not sure if construction time embedding is treated equally to any other embedding to other fields you can make sage aware after construction of L1 by register_coercion. If it is treated just equal the rest of possible embeddings, yes, K would not be canonical. However what I wanted to point out is that my Sage installation hangs on that computation, repeating the ERROR. -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org