Skip to content

Commit 8f67e9f

Browse files
committed
Turn IsEquivalence{Head,Tail} and IsXModAlgebraConst into filters
These "attributes" only take true/false values, and have no methods, strongly suggesting that they should be filters instead. This fixes a conflict with a future GAP release, which will reject AND-filters where one ore more of the "filters" involved actually is no filter (which includes properties), but rather just an operation or attribute. See also gap-system/gap#2732 for some technical details
1 parent 2e6b63a commit 8f67e9f

2 files changed

Lines changed: 12 additions & 18 deletions

File tree

lib/alg2obj.gd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ DeclareOperation( "PreXModAlgebraByPreCat1Algebra", [ IsPreCat1Algebra ] );
104104
DeclareAttribute( "Equivalence", IsPreCat1Algebra );
105105
DeclareAttribute( "SourceForEquivalence", IsCat1Algebra );
106106
DeclareAttribute( "BoundaryForEquivalence", IsCat1Algebra );
107-
DeclareAttribute( "IsEquivalenceHead", IsCat1Algebra );
108-
DeclareAttribute( "IsEquivalenceTail", IsCat1Algebra );
109-
DeclareAttribute( "IsXModAlgebraConst", IsCat1Algebra );
107+
DeclareFilter( "IsEquivalenceHead", IsCat1Algebra );
108+
DeclareFilter( "IsEquivalenceTail", IsCat1Algebra );
109+
DeclareFilter( "IsXModAlgebraConst", IsCat1Algebra );
110110
DeclareAttribute( "XModAlgebraConst", IsCat1Algebra );
111111
DeclareAttribute( "XModAlgebraOfCat1Algebra", IsPreCat1Algebra );
112112
DeclareOperation( "XModAlgebraByCat1Algebra", [ IsPreCat1Algebra ] );

lib/alg2obj.gi

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,7 +1832,6 @@ function( t, h, e )
18321832
imbdy := List( kergen, x -> Image( h, x) );
18331833
bdy := AlgebraHomomorphismByImagesNC( kert, R, kergen, imbdy );
18341834
SetEquivalence( tres, false );
1835-
SetIsXModAlgebraConst( tres, false );
18361835
PC := PreCat1AlgebraObj( tres, hres, eres );
18371836
SetBoundary( PC, bdy );
18381837
SetKernelEmbedding( PC, f );
@@ -1976,19 +1975,14 @@ end );
19761975
##
19771976
#M Kernel( t,h ) . . . . . . . . . . . . . . . . . . . for a pre-cat1-algebra
19781977
##
1979-
InstallOtherMethod( Kernel, "method for a pre-cat1-algebra", true,
1980-
[ IsEquivalenceHead and IsEquivalenceTail and IsAlgebraHomomorphism ], 0,
1981-
function( f )
1982-
1983-
local A;
1984-
if IsEquivalenceHead(f) then
1985-
return EquivalenceHead(f);
1986-
fi;
1987-
if IsEquivalenceTail(f) then
1988-
return EquivalenceTail(f);
1989-
fi;
1990-
end );
1991-
1978+
InstallOtherMethod( Kernel, "method for a pre-cat1-algebra",
1979+
[ IsEquivalenceHead and IsAlgebraHomomorphism ],
1980+
EquivalenceHead );
1981+
1982+
InstallOtherMethod( Kernel, "method for a pre-cat1-algebra",
1983+
[ IsEquivalenceTail and IsAlgebraHomomorphism ],
1984+
EquivalenceTail );
1985+
19921986
#############################################################################
19931987
##
19941988
#M EquivalenceTail. . . . convert a pre-crossed module to a pre-cat1-algebra
@@ -2014,7 +2008,7 @@ end );
20142008
##
20152009
InstallMethod( EquivalenceHead,
20162010
"convert a pre-crossed module to a pre-cat1-algebra", true,
2017-
[ IsEquivalenceHead ], 0,
2011+
[ IsEquivalenceHead ], 0,
20182012
function( f )
20192013

20202014
local A, R, RA, eA, uzA, Xbdy, list, i, a, x, Ker ;

0 commit comments

Comments
 (0)