#8044: Categories for finite/permutation/symmetric groups
---------------------------------+------------------------------------------
   Reporter:  nthiery            |       Owner:  nthiery                        
                    
       Type:  enhancement        |      Status:  needs_review                   
                    
   Priority:  major              |   Milestone:  sage-4.3.2                     
                    
  Component:  group_theory       |    Keywords:  Finite groups, permutation 
groups, symmetric groups
     Author:  Nicolas M. ThiƩry  |    Upstream:  N/A                            
                    
   Reviewer:                     |      Merged:                                 
                    
Work_issues:                     |  
---------------------------------+------------------------------------------
Description changed by nthiery:

Old description:

> This patch:
>
>  * Introduces two new categories: FiniteGroups and
> FinitePermutationGroups
>
>  * Puts all permutation groups and some other finite groups in the
> corresponding categories. There remains to handle finite matrix groups
> and Galois groups in sage/rings/number_field/.
>
>  * As a result, this standardizes the interface of those groups
> (cardinality, one, ...).
>
>  * Deprecates the class sage.groups.group.[wiki:FiniteGroup]. Content
> moved to the FiniteGroups category; this was essentially the cayley_graph
>
>  * Merges cayley_graph with that for FiniteSemigroups. In the merging,
> connecting_set was deprecated to generators. Also providing a single
> element by itself as connecting set is no more supported. Finally the
> default is side = "right" (was "twosided" for semigroups). This method is
> also generalized to Semigroups with an elements option (should this be
> vertices?).
>
>   Why do we care about the produced graph using implementation =
> "networkx"? I would tend to remove this implementation detail; this would
> change the order of the edges, which requires fixing a test in
> sage.graphs.generic_graphs
>
>  * Provides group_generators defined from gens, as well as
> semigroup_generators defined from group_generators in the finite and
> coxeter cases.
>
>  * Also puts the SymmetricGroup in the FiniteWeylGroups category. Beware:
> unusual product convention Beware: this changes the generators to the
> standard Weyl group generators, that is the elementary transpositions
>  * Adds an has_descent method to permutation group elements
>
>  * Make all named permutation groups have UniqueRepresentation
>  * Questionable: the underlying set of an alternating or symmetric group
> is now a tuple. This is safer and helps UniqueRepresentation. However,
> this could break backward compatibility.  Also, maybe we want to keep the
> output as SymmetricGroup([1,3,4])?
>
>  * Makes more systematic use of TestSuite(...).run()
>  * Makes a minor improvement to FiniteEnumeratedSets tests for large
> finite enumerated sets
>  * Strips away unused imports
>  * Updates a couple doctests here and there

New description:

 This patch:

  - Introduces two new categories: FiniteGroups and FinitePermutationGroups
  - As a result, this standardizes the interface of those groups
    (cardinality, one, ...).

  - Puts all pari, permutation, and matrix groups in the corresponding
    categories. There remains to handle Galois groups in
    sage/rings/number_field/.

  - Deprecates the abstract class sage.groups.group.FiniteGroup.
    Content moved to the FiniteGroups category (see ``cayley_graph``).
    It is not used anymore anywhere in Sage's library.

  - Merges cayley_graph with that for FiniteSemigroups:
    - Generalization to any Semigroups with an ``elements`` option
      (should this be vertices?) to handle large/infinite semigroups
    - The call:
          sage: G.cayley_graph(connecting_set = [a,b,c])
      is deprecated in favor of:
          sage: G.cayley_graph(generators     = [a,b,c])
    - The following feature is removed:
        sage: G.cayley_graph(connecting_set = a)
    - side = "right" is now the default (was "twosided" for semigroups).
    - Removed forcing ``implementation = "networkx"`` in the produced
 graph.
      Note: this changed the order of the edges, which required fixing
      a test in sage.graphs.generic_graphs (color_by_label)

  - Adds cool examples of Cayley graphs plots, courtesy of Sebastien Labbe

  - Provides group_generators defined from gens, as well as
    semigroup_generators defined from group_generators in the finite
    and coxeter cases.

  - Puts the SymmetricGroup in the FiniteWeylGroups category.
    Beware: as all Sage's permutation groups, this uses GAP's product
    convention coming from left-to-right composition of permutations,
    which can be surprising for combinatorists.
    Beware: the generators of SymmetricGroup(n) are now its canonical
    Weyl group generators, namely the elementary transpositions
  - Adds an has_descent method to permutation group elements

  - Makes all named permutation groups, as well as GL and SL have
    UniqueRepresentation,

  - Makes more systematic use of TestSuite(...).run()
  - Makes a minor improvement to FiniteEnumeratedSets tests for
    large finite enumerated sets
  - Strips away some unused imports
  - Updates a couple doctests here and there

 Further debatable changes:

  - The underlying set of an alternating or symmetric group is now a
    tuple. This is safer and helps UniqueRepresentation. However, this
    could break backward compatibility.  Also, the repr is now of the
    form SymmetricGroup((1,3,4)) instead of SymmetricGroup([1,3,4]).

  - Due to the switch to UniqueRepresentation, with:

         sage: F = GF(3); MS = MatrixSpace(F,2,2)
         sage: gens = [MS([[0,1],[1,0]]),MS([[1,1],[0,1]])]
         sage: G = MatrixGroup(gens)
         sage: H = GL(2,F)

    the following equality test fails:

         sage: H == G
         True

    Do we really want this feature? If yes, than the equality test
    inherited from UniqueRepresentation will have to be fixed.

--

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