Changes between Version 2 and Version 4 of Ticket #10668


Ignore:
Timestamp:
01/22/11 08:37:57 (11 years ago)
Author:
nthiery
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #10668 – Description

    v2 v4  
    2424Here are some thoughts for a proper implementation:
    2525
    26  - Add support for a HomMethods subclass, similar to ElementMethods
    27    and ParentMethods. If Cat is a category, then Cat.HomMethods
    28    will provide generic methods for morphisms in Cat and any
    29    subcategory. This will require to implement the building of a
    30    hierarchy of abstract classes Cat.method_class. And to either tweak
    31    sage.categories.morphism.Morphism to add inheritance from this
    32    class, as is done in Element and Parent, or to tweak the
    33    implementation of Homset.element_class so that, for H a homset in
    34    Cat, H.element_class would inherit from Cat.method_class besides
    35    the usual stuff (I guess I prefer the later option).
     26 - Add support for a MorphismsMethods subclass, similar to
     27   ElementMethods and ParentMethods. If Cat is a category, then
     28   Cat.MorphismMethods will provide generic methods for morphisms in
     29   Cat and in any subcategory. This can be achieved by:
    3630
    37  - Reimplement HomCategory. For Cat a category, the purpose of
     31    - Building of a hierarchy of abstract classes Cat.morphism_class,
     32      similar to Cat.element_class and Cat.parent_class (10 lines of
     33      code; see Category.element_class).
     34
     35    - Having morphisms in Cat inherit from Cat.morphism_class. This
     36      can be achieved by overiding either:
     37
     38       - Parent.element_class in Homset.element_class
     39       - Category.element_class in HomCategory.element_class (my preferred choice at this point)
     40
     41 - Fix HomCategory. For Cat a category, the purpose of
    3842   Cat.hom_category() shall be to provide mathematical information
    3943   about its homsets (e.g. that a homset in the category of vector
     
    4347   category of groups).
    4448
    45  - If CatA is a subcategory of catB, add automatic coercion (or just
     49 - If CatA is a subcategory of CatB, add automatic coercion (or just
    4650   conversion?) from Hom(A,B, CatA) to Hom(A, B, CatB), modeling the
    4751   appropriate forgetful functor. There are too many such coercions
     
    5054   homsets.
    5155
    52    Some extra work will probably be needed if one wants to handle
    53    mixed morphism arithmetic (e.g. having the sum of an algebra
    54    morphism and a coalgebra morphism return a vector space morphism).
     56 - Extend/use sage.categories.pushout to handle mixed morphism
     57   arithmetic (e.g. having the sum of an algebra morphism and a
     58   coalgebra morphism return a vector space morphism).