diff --git a/lib/basis.gd b/lib/basis.gd index 9698fb09c9..1c43d6542f 100644 --- a/lib/basis.gd +++ b/lib/basis.gd @@ -786,9 +786,10 @@ DeclareOperation( "RelativeBasisNC", [ IsBasis, IsHomogeneousList ] ); ## (see ). ##

## name must be a string, -## a filter f with this name is created, and +## a filter f with this name is created which implies +## , and ## a logical implication from the join of f with -## and to +## to ## is installed. ##

## record must be a record with the following components. @@ -895,6 +896,7 @@ DeclareGlobalFunction( "CheckForHandlingByNiceBasis" ); InstallGlobalFunction( "DeclareHandlingByNiceBasis", function( name, info ) local entry; DeclareFilter( name ); + InstallTrueMethod( IsFreeLeftModule, ValueGlobal( name ) ); entry := [ ValueGlobal( name ), info ]; Add( NiceBasisFiltersInfo, entry, 1 ); end ); diff --git a/lib/basis.gi b/lib/basis.gi index 543b7ec8ed..90da744ad6 100644 --- a/lib/basis.gi +++ b/lib/basis.gi @@ -693,7 +693,7 @@ InstallGlobalFunction( "InstallHandlingByNiceBasis", entry:= First( NiceBasisFiltersInfo, x -> IsIdenticalObj( filter, x[1] ) ); entry[3] := record.detect; - filter:= filter and IsFreeLeftModule and IsAttributeStoringRep; + filter:= filter and IsAttributeStoringRep; InstallTrueMethod( IsHandledByNiceBasis, filter ); # Install the methods. diff --git a/lib/module.gd b/lib/module.gd index 85f5a57464..2ad310ed7c 100644 --- a/lib/module.gd +++ b/lib/module.gd @@ -247,8 +247,10 @@ DeclareProperty( "IsFullMatrixModule", IsFreeLeftModule, 20 ); ## ## <#/GAPDoc> ## -DeclareCategory( "IsHandledByNiceBasis", IsFreeLeftModule ); -#T why not `DeclareFilter' ? +DeclareCategory( "IsHandledByNiceBasis", IsFreeLeftModule, 3 ); +# We want that 'IsFreeLeftModule and IsHandledByNiceBasis' has a higher rank +# than 'IsFreeLeftModule and IsFiniteDimensional'. +# (There are concurrent '\in' methods for the two situations.) #############################################################################