This chapter, which is intended to contain details of the major changes to the package as it develops, was first created in April 2002. Details of the changes from XMod~1 to XMod~2.001 are far from complete.
The inspiration for this package was the need, in the mid-1990's, to calculate induced crossed modules (see [RC95], [RC96], [RC03]). GAP was chosen over other computational group theory systems because the code was freely available, and it was possible to modify the Tietze transformation code so as to record the images of the original generators of a presentation as words in the simplified presentation. (These modifications are now a standard part of the Tietze transformation package in GAP.)
The first version of XMod became an accepted package for GAP~3.4.3 in December 1996.
Conversion of XMod~1 from GAP~3.4.3 to the new GAP syntax began soon after GAP~4 was released, and had a lengthy gestation. The new GAP syntax encouraged a re-naming of many of the function names. An early decision was to introduce generic names 2dObject
for (pre-)crossed modules and (pre-)cat1-groups, and 2dMapping
for the various types of morphism. This allows 3dObject
to be used in future for crossed squares and cat2-groups, and 3dMapping
for their morphisms. A generic name for derivations and sections is also required, and Up2dMapping
is currently used.
This was the first version of XMod for GAP~4, completed in April 2002 in a rush to catch the release of GAP~4.3. Functions for actors and induced crossed modules were not included, nor many of the functions for derivations and sections, for example InnerDerivation
. During the ten days prior to the release, the main changes made were:
Generic name UpMapping
chosen for derivations and sections (now changed to Up2dMapping
).
File names changed to obj2.gd
, map2.gi
, up2.tex
, etc.
Added alternative methods for IsomorphismPermGroup
for 2dObjects
(see also 9.1.4).
Sorted a problem with fixing the generating set for R
when used to define derivations. The (old) code uses an fp-group version of R
and checks that all the relators map by chi
to 1
. Unfortunately, IsomorphismFpGroup
sometimes permutes the order of the R
-generators, with unfortunate effects. The fix is to use IsomorphismFpGroupByGenerators
which returns the images of the generators specified in the function call. We have also used genR := StrongGeneratorsStabChain( StabChain( rng ) );
throughout to specify the generators of R
.
Operation XModMorphism
renamed as XModMorphismByHoms
, and a new global function XModMorphism
introduced (ditto for other 2dMappings
).
Now using chi_1 star chi_2 for Whitehead multiplication {\bf on the right}, with CompositeDerivation
still giving multiplication {\bf on the left}. This means that the second axiom for derivations and for sections has changed -- see Chapter 4.
During the period May 20th - May 27th 2002 converted induce.g
to induce.gd
and induce.gi
(later renamed induce2.gd
, induce2.gi
), at least as regards induced crossed modules. (Induced cat1-groups may be convereted one day.) This involved the following.
Converted combinatorial functions -- DistinctRepresentatives
, CommonRepresentatives
, CommonTransversal
and IsCommonTransversal
.
Converted Tietze modification functions TzCommutatorPair
, TzPartition
and FactorsPresentation
.
Introduced global functions IsomorphismPermObject
, IsomorphismFpObject
, and IsomorphismPcObject
which call IsomorphismPermGroup
etc. when the object is a group. Added functions IsomorphismPermPreXMod
, IsomorphismPermPreCat1
, etc. to be called when the object is a 2d-object.
Added IsomorphismXModByNormalSubgroup
which applies when the boundary of the xmod is injective.
Added PreXModIsomorphismByIsomorphisms
(we also need a similar function PreCat1IsomorphismByIsomorphisms
) where the data consists of a crossed module, an isomorphism of the source, and an isomorphism of the range.
Changed RModule
to AbelianModule
.
Version 2.002 was prepared for the 4.4 release at the end of January 2004, and so required a PackageInfo.g
file.
Version 2.003 of February 28th 2004 just fixed some file protections.
Version 2.004 of April 14th 2004 gave a new email address for Murat Alp and added the Cat1Select
functionality of version 1 to the Cat1
function (see also version 2.007).
Version 2.005 of April 16th 2004 moved the example files from tst/test_i.g
to examples/example_i.g
, and converted testmanual.g
to a proper test file tst/xmod_manual.tst
.
Changes made include the following.
Replaced OperationHomomorphism
by ActionHomomorphism
-- a general GAP4.4 change.
Finished replacing RModule
by AbelianModule
.
Renamed UpMapping
as Up2dMapping
.
Added MappingGeneratorsImages
and InverseGeneralMapping
for a 2dMapping
.
Converted the actor crossed module functions from the 3.4.4
version, including AutomorphismPermGroup
for a crossed module, WhiteheadXMod
, NorrieXMod
, LueXMod
, ActorXMod
, Centre
of a crossed module, InnerMorphism
and InnerActorXMod
.
Added SmallerDegreePermPreXMod
after discovering, in the library, the very useful SmallerDegreePermutationRepresentation
.
Version 2.006 of September 4th 2004 changed morphism functions to return fail
when invalid data is supplied, rather than calling Error
, and fixed a bug in XModByGroupOfAutomorphisms
.
This version contains changes made between September 2004 and October 2006.
Added basic functions for crossed squares, considered as 3dObjects
with crossed pairings, and their morphisms. Groups with two normal subgroups, and the actor of a crossed module, provide standard examples of crossed squares. (Cat2-groups are not yet implemented.)
Converted the documentation to the format of the GAPDoc package, and added the function XModBuildManual()
to the util.gi
file.
Improved AutomorphismPermGroup
for crossed modules, and introduced a special method for conjugation crosseed modules.
Substantial revisons made to XModByCentralExtension
, NorrieXMod
, LueXMod
, ActorXMod
, and InclusionInducedXModByCopower
.
Reintroduced the Cat1Select
operation.
The only reason for releasing version 2.008 was to fix broken links in PackageInfo.g
.
Speed up the calculation of Whitehead groups.
Add more functions for 3dObjects
and implement cat2-groups
.
Add interaction with IdRel, XRes, and natp.
Need InverseGeneralMapping
for morphisms.
Need more features for FpXMods
, PcXMods
, etc.
Implement actions of a crossed module.
Implement FreeXMods
.
Implement an operation Isomorphism2dObjects
.
Allow the construction of a group of morphisms of crossed modules.
Complete the conversion from Version 1 of the calculation of sections using EndoClasses
.
generated by GAPDoc2HTML