Skip to content

Commit

Permalink
feat: Add IsLeftFPFInducted property
Browse files Browse the repository at this point in the history
  • Loading branch information
limakzi committed Sep 3, 2024
1 parent ec2ea79 commit 8cdbb1c
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
22 changes: 22 additions & 0 deletions lib/properties.gd
Original file line number Diff line number Diff line change
Expand Up @@ -291,3 +291,25 @@ DeclareProperty( "IsRightCancellative", IsMagma );
#! @EndExampleSession
#!
DeclareProperty( "IsCancellative", IsMagma );

#! @Arguments M
#! @Description
#! is a left-hand sided fixed-point free inducted <A>m</A>.
#!
#! @BeginExampleSession
#! @EndExampleSession
#!
DeclareProperty( "IsLeftFPFInducted", IsMagma );

#! @Arguments M
#! @Description
#! is a left-hand sided fixed-point free inducted <A>m</A>.
#!
#! @BeginExampleSession
#! gap> List(AllSmallAntimagmas(2), M -> IsLeftFPFInducted(M) );
#! [ false, true ]
#! gap> List(AllSmallAntimagmas(2), M -> IsRightFPFInducted(M) );
#! [ true, false ]
#! @EndExampleSession
#!
DeclareProperty( "IsRightFPFInducted", IsMagma );
10 changes: 10 additions & 0 deletions lib/properties.gi
Original file line number Diff line number Diff line change
Expand Up @@ -230,4 +230,14 @@ end);
InstallMethod(IsCancellative, "for a magma", [IsMagma],
function(M)
return IsLeftCancellative(M) and IsRightCancellative(M);
end);

InstallMethod(IsLeftFPFInducted, "for a magma", [IsMagma],
function(M)
return ForAll(M, m -> Size( Unique( m * Elements(M) ) ) = 1 and First( Unique( m * Elements(M) ) ) <> m);
end);

InstallMethod(IsRightFPFInducted, "for a magma", [IsMagma],
function(M)
return ForAll(M, m -> Size( Unique( Elements(M) * m ) ) = 1 and First( Unique( Elements(M) * m ) ) <> m);
end);
19 changes: 19 additions & 0 deletions tst/test_properties_magma_isfpf.tst
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
gap> START_TEST( "test_properties_magma_isfpf.tst" );

gap> M := MagmaByMultiplicationTable([ [1, 1], [2, 2] ] );;
gap> IsLeftFPFInducted(MagmaByMultiplicationTable([ [1, 1], [2, 2] ] ));
false
gap> IsRightFPFInducted(MagmaByMultiplicationTable([ [1, 1], [2, 2] ] ));
false

gap> M := SmallAntimagma(2, 1);
<magma with 2 generators>
gap> IsLeftFPFInducted( M );
false
gap> IsRightFPFInducted( M );
true

gap> Filtered( Filtered(AllSmallAntimagmas([2 .. 3]), M -> IsLeftFPFInducted(M)), M -> IsRightFPFInducted(M) );
[ ]

gap> STOP_TEST( "test_properties_magma_isfpf.tst" );

0 comments on commit 8cdbb1c

Please sign in to comment.