On Saturday, 26 August 2023 at 00:22:39 UTC-7 Frédéric Chapoton wrote: I propose in https://github.com/sagemath/sage/pull/36138 a sketch of changes that would build a common polynomial ring by taking the union of variables. This does not break too many things. Instead many doctests checking for coercion failure now report coercion success. There are still a few problematic things to solve, in particular about infinite polynomials rings.
I think that creating new parents to satisfy coercion is generally not a good idea. It's really a step further than figuring out (canonical) maps between "known" parents (that is, the ones that are directly presented in the context) Question: what does magma do ? In magma, variable names are NOT important. They are just for printing. So coercion is not led by variable names at all. That means it's generally more restrictive in what it can do. It also has a concept of "non-global" polynomial rings [the default for multivariate]. So a univariate polynomial in one variable cannot be added to a multivariate polynomial in two variables; not even between QQ['x'] and QQ['x,y']. So sage is already much more permissive. It can do so because generator names are part of the identity of a parent and also to some extent because parents are mostly globally unique. Both of these properties come with a significant price as well (you can't change generator names, or any properties, and you get an extra problem that generator names may be repeated in the tower, which you now either have to deal with or forbid (which is expensive and inconvenient in its own way). -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/776ba9ef-d4d0-4d42-91ba-e72f55f58ff5n%40googlegroups.com.