#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.