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.