#12407: Add the set of PrimitiveGroups
------------------------------------+---------------------------------------
Reporter: trehn | Owner: joyner
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-5.0
Component: group theory | Resolution:
Keywords: primitive groups | Work issues:
Report Upstream: N/A | Reviewers: vdelecroix
Authors: Thomas Rehn | Merged in:
Dependencies: | Stopgaps:
------------------------------------+---------------------------------------
Changes (by vdelecroix):
* status: needs_review => needs_work
* reviewer: => vdelecroix
Comment:
Hi,
Nice patch (I will need it ;-)).
0) The primitive groups are up to isomorphism which is not mentioned in
the documentation!
1) Why do you use a specific class PrimitiveGroup? The simpler
{{{
sage: PermutationGroup(gap_group = gap.PrimitiveGroup(7,3))
Permutation Group with generators [(2,4,6)(3,5,7), (1,2,4,3,6,7,5)]
}}}
seems more natural to me. The only modifications I see in your new class
are the inheritance from UniqueRepresentation and the method _repr_ (see
also remark 3 below) and the inheritance from UniqueRepresentation.
2) To be complient with GAP you decide to start numerotation from 1 which,
from my point of view, is better. However, there can be some confusion
with Python convention of starting list from 0. In particular the
following behavior may appear strange:
{{{
sage: P=PrimitiveGroups(4)
sage: p=P[2]
sage: p
Primitive group number 2 of degree 4
sage: P.rank(p)
1
sage: P.unrank(1)
Primitive group number 2 of degree 4
}}}
Could you make it explicit in the documentation?
3) The names provided by GAP are by far more useful than "Primitive group
number x of degree y":
{{{
sage: gap.PrimitiveGroup(3,2)
S(3)
sage: gap.PrimitiveGroup(5,2)
D(2*5)
sage: gap.PrimitiveGroup(10,3)
PSL(2, 9)
}}}
What do you think?
4) Moreover, GAP provides a very nice function to identify groups in the
database
{{{
sage: P=PermutationGroup(('(4,5)(6,7)(8,9)(11,12)',
'(1,2,3,4,6,8,10,5,7,11,9)'))
sage: P
Permutation Group with generators [(4,5)(6,7)(8,9)(11,12),
(1,2,3,4,6,8,10,5,7,11,9)]
sage: gap.PrimitiveIdentification(P)
2
sage: gap.PrimitiveGroup(12, 2)
M(12)
}}}
Could you implement it as a method of PermutationGroup? For sure, if you
decide to keep the class PrimitiveGroup the method should be overwritten.
Notice that the method .group_id() and aliased as .id() of
PermutationGroup returns the index of G in the database of all permutation
groups. The method for primitive groups could hence be named
group_id_primtive() aliased as .id_primitive().
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12407#comment:2>
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.