With http://trac.sagemath.org/ticket/18182 we can use pushout categorial constructions (via functors) for cartesian products. This one can do arithematic with them and the coercion framework works.

Unfortunately, there is the following strange bug:

sage: from sage.categories.pushout import pushout
sage: from sage.sets.cartesian_product import CartesianProduct
sage: A = CartesianProduct((QQ['z'],), Sets().CartesianProducts())
sage: B = CartesianProduct((ZZ['t']['z'],), Sets().CartesianProducts())
sage: pushout(A, B)
The cartesian product of (Univariate Polynomial Ring in z over Univariate Polynomial Ring in t over Rational Field,)
sage: A.construction()
(The cartesian_product functorial construction,
 (Univariate Polynomial Ring in z over Rational Field,))
sage: pushout(A, B)
The cartesian product of (Univariate Polynomial Ring in z over Univariate Polynomial Ring in t over Rational Field,)

In ``A.construction()`` the functor (``CartesianProductFunctor``)
+seems not to be seen as ``ConstructionFunctor``` at the first pass,
although it is inheriting from ``MultivariateConstructionFunctor``. This changes on the second pass, where it magically does the correct thing.
Also: Code needs to be more on the top of the file to be reproduced.

There is a way to avoid it, namely by using

sage: A = cartesian_product((QQ['z'],))

but I am very curious why the above works and the code at the top not.

Any ideas how to fix this?

Best

Daniel

--
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 http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to