On 2018-06-12 23:07, Simon King wrote:
And now think about quotients of polynomial rings. Let A,B have the same variable names in the same positions, but let the monomial orderings be different. Let I be an ideal in A and J the corresponding ideal in B. So, if we say that there is a name and position preserving COERCION from A to B, then by applying the quotient construction (that's a construction functor!), we have to have a name and position preserving coercion from A/I to B/J. However, when doing computations in A/I and B/J, we are interested in normal forms of elements of A wrt I and of B wrt J. And if the monomial orderings are different, a name and position preserving map would not be compatible with normal forms.
For me, a coercion does not need to preserve normal forms, so I no objection here.
As R[x][z] corresponds to an ordered sub-ring of R[x][y][z] by a name preserving map, one could argue that there should be a coercion.
There certainly should be. There is a base ring injection map R[x] -> R[x][y] leading to a base change map (by functorial construction) R[x][z] -> R[x][y][z].
However, these iterated polynomial ring constructions are quite inefficient.
True, but I don't see that as an argument to have no coercion.
I thus tend to kind of proposing the following: - All default (partial) conversions between polynomial rings are preserving names, as that's less surprising than position preserving maps.
The problem is what you do with R[x] -> R[y]? We have always allowed that as a conversion.
- If P1,P2 are polynomial rings over R, then a coercion from P1 to P2 is a *name* preserving homomorphism of graded-rings-with-monomial-ordering. Hence, it is name preserving, degree preserving, and maps P1 to an ordered sub-ring of P2. That's of course very strict, but I think this would work best with categorial constructions.
What does "degree preserving" mean? And what would this rule imply for coercions R[x][y] -> R[x,y]?
-- 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 sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.