Hi John! On 24 Nov., 22:40, John Cremona <john.crem...@gmail.com> wrote: > I never use these canonical embeddings, and cannot think of a reason > for defining one field twice in this way...
Well, it is imaginable that some automatic constructions (say, in pushout) create such a situation. And if it occurs, the program should know how it is supposed to cope with it. > Now this would be more useful: > > sage: K.<a> = NumberField(x^2+3) > sage: L.<w> = NumberField(x^2+x+1) > sage: K.has_coerce_map_from(L) > False > sage: L.has_coerce_map_from(K) > False > sage: K.is_isomorphic(L) > True > sage: K.embeddings(L) > [ > Ring morphism: > From: Number Field in a with defining polynomial x^2 + 3 > To: Number Field in w with defining polynomial x^2 + x + 1 > Defn: a |--> 2*w + 1, > Ring morphism: > From: Number Field in a with defining polynomial x^2 + 3 > To: Number Field in w with defining polynomial x^2 + x + 1 > Defn: a |--> -2*w - 1 > ] > > to turn into a coercion! Since there are two different embeddings, I doubt that one can turn it into a coercion: A coercion must be unique for the given pair of parents; hence, you need an algorithm to pick one of the above embeddings. Moreover, the choices must be consistent, i.e., the concatenation of two coercion maps must be a coercion map. Can you propose a canonical and consistent choice of isomorphism? Cheers, Simon -- 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