                       CHANGES to the XMod package

Problems and ToDos: 

 - (27/09/16) errors when running the tests
 - (16/06/16) document more utility functions or move them to Utils
 - (11/11/15) resolve the problem of the best 'sgQ1' to use in Isoclinism, and 
              more generally, check whether using SmallGeneratingSet elsewhere 
              allows for spurious results in the isoclinism functions
 - (09/11/15) resolve whether XModCentre = CentreXMod 
 - (15/10/15) need a function CrossedSquareByCentralExtension 
 - (24/09/15) at present IsSub2dDomain just returns 'fail' 
 - (03/09/15) XModCentre etc. fail with pc-groups 
 - (09/01/13) GroupGeneralMappingByImages in ghom.gi has changed, 
              so DiscreteNormalPreXModWithObjects no longer works. 
              Also need Print/Display methods for these constructions. 
 - (22/06/12) need to fix construction of endomorphism classes 
              so that they can be printed/displayed. 
 - (15/02/12) failed to construct induced xmod from X = (SL25 -> SL25.C2) 
              and the inclusion SL25.C2 -> GL25 using the matrix groups 
              (construction worked OK with isomorphic perm groups). 

#############################################################################
2.56 -> 2.58 (02/11/2016) 

 - (18/10/16) now using bibliography file bib.xml of type "bibxmlext.dtd"
 - (13/10/16) changed package releases to https://gap-packages.github.io/xmod
 - (24/03/16) added files hap.gd, hap.gi
 - (16/03/16) edited utils.tst to remove functions transferred to Utils

#############################################################################
2.51 -> 2.56 (08/03/2016) 

 - (23/02/16) remove functions from util.g(d/i) now in Utils; require Utils 
 - (18/02/16) removed date/version info from file headers 
 - (16/02/16) require Gpd >= 1.42;  rename README.md -> README 

#############################################################################
2.45 -> 2.51 (09/02/2016) 

 - (08/02/16) necessary changes to test files to fix new output errors

#############################################################################
2.44 -> 2.45 (29/12/2015) 

 - (29/12/15) fixed changes in output from .tst files 

#############################################################################
2.42 -> 2.44 (13/11/2015) 

 - (11/11/15) renamed Rank and MiddleLength and now for p-groups only 
 - (10/11/15) changes examples in tests to avoid repeated variable names 
 - (09/11/15) XPair -> XPairing, etc.
 - (08/11/15) IsomorphismPermPre(XMod/Cat1) -> IsomorphismPerm2dGroup, etc. 
 - (07/11/15) Revised manual, chapter 7, and isoclinic.tst
 - (06/11/15) IsStemGroup & IsStemXMod -> IsStemDomain etc. 
 - (04/11/15) RestrictionMappingGroups -> GeneralRestgrictedMapping 
 - (01/11/15) makedocrel.g: added MathJax; changed "doc" to XModDoc 
 - (20/10/15) moved code from FactorXMod to NaturalMorphiusmByNormalSubXMod 
              corrected formulae in Displacement and DisplacementSubgroup 
 - (19/10/15) revised Isoclinism for xmods; IsoAllXMods -> AllXModsUpToIso..
 - (16/10/15) changed all occurrences of XSq to CrossedSquare 
 - (15/10/15) fixed Iterator bug in Isoclinism for groups 
 - (13/10/15) CentralQuotient now a crossed module or a crossed square 
              added LeftRightMorphism and UpDownMorphism for crossed squares 
 - (07/10/15) AllXMods and AllPreXMods now global functions 
              added property IsStemXMod 
 - (06/10/15) renamed IsIsomorphicXMod as IsomorphismXMods; 
              fixed the call to IsXMod in PreXModObj 
 - (05/10/15) added Centralizer and Normalizer methods for crossed modules 
 - (02/10/15) added ExternalSetXMod 
 - (01/10/15) added operation Displacement
 - (28/09/15) added AllStemGroupFamilies and Set various Names 
 - (26/09/15) added NaturalHomomorphismByNormalSubXMod  
 - (24/09/15) added CrossActionSubgroup 
 - (23/09/15) removed last occurrences of AllIsomorphisms 
 - (22/09/15) added functions for isoclinism of groups 
 - (18/09/15) processed a number of properties in the isoclinic files 
 - (17/09/15) added example in manual subsection 2.1.4. 
 - (15/09/15) methods for InnerMorphism, ActorXMod, CentreXMod, etc. 
              now specified only for permutation crossed modules 
 - (24/08/15) major edits to README, including GitHub issues link 

#############################################################################
2.41 -> 2.42 (24/08/2015) 

 - (24/08/15) made version to be moved from Bitbucket to GitHub 
 - (20/07/15) fixed bug in IsomorphismPcPreCat1 reported by Charles Melville 

