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 citeBW1,BW2,BW3). 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 share 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:
UpMapping
chosen for derivations and sections
(now changed to Up2dMapping
).
obj2.gd
, map2.gi
, up2.tex
, etc.
IsomorphismPermGroup
for 2dObjects
.
(Strange terminology here! Will probably define global functions
IsomorphismPermObject
, IsomorphismFpObject
, etc. in a later version
which will call IsomorphismPermGroup
, IsomorphismPerm2dObject
or whatever is appropriate.)
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.
XModMorphism
renamed as XModMorphismByHoms
,
and a new global function XModMorphism
introduced
(and ditto for other 2dMappings
).
CompositeDerivation
still giving
multiplication
Version 2.002 was prepared for the 4.4 release at the end of January 2004, and so required a
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
(the loading mechanism was revised in version 2.006).
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.
OperationHomomorphism
by ActionHomomorphism
--
a general GAP 4.4 change.
RModule
by AbelianModule
.
UpMapping
as Up2dMapping
.
MappingGeneratorsImages
and InverseGeneralMapping
for a 2dMapping
.
AutomorphismPermGroup
for a crossed module,
WhiteheadXMod
, NorrieXMod
, LueXMod
, ActorXMod
,
Centre
of a crossed module, InnerMorphism
and InnerActorXMod
.
SmallerDegreePermPreXMod
after discovering
SmallerDegreePermutationRepresentation
in the library.
This version contains changes made between May 4th and September 6th 2004.
fail
when invalid data is supplied,
rather than calling Error
.
XmodByGroupOfAutomorphisms
.
EndoClasses
.
3dObjects
:
the actor of a crossed module is a typical example of a crossed square.
InverseGeneralMapping
for morphisms.
FpXMods
, PcXMods
, etc.
FreeXMods
.
Isomorphism2dObjects
.
XMod manual