Hello,

Let me advertise a patch on #8044 which introduces categories in the
group code and uses it to do some cleanup. There are some minor design
questions which I thought should be brought up here. This is a
followup to #7921, and I'd love to see it in 4.3.2.

Thanks in advance for feedback and review!

Cheers,
                                        Nicolas


Categories for finite/permutation/symmetric groups

http://trac.sagemath.org/sage_trac/ticket/8044

Ticket description:

    * 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.FiniteGroup. Content
      moved to the SemiGroups / FiniteGroups categories

    * 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

                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to