#13687: Parents for groups
--------------------------------+-------------------------------------------
       Reporter:  vbraun        |         Owner:  joyner      
           Type:  enhancement   |        Status:  needs_review
       Priority:  major         |     Milestone:  sage-5.6    
      Component:  group theory  |    Resolution:              
       Keywords:  new Parent    |   Work issues:              
Report Upstream:  N/A           |     Reviewers:  David Roe   
        Authors:  Volker Braun  |     Merged in:              
   Dependencies:                |      Stopgaps:              
--------------------------------+-------------------------------------------

Old description:

> Groups are based on the deprecated `ParentWithGens`. This ticket is about
> forward-porting them to the new coercion framework.
>
> To limit the size of the patchbomb I'm only porting the Abelian groups.
> The rest depends on `old.Group`
>
> Various oddities needed to be cleaned up in the process:
> * make parents unique and elements immutable (often requires tuples
> instead of lists)
> * rename `AbelianGroup_class.invariants()` ->
> `AbelianGroup_class.gens_orders()` since they are not necessarily the
> abelian invariants (=elementary divisors).
> * rename `element.list()` -> `element.exponents()` for the exponent
> vector.
> * implement a `AbelianGroupWithValues` where you attach values to the
> (abstract) generators. Used in the unit group of a number field, for
> example.
> * lots of places return lists when they should return tuples
>
> I haven't actually deprecated `.invariants()` and `.list()`, just changed
> the documentation to suggest the equivalent `.gens_orders()` and
> .exponents()` methods. But I think we should deprecate them. Though I
> first want to work my way through the remaining groups code.
>
> Apply
> * [attachment:trac_13687_Parent_for_groups.patch]
> * [attachment:trac_13687_review.patch]
> * [attachment:trac_13687_assertions.patch]

New description:

 Groups are based on the deprecated `ParentWithGens`. This ticket is about
 forward-porting them to the new coercion framework.

 To limit the size of the patchbomb I'm only porting the Abelian groups.
 The rest depends on `old.Group`

 Various oddities needed to be cleaned up in the process:
 * make parents unique and elements immutable (often requires tuples
 instead of lists)
 * rename `AbelianGroup_class.invariants()` ->
 `AbelianGroup_class.gens_orders()` since they are not necessarily the
 abelian invariants (=elementary divisors).
 * rename `element.list()` -> `element.exponents()` for the exponent
 vector.
 * implement a `AbelianGroupWithValues` where you attach values to the
 (abstract) generators. Used in the unit group of a number field, for
 example.
 * lots of places return lists when they should return tuples

 I haven't actually deprecated `.invariants()` and `.list()`, just changed
 the documentation to suggest the equivalent `.gens_orders()` and
 .exponents()` methods. But I think we should deprecate them. Though I
 first want to work my way through the remaining groups code.

 Apply
 * [attachment:13687_parent_for_groups_all.patch]

--

Comment (by jdemeyer):

 I combined and rebased the patches.

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