In SONATA every N-group is a group, the only difference is, that there
is a nearring that acts on the group. And since in SONATA all
nearrings are left distributive, they act on the elements of an
N-group from the right. Note, that the elements of an N-group are
added via *
, not +
.
The functions described in this section can be found in the source files
ngroups.g?
.
There is a natural way to construct an N-group. It is to take a group,
a nearring and define an action of the nearring on the group. The
function NGroup
allows one to do this. The special case, where
(the group reduct of) a nearring is viewed as an N-group over the
nearring itself, can be constructed easily via
NGroupByNearRingMultiplication
.
NGroup(
G,
nr,
action )
The function NGroup
has three arguments. G must be a group, nr the
nearring that acts on the group and action a binary operation from the
direct product of G and nr into G. It returns the N-group.
gap> G := GTW4_2; 4/2 gap> n := MapNearRing( G ); TransformationNearRing(4/2) gap> action := function ( g, f ) > return Image( f, g ); > end; function ( g, f ) ... end gap> gamma := NGroup( G, n, action ); < N-group of TransformationNearRing(4/2) > gap> IsNGroup( gamma ); true gap> NearRingActingOnNGroup( gamma ); TransformationNearRing(4/2) gap> ActionOfNearRingOnNGroup( gamma ); function ( g, f ) ... end gap> Print( ActionOfNearRingOnNGroup( gamma ) ); function ( g, f ) return Image( f, g );
NGroupByNearRingMultiplication(
nr )
For every (left) nearring (N,+,·) the group (N,+) is an N-group
over N with respect to nearring multiplication from the right as the
action. The function NGroupByNearRingMultiplication
returns this
N-group of the nearring nr.
gap> n := LibraryNearRing( GTW8_2, 3 ); LibraryNearRing(8/2, 3) gap> NGroupByNearRingMultiplication( n ) = GTW8_2; true
NGroupByApplication(
tfmnr )
For a nearring T of transformations on a group G, G is an
N-group of T with the application of functions as the action. The
function NGroupByApplication
returns this N-group
of the nearring
tfmnr.
Another way to construct an N-Group is to take a nearring N, a right ideal R and let N act on the factor N/R in the canonical way. This is accomplished by
NGroupByRightIdealFactor(
nr,
R )
The function NGroupByRightIdealFactor
has two arguments, a nearring
nr and a right ideal R. It returns the N-group nr/R.
gap> N := LibraryNearRing( GTW4_2, 11 ); LibraryNearRing(4/2, 11) gap> R := NearRingRightIdeals( N )[ 3 ]; < nearring right ideal > gap> ng := NGroupByRightIdealFactor( N, R ); < N-group of LibraryNearRing(4/2, 11) > gap> PrintTable( ng ); Let: (0,0) := (()) (1,0) := ((3,4)) (0,1) := ((1,2)) (1,1) := ((1,2)(3,4)) -------------------------------------------------------------------- g0 := <identity> of ... g1 := f1 N = LibraryNearRing(4/2, 11) acts on G = Group( [ f1 ] ) from the right by the following action: | g0 g1 --------------- (0,0) | g0 g0 (1,0) | g0 g0 (0,1) | g0 g1 (1,1) | g0 g1
PrintTable(
G )
The function PrintTable
prints out the operation table of the
action of a nearring on its N-group G
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 ); LibraryNearRing(8/2, 3) gap> gamma := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(8/2, 3) > gap> PrintTable( gamma ); Let: n0 := (()) n1 := ((3,4,5,6)) n2 := ((3,5)(4,6)) n3 := ((3,6,5,4)) n4 := ((1,2)) n5 := ((1,2)(3,4,5,6)) n6 := ((1,2)(3,5)(4,6)) n7 := ((1,2)(3,6,5,4)) -------------------------------------------------------------------- g0 := () g1 := (3,4,5,6) g2 := (3,5)(4,6) g3 := (3,6,5,4) g4 := (1,2) g5 := (1,2)(3,4,5,6) g6 := (1,2)(3,5)(4,6) g7 := (1,2)(3,6,5,4) N = LibraryNearRing(8/2, 3) acts on G = Group( [ (1,2), (3,4,5,6) ] ) from the right by the following action: | g0 g1 g2 g3 g4 g5 g6 g7 ------------------------------------ n0 | g0 g0 g0 g0 g0 g0 g0 g0 n1 | g0 g0 g0 g0 g0 g0 g0 g2 n2 | g0 g0 g0 g0 g0 g0 g0 g0 n3 | g0 g0 g0 g0 g0 g0 g0 g2 n4 | g0 g0 g0 g0 g0 g0 g0 g0 n5 | g0 g0 g0 g0 g0 g0 g0 g2 n6 | g0 g0 g0 g0 g0 g0 g0 g0 n7 | g0 g0 g0 g0 g0 g0 g0 g2
IsNGroup(
G )
For any group G the function IsNGroup
tests whether there is a nearring
defined that acts on G.
NearRingActingOnNGroup(
G )
The function NearRingActingOnNGroup
returns the nearring that acts on the
N-group G.
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 ); LibraryNearRing(8/2, 3) gap> gamma := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(8/2, 3) > gap> NearRingActingOnNGroup( gamma ); LibraryNearRing(8/2, 3)
ActionOfNearRingOnNGroup(
G )
The function ActionOfNearRingOnNGroup
returns the action of the nearring
that acts on the N-group G as a 2-ary GAP-function.
gap> n := LibraryNearRing( TWGroup( 8, 2 ), 3 ); LibraryNearRing(8/2, 3) gap> gamma := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(8/2, 3) > gap> ActionOfNearRingOnNGroup( gamma ); function ( g, n ) ... end
NSubgroup(
G,
gens )
The function NSubgroup
returns the N-subgroup of the N-group G
generated by gens.
NSubgroups(
G )
The function NSubgroups
returns a list of all N-subgroups of the
N-group G.
IsNSubgroup(
G,
S )
The function IsNSubgroup
returns true
iff S is an N-subgroup of
G.
N0Subgroups(
G )
The function N0Subgroups
returns a list of all N0-subgroups
of the N-group G.
gap> n := LibraryNearRing(GTW12_3,20465); LibraryNearRing(12/3, 20465) gap> ng := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(12/3, 20465) > gap> Length( N0Subgroups( ng ) ); 9
NIdeal(
G,
gens )
The function NIdeal
returns the N-ideal of the N-group G generated
by gens.
NIdeals(
G )
The function NGroupIdeals
returns a list of all ideals of the N-group G.
gap> n:=LibraryNearRing(GTW12_3,20465); LibraryNearRing(12/3, 20465) gap> ng := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(12/3, 20465) > gap> NIdeals( ng ); [ < N-group of LibraryNearRing(12/3, 20465) >, < N-group of LibraryNearRing(12/3, 20465) >, < N-group of LibraryNearRing(12/3, 20465) > ]
IsNIdeal(
G,
I )
The function IsNIdeal
returns true
iff I is an N-ideal of the
N-group G.
IsSimpleNGroup(
G )
The function IsSimpleNGroup
returns true
if G is a simple N-group
and false
otherwise.
IsN0SimpleNGroup(
G )
The function IsN0SimpleNGroup
returns true
if the N-group G is
N0-simple and false
otherwise.
IsCompatible(
G )
The function IsCompatible
returns true
if the N-group G is compatible
and false
otherwise.
IsTameNGroup(
G )
The function IsTameNGroup
returns true
if G is a tame N-group
and false
otherwise.
Is2TameNGroup(
G )
The function Is2TameNGroup
returns true
if the N-group G is 2-tame
and false
otherwise.
Is3TameNGroup(
G )
The function Is3TameNGroup
returns true
if the N-group G is 3-tame
and false
otherwise.
IsMonogenic(
G )
The function IsMonogenic
returns true
if the N-group G is monogenic
and false
otherwise.
IsStronglyMonogenic(
G )
The function IsStronglyMonogenic
returns true
if the N-group G is
strongly monogenic and false
otherwise.
TypeOfNGroup(
G )
The function TypeOfNGroup
returns the type of a monogenic N-group G. If
N is not monogenic or not of type 0, 1 or 2 it returns fail
.
gap> n:=LibraryNearRing(GTW12_3,20465); LibraryNearRing(12/3, 20465) gap> ng := NGroupByNearRingMultiplication( n ); < N-group of LibraryNearRing(12/3, 20465) > gap> TypeOfNGroup( ng ); fail
NoetherianQuotient(
nr,
ngrp,
target,
source )
It is assumed that source and target are subsets of the nr-group
ngrp. The function NoetherianQuotient
computes the set of all
elements f of nr such that source*f is a subset of target.
If target is an nr-ideal of ngrp, the Noetherian quotient is
returned as a near ring ideal, if target is an nr-subgroup of
ngrp, a left ideal of nr is returned. Otherwise the result is a
subset of nr.
In the following example we let a nearring act on its group reduct and compute the noetherian quotient (I,I)N for an ideal I of N.
gap> N := LibraryNearRing( GTW12_3, 100 ); LibraryNearRing(12/3, 100) gap> I := NearRingIdeals( N ); [ < nearring ideal >, < nearring ideal >, < nearring ideal > ] gap> List(I,Size); [ 1, 6, 12 ] gap> NN := NGroupByNearRingMultiplication( N ); < N-group of LibraryNearRing(12/3, 100) > gap> NoetherianQuotient( N, NN, GroupReduct(I[2]), GroupReduct(I[2]) ); < nearring ideal > gap> Size(last); 12
NuRadical(
nr,
nu )
The function NuRadical
has two arguments, a nearring nr and a number
nu which must be one of 0
, 1/2
, 1
and 2
. It returns the
ν-radical for ν = 0, 1/2, 1, 2 respectively.
NuRadicals(
nr )
the function NuRadicals
returns a record with the components J_0
, J1_2
,
J1
and J2
with the corresponding radicals.
gap> f := LibraryNearRing( GTW8_4, 3 ); LibraryNearRing(8/4, 3) gap> NuRadicals( f ); rec( J2 := < nearring ideal >, J1 := < nearring ideal >, J1_2 := < nearring right ideal >, J0 := < nearring ideal > ) gap> NuRadical( f, 1/2 ); < nearring right ideal > gap> Size( NuRadical( f, 0 ) ); 8 gap> AsList( NuRadical( f, 1 ) ); [ (()), ((2,4)), ((1,2)(3,4)), ((1,2,3,4)), ((1,3)), ((1,3)(2,4)), ((1,4,3,2)), ((1,4)(2,3)) ] gap> NuRadical( f, 1/2 ) = NuRadical( f, 2 ); true
[Up] [Previous] [Next] [Index]
SONATA manual