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.

Reply via email to