In the previous chapter we introduced mappings on groups, and we
called them endomappings. We also introduced the operation of
pointwise addition +
for endomappings. Now we are able to use these
mappings together with pointwise addition +
and composition *
to
construct left nearrings. These nearrings satisfy the distributive
law x * (y + z) = x * y + x * z.
A transformation nearring is a set of mappings on a group G that is closed under pointwise addition of mappings, under forming the additive inverse and under functional composition. For more information we suggest Pilz:Nearrings, meldrum85:NATLWG, and Clay:Nearrings,
The algorithms used can be found in aichingereckernoebauer00:TUOCINT and aichingerea00:CWN.
The elements of a transformation nearring are given as endomappings on the group G (cf. Chapter ``Functions on groups that are not necessarily homomorphisms: EndoMappings'').
TransformationNearRingByGenerators(
G,
endomaplist )
For a (possibly empty) list endomaplist of endomappings on a group
G, the constructor function TransformationNearRingByGenerators
returns the
nearring generated by these mappings. All of them must be
endomappings on the group G.
gap> g := AlternatingGroup ( 4 ); Alt( [ 1 .. 4 ] ) gap> AsSortedList ( g ); [ (), (2,3,4), (2,4,3), (1,2)(3,4), (1,2,3), (1,2,4), (1,3,2), (1,3,4), (1,3)(2,4), (1,4,2), (1,4,3), (1,4)(2,3) ] gap> t := EndoMappingByPositionList ( g, [1,3,4,5,2,1,1,1,1,1,1,1] ); <mapping: AlternatingGroup( [ 1 .. 4 ] ) -> AlternatingGroup( [ 1 .. 4 ] ) > gap> m := TransformationNearRingByGenerators ( g, [t] ); TransformationNearRingByGenerators( [ <mapping: AlternatingGroup( [ 1 .. 4 ] ) -> AlternatingGroup( [ 1 .. 4 ] ) > ]) gap> Size (m); # may take a few moments 20736 gap> IsCommutative ( m ); false
TransformationNearRingByAdditiveGenerators(
G,
endomaplist )
If a transformation nearring is known to be additively generated by a
set of endomappings on a group (as for example the distributively
generated nearrings E(G), A(G) and I(G)), the function
TransformationNearRingByAdditiveGenerators
allows to
construct this nearring. The only difference between
TransformationNearRingByGenerators
and
TransformationNearRingByAdditiveGenerators
is that
TransformationNearRingByAdditiveGenerators
is much faster.
gap> G := SymmetricGroup(3);; gap> endos := Endomorphisms ( G ); [ [ (1,2,3), (1,2) ] -> [ (), () ], [ (1,2,3), (1,2) ] -> [ (), (2,3) ], [ (1,2,3), (1,2) ] -> [ (), (1,2) ], [ (1,2,3), (1,2) ] -> [ (), (1,3) ], [ (1,2,3), (1,2) ] -> [ (1,2,3), (2,3) ], [ (1,2,3), (1,2) ] -> [ (1,3,2), (2,3) ], [ (1,2,3), (1,2) ] -> [ (1,3,2), (1,2) ], [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ], [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,3) ], [ (1,2,3), (1,2) ] -> [ (1,3,2), (1,3) ] ] gap> Endo := TransformationNearRingByAdditiveGenerators ( G, endos ); < transformation nearring with 10 generators > gap> Size( Endo ); 54
MapNearRing(
G )
TransformationNearRing(
G )
MapNearRing
and TransformationNearRing
both return the nearring of all
mappings on G.
gap> m := MapNearRing ( GTW32_12 ); TransformationNearRing(32/12) gap> Size ( m ); 1461501637330902918203684832716283019655932542976 gap> NearRingIdeals ( m ); [ < nearring ideal >, < nearring ideal > ]
IsFullTransformationNearRing(
tfmnr )
The function IsFullTransformationNearRing
returns true
if the
transformation nearring tfmnr is the nearring of all mappings over
the group.
gap> g := CyclicGroup ( 4 ); <pc group of size 4 with 2 generators> gap> m := MapNearRing ( g ); TransformationNearRing(<pc group of size 4 with 2 generators>) gap> gens := Filtered ( AsList ( m ), > f -> IsFullTransformationNearRing ( > TransformationNearRingByGenerators ( g, [ f ] )));; gap> Length(gens); 12
PolynomialNearRing(
G )
PolynomialNearRing
returns the nearring of all polynomial functions on G.
gap> P := PolynomialNearRing ( GTW16_6 ); PolynomialNearRing( 16/6 ) gap> Size ( P ); 256
EndomorphismNearRing(
G )
EndomorphismNearRing
returns the nearring generated by all endomorphisms
on G.
gap> ES4 := EndomorphismNearRing ( SymmetricGroup ( 4 ) ); EndomorphismNearRing( Sym( [ 1 .. 4 ] ) ) gap> Size ( ES4 ); 927712935936
AutomorphismNearRing(
G )
AutomorphismNearRing
returns the nearring generated by all automorphisms
on G.
gap> A := AutomorphismNearRing ( DihedralGroup ( 8 ) ); AutomorphismNearRing( <pc group of size 8 with 3 generators> ) gap> Length(NearRingRightIdeals ( A )); 28 gap> Size (A); 32
InnerAutomorphismNearRing(
G )
InnerAutomorphismNearRing
returns the nearring generated by all inner
automorphisms on G.
gap> I := InnerAutomorphismNearRing ( AlternatingGroup ( 4 ) ); InnerAutomorphismNearRing( Alt( [ 1 .. 4 ] ) ) gap> Size ( I ); 3072 gap> m := Enumerator( I )[1000]; <mapping: AlternatingGroup( [ 1 .. 4 ] ) -> AlternatingGroup( [ 1 .. 4 ] ) > gap> graph := List ( AsList ( AlternatingGroup ( 4 ) ), > x -> [x, Image (m, x)] ); [ [ (), () ], [ (2,3,4), (1,4)(2,3) ], [ (2,4,3), (1,4)(2,3) ], [ (1,2)(3,4), (1,2)(3,4) ], [ (1,2,3), (1,3)(2,4) ], [ (1,2,4), (1,4)(2,3) ], [ (1,3,2), (1,4)(2,3) ], [ (1,3,4), (1,2)(3,4) ], [ (1,3)(2,4), (1,3)(2,4) ], [ (1,4,2), () ], [ (1,4,3), (1,4)(2,3) ], [ (1,4)(2,3), (1,4)(2,3) ] ]
CompatibleFunctionNearRing(
G )
CompatibleFunctionNearRing
returns the nearring of all compatible functions
on the group G. A function m:G → G is compatible iff for every normal
subgroup N of G and all g,h ∈ G if g and h are in the same coset of N
then their images under m are in the same coset of G.
ZeroSymmetricCompatibleFunctionNearRing(
G )
ZeroSymmetricCompatibleFunctionNearRing
returns the nearring of all zerosymmetric
compatible functions on the group G. This function is also called by
CompatibleFunctionNearRing
.
IsCompatibleEndoMapping(
m )
IsCompatibleEndoMapping
returns true
iff m is a compatible function on its
source.
Is1AffineComplete(
G )
A group G is called 1-affine complete, iff every compatible function on G is
polynomial. Is1AffineComplete
returns true
iff G is 1-affine complete.
CentralizerNearRing(
G,
endos )
CentralizerNearRing
returns the nearring of all functions
m:G → G such that for all endomorphisms e in endos the
equality m °e = e °m holds.
gap> autos := Automorphisms ( GTW8_4 ); [ IdentityMapping( 8/4 ), ^(2,4), [ (1,2,3,4), (2,4) ] -> [ (1,4,3,2), (1,2)(3,4) ], [ (1,2,3,4), (2,4) ] -> [ (1,2,3,4), (1,2)(3,4) ], ^(1,4)(2,3), ^(1,2,3,4), [ (1,2,3,4), (2,4) ] -> [ (1,2,3,4), (1,4)(2,3) ], [ (1,4)(2,3), (1,4,3,2) ] -> [ (2,4), (1,2,3,4) ] ] gap> C := CentralizerNearRing ( GTW8_4, autos ); CentralizerNearRing( 8/4, ... ) gap> C0 := ZeroSymmetricPart ( C ); < transformation nearring with 4 generators > gap> Size ( C0 ); 32 gap> Is := NearRingIdeals ( C0 ); [ < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal >, < nearring ideal > ] gap> List (Is, Size); [ 1, 2, 4, 2, 4, 8, 8, 16, 4, 8, 16, 16, 32 ]
RestrictedEndomorphismNearRing(
G,
U )
RestrictedEndomorphismNearRing
returns the nearring generated by all
endomorphisms e on G with e(G) ⊆ U.
gap> G := GTW16_8; 16/8 gap> U := First ( NormalSubgroups ( G ), > x -> Size (x) = 2 ); Group([ ( 1, 5)( 2,10)( 3,11)( 4,12)( 6,15)( 7,16)( 8, 9)(13,14) ]) gap> HGU := RestrictedEndomorphismNearRing (G, U); RestrictedEndomorphismNearRing( 16/8, Group( [ ( 1, 5)( 2,10)( 3,11)( 4,12)( 6,15)( 7,16)( 8, 9)(13,14) ]) ) gap> Size (HGU); 8 gap> IsDistributiveNearRing ( HGU ); true gap> Filtered ( AsList ( HGU), > x -> x = x * x ); [ <mapping: 16/8 -> 16/8 > ]
LocalInterpolationNearRing(
tfmnr,
m )
LocalInterpolationNearRing
returns the nearring of all mappings on
G that can be interpolated at any set of m places by a mapping in
tfmnr, where G is the domain and codomain of the elements in
tfmnr.
gap> P := PolynomialNearRing ( GTW8_5 ); PolynomialNearRing( 8/5 ) gap> L := LocalInterpolationNearRing ( P, 2 ); LocalInterpolationNearRing( PolynomialNearRing( 8/5 ), 2 ) gap> Size ( L ) / Size ( P ); 16
Gamma(
tfmnr )
The function Gamma
returns the group on which the mappings of the
nearring tfmnr act.
gap> Gamma ( PolynomialNearRing ( CyclicGroup ( 25 ) ) ); <pc group of size 25 with 2 generators> gap> IsCyclic (last); true
AsTransformationNearRing(
nr )
Provided that nr is not already a transformation nearring,
AsTransformationNearRing
returns a transformation nearring that is isomorphic
to the nearring nr.
gap> L := LibraryNearRing (GTW8_3, 12); LibraryNearRing(8/3, 12) gap> Lt := AsTransformationNearRing ( L ); < transformation nearring with 3 generators > gap> Gamma ( Lt ); 8/3 x C_2
AsExplicitMultiplicationNearRing(
nr )
Provided that nr is not already an explicit multiplication nearring
(i. e. a transformation nearring), AsExplicitMultiplicationNearRing
returns
an explicit multiplication nearring that is isomorphic to the nearring nr.
gap> P := PolynomialNearRing ( GTW4_2 ); PolynomialNearRing( 4/2 ) gap> n := AsExplicitMultiplicationNearRing ( P ); ExplicitMultiplicationNearRing ( Group( [ ( 1, 2)( 5, 6)( 9,10)(13,14), ( 3, 4)( 7, 8)(11,12)(15,16), ( 7, 8)( 9,10)(13,14)(15,16) ]) , multiplication )
NoetherianQuotient(
tfmnr,
target,
source )
NoetherianQuotient
returns the set of all mappings t in tfmnr
with t(source) ⊆ target.
gap> G := SymmetricGroup ( 4 ); Sym( [ 1 .. 4 ] ) gap> V := First ( NormalSubgroups ( G ), x -> Size ( x ) = 4 ); Group([ (1,4)(2,3), (1,3)(2,4) ]) gap> P := InnerAutomorphismNearRing ( G ); InnerAutomorphismNearRing( Sym( [ 1 .. 4 ] ) ) gap> N := NoetherianQuotient ( P, V, G ); NoetherianQuotient( Group([ (1,4)(2,3), (1,3)(2,4) ]) ,Sym( [ 1 .. 4 ] ) ) gap> Size ( P ) / Size ( N ); 54
CongruenceNoetherianQuotient(
P,
A,
B,
C )
CongruenceNoetherianQuotient
returns the ideal of all those mappings in P that
map every element of the group Gamma(P) into C, and maps two elements that
are congruent modulo B into elements that are congruent modulo A.
Input conditions: (1) P is the nearring of polynomial functions on a group G,
(2) A is a normal subgroup of G,
(3) B is a normal subgroup of G,
(4) C is a normal subgroup of G,
(5) [C,B] is less or equal to A.
gap> G := GTW8_4; 8/4 gap> P := PolynomialNearRing (G); PolynomialNearRing( 8/4 ) gap> A := TrivialSubgroup (G); Group(()) gap> B := DerivedSubgroup (G); Group([ (1,3)(2,4) ]) gap> C := G; 8/4 gap> I := CongruenceNoetherianQuotient (P, A, B, C); < nearring ideal > gap> Size (P/I); 2
CongruenceNoetherianQuotientForInnerAutomorphismNearRings (
I,
A,
B,
C )
CongruenceNoetherianQuotientForInnerAutomorphismNearRings
returns the ideal of all those mappings in I that
map every element of the group Gamma(I) into C, and maps two elements that
are congruent modulo B into elements that are congruent modulo A.
Input conditions: (1) P is the nearring of polynomial functions on a group G,
(2) A is a normal subgroup of G,
(3) B is a normal subgroup of G,
(4) C is a normal subgroup of G,
(5) [C,B] is less or equal to A.
gap> G := GTW8_4; 8/4 gap> I := InnerAutomorphismNearRing (G); InnerAutomorphismNearRing( 8/4 ) gap> A := TrivialSubgroup (G); Group(()) gap> B := DerivedSubgroup (G); Group([ (1,3)(2,4) ]) gap> C := G; 8/4 gap> j := CongruenceNoetherianQuotientForInnerAutomorphismNearRings (I,A,B,C); < nearring ideal > gap> Size (I/j); 2
ZeroSymmetricPart(
tfmnr )
ZeroSymmetricPart
returns the nearring of all mappings t in
tfmnr with t(0) = 0.
gap> g := GTW8_4; 8/4 gap> P := PolynomialNearRing ( g ); PolynomialNearRing( 8/4 ) gap> Zp := ZeroSymmetricPart ( P ); < transformation nearring with 4 generators > gap> InnerAutomorphismNearRing ( g ) = Zp; true
[Up] [Previous] [Next] [Index]
SONATA manual