Jean-Pierre Flori wrote: > Currently one can obtain surprising results in Sage when converting > polynomial over finite fields (or elements of quotient rings of univariate > polynomial ring even though tht's not the primary concern of the ticket). > See http://trac.sagemath.org/ticket/11239 > Basically the generators of the finite fields are just exchanged, even > when the characteristics are different. > The changes suggested in this ticket would more or less only let a > coercion be used if there is one, and rant if the characteristics are > different or the base finite fields are not part of a common lattice when > there is no canonical embedding. > > Note though that the original disturbing conversion fits with the current > behavior described in the doc: > * > http://www.sagemath.org/doc/reference/coercion/index.html#maps-between-parents > where it's stated that > > "Conversions need not be canonical (they may for example involve a choice > of lift) or even make sense mathematically (e.g. constructions of some > kind)." > > Anyone has a strong opinion about what we should let Sage do in such a > situation? > I posted a comment at #11239, so let me just say here that I think this principle (that conversions need not be canonical) shouldn't be pushed further than reasonable. For example, if K is a field and f, g in K[x] are polynomials, then applying a conversion K[x]/(f) -> K[x]/(g) is a sensible thing to do if g divides f (the canonical map) or if f divides g (the lifting map). However, I don't see why it is important to insist that the composition of two such maps (e.g. K[x]/(f) -> K[x] -> K[x]/(g) when f, g have nothing to do with each other) should again be a valid conversion that can be invoked with the same ease. Hence I think that R(h), for R = K[x]/(g) and h in L[x]/(f), should only be allowed when K has a canonical map to L and either f divides g (in L[x]) or vice versa. This should cover almost all practical uses, and in the rare remaining cases it seems better to require being a bit more explicit and doing the conversion in two steps.
Should we leave the old conversion when there is no coercion even though > that might easily to wrong mathematical results for a careless user? Or > never look for a coercion unless the user explicitly asks for it (i.e. what > the situation is currently in Sage without the patches of the ticket)? > I thought that conversion should always give the same result as a coercion map whenever one exists; is there any (intended) situation where this is not the case? Peter -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/groups/opt_out.
