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