#6491: [with spkg, needs review] Modular Cohomology Rings of Finite p-Groups
-------------------------------+--------------------------------------------
 Reporter:  SimonKing          |       Owner:  SimonKing                     
     Type:  enhancement        |      Status:  assigned                      
 Priority:  major              |   Milestone:  sage-4.1.1                    
Component:  optional packages  |    Keywords:  cohomology ring finite p-group
 Reviewer:                     |      Author:  Simon King                    
   Merged:                     |  
-------------------------------+--------------------------------------------
Changes (by SimonKing):

 * cc: david.gr...@… (added)


Old description:

> I suggest to distribute our package for the computation of modular
> cohomology rings of finite p-groups as an optional package.
>
> == Authors ==
>
>  - Simon A. King (Since recently at National University of Ireland,
> Galway)
>  - David J. Green (Friedrich-Schiller-Universität Jena)
>
> == Installation ==
>
> The package can be installed by
> {{{
> sage -i
> http://sage.math.washington.edu/home/SimonKing/Cohomology/p_group_cohomology-1.0.spkg
> }}}
>
> == Purpose ==
>
> Given any group of order `p^n` (where `p` is prime), compute the
> cohomology ring (in terms of minimal generators and relations and also
> providing various ring theoretic invariants) of the group with coeffients
> in the finite field of order `p`. Of course, induced homomorphisms can be
> computed as well.
>
> == Documentation ==
>
> An extensive documentation can be found at
> [[http://sage.math.washington.edu/home/SimonKing/Cohomology/]].
>
> == Features ==
>
> The package includes the cohomology rings of all groups of order 64.
> These are actually quite challenging for other software (e.g., the Hap
> package for Gap, or the Magma programs of Jon F. Carlson with which these
> cohomology rings were first computed).
>
> On sage.math, there are the cohomology rings for all groups of order 128,
> and the package can download them. '''Sage is the only CAS that can
> currently provide such data.''' Similarly, the cohomology of the groups
> of order 243 is available, but six of them are still not completely
> computed yet.
>
> == Sources ==
>
> The package comprises
>  - a modified old version of the Aachen C-MeatAxe,
>  - C-routines and Gap functions of David J. Green for the computation of
> minimal projective resolutions, and
>  - various Cython extension modules and Singular functions written by
> myself, computing the structure of the cohomology ring according to
> algorithms of Dave Benson and David J. Green.
>  - Data for the cohomology of all groups of order 64.
>
> The C-MeatAxe is considerably modified, the rest of the sources has never
> been published yet. Therefore we included all of the sources into the
> Mercurial repository.
>
> == Dependencies ==
>
> It is required that the SmallGroups library is installed.
>
> Since I too often had to work around bugs in the non-commutative part of
> Singular 3-0-4, it is required that Singular 3-1-0 is available when
> dealing with a finite p-Group and p>2.
>
> == Testing ==
>
> I am afraid that there is no separate test suite for the C-sources. The
> package includes two scripts {{{spkg-check}}} and {{{spkg-check-
> details}}}, that both walk through all doc tests. {{{spkg-check-
> details}}} is slower, but in case of errors provides more direct pointers
> to the failing tests than {{{spkg-check}}}. The scripts also verify the
> presence of doc test in any method.
>
> Note that some tests require internet connection, as data will be
> downloaded.
>
> == Known issues ==
>
>  - It is not clear to me how one properly works with Licences. I did my
> very best. But could please some more experienced person check whether
> everything is alright with the licence?
>
>  - A couple of months ago, I tried to build an earlier version of the
> package on OS X. It failed, which was very likely due to C-MeatAxe, which
> in fact does not seem to support OS X (even in the most recent version).
> But this was without distutils. Perhaps someone can test it, as I do not
> have access to OS X.
>
>  - By the way of saving matrices in the MeatAxe format, it is very likely
> that the porting between big and little endian machines will be
> impossible. In particular, it could turn out to be impossible to use the
> data bases with a motorola processor.

New description:

 I suggest to distribute our package for the computation of modular
 cohomology rings of finite p-groups as an optional package.

 == Authors ==

  - Simon A. King (Since recently at National University of Ireland,
 Galway)
  - David J. Green (Friedrich-Schiller-Universität Jena)

 == Installation ==

 The package can be installed by
 {{{
 sage -i
 
http://sage.math.washington.edu/home/SimonKing/Cohomology/p_group_cohomology-1.0.spkg
 }}}

 Since William has put it into the experimental package repository, you can
 now also do
 {{{
 sage -i p_group_cohomology-1.0.spkg
 }}}
 == Purpose ==

 Given any group of order `p^n` (where `p` is prime), compute the
 cohomology ring (in terms of minimal generators and relations and also
 providing various ring theoretic invariants) of the group with coeffients
 in the finite field of order `p`. Of course, induced homomorphisms can be
 computed as well.

 == Documentation ==

 An extensive documentation can be found at
 [[http://sage.math.washington.edu/home/SimonKing/Cohomology/]].

 == Features ==

 The package includes the cohomology rings of all groups of order 64. These
 are actually quite challenging for other software (e.g., the Hap package
 for Gap, or the Magma programs of Jon F. Carlson with which these
 cohomology rings were first computed).

 On sage.math, there are the cohomology rings for all groups of order 128,
 and the package can download them. '''Sage is the only CAS that can
 currently provide such data.''' Similarly, the cohomology of the groups of
 order 243 is available, but six of them are still not completely computed
 yet.

 == Sources ==

 The package comprises
  - a modified old version of the Aachen C-MeatAxe,
  - C-routines and Gap functions of David J. Green for the computation of
 minimal projective resolutions, and
  - various Cython extension modules and Singular functions written by
 myself, computing the structure of the cohomology ring according to
 algorithms of Dave Benson and David J. Green.
  - Data for the cohomology of all groups of order 64.

 The C-MeatAxe is considerably modified, the rest of the sources has never
 been published yet. Therefore we included all of the sources into the
 Mercurial repository.

 == Dependencies ==

 It is required that the SmallGroups library is installed.

 Since I too often had to work around bugs in the non-commutative part of
 Singular 3-0-4, it is required that Singular 3-1-0 is available when
 dealing with a finite p-Group and p>2.

 == Testing ==

 I am afraid that there is no separate test suite for the C-sources. The
 package includes two scripts {{{spkg-check}}} and {{{spkg-check-
 details}}}, that both walk through all doc tests. {{{spkg-check-details}}}
 is slower, but in case of errors provides more direct pointers to the
 failing tests than {{{spkg-check}}}. The scripts also verify the presence
 of doc test in any method.

 Note that some tests require internet connection, as data will be
 downloaded.

 == Known issues ==

  - It is not clear to me how one properly works with Licences. I did my
 very best. But could please some more experienced person check whether
 everything is alright with the licence?

  - A couple of months ago, I tried to build an earlier version of the
 package on OS X. It failed, which was very likely due to C-MeatAxe, which
 in fact does not seem to support OS X (even in the most recent version).
 But this was without distutils. Perhaps someone can test it, as I do not
 have access to OS X.

  - By the way of saving matrices in the MeatAxe format, it is very likely
 that the porting between big and little endian machines will be
 impossible. In particular, it could turn out to be impossible to use the
 data bases with a motorola processor.

--

Comment:

 William suggested at sage-devel that I should tell precisely how I think
 the package should be tested, addressing the following areas:

 === What hardware/OS combos should it be tried to install ===

 So far, I successfully installed the package on Intel Pentium M, two
 processor types of AMD (Opteron and another one that I can't remember),
 and Sun X4450 (sage.math). The OS was SuSE Linux on the three machines
 that I had in Jena.

 So, there are plenty of architectures which aren't tested, yet. As I
 indicated, I expect that OS X and Motorola processors are most
 challenging. But I leave it up to you, since so far I did not do extensive
 porting.

 === What commands should be tested, and what should happen? ===

 __A) The test script__

 There is {{{spkg-check}}}, which should of course work without errors.
 Note that the script needs to be executed in a Sage shell. Note that some
 tests assume that Singular is present in version 3-1-0, and that there is
 internet connection. If you get an error of Singular mentioning the timer,
 this is most likely related with ticket #6412, so please apply the
 patch...

 __B) Groups of order 64 (should be less than 1 hour)__

 One of my favourite benchmarks are the groups of order 64. You can compute
 the cohomology rings as follows.
 {{{
 sage: from pGroupCohomology import CohomologyRing
 sage: tmp_root = tmp_filename() # chosing a temporary location, or choose
 a permanent if you like
 sage: CohomologyRing.set_user_db(tmp_root) # For each test, you should
 choose a different location,
                                            # since otherwise data would be
 reloaded from previous computations.
 sage: for i in range(1,268):
 ...:      H = CohomologyRing.user_db(64,i,websource=False) # avoid that
 the complete ring gets downloaded
 ...:      H.make() # compute the ring structure
 ...:      print H == CohomologyRing(64,i) # this compares H with the pre-
 computed ring in the 'public' data base
                                           # that is shipped with the
 package
 }}}

  - The answer should be {{{True}}} in all cases.
  - It might also be interesting how long the computation takes.
  - The doc string of {{{CohomologyRing}}} mentions various options -- try
 them out!

 __C) Non-abelian case (p!=2)__

 If you have a new Sage version, with Singular 3-1-0, you may also try
 whether the computation for all groups of order 81 works without error.
 Note, however, that these rings are not included in the package, hence it
 makes no sense to test {{{CohomologyRing.user_db(81,i)}}} against
 {{{CohomologyRing(81,i)}}}

 __D) 1. Groups given in the Gap interface__

 Construct any finite p-Group G (if you only have Singular 3-0-4, p must be
 2) in the Gap interface. Try to compute the cohomology ring using
 {{{H=CohomologyRing.user_db(G,GroupName='NameOfYourGroup',
 options='prot')}}}, followed by {{{H.make()}}}. The protocol output might
 give you a feeling of what happens inside, or, should an error occur,
 might point to the source of trouble.

 Note that ''an initial segment of the generator sequence of G must be a
 minimal generating  set''. Otherwise, the package would complain.

 __D) 2. Induced homomorphisms__

 If you have two groups G1, G2 matching the condition on the generating
 sets, with H1,H2 the respective cohomology rings,  construct a
 homomorphism G1 -> G2, and try to compute the induced map. See the
 documentation of H1.hom about how it works.

 In particular, take an __auto__morphism {{{phi:G1 -> G1}}}. Compute the
 induced map {{{phi_star=H1.hom(phi,H1)}}}. Try {{{phi_star^(-1)}}},
 {{{phi_star^3}}}, apply phi_star to elements of the cohomology ring, etc.

 __E) Test various methods__

 If you don't have Singular 3-1-0, choose a different group:
 {{{
 sage: from pGroupCohomology import CohomologyRing
 sage: ROOT = '/home/SimonKing/CTest'  # choose your own root folder, you
 need write permissions
 sage: CohomologyRing.set_user_db(ROOT)
 sage: H = CohomologyRing.user_db(27,3, options='prot', websource=False)
 #... some protocol output
 sage: H.make()
 #... tons of protocol output
 sage: H.nil_radical()
 #... some protocol output
 a_1_0,
 a_1_1,
 a_3_4,
 a_3_5,
 b_2_0*b_2_3-b_2_0*b_2_1,
 b_2_1^2-b_2_0*b_2_2-b_2_0*b_2_1,
 b_2_1*b_2_2+b_2_0*b_2_2,
 b_2_1*b_2_3-b_2_0*b_2_2-b_2_0*b_2_1,
 b_2_2^2+b_2_0*b_2_2,
 b_2_2*b_2_3+b_2_0*b_2_2
 }}}


 === RTFM ===

 There is extensive documentation at
 [[http://sage.math.washington.edu/home/SimonKing/Cohomology/]]. Please
 read some chapters and see whether you find it clearly explained and
 whether it teaches you how to use the package. If not, please tell me!

 I believe the package (should it be possible to install on your system) is
 already useful. But certainly there are many more things that one might
 want to know about cohomology rings: More ring theoretic invariants, for
 example. Please tell me what functionality you are missing, so that later
 versions of the package might implement it.

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