#10667: Morphisms and Objects of Categories
----------------------------------+-----------------------------------------
   Reporter:  SimonKing           |          Owner:  nthiery                    
  
       Type:  enhancement         |         Status:  needs_work                 
  
   Priority:  major               |      Milestone:  sage-5.0                   
  
  Component:  categories          |       Keywords:  objects morphisms 
containment
Work_issues:  Cartesian products  |       Upstream:  N/A                        
  
   Reviewer:                      |         Author:  Simon King                 
  
     Merged:                      |   Dependencies:  #9138, #11115              
  
----------------------------------+-----------------------------------------
Changes (by SimonKing):

  * work_issues:  doctests => Cartesian products


Comment:

 Just a status report: I got rid of the `__new__` method. Instead, I
 produce a `__classcall__` method, similar to what is done in
 `UniqueRepresentation` (and in fact I make
 `sage.categories.rings.Rings.HomCategory.ParentClass` inherit from
 `UniqueRepresentation`).

 I have already mentioned that I added some methods to the Cartesian
 product categories, so that some test suites actually passed. Next, I
 fixed another problem with Cartesian products: It has not been possible to
 create Cartesian products of algebras. It neither worked in sage-4.6.2 nor
 in sage-4.7.2.alpha1+#9138, but failed with different errors.
 {{{
 sage: C = cartesian_product([ZZ['x'], ZZ['y']])
 <BOOM>
 }}}

 After my patches and the addition of the base_ring method to Cartesian
 product categories, the problem arose with `__init_extra__` method in
 `sage.categories.algebras.Algebras.ParentMethods`: The Cartesian product
 of algebras over a ring R is an algebra over R (apparently acting
 diagonally). The `__init_extra__` tries to create a coercion from the R to
 the cartesian product. However, that ended in an infinite recursion. I
 solved it by adding a `from_base_ring` method, that is understood by
 `__init_extra__`.

 The remaining problem concerns summation of elements of Cartesian
 products. Multiplication is defined, via
 `sage.categories.magmas.Magmas.CartesianProduct.ParentMethods.product`.
 But summation is missing. I guess it should be implemented in
 `sage.categories.AdditiveMagmas.CartesianProduct.ParentMethods.summation`.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10667#comment:43>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to