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
45 changes: 45 additions & 0 deletions doc/LocalNR.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
@article {MR2799412,
AUTHOR = {Sysak, Yaroslav P.},
TITLE = {Products of groups and local nearrings},
JOURNAL = {Note Mat.},
FJOURNAL = {Note di Matematica},
VOLUME = {28},
YEAR = {2008},
PAGES = {181--216},
ISSN = {1123-2536,1590-0932},
MRCLASS = {16Y30 (20D40)},
MRNUMBER = {2799412},
}

@article {MR4943879,
AUTHOR = {Raievska, Iryna and Raievska, Maryna},
TITLE = {Local nearrings, their structure, and the gap system},
JOURNAL = {Ukrainian Math. J.},
FJOURNAL = {Ukrainian Mathematical Journal},
VOLUME = {76},
YEAR = {2025},
NUMBER = {11},
PAGES = {1831--1848},
ISSN = {0041-5995,1573-9376},
MRCLASS = {16Y30 (20M10)},
MRNUMBER = {4943879},
MRREVIEWER = {Figen\ Tak\i l{} Mutlu},
DOI = {10.1007/s11253-025-02426-y},
URL = {https://doi.org/10.1007/s11253-025-02426-y},
}

@article {MR230773,
AUTHOR = {Maxson, Carlton J.},
TITLE = {On local near-rings},
JOURNAL = {Math. Z.},
FJOURNAL = {Mathematische Zeitschrift},
VOLUME = {106},
YEAR = {1968},
PAGES = {197--205},
ISSN = {0025-5874,1432-1823},
MRCLASS = {16.96},
MRNUMBER = {230773},
MRREVIEWER = {L.\ J.\ Ratliff, Jr.},
DOI = {10.1007/BF01110133},
URL = {https://doi.org/10.1007/BF01110133},
}
89 changes: 63 additions & 26 deletions lib/lib_local.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
##
## LocalNR - a GAP package of local nearrings
##
## Copyright 2019, Yaroslav Sysak with contributions by
## Copyright 2026, Yaroslav Sysak with contributions by
## Iryna Raievska, Maryna Raievska
##
## Institute of Mathematics of National Academy of Sciences of Ukraine
##
## Institute of Mathematics of National Academy of Sciences of Ukraine,
## Kyiv, Ukraine
#############################################################################


Expand All @@ -15,8 +15,9 @@
#! @Chapter Local nearrings
##
###################################

#! A set $R$ with two binary operations $+$ and $\cdot$ is called
#!
#!
#! A set $R$ with two binary operations $+$ and $\cdot$ is called
#! a <Emph>(left) nearring</Emph> if the following statements hold:
#!
#! <Enum>
Expand All @@ -31,26 +32,44 @@
#! </Item>
#! </Enum>
#!
#! If $R$ is a nearring, then the group $R^+$ is called
#! the <Emph>additive group</Emph> of $R$.
#! If in addition $0\cdot x=0$, then the nearring $R$ is
#! called <Emph>zero-symmetric</Emph>, and if the
#! semigroup $(R,\cdot)$ is a monoid, i.e. it has
#! an identity element $i$, then $R$ is
#! a <Emph>nearring with identity</Emph> $i$. In the
#! If $R$ is a nearring, then the group $R^+$ is called
#! the <Emph>additive group</Emph> of $R$.
#! If in addition $0\cdot x=0$, then the nearring $R$ is
#! called <Emph>zero-symmetric</Emph>, and if the
#! semigroup $(R,\cdot)$ is a monoid, i.e. it has
#! an identity element $i$, then $R$ is
#! a <Emph>nearring with identity</Emph> $i$. In the
#! latter case the group $R^*$ of all invertible elements of
#! the monoid $(R,\cdot)$ is called the <Emph>multiplicative group</Emph> of $R$.
#! the monoid $(R,\cdot)$ is called the <Emph>multiplicative group</Emph> of $R$.
#!
#! A nearring $R$ with identity is said to be
#! <Emph>local</Emph> if the set $L=R\setminus R^*$ of all
#! non-invertible elements of $R$ is a subgroup of $R^+$.
#! The concepts of a subnearring and a nearring homomorphism are defined
#! by the same way as for rings. In particular,
#! if $\lambda$ is a nearring homomorphism of $(R,+, \cdot)$,
#! then its kernel $Ker \lambda$ is a subnearring of $(R,+, \cdot)$
#! whose additive subgroup is normal in $R^+$.
#!
#! It is clear that if $L$ is an
#! ideal of $R$, then the factor nearring $R/L$ is a <Emph>nearfield</Emph>. For example,
#! every local ring $R$ is a zero-symmetric local nearring whose
#! subgroup $L$ coincides
#! with the Jacobson radical of $R$.

#! A subnearring $I$ of $(R,+, \cdot)$ is an ideal
#! of $(R,+, \cdot)$ if $I = Ker \lambda$ for some $\lambda$.
#!
#! It can simply be verified that $I$ is an ideal of $R$
#! if and only if its additive group $I^+$ is a normal subgroup
#! of $R^+$ and for any elements $r$, $s\in R$ and $a\in I$
#! the inclusions $ra\in I$ and
#! $(r + a)s − rs\in I$ hold.
#! Main results accumulated for local nearrings
#! can be found in the surveys
#! <Cite Key="MR2799412"/> and <Cite Key="MR4943879"/>.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@IrynaRaievska @raemarina please also add the bib file - the manual can not be built otherwise

#!
#! A nearring $R$ with identity is said to be
#! <Emph>local</Emph> if the set $L=R\setminus R^*$ of all
#! non-invertible elements of $R$ is a subgroup of $R^+$.
#!
#! It is clear that if $L$ is an
#! ideal of $R$, then the factor nearring $R/L$ is a <Emph>nearfield</Emph>. For example,
#! every local ring $R$ is a zero-symmetric local nearring whose
#! subgroup $L$ coincides
#! with the Jacobson radical of $R$. Reference:
#! <Cite Key="MR230773"/>.
###################################
##
#! @Section The local nearrings library
Expand All @@ -66,10 +85,10 @@
#! @Returns a list
#! @Arguments n
#! @Label
DeclareGlobalFunction( "TheAdditiveGroupsOfLibraryOfLNRsOfOrder");
DeclareGlobalFunction( "AdditiveGroupsOfLibraryOfLNRsOfOrder");

#! @BeginExample
#! gap> List(TheAdditiveGroupsOfLibraryOfLNRsOfOrder(81),IdGroup);
#! gap> List(AdditiveGroupsOfLibraryOfLNRsOfOrder(81),IdGroup);
#! [ [ 81, 1 ], [ 81, 2 ], [ 81, 3 ], [ 81, 5 ], [ 81, 6 ], [ 81, 11 ],
#! [ 81, 12 ], [ 81, 13 ], [ 81, 15 ] ]
#! @EndExample
Expand All @@ -83,15 +102,15 @@ DeclareGlobalFunction( "TheAdditiveGroupsOfLibraryOfLNRsOfOrder");
#! @Returns a list
#! @Arguments G
#! @Label
DeclareGlobalFunction( "TheLibraryOfLNRsOnGroup");
DeclareGlobalFunction( "LibraryOfLNRsOnGroup");

#! The local nearrings are sorted by their multiplicative groups.


#! @BeginExample
#! gap> G:=SmallGroup(81,2);
#! <pc group of size 81 with 4 generators>
#! gap> TheLibraryOfLNRsOnGroup(G);
#! gap> LibraryOfLNRsOnGroup(G);
#! [ "AllLocalNearRings(81,2,54,3)", "AllLocalNearRings(81,2,54,6)",
#! "AllLocalNearRings(81,2,54,9)", "AllLocalNearRings(81,2,54,10)",
#! "AllLocalNearRings(81,2,54,11)", "AllLocalNearRings(81,2,54,15)",
Expand Down Expand Up @@ -136,6 +155,24 @@ DeclareOperation( "AllLocalNearRings", [ IsInt, IsInt, IsInt, IsInt ]);

###################################

#! @Description
#! The arguments are $k$, $l$, $m$, $n$.
#! The output are number of all local nearrings from <C>Library</C> without
#! check. The arguments $k$, $l$, $m$, $n$ are as above.
#! @Returns a number
#! @Arguments k,l,m,n
#! @Label
DeclareOperation( "NumberLocalNearRings", [ IsInt, IsInt, IsInt, IsInt ]);

#! @BeginExample
#! gap> NumberLocalNearRings(81,15,54,8);
#! 10
#! @EndExample

DeclareSynonym("NrLocalNearRings", NumberLocalNearRings);

###################################

#! @Description
#! The argument is a group $G$.
#! The output is <C>true</C> if in <C>Library</C> there exists a local nearring
Expand Down
51 changes: 40 additions & 11 deletions lib/lib_local.gi
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ InstallMethod( LocalNearRing,

h := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( k ) ) );
if IsEmpty( h ) then
return false;
Error("The library of local nearrings of order ", k, " is not available");
else
dio := Filename( h, Concatenation( "Endom", String( k ), "_", String( l ), "-", String( m ), "_", String( n ), ".txt" ) );
if dio = fail then
Error("The library of local nearrings with the additive group [", k, ",", l, "] and multiplicative group [", m, ",", n, "] is not available");
fi;
G := SmallGroup( k, l );
P1 := ReadAsFunction( dio )();
P := P1[w];
Expand Down Expand Up @@ -59,9 +62,12 @@ InstallMethod( AllLocalNearRings,

h := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( k ) ) );
if IsEmpty( h ) then
return false;
Error("The library of local nearrings of order ", k, " is not available");
else
w := Filename( h, Concatenation( "Endom", String( k ), "_", String( l ), "-", String( m ), "_", String( n ), ".txt" ) );
if w = fail then
Error("The library of local nearrings with the additive group [", k, ",", l, "] and multiplicative group [", m, ",", n, "] is not available");
fi;
G := SmallGroup( k, l );
P1 := ReadAsFunction( w )();
H := [];
Expand Down Expand Up @@ -118,13 +124,36 @@ InstallMethod( AllLocalNearRings,
##
############################################################################
##
# TheAdditiveGroupsOfLibraryOfLNRsOfOrder
InstallGlobalFunction(TheAdditiveGroupsOfLibraryOfLNRsOfOrder, function(n)
# NumberLocalNearRings(<k,l,m,n>)
InstallMethod( NumberLocalNearRings,
"Number of all local nearrings",
[ IsInt, IsInt, IsInt, IsInt ],
function( k, l, m, n )
local w, T, h, s;

h := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( k ) ) );
if IsEmpty( h ) then
Error("The library of local nearrings of order ", k, " is not available");
else
w := Filename( h, Concatenation( "Endom", String( k ), "_", String( l ), "-", String( m ), "_", String( n ), ".txt" ) );
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should add a check if this part is not available

if w = fail then
    Error("The library of local near rings with the additive group [", k ",", l, "] and multiplicative group [", m ",", n, "] is not available");
fi;

if w = fail then
Error("The library of local nearrings with the additive group [", k, ",", l, "] and multiplicative group [", m, ",", n, "] is not available");
fi;
T := ReadAsFunction( w )();
s := Size( T );
return s;
fi;
end );
##
############################################################################
##
# AdditiveGroupsOfLibraryOfLNRsOfOrder
InstallGlobalFunction(AdditiveGroupsOfLibraryOfLNRsOfOrder, function(n)
local t, cont, i, h, j, f, g, r, us;

t := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( n ) ) );
if IsEmpty( t ) then
Error( "the order must be PrimePowerInt and 3<n and n<1331 (except orders 128, 256, 512, 625, 729, 1024)" );
Error("The library of local nearrings of order ", n, " is not available");
else
cont := DirectoryContents( t[1] );
Size( cont );
Expand Down Expand Up @@ -162,12 +191,12 @@ InstallGlobalFunction(IsAdditiveGroupOfLibraryOfLNRs, function(G)
s := Size( G );
t := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( s ) ) );
if IsEmpty( t ) then
Error( "false" );
Error("The library of local nearrings of order ", s, " is not available");
else
cont := DirectoryContents( t[1] );
Size( cont );
for i in cont do
RemoveCharacters( i, "Endom\.txt\.gz" );
RemoveCharacters( i, "Endom.txt.gz" );
od;
h := [];
for j in cont do
Expand Down Expand Up @@ -195,20 +224,20 @@ end );
##
############################################################################
##
# TheLibraryOfLNRsOnGroup
InstallGlobalFunction(TheLibraryOfLNRsOnGroup, function(G)
# LibraryOfLNRsOnGroup
InstallGlobalFunction(LibraryOfLNRsOnGroup, function(G)

local s, t, cont, i, h, j, f, hj, g, r, ee, ww, b, w;

s := Size( G );
t := DirectoriesPackageLibrary( "LocalNR", Concatenation( "Endom/", String( s ) ) );
if IsEmpty( t ) then
Error( "false" );
Error("The library of local nearrings of order ", s, " is not available");
else
cont := DirectoryContents( t[1] );
Size( cont );
for i in cont do
RemoveCharacters( i, "Endom\.txt\.gz" );
RemoveCharacters( i, "Endom.txt.gz" );
od;
h := [];
for j in cont do
Expand Down
19 changes: 13 additions & 6 deletions lib/local.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
##
## LocalNR - a GAP package of local nearrings
##
## Copyright 2019, Yaroslav Sysak with contributions by
## Copyright 2026, Yaroslav Sysak with contributions by
## Iryna Raievska, Maryna Raievska
##
## Institute of Mathematics of National Academy of Sciences of Ukraine
##
## Institute of Mathematics of National Academy of Sciences of Ukraine,
## Kyiv, Ukraine
#############################################################################

###################################
Expand Down Expand Up @@ -47,6 +47,8 @@ DeclareProperty( "IsMinimalNonAbelianGroup", IsGroup );
#! false
#! @EndExample

DeclareSynonym( "IsMillerMorenoGroup", IsMinimalNonAbelianGroup );

###################################

#! @Description
Expand Down Expand Up @@ -119,9 +121,9 @@ DeclareProperty( "IsEndoCyclicGroup", IsGroup );

#! @Description
#! The argument is a nearring $R$.
#! The output is <C>true</C> if $R$ is a nearring with identity,
#! otherwise the output is <C>Error, no units exist</C>.
#! @Returns a set
#! The output is a list of units if $R$ is a nearring with identity,
#! otherwise the output is an empty list.
#! @Returns a list
#! @Arguments R
#! @Label
DeclareAttribute( "UnitsOfNearRing", IsNearRing );
Expand All @@ -137,6 +139,11 @@ DeclareAttribute( "UnitsOfNearRing", IsNearRing );
#! gap> Un:=NearRingUnits(N);;
#! gap> U=Un;
#! true
#! gap> L:=LibraryNearRing(SmallGroup(6,1),3);
#! #I using isomorphic copy of the group
#! LibraryNearRing(6/2, 3)
#! gap> UnitsOfNearRing(L);
#! [ ]
#! @EndExample

###################################
Expand Down
6 changes: 3 additions & 3 deletions lib/local.gi
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ InstallMethod( IsEndoCyclicGroup,
h := [];
for i in [1..t] do
if Size( F[i][2] ) = Size( G ) then
Add( h, F[i][2] );
return true;
fi;
od;
return Size( h ) > 0;
return false;
end );

##
Expand All @@ -84,7 +84,7 @@ InstallMethod( UnitsOfNearRing,
local A, G, one, x;

if not IsNearRingWithIdentity( R ) then
return [];
return [];
else
G := GroupReduct( R );
A := AutomorphismGroup( G );
Expand Down
Loading