#############################################################################
2.32 -> 2.41 (05/06/2015) 

 - (05/06/15) gpd2obj.gd changed to reflect changes in package Gpd 

(#############################################################################
2.31 -> 2.32 (26/02/2015) 

 - (26/02/15) reverted AllInducedXMods(Cat1s) to global functions 
 - (03/02/15) added properties IsPreXModDomain and IsPreCat1Domain 
              which are meant to apply to both group and algebra cases 
 - (02/02/15) took out all MultiplicativeElementWithTuple's etc. 
              and Multiplicative2dElement's etc. 
 - (29/01/15) made copies of dom2d3d* and gp2obj* before embarking on a 
              major rewrite of the category structure: specifically, 
              changing lots of '2dDomain's into '2dGroup's

#############################################################################
2.26 -> 2.31 (17/12/2014) 

 - (17/12/14) moved package home page to pages.bangor.ac.uk/~mas023/chda/xmod/
 - (08/11/14) created BitBucket repository for xmod 

############################################################################# 
2.22 -> 2.26 (26/11/2013) 

 - (26/11/13) minor mod to WhiteheadTransMonoid to fix gp2up.tst output
 - (03/11/13) fixed errors in cat1data.g reported by Van Luyen Le. 
 - (15/10/13) fixed error in Cat1MorphismByXModMorphism. 
 - (03/10/13) completed work on groups of order [64..70] in cat1data.g 
 - (02/10/13) added operation CollectPartsAlreadyDone. 
 - (01/10/13) added operation PreCat1IsomorphismByIsomorphisms. 
 - (17/08/13) fixed bug in PermCat1Select sent by Van Luyen Le 
 - (26/03/13) put groups of order 64 back into cat1data.g 
 - (05/02/13) rewrite of testall.g following Alex K's wedderga example 

#############################################################################
2.19 -> 2.22 (25/01/2013) 

 - (25/01/13) Minor change to test file output to avoid problems in tests. 
 - (09/01/13) Changed PackageWWWHome, using "gap4" rather than "gap4r5". 
              Unable to fix problems related to changes in lib/ghom.gi, 
              so removed gpd2obj.tst from the set of standard tests: 
              the problem is with changes to GroupGeneralMappingByImages. 
 - (26/09/12) Moved functions to the new cat1data.gd, cat1data.gi. 
 - (21/09/12) Edited test files to reflect recent changes
 - (12/07/12) Changed the format and rebuilt the data file cat1data.g :- 
              it is now assumed that the SmallGroups library is used. 
              Extended cat1data.g from order 47 to most of order 64. 
              Major revision of AllCat1s, MakeAllCat1s, Cat1Select 
 - (04/07/12) Added AllCat1s and IsomorphismPreCat1s (from GAP3 version). 
              Removed batch of functions from util.gd(.gi) involving 
              EndomorphismClasses, IdempotentImages, etc. 
              Replaced their use in AllCat1s with calls to GQuotients. 

#############################################################################
2.18 -> 2.19 (09/06/2012) 

 - (08/06/12) Following the replacement of IdentitySubgroup by TrivialSubgroup 
              in Gpd, renamed IdentitySubXMod by TrivialSubXMod, etc. 
              All calls of GroupHomomorphismByImagesTriv returned to 
              GroupHomomorphismByImages (see item dated 30/04/08) 
 - (07/06/12) Renamed special Display for lists as PrintListOneItemPerLine  
              following email from Max Horn 

#############################################################################
2.17 -> 2.18 (23/04/2012) 

 - (23/04/12) added autpgrp as a needed package 
 - (20/04/12) added DiscreteNormalPreXModWithObjects 
 - (26/01/12) replaced XModActedUpon by AutomorphismDomain in gp2act.gd(i) 
 - (25/01/12) fixed error in XModByGroupOfAutomorphisms (oneG now oneP) 
 - (10/01/12) updated to 2012; corrected URLs in intro.xml 
 - (15/12/11) now requires version 1.13 of Gpd 

#############################################################################
2.15 -> 2.17 (21/09/2011) 

 - (20/09/11) new version of makedocrel.g for building the manual 
              added file gpd/examples/readall.g for testing purposes 
 - (17/09/11) Shortened the banner. 
 - (16/09/11) Renamed subdirectory xmod/gap as xmod/lib 

#############################################################################
2.14 -> 2.15 (06/09/2011) 

 - (04/09/11) Changed BIND_GLOBAL to BindGlobal, since it is safer 
 - (16/08/11) changed directory for archive to .../chda/gap4r5/xmod/ 

#############################################################################
2.13 -> 2.14 (30/07/2011)

 - (30/07/11) final adjustments to the test files 
 - (29/07/11) major changes to gp3objmap.gd(i). 
 - (28/07/11) new 16/07/11 files now dom2d3d.gd etc. 
 - (27/07/11) ViewObj, PrintObj, Display, Name now methods for 2d-groups. 
 - (19/07/11) IsUp2dMapping now a category. 
              InducedXMod( s4, s3b, s3b ) fails due to iso to pc-group, 
              fo forced (for now) an isomorphism to a perm group. 
 - (18/07/11) Centre of an xmod no longer works, so brought back XModCentre. 
 - (16/07/11) Introduced a range of new categories in files 
              dom2d.gd, dom2d.gi, map2d.gd, map2d.gi. 
              As a result there were many changes in all files. 
 - (08/07/11) Changed headers of all files. 
 - (06/07/10) Changed XModByGroupOfAutomorphisms(G) in case G is pcgroup
 - (02/07/10) New email address for Murat
 - (30/06/10) Added check for IsPc2dDomain to PreXModObj 
 - (30/06/10) InducedXModByCopower now constructs a PcXMod if appropriate 
 - (28/06/10) Added methods for IsomorphismPcPreXMod, IsomorphismPcPreCat1
 - (12/03/10) Moved XMod development to IMac at home, and started v.2.14 
 
#############################################################################
2.12 -> 2.13 (21/01/2010)

 - (21/01/10) Changed output of AllInducedXMods to list of StructureDesc.  

#############################################################################
2.11 -> 2.12 (24/11/2008)

 - (19/11/08) GapDoc relegated to "suggested other packages". 

#############################################################################
2.008 -> 2.11 (13/11/2008)

 - (13/11/08) added GNU General Public License declaration,
               moved some XMod utilities to gpd/gap/util.gd(gi), 
 - (07/11/08) Changed website to: www.maths.bangor.ac.uk/chda/xmod/ 
               Split the test file into one file per chapter. 
 - (30/04/08) Added GroupHomomorphismByImagesTriv to util.gd, util.gi 
               to allow both <gens> and <imgs> to be empty: triv -> triv! 
               Fixed bug in XModOfCat1 in assigning names. 
               FixedBug in Boundary for a pre-cat1-group. 
 - (31/03/08) Added function GpdBuildManualHTML()
 - (16/03/08) renamed Tail,Head as TailMap,HeadMap (for benefit of Gpd)
 - (08.10/07) started this CHANGES file 
 -               changed directory permissions from 711 to 755
 -               renamed files:  obj2 -> gp2obj, etc, ready for groupoids 
 -               added file  testall.g  in xmod/tst 

#############################################################################
2.007 -> 2.008 (25/10/2006)

 - Fixed broken links in PackageInfo.g.

#############################################################################
2.006 -> 2.007 (20/10/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. 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 crossed modules.
 - Substantial revisons made to XModByCentralExtension, NorrieXMod, 
   LueXMod, ActorXMod, and InclusionInducedXModByCopower. 
 - Reintroduced the Cat1Select operation.

#############################################################################
2.005 -> 2.006 (04/09/2004)

 - Changed morphism functions to return fail when invalid data is supplied, 
   rather than calling Error.  
 - Fixed a bug in XModByGroupOfAutomorphisms. 

#############################################################################
2.004 -> 2.005 (16/04/2004)

 - Moved the example files from tst/test_i.g to examples/example_i.g,
 - converted testmanual.g to a proper test file tst/xmod_manual.tst. 
 - Replaced OperationHomomorphism by ActionHomomorphism, 
   a general GAP;4.4 change.
 - Finished replacing RModule by AbelianModule. 
 - Renamed UpMapping as Up2dMapping. 
 - Added MappingGeneratorsImages and InverseGeneralMapping  
   for a 2dMapping.
 - A significant change was the conversion of 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.

#############################################################################
2.003 -> 2.004 (14/04/2004)

 - gave a new email address for Murat Alp
 - added the Cat1Select functionality of version 1 to the Cat1 function

#############################################################################
2.002 -> 2.003 (28/02/2004)

#############################################################################
2.001 -> 2.002 (January 2004)

Version 2.002 was prepared for the 4.4 release at the end of January 2004,
and so required a PackageInfo.g file.

#############################################################################
Induced Crossed Modules (May 2002)

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.001 for GAP 4 (April 2002)

Generic name UpMapping chosen for derivations and sections 
(later changed to Up2dMapping).

File names changed to obj2.gd, map2.gi, up2.tex, etc.

Added alternative methods for IsomorphismPermGroup for 2dObjects. 

Sorted a problem with fixing the generating set for R when used to 
define derivations.  The (old) code used 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 used 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 (on the right), 
with CompositeDerivation still giving multiplication on the left.  
This means that the second axiom for derivations and for sections has changed 
-- see Chapter 4.
