#11935: Make parent/element classes independent of base rings
----------------------------------------------------------------+-----------
   Reporter:  SimonKing                                         |          
Owner:  nthiery                              
       Type:  enhancement                                       |         
Status:  needs_work                           
   Priority:  major                                             |      
Milestone:  sage-4.8                             
  Component:  categories                                        |       
Keywords:  parent class, element class, category
Work_issues:  Fix doctest in covariant functorial construction  |       
Upstream:  N/A                                  
   Reviewer:                                                    |         
Author:  Simon King                           
     Merged:                                                    |   
Dependencies:  #9138 #11900 #11943                  
----------------------------------------------------------------+-----------
Changes (by SimonKing):

  * milestone:  => sage-4.8


Comment:

 I think the following could be a solution:

  1. Do not use optimization for `Category.parent_class`. Hence, the
 default is the good old "pickle by construction" approach.
  1. Add a specialised `JoinCategory.parent_class` that uses default
 pickling of a dynamic class (which means: The class is uniquely determined
 by the base classes). Rationale: A join category is uniquely determined by
 its super categories, and thus it is consequent if the parent class of a
 join category is uniquely determined by the parent classes of its super
 categories.
  1. Add a specialised `Category_over_base.parent_class` using the
 optimization (O) discussed above, in the "weak pickling by construction"
 abbroach. Rationale: It's the purpose of this ticket to make the parent
 class independent of the base ring, and "weak pickling by construction"
 seems the most stable option.

 Apparently, the problem with functorial constructions would vanish - they
 use the non-optimized old parent_class. But we would get a speed-up where
 we need it: Polynomial rings belong to a join category, and one super
 category of that join category is a `Category_over_base`.

 Of course, the same should be done with the element_class.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11935#comment:21>
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