Sometimes you start working on a ticket thinking "this is just a few hours of work" when it turns out to be a huge can of worms...

Coercion for multi-variate polynomials might fall in this category. There are several strange things and bugs. The best example so far:


sage: R.<x,y> = QQ[]
sage: QQ["y,x"](x)
x

sage: R.<x,y> = QQbar[]
sage: QQbar["y,x"](x)
y

So depending on the base ring, you get different maps
R[x,y] -> R[y,x]. In both cases, Sage considers this map a coercion.

I would like to forget the current situation and simply start from scratch thinking which maps should be coercions. I don't have a good idea so far, I wonder if somebody else does.

I'd like to say that the following should be coercions:
R -> R[x,y]
R[x] -> R[x,y]
R[y] -> R[x,y]
R[x][y] -> R[x,y]

But not the following:
R[x,y] -> R[x][y]
R[x,y] -> R[y,x]
R[x,y][z] -> R[x][y,z]

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

Reply via email to