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.

## Advertising

`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.