Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
## CHANGES to the 'XMod' package

## 2.95 -> 2.96 (01/11/2025)
## 2.96 -> 2.97-dev (04/12/2025)
* (04/12/25) remove various unused categories etc in dom2dnd.gd
* (03/12/25) comment out use of Ancestor - it is no longer defined in groupoids

## 2.95 -> 2.96 (02/11/2025)
* (02/11/25) change of address: Murat Alp now in Kuwait
* (13/09/25) now make groupoids v1.78 a prerequisite

Expand Down
6 changes: 3 additions & 3 deletions PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ SetPackageInfo( rec(

PackageName := "XMod",
Subtitle := "Crossed Modules and Cat1-Groups",
Version := "2.96",
Date := "02/11/2025", # dd/mm/yyyy format
Version := "2.96-dev",
Date := "03/12/2025", # dd/mm/yyyy format
License := "GPL-2.0-or-later",

Persons := [
Expand Down Expand Up @@ -95,7 +95,7 @@ PackageDoc := rec(
Dependencies := rec(
GAP := ">=4.11.0",
NeededOtherPackages := [ ["utils", ">= 0.81"],
["groupoids", ">= 1.78"],
["groupoids", ">= 1.81"],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That latest version of groupoids in the package distribution is 1.79.

There was a change in GitHub that caused the "update website" step to fail in the release automation :-( visible in the failures at https://github.com/gap-packages/groupoids/actions

I will fix this issue manually now to make sure 1.81 gets into the package distro

["HAP", ">= 1.29"],
["AutPGrp", ">= 1.10.2"],
["SmallGrp", ">= 1.4.2" ] ],
Expand Down
89 changes: 5 additions & 84 deletions lib/dom2dnd.gd
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,11 @@ DeclareInfoClass( "InfoXMod" );
#############################################################################
##
#C IsHigherDimensionalDomain( <obj> ) . . . . test if object is n-dim domain
#F MakeHigherDimensionalDomain( <src>, <rng> )
##
DeclareCategory( "IsHigherDimensionalDomain", IsDomain );
DeclareGlobalFunction( "MakeHigherDimensionalDomain" );

###################### HIGHER DIMENSIONAL MAGMAS ##########################

#############################################################################
##
#C IsHigherDimensionalMagma( <m3d> ) . . . . . . . category of n-dim magmas
#C IsHigherDimensionalMagmaWithOne( <m3d> ) . . . . . . . . . . . with one
#C IsHigherDimensionalMagmaWithInverses( <m3d> ) . . . . . . . and inverses
##
##
DeclareCategory( "IsHigherDimensionalDomain", IsDomain );
DeclareCategory( "IsHigherDimensionalMagma", IsHigherDimensionalDomain
and CategoryCollections( IsMultiplicativeElement ) );
DeclareCategoryCollections( "IsHigherDimensionalMagma" );
Expand All @@ -38,44 +30,6 @@ DeclareCategory( "IsHigherDimensionalMagmaWithInverses",
IsHigherDimensionalMagmaWithOne and
CategoryCollections( IsMultiplicativeElementWithInverse ) );

#############################################################################
##
#V FamilyHigherDimensionalMagma . . . . family for higher dimensional magmas
##
BindGlobal( "FamilyHigherDimensionalMagma",
NewFamily( "FamilyHigherDimensionalMagma", IsHigherDimensionalMagma,
CanEasilySortElements, CanEasilySortElements ) );

############################################################################
##
#F MakeHigherDimensionalMagma( <mag>, <obs> )
##
DeclareGlobalFunction( "MakeHigherDimensionalMagma" );


################ HIGHER DIMENSIONAL SEMIGROUPS and MONOIDS ##################

#############################################################################
##
#C IsHigherDimensionalSemigroup( <mag> )
#F MakeHigherDimensionalSemigroup( <mag>, <obs> )
#O SinglePieceHigherDimensionalSemigroup( <sgp>, <obs> )
##
DeclareCategory( "IsHigherDimensionalSemigroup",
IsHigherDimensionalMagma and CategoryCollections( IsAssociativeElement ) );
DeclareGlobalFunction( "MakeHigherDimensionalSemigroup" );

#############################################################################
##
#C IsHigherDimensionalMonoid( <ndmagma> )
#F MakeHigherDimensionalMonoid( <mag>, <obs> )
#O SinglePieceHigherDimensionalMonoid( <mon>, <obs> )
##
DeclareCategory( "IsHigherDimensionalMonoid",
IsHigherDimensionalMagmaWithOne
and CategoryCollections(IsAssociativeElement) );
DeclareGlobalFunction( "MakeHigherDimensionalMonoid" );


######################## HIGHER DIMENSIONAL GROUPS ########################
## A *higher dimensional group* is a higher dimensional magma where
Expand Down Expand Up @@ -128,7 +82,7 @@ DeclareAttribute( "DirectProductHigherDimensionalInfo",

#############################################################################
##
#C Is2DimensionalDomain( <obj> ) . . test if object is a 2Dimensional-domain
#C Is2DimensionalDomain( <obj> ) . . . . . . test if object is a 2d-domain
#F Make2DimensionalDomain( <src>, <rng> )
##
DeclareCategory( "Is2DimensionalDomain", IsHigherDimensionalDomain );
Expand All @@ -138,7 +92,7 @@ DeclareGlobalFunction( "Make2DimensionalDomain" );

#############################################################################
##
#C Is2DimensionalMagma( <m2d> ) . . . . . . category of 2Dimensional magmas
#C Is2DimensionalMagma( <m2d> ) . . . . . . . . . . . category of 2d-magmas
#C Is2DimensionalMagmaWithOne( <m2d> ) . . . . . . . . . . . . . . with one
#C Is2DimensionalMagmaWithInverses( <m2d> ) . . . . . . . . . and inverses
##
Expand All @@ -153,45 +107,12 @@ DeclareCategory( "Is2DimensionalMagmaWithInverses",

#############################################################################
##
#V Family2DimensionalMagma . . . . . . . . . family for 2Dimensional-magmas
#V Family2DimensionalMagma . . . . . . . . . . . . . . family for 2d-magmas
##
BindGlobal( "Family2DimensionalMagma",
NewFamily( "Family2DimensionalMagma", Is2DimensionalMagma,
CanEasilySortElements, CanEasilySortElements ) );

############################################################################
##
#F Make2DimensionalMagma( <mag>, <obs> )
##
DeclareGlobalFunction( "Make2DimensionalMagma" );


################## 2 DIMENSIONAL SEMIGROUPS and MONOIDS #####################

#############################################################################
##
#C Is2DimensionalSemigroup( <2dmag> )
#F Make2DimensionalSemigroup( <mag>, <obs> )
#O SinglePiece2DimensionalSemigroup( <sgp>, <obs> )
##
DeclareCategory( "Is2DimensionalSemigroup",
Is2DimensionalMagma and CategoryCollections( IsAssociativeElement ) );
DeclareGlobalFunction( "Make2DimensionalSemigroup" );
## DeclareOperation( "SinglePiece2DimensionalSemigroup",
## [ IsSemigroup, IsCollection ] );

#############################################################################
##
#C Is2DimensionalMonoid( <2dmagma> )
#F Make2DimensionalMonoid( <mag>, <obs> )
#O SinglePiece2DimensionalMonoid( <mon>, <obs> )
##
DeclareCategory( "Is2DimensionalMonoid",
Is2DimensionalMagmaWithOne and CategoryCollections(IsAssociativeElement) );
DeclareGlobalFunction( "Make2DimensionalMonoid" );
## DeclareOperation( "SinglePiece2DimensionalMonoid",
## [ IsMonoid, IsCollection ] );


########################## 2 DIMENSIONAL GROUPS ###########################

Expand Down
80 changes: 0 additions & 80 deletions lib/dom2dnd.gi

This file was deleted.

22 changes: 7 additions & 15 deletions lib/gpd2obj.gi
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,11 @@ function( px, obs, isdisc )
spx := Source( px );
rpx := Range( px );
rng := SinglePieceGroupoid( rpx, obs );
## Print( "rng = ", rng, "\n" );
if isdisc then
src := HomogeneousDiscreteGroupoid( spx, obs );
else
src := SinglePieceGroupoid( spx, obs );
fi;
## Print( "src = ", src, "\n" );
## construct the boundary
gens := GeneratorsOfGroupoid( src );
genr := GeneratorsOfGroupoid( rng );
Expand All @@ -210,14 +208,13 @@ function( px, obs, isdisc )
a := gens[i];
if ( a![3] = a![4] ) then
im := ImageElm( bpx, a![2] );
imbdy[i] := ArrowNC( src, true, im, a![3], a![4] );
imbdy[i] := ArrowNC( src, 1,im, a![3], a![4] );
else
imbdy[i] := ArrowNC( src, true, One(rpx), a![3], a![4] );
imbdy[i] := ArrowNC( src, 1, One(rpx), a![3], a![4] );
fi;
od;
bdy := GroupoidHomomorphismFromSinglePiece( src, rng, gens, imbdy );
fi;
## Print( "boundary = ", bdy, "\n" );
## now construct the action
apx := XModAction( px );
AS := AutomorphismGroupOfGroupoid( src );
Expand All @@ -235,7 +232,6 @@ function( px, obs, isdisc )
fi;
if ( q = 1 ) then ## a loop
aut := ImageElm( apx, g );
## Print( "aut = ", aut, "\n" );
if not isdisc then
h := GroupoidAutomorphismByGroupAuto(src, aut);
else
Expand All @@ -248,11 +244,9 @@ function( px, obs, isdisc )
imobs[q] := ro;
h := GroupoidAutomorphismByObjectPerm( src, imobs );
fi;
## Print( "h = ", h, "\n" );
imact[i] := Arrow( AS0, h, 0, 0 );
imact[i] := ArrowNC( AS0, 1, h, 0, 0 );
od;
act := GroupoidHomomorphism( rng, AS0, genr, imact );
## Print( "act = ", act, "\n" );
pxo := PreXModWithObjectsByBoundaryAndAction( bdy, act );
SetRoot2dGroup( pxo, px );
return pxo;
Expand All @@ -278,7 +272,7 @@ InstallOtherMethod( UnionOfPiecesOp, "method for list of prexmods with objects",
true, [ IsList, Is2DimensionalGroupWithObjects ], 0,
function( comps, c1 )

local len, c, obs, obc, pieces, L, fam, filter, xwo, i, par;
local len, c, obs, obc, pieces, L, fam, filter, xwo, i, plist, par;

if not ForAll( comps,
c -> "Is2DimensionalGroupWithObjects" in CategoriesOfObject( c ) ) then
Expand Down Expand Up @@ -315,11 +309,9 @@ function( comps, c1 )
xwo := Objectify( PreXModWithPiecesType, rec () );
SetIsSinglePieceDomain( xwo, false );
SetPieces( xwo, pieces );
if HasParent( pieces[1] ) then
par := Ancestor( pieces[1] );
if ForAll( pieces, c -> ( Ancestor( c ) = par ) ) then
SetParent( xwo, par );
fi;
if HasParent( pieces[1] ) then
plist := ParentList( pieces[1] );
par := plist[ Length( plist) ];
fi;
if ForAll( pieces, p -> HasIsXMod(p) and IsXMod(p) ) then
SetIsXModWithObjects( xwo, true );
Expand Down
10 changes: 1 addition & 9 deletions lib/map2dnd.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
##
#W map2dnd.gd GAP4 package `XMod' Chris Wensley
## Alper Odabas
#Y Copyright (C) 2001-2020, Chris Wensley et al,
#Y Copyright (C) 2001-2025, Chris Wensley et al,

##############################################################################
##
Expand Down Expand Up @@ -36,8 +36,6 @@ DeclareCategoryCollections( "IsGeneral2DimensionalMappingCollColl" );
#P IsEndo2DimensionalMapping( <map> )
#P Is2DimensionalMagmaGeneralMapping( <map> )
#P Is2DimensionalMagmaMorphism( <map> )
#P Is2DimensionalSemigroupMorphism( <map> )
#P Is2DimensionalMonoidMorphism( <map> )
DeclareSynonymAttr( "Is2DimensionalMapping",
IsGeneral2DimensionalMapping and IsMapping );
DeclareSynonymAttr( "IsEndoGeneral2DimensionalMapping",
Expand All @@ -49,12 +47,6 @@ DeclareSynonymAttr( "Is2DimensionalMagmaGeneralMapping",
DeclareSynonymAttr( "Is2DimensionalMagmaMorphism",
Is2DimensionalMagmaGeneralMapping and IsMapping );

#? modify these next three to SynonymAttr's ??
DeclareProperty( "Is2DimensionalSemigroupMorphism",
Is2DimensionalMagmaMorphism );
DeclareProperty( "Is2DimensionalMonoidMorphism",
Is2DimensionalMagmaMorphism );

#############################################################################
##
#V General2DimensionalMappingFamily . family for homs of magmas with objects
Expand Down
21 changes: 1 addition & 20 deletions lib/map2dnd.gi
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,7 @@
##
#W map2dnd.gi GAP4 package `XMod' Chris Wensley
##
#Y Copyright (C) 2001-2020, Chris Wensley et al,

#############################################################################
##
#M Is2DimensionalSemigroupMorphism
#M Is2DimensionalMonoidMorphism
##
InstallMethod( Is2DimensionalSemigroupMorphism,
"for a 2d-mapping", true, [ Is2DimensionalMagmaMorphism ], 0,
function( map )
return ( Is2DimensionalSemigroup( Source(map) )
and Is2DimensionalSemigroup( Range(map) ) );
end );

InstallMethod( Is2DimensionalMonoidMorphism, "for a 2d-mapping",
true, [ Is2DimensionalMagmaMorphism ], 0,
function( map )
return ( Is2DimensionalMonoid( Source(map) )
and Is2DimensionalMonoid( Range(map) ) );
end );
#Y Copyright (C) 2001-2025, Chris Wensley et al,

##############################################################################
##
Expand Down
Loading
Loading