                    Brief history of the LAGUNA package 

1.0 - 2.0 
    LAG package maintained by Richard Rossmanith. 

2.1 * Obsolete operation `BasisByGeneratorsNC' replaced by `BasisNC'
      (lib/lag.gi)
    * Version changed (init.g)
      - ideally init.g should read VERSION (so it need only be changed in
        one place), but the commented out method to do this needs to be
        verified that it works on Windows and Macintosh
    * Split off ReadPkg of .gi file into read.g
    * Tidied up README.lag
    * Added VERSION, ChangeLog
    * All other changes made were to improve the documentation
      - (non-empty) doc/manual.bib added 
      - doc/Makefile now has targets for manual.ps, manual.pdf, htm
      - Updated examples for GAP 4.3 (doc/lag.msk)
      - Markup changes so that bibliography and HTML version now possible
        (doc/{lag.msk,manual.tex},lib/lag.gd)

    -- Greg Gamble - 21 April, 2002.

3.0 * New name: LAGUNA (Lie AlGebras and UNits of group Algebras)
    * Documentation written in GAPDoc format
    * added banner.g, functions moved from laguna.gi to laguna.g
    * added TODO.laguna
    * added PkgInfo.g for new package loading mechanism in GAP.dev
    * new properties and attributes of group rings:
      - IsGroupAlgebra
      - IsFmodularGroupAlgebra
      - IsPModularGroupAlgebra
      - UnderlyingGroup
      - UnderlyingRing
      - UnderlyingField
    * New attributes of group rings elements:
      - Support
      - CoefficientsBySupport
      - TraceOfMagmaRingElement
      - Length
      - Augmentation
      - IsUnit (improves existing in GAP 4.3)
      - InverseOp (improves existing in GAP 4.3)
    * Operation `Involution' for involutions of group ring elements
      (both classical and induced by a mapping of order two)
    * Attributes describing the structure of augmentation ideal of
      modular group algebras of finite p-groups:
      - WeightedBasis
      - AugmentationIdealPowerSeries
      - AugmentationIdealNilpotencyIndex
      - AugmentationIdealOfDerivedSubgroupNilpotencyIndex
      - RadicalOfAlgebra (improves existing in GAP 4.3)
    * New properties for groups generated by units of a group ring
      and their pc presentations:
      - IsGroupOfUnitsOfMagmaRing
      - IsUnitGroupOfGroupRing
      - IsNormalizedUnitGroupOfGroupRing
    * Calculation of the (normalized) unit group of the modular group
      algebra of the finite p-group and its pc presentation:
      - NormalizedUnitGroup
      - PcNormalizedUnitGroup
      - Units (improves existing in GAP 4.3)
      - PcUnits
      with one-to-one correspondence between the original group and
      its pc presentation established via:
      - NaturalBijectionToNormalizedUnitGroup
      - NaturalBijectionToPcNormalizedUnitGroup
    * An attribute UnderlyingGroupRing for the groups of units to 
      remember the initial group ring, setted while construction of the 
      (normalized) unit groups and their pc presentations.
    * An attribute GroupBases, storing representatives of conjugacy classes
      of group bases of the modular group algebra of a finite p-group 
    * Lie algebras section was taken from LAG 2.1 with small changes:
      - NaturalMapping was renamed to Embedding (more standard in GAP name)
      - for modular group algebras of finite p-groups new attributes 
        LieUpperNilpotencyIndex and LieLowerNilpotencyIndex were added
    * Added some attributes of groups, immportant in group rings theory:
      - DimensionBasis
      - LieDimensionSubgroups  
      - DihedralDepth
    * Defined new info class - LAGInfo with info levels 0, 1, 2 and 3

    -- Victor Bovdi, Olexandr Konovalov, Csaba Schneider, March 2003.

3.1 * Accepted version of the LAGUNA package (June 2003) 
      - improved documentation
      - optimized Augmentation code
      - added IsSymmetric and IsUnitary

3.2 * Fully compatibile with the new package loading mechanism of GAP 4.4
      (July 2003)

3.2.1 * Interface improvements (July 2003):
        - Added InfoLevel 4 and made InfoLevel 1 the default one
        - Mentioned LAGUNA in method's descriptions for better tracing

3.2.2 * Minor updates for coming GAP 4.4 release (April 2004):
        - making sure that Augmentation(x) is in the underlying ring
        - checking whether x=0 in IsUnit(x)
        
3.3 (April 2005)
    * Functions for fast construction of left/right/two-sided group ring
      ideals generated by elements of the form h-1, where h in H\{1} and
      H is a subgroup of the underlying group (contributed by A.Tsapok).
    * Pseudo-Random method for getting random elements from Units(KG) 
      and NormalizedUnitGroup(KG), taking them randomly from KG until we
      get a unit; in normalized case augmentation is adjusted to one.
    * Method for the embedding of the subgroup of an underlying group
      to the normalized unit group given by power-commutator presentation. 
    * Operation PartialAugmentations returning a list of partial 
      augmentations of an element of a group ring and corresponding
      conjugacy classses (contributed by A.Tsapok).
    * New attribute LieDerivedLength for Lie algebras  
    * Computation of bicyclic units and of the bicyclic unit group.
    * Computation of the unitary subgroup of the normalized unit group 
      (immediate method for small groups).
    * Computation of the Lie upper codimension series of a finite 
      p-group  
    * Fixed some bugs:  
      - Replaced 'GeneratorsOfGroup' --> 'MinimalGeneratingSet' in
        DimensionBasis to fix a bug with SmallGroup(512,2).
      - Adjusted LieDerivedSubalgebra for compatibility with the
        Sophus package by Csaba Schneider.
      - Fixed a bug with the nilpotency index of the augmentation
        ideal when p>2 (thanks to Inger Christin Borge for reporting
        this bug!).
      - Fixed a bug with IsUnit and InverseOp for elements of order
        q^n in characteristic p where (p,q)=1.                 
      - Added SetIsPGroup(U,true) for normalized unit groups of
        modular group algebras of finite p-groups for correct
        method selection (for example, for the computation of
        their automorphism groups).

3.3.1 (May 2005)
    * The method for 'LieAlgebraByDomain' was restricted to group
      algebras for better compatibility with the GAP system.

3.3.2 (March 2006)
    * Another improvement of 'LieAlgebraByDomain' method
    * Performance improvement in PcNormalizedUnitGroup in abelian case

3.3.3 (April 2006)
    * Fixed a no-method-found error in InverseOp
    * Added more implicit copyright notice about GPL

3.4 (February 2007)
    * Fixed a bug in Left/RightIdealBySybgroup
    * Added 3-argument version of BicyclicUnitOfType1, BicyclicUnitOfType2

3.5.0 (May 2009)
    * Corrected handling of zero element in InverseOp
    * Speeded up PcNormalizedUnit by unsing collectors
      and constructing the resulting group by GroupByRwsNC
      instead of PcGroupFpGroup

3.6.0 (April 2012)
    * Updated the package for GAP 4.5 release

3.6.1 (May 2012), 3.6.2 (January 2013), 3.6.3 (February 2013)
    * Improved testing facilities

3.6.4 (October 2013)
    * Fixed a bug that might lead to a break loop in AugmentationIdeal 
      (reported by Mohamed Barakat)
    * Updated the test example for GAP 4.7 release replacing WreathProduct
      by StandardWreathProduct

3.6.5 (September 2014)
    * Fixed a bug in Augmentation returning an integer zero for zero element
      of a group ring, being calculated as the sum over an empty list.
      Now it will properly return the zero element of the underlying ring
      (reported by Danjoseph Quijada)

3.7.0 (November 2014)
    * Fixed a bug in PcPresentationOfNormalizedUnit that may cause
      NaturalBijectionToPcNormalizedUnitGroup returning wrong results
      for p>2 (reported by Urban Jezernik)

3.8.0 (September 2017)
    * Migration to GitHub
    * Switch to modern two-argument variant of ReadPackage
    * Some tweaks to p-groups related code:
      - always call SetPrimePGroup right after SetIsPGroup
      - do not rely on p-groups being finite; instead, explicitly
        check finiteness
    * Renamed some files for consistency
    * Switch to TestDirectory
    
3.9.0 (April 2018)
    * Fix the ordering of weighted basis elements:
      - now after sorting elements of the weighted basis by their weights,
        elements of the same weight will be sorted (w.r.t. `<`). This will
        ensure that their order does not rely on the treatment of elements
        of the same weight by the sorting algorithm.

3.9.1 (November 2018)
    * Improved reproducibility of `AugmentationIdealPowerSeries` example.

3.9.2 (February 2019)
    * Fix a bug in `Inverse` for non-normalized units.

3.9.3 (May 2019)
    * Add several trivial implications. They make various "hidden" 
      implications created by DeclareProperty explicit, thus fixing 
      a bunch of warnings that show up if one starts the upcoming
      GAP 4.11 with the `-N` command line option, and then loads the
      package.

3.9.4 (February 2022)
    A collection of fixes contributed by Max Horn:
    * Turn `IsGroupOfUnitsOfMagmaRing`, `IsUnitGroupOfGroupRing` and
      `IsNormalizedUnitGroupOfGroupRing` properties into categories.
    * Fix a typo in a method for `Random` [detected after a bug report
      by @EricSwartz].
    * Turn `IsSymmetric`, `IsUnitary` into properties [reported by
      @jesselansdown]
    * Add a set of trivial implications, to make various "hidden"
      implications created by DeclareProperty explicit, thus fixing
    a bunch of warnings that show up if one starts GAP 4.11 with the
      `-N` command line option, and then loads this package.

3.9.5 (April 2022)
    * Updates and fixes in metadata and documentation

4.0 (in the development version)
    The large new block related with the Modular Isomorphism Problem (MIP):
    * Computation of MIP-related invariants of p-groups and their modular 
      group algebras:
      - JenningsFactors( <G> )
      - SandlingFactorGroup( <G> )
      - QuillenSeries( <G> )
      - ClassSumNumbers( <G> )
      - NumberOfConjugacyClassesPPowers( <G> )
      - RoggenkampParameter( <G> )
      - RoggenkampParameterForNormalSubset( <G>, <S> )
      - KernelSize ( <KG>, <[n,m,k]> )    
    * Tools for manipulations with MIP invariants:
      - PrintMIPInvariants( <G> )
      - PrintMIPInvariantsTable(<l>, <filename>)
      - MIPInvariantsRecord( <G> ) 
      - MIPInvariantsLibrary( <n> ) 
      - MIPInvariantsLibraryClassification( <invlib>, <mode> )
      - KernelSizeTest( <KG>, <KH>)
      - MIPSplittingByKernelSize( <list>, <no>, <mode> )
      - JenningsLieAlgebraTest ( <KG>, <KH> )
      - MIPSplittingByJenningsLieAlgebra( <list>, <no>, <mode> )
      - MIPSplittingReport( <list> )
    * AugmentationIdealPowerFactorGroup(KG,n) for computation of the 
      pc presentation of the factorgroup of the normalized unit group 
      V(KG) over 1+I^n, where I is the augmentation ideal of KG, and 
      NormalizedUnitCFmod for reducing this calculations modulo I^n.
