Commit 5de63502 authored by Jerome Benoit's avatar Jerome Benoit

New upstream version 2.9.1

parent 2a6290c7
This diff is collapsed.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ +
+ Copyright (C) 2012 Erhard Aichinger, Franz Binder +
+ Jürgen Ecker, Peter Mayr, Christof Nöbauer +
+ +
+ This file is part of Sonata. +
+ +
+ Sonata is free software: you can redistribute it and/or modify +
+ it under the terms of the GNU General Public License as published by +
+ the Free Software Foundation, either version 2 of the License, or +
+ (at your option) any later version. +
+ +
+ Sonata is distributed in the hope that it will be useful, +
+ but WITHOUT ANY WARRANTY; without even the implied warranty of +
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +
+ GNU General Public License for more details. +
+ +
+ You should have received a copy of the GNU General Public License +
+ along with Sonata. If not, see <http://www.gnu.org/licenses/>. +
+ +
+ Copyright (C) 2012 Erhard Aichinger, Franz Binder +
+ Jürgen Ecker, Peter Mayr, Christof Nöbauer +
+ +
+ This file is part of Sonata. +
+ +
+ Sonata is free software: you can redistribute it and/or modify +
+ it under the terms of the GNU General Public License as published by +
+ the Free Software Foundation, either version 2 of the License, or +
+ (at your option) any later version. +
+ +
+ Sonata is distributed in the hope that it will be useful, +
+ but WITHOUT ANY WARRANTY; without even the implied warranty of +
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +
+ GNU General Public License for more details. +
+ +
+ You should have received a copy of the GNU General Public License +
+ along with Sonata. If not, see <http://www.gnu.org/licenses/>. +
+ +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
......@@ -42,9 +42,9 @@ would like to hear about applications of this package.
Erhard Aichinger
Franz Binder
Jürgen Ecker
Jürgen Ecker
Peter Mayr
Christof Nöbauer
Christof Nöbauer
email: sonata@algebra.uni-linz.ac.at
......
This diff is collapsed.
This diff is collapsed.
......@@ -3,8 +3,6 @@
%W copyrigh.tex SONATA documentation
%W
%%
%H @(#)$Id: copyrigh.tex,v 1.5 2012/11/07 13:26:29 stein Exp $
%%
%Y Copyright 2006, Institut fuer Algebra, Universitaet Linz, Austria
%%
......
......@@ -329,21 +329,6 @@ of the group.
[ f1, f2, f3, f2*f3, f1*f2*f4, f1*f3*f4, f1*f2*f3*f4 ]
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Nilpotency class}
\>NilpotencyClass( <G> )
If <G> is a nilpotent group then the function `NilpotencyClass' returns the
nilpotency class of <G> and `fail' otherwise.
\beginexample
gap> NilpotencyClass( SymmetricGroup( 7 ) );
fail
gap> NilpotencyClass( GTW32_47 );
3
\endexample
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Scott length}
......
\bibstyle{alpha}
\bibdata{sonata}
\citation{thomaswood80:GT}
\citation{scott69:TAOPMOAGATSOCPPGI}
\citation{ecker98:OTNOPFONGOC2}
\citation{Pilz:Nearrings}
\citation{meldrum85:NATLWG}
\citation{Clay:Nearrings}
\citation{Pilz:Nearrings}
\citation{meldrum85:NATLWG}
\citation{Clay:Nearrings}
\citation{aichingereckernoebauer00:TUOCINT}
\citation{aichingerea00:CWN}
\citation{Pilz:Nearrings}
\citation{meldrum85:NATLWG}
\citation{Clay:Nearrings}
\citation{Wolf:Spaces}
\citation{Mayr:Representations}
\citation{Waehling:Fastkoerper}
\citation{Clay:Nearrings}
\citation{Clay:Nearrings}
\citation{Clay:Nearrings}
\citation{Clay:Nearrings}
gap> G := GTW6_2;
6/2
gap> H := TWGroup( 4, 2 );
4/2
gap> D := DirectProduct( G, H );
Group([ (1,2), (1,2,3), (4,5), (6,7) ])
gap> IdTWGroup( D );
[ 24, 4 ]
gap> GroupList;
[ 2/1, 3/1, 4/1, 4/2, 5/1, 6/1, 6/2, 7/1, 8/1, 8/2, 8/3, 8/4, 8/5,
9/1, 9/2, 10/1, 10/2, 11/1, 12/1, 12/2, 12/3, 12/4, 12/5, 13/1,
14/1, 14/2, 15/1, 16/1, 16/2, 16/3, 16/4, 16/5, 16/6, 16/7, 16/8,
16/9, 16/10, 16/11, 16/12, 16/13, 16/14, 17/1, 18/1, 18/2, 18/3,
18/4, 18/5, 19/1, 20/1, 20/2, 20/3, 20/4, 20/5, 21/1, 21/2, 22/1,
22/2, 23/1, 24/1, 24/2, 24/3, 24/4, 24/5, 24/6, 24/7, 24/8, 24/9,
24/10, 24/11, 24/12, 24/13, 24/14, 24/15, 25/1, 25/2, 26/1, 26/2,
27/1, 27/2, 27/3, 27/4, 27/5, 28/1, 28/2, 28/3, 28/4, 29/1, 30/1,
30/2, 30/3, 30/4, 31/1, 32/1, 32/2, 32/3, 32/4, 32/5, 32/6, 32/7,
32/8, 32/9, 32/10, 32/11, 32/12, 32/13, 32/14, 32/15, 32/16, 32/17,
32/18, 32/19, 32/20, 32/21, 32/22, 32/23, 32/24, 32/25, 32/26,
32/27, 32/28, 32/29, 32/30, 32/31, 32/32, 32/33, 32/34, 32/35,
32/36, 32/37, 32/38, 32/39, 32/40, 32/41, 32/42, 32/43, 32/44,
32/45, 32/46, 32/47, 32/48, 32/49, 32/50, 32/51 ]
gap> G := GTW4_2;
4/2
gap> PrintTable( G );
Let:
g0 := ()
g1 := (3,4)
g2 := (1,2)
g3 := (1,2)(3,4)
* \ g0 g1 g2 g3
------------------
g0 \ g0 g1 g2 g3
g1 \ g1 g0 g3 g2
g2 \ g2 g3 g0 g1
g3 \ g3 g2 g1 g0
gap> G := GTW4_2;
4/2
gap> SetSymbols( G, ["(0,0)","(1,0)","(0,1)","(1,1)"] );
gap> PrintTable( G );
Let:
(0,0) := ()
(1,0) := (3,4)
(0,1) := (1,2)
(1,1) := (1,2)(3,4)
* \ (0,0) (1,0) (0,1) (1,1)
-----------------------------------
(0,0) \ (0,0) (1,0) (0,1) (1,1)
(1,0) \ (1,0) (0,0) (1,1) (0,1)
(0,1) \ (0,1) (1,1) (0,0) (1,0)
(1,1) \ (1,1) (0,1) (1,0) (0,0)
gap> G := TWGroup( 4, 2 );
4/2
gap> Endomorphisms( G );
[ [ (1,2), (3,4) ] -> [ (), () ], [ (1,2), (3,4) ] -> [ (), (1,2) ],
[ (1,2), (3,4) ] -> [ (), (3,4) ], [ (1,2), (3,4) ] -> [ (), (1,2)(3,4) ],
[ (1,2), (3,4) ] -> [ (1,2), () ], [ (1,2), (3,4) ] -> [ (3,4), () ],
[ (1,2), (3,4) ] -> [ (1,2)(3,4), () ], [ (1,2), (3,4) ] -> [ (1,2), (1,2) ]
, [ (1,2), (3,4) ] -> [ (3,4), (3,4) ],
[ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2)(3,4) ],
[ (1,2), (3,4) ] -> [ (1,2), (3,4) ],
[ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ],
[ (1,2), (3,4) ] -> [ (3,4), (1,2) ],
[ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2) ],
[ (1,2), (3,4) ] -> [ (3,4), (1,2)(3,4) ],
[ (1,2), (3,4) ] -> [ (1,2), (1,2)(3,4) ] ]
gap> Automorphisms( GTW4_2 );
[ IdentityMapping( 4/2 ), [ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ],
[ (1,2), (3,4) ] -> [ (3,4), (1,2) ],
[ (3,4), (1,2) ] -> [ (1,2), (1,2)(3,4) ],
[ (3,4), (1,2) ] -> [ (1,2)(3,4), (3,4) ],
[ (3,4), (1,2) ] -> [ (1,2)(3,4), (1,2) ] ]
gap> InnerAutomorphisms( AlternatingGroup( 4 ) );
[ ^(), ^(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> IsIsomorphicGroup( SymmetricGroup( 4 ), GTW24_12 );
true
gap> Subgroups( TWGroup( 8, 4 ) );
[ Group(()), Group([ (1,3)(2,4) ]), Group([ (2,4) ]), Group([ (1,3) ]),
Group([ (1,2)(3,4) ]), Group([ (1,4)(2,3) ]), Group([ (1,3)(2,4), (2,4) ]),
Group([ (1,3)(2,4), (1,2,3,4) ]), Group([ (1,3)(2,4), (1,2)(3,4) ]),
Group([ (1,3)(2,4), (2,4), (1,2,3,4) ]) ]
gap> OneGeneratedNormalSubgroups( AlternatingGroup(4) );
[ Group([ (1,2)(3,4), (1,3)(2,4), (1,4)(2,3) ]) ]
gap> D12 := DihedralGroup( 12 );
<pc group of size 12 with 3 generators>
gap> s := Subgroups( D12 );
[ Group([ ]), Group([ f1 ]), Group([ f1*f3^2 ]), Group([ f1*f3 ]),
Group([ f2*f3 ]), Group([ f1*f2 ]), Group([ f1*f2*f3^2 ]),
Group([ f1*f2*f3 ]), Group([ f3 ]), Group([ f1, f2*f3 ]),
Group([ f1*f3^2, f2*f3 ]), Group([ f1*f3, f2*f3 ]),
Group([ f3, f1 ]), Group([ f3, f2 ]), Group([ f3, f1*f2 ]),
Group([ f3, f1, f2 ]) ]
gap> e := Endomorphisms( D12 );;
gap> f := Filtered( s, sg -> IsInvariantUnderMaps( D12, sg, e ) );
[ Group([ ]), Group([ f3 ]), Group([ f3, f1, f2 ]) ]
gap> IsCharacteristicInParent( Centre( GTW16_11 ) );
true
gap> G := GTW6_2;
6/2
gap> S := Subgroup( G, [(1,2)] );
Group([ (1,2) ])
gap> IsFullinvariant( G, S );
false
gap> IsFullinvariantInParent( Centre( GTW16_11 ) );
true
gap> G := DihedralGroup( 16 );
<pc group of size 16 with 4 generators>
gap> C := Centre( G );
Group([ f4 ])
gap> RepresentativesModNormalSubgroup( G, C );
[ <identity> of ..., f1, f2, f3, f2*f3, f1*f2*f4, f1*f3*f4,
f1*f2*f3*f4 ]
gap> G := DihedralGroup( 16 );
<pc group of size 16 with 4 generators>
gap> C := Centre( G );
Group([ f4 ])
gap> NontrivialRepresentativesModNormalSubgroup( G, C );
[ f1, f2, f3, f2*f3, f1*f2*f4, f1*f3*f4, f1*f2*f3*f4 ]
gap> ScottLength( GTW6_2 );
2
gap> ScottLength( GTW16_11 );
4
gap> D24 := DihedralGroup( 24 );
<pc group of size 24 with 4 generators>
gap> D24p := AsPermGroup( D24 );
<permutation group of size 24 with 4 generators>
gap> IsomorphismGroups( D24, D24p );
[ f1, f2, f3, f4 ] ->
[ (1,17)(2,16)(3,18)(4,14)(5,13)(6,15)(7,20)(8,19)(9,21)(10,22)(11,24)(12,23),
(1,11,4,9,2,12,5,7,3,10,6,8)(13,23,16,21,14,24,17,19,15,22,18,20),
(1,4,2,5,3,6)(7,10,8,11,9,12)(13,16,14,17,15,18)(19,22,20,23,21,24),
(1,2,3)(4,5,6)(7,8,9)(10,11,12)(13,14,15)(16,17,18)(19,20,21)(22,23,24) ]
gap> C12 := CyclicGroup( 12 );
<pc group of size 12 with 3 generators>
gap> AsPermGroup( C12 );
Group([ ( 1, 7, 4,10, 2, 8, 5,11, 3, 9, 6,12),
( 1, 4, 2, 5, 3, 6)( 7,10, 8,11, 9,12),
( 1, 2, 3)( 4, 5, 6)( 7, 8, 9)(10,11,12) ])
gap> IsPairOfDicksonNumbers( 5, 4 );
true
gap> DicksonNearFields( 5, 4 );
[ ExplicitMultiplicationNearRing ( <pc group of size 625 with
4 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 625 with
4 generators> , multiplication ) ]
gap> NumberOfDicksonNearFields( 5, 4 );
2
gap> ExceptionalNearFields( 25 );
[ ExplicitMultiplicationNearRing ( <pc group of size 25 with
2 generators> , multiplication ) ]
gap> AllExceptionalNearFields();
[ ExplicitMultiplicationNearRing ( <pc group of size 25 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 49 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 121 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 121 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 529 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 841 with
2 generators> , multiplication ),
ExplicitMultiplicationNearRing ( <pc group of size 3481 with
2 generators> , multiplication ) ]
gap> C7 := CyclicGroup( 7 );;
gap> i := GroupHomomorphismByFunction( C7, C7, x -> x^-1 );;
gap> phi := Group( i );;
gap> orbs := Orbits( phi, C7 );
[ [ <identity> of ... ], [ f1, f1^6 ], [ f1^2, f1^5 ],
[ f1^3, f1^4 ] ]
gap> # choose reps from the orbits
gap> reps := [orbs[2][1], orbs[3][2]];
[ f1, f1^5 ]
gap> n := PlanarNearRing( C7, phi, reps );
ExplicitMultiplicationNearRing ( <pc group of size 7 with
1 generators> , multiplication )
gap> C7 := CyclicGroup( 7 );;
gap> i := GroupHomomorphismByFunction( C7, C7, x -> x^-1 );;
gap> phi := Group( i );;
gap> reps := OrbitRepresentativesForPlanarNearRing( C7, phi, 2 );
[ [ f1, f1^2 ], [ f1, f1^5 ] ]
gap> n1 := PlanarNearRing( C7, phi, reps[1] );;
gap> n2 := PlanarNearRing( C7, phi, reps[2] );;
gap> IsIsomorphicNearRing( n1, n2 );
false
gap> C9 := CyclicGroup( 9 );;
gap> psi := GroupHomomorphismByFunction( C9, C9, x -> x^3 );;
gap> Image( psi );
Group([ f2, <identity> of ... ])
gap> Image( psi ) = Kernel( psi );
true
gap> a := GroupHomomorphismByFunction( C9, C9, x -> x^4 );;
gap> phi := Group( a );;
gap> Size( phi );
3
gap> orbs := Orbits( phi, C9 );
[ [ <identity> of ... ], [ f2 ], [ f2^2 ], [ f1, f1*f2, f1*f2^2 ],
[ f1^2, f1^2*f2^2, f1^2*f2 ] ]
gap> # choose reps from the orbits outside of Image( psi )
gap> reps := [orbs[4][1], orbs[5][1]];
[ f1, f1^2 ]
gap> n := WdNearRing( C9, psi, phi, reps );
ExplicitMultiplicationNearRing ( <pc group of size 9 with
2 generators> , multiplication )
gap> points := [1..7];;
gap> blocks := [[1,2,3],[1,4,5],[1,6,7],[2,4,7],[2,5,6],[3,5,7],
> [3,4,6]];;
gap> D := DesignFromPointsAndBlocks( points, blocks );
<an incidence structure with 7 points and 7 blocks>
gap> M := [[1,0,1,1],
> [1,1,0,0],
> [1,1,1,0]];;
gap> DesignFromIncidenceMat( M );
<an incidence structure with 3 points and 4 blocks>
gap> n := LibraryNearRing( GTW9_2, 90 );
LibraryNearRing(9/2, 90)
gap> IsPlanarNearRing( n );
true
gap> D1 := DesignFromPlanarNearRing( n, "*" );
<a 2 - ( 9, 4, 3 ) nearring generated design>
gap> D2 := DesignFromPlanarNearRing( n, " " );
<a 2 - ( 9, 5, 5 ) nearring generated design>
gap> aux := FpfAutomorphismGroupsCyclic( [3,3], 4 );
[ [ [ f1, f2 ] -> [ f1*f2, f1*f2^2 ] ],
<pc group of size 9 with 2 generators> ]
gap> f := aux[1][1];
[ f1, f2 ] -> [ f1*f2, f1*f2^2 ]
gap> phi := Group( f );
<group with 1 generators>
gap> G := aux[2];
<pc group of size 9 with 2 generators>
gap> D3 := DesignFromFerreroPair( G, phi, "*" );
<a 2 - ( 9, 4, 3 ) nearring generated design>
gap> # D3 is actually isomorphic to D1
gap> n := LibraryNearRing( GTW9_1, 202 );
LibraryNearRing(9/1, 202)
gap> IsWdNearRing( n );
true
gap> DesignFromWdNearRing( n );
<a 1 - ( 9, 5, 10 ) nearring generated design>
gap> D1;
<a 2 - ( 9, 4, 3 ) nearring generated design>
gap> PointsOfDesign( D1 );
[ (()), ((4,5,6)), ((4,6,5)), ((1,2,3)), ((1,2,3)(4,5,6)),
((1,2,3)(4,6,5)), ((1,3,2)), ((1,3,2)(4,5,6)), ((1,3,2)(4,6,5)) ]
gap> PointsOfDesign( D1 ){[2,4]};
[ ((4,5,6)), ((1,2,3)) ]
gap> # returns the points in position 2 and 4
gap> Length( BlocksOfDesign( D1 ) );
18
gap> BlocksOfDesign( D1 ){[3]};
[ [ ((4,6,5)), (()), ((1,2,3)(4,5,6)), ((1,3,2)(4,5,6)) ] ]
gap> # returns the block in position 3 as a list of points
gap> DesignParameter( D1 );
[ 2, 9, 18, 8, 4, 3 ]
gap> # t = 2, v = 9, b = 18, r = 8, k = 4, lambda = 3
gap> M1 := IncidenceMat( D1 );
[ [ 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1 ],
[ 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 ],
[ 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ],
[ 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1 ],
[ 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0 ],
[ 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ],
[ 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0 ],
[ 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0 ] ]
gap> PrintIncidenceMat( D1 );
..1.1.1..1.11..1.1
1...1..11..1.11..1
1.1....1.11..1.11.
1..1.1..1.1.1..1.1
.11..11...1..11..1
.1.11.1.1....1.11.
1..1.11..1.1..1.1.
.11..1.11..11...1.
.1.11..1.11.1.1...
gap> BlockIntersectionNumbers( D1, 2 );
[ 0, 4, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1 ]
gap> # the second has empty intersection with the first block
gap> # and intersects all others in at most 2 points
gap> IsCircularDesign( D1 );
true
gap> IsPointIncidentBlock( D1, 3, 1 );
true
gap> # point 3 is incident with block 1
gap> IsPointIncidentBlock( D1, 3, 2 );
false
gap> PointsIncidentBlocks( D1, [1, 4] );
[ 4, 7 ]
gap> # block 1 and block 4 are together incident with
gap> # points 4 and 7
gap> BlocksIncidentPoints( D1, [2, 7] );
[ 1, 12, 15 ]
gap> # point 2 and point 7 are together incident with
gap> # blocks 1, 12, 15
gap> BlocksOfDesign( D1 ){last};
[ [ ((4,5,6)), ((4,6,5)), ((1,2,3)), ((1,3,2)) ],
[ ((1,3,2)), ((1,3,2)(4,5,6)), (()), ((4,5,6)) ],
[ ((1,3,2)(4,6,5)), ((1,3,2)), ((4,5,6)), ((1,2,3)(4,5,6)) ] ]
gap> # the actual point sets of blocks 1, 12, and 15
gap> BlocksIncidentPoints( D1, [2, 3, 7] );
[ 1 ]
gap> # points 2, 3, 7 are together incident with block 1
gap> PointsIncidentBlocks( D1, [1] );
[ 2, 3, 4, 7 ]
gap> # block 1 is incident with points 2, 3, 4, 7
This diff is collapsed.
gap> l := AllLibraryNearRings( GTW3_1 );
[ LibraryNearRing(3/1, 1), LibraryNearRing(3/1, 2),
LibraryNearRing(3/1, 3), LibraryNearRing(3/1, 4),
LibraryNearRing(3/1, 5) ]
gap> Filtered( l, IsNearField );
[ LibraryNearRing(3/1, 3) ]
gap> NumberLibraryNearRings( GTW14_2 );
1821
gap> LN14_2_1234 := LibraryNearRing( GTW14_2, 1234 );
LibraryNearRing(14/2, 1234)
gap> NumberLibraryNearRingsWithOne( GTW24_6 );
0
gap> NumberLibraryNearRingsWithOne( GTW24_4 );
10
gap> LNwI24_4_8 := LibraryNearRingWithOne( GTW24_4, 8 );
LibraryNearRingWithOne(24/4, 8)
gap> AllLibraryNearRingsWithOne( GTW24_6 );
[ ]
gap> p := PolynomialNearRing( GTW4_2 );
PolynomialNearRing( 4/2 )
gap> IdLibraryNearRing( p );
[ 8/3, 833 ]
gap> n := LibraryNearRing( GTW3_1, 4 );
LibraryNearRing(3/1, 4)
gap> d := DirectProductNearRing( n, n );
DirectProductNearRing( LibraryNearRing(3/1, 4), LibraryNearRing(3/1, 4)\
)
gap> IdLibraryNearRing( d );
[ 9/2, 220 ]
gap> l := LibraryNearRingWithOne( GTW12_3, 1 );
LibraryNearRingWithOne(12/3, 1)
gap> IdLibraryNearRing( l ); #this command requires time and memory!!!
[ 12/3, 37984 ]
gap> IdLibraryNearRingWithOne( l );
[ 12/3, 1 ]
gap> IsLibraryNearRing( LNwI24_4_8 );
true
gap> G := GTW4_2;
4/2
gap> t1 := EndoMappingByPositionList ( G, [1, 2, 4, 4] );
<mapping: 4/2 -> 4/2 >
gap> t2 := EndoMappingByFunction ( GTW8_2, g -> g^-1 );
<mapping: 8/2 -> 8/2 >
gap> IsGroupHomomorphism ( t2 );
true
gap> t3 := EndoMappingByFunction ( GTW6_2, g -> g^-1 );
<mapping: 6/2 -> 6/2 >
gap> IsGroupHomomorphism ( t3 );
false
gap> G1 := Group ((1,2,3), (1, 2));
Group([ (1,2,3), (1,2) ])
gap> G2 := Group ((2,3,4), (2, 3));
Group([ (2,3,4), (2,3) ])
gap> f1 := IsomorphismGroups ( G1, G2 );
[ (1,2,3), (1,2) ] -> [ (2,3,4), (2,3) ]
gap> f2 := IsomorphismGroups ( G2, G1 );
[ (2,3,4), (2,3) ] -> [ (1,2,3), (1,2) ]
gap> AsEndoMapping ( CompositionMapping ( f1, f2 ) );
<mapping: Group( [ (2,3,4), (2,3) ] ) -> Group( [ (2,3,4), (2,3)
] ) >
gap> m := IdentityEndoMapping ( GTW6_2 );
<mapping: 6/2 -> 6/2 >
gap> AsGroupGeneralMappingByImages ( m );
[ (1,2), (1,2,3) ] -> [ (1,2), (1,2,3) ]
gap> IsEndoMapping ( InnerAutomorphisms ( GTW6_2 ) [3] );
true
gap> AsList ( UnderlyingRelation ( IdentityEndoMapping ( Group ((1,2,3,4)) ) ) );
[ Tuple( [ (), () ] ), Tuple( [ (1,2,3,4), (1,2,3,4) ] ),
Tuple( [ (1,3)(2,4), (1,3)(2,4) ] ), Tuple( [ (1,4,3,2), (1,4,3,2) ] )
]
gap> C3 := CyclicGroup (3);
<pc group of size 3 with 1 generators>
gap> m := ConstantEndoMapping (C3, AsSortedList (C3) [2]);
MappingByFunction( <pc group of size 3 with
1 generators>, <pc group of size 3 with
1 generators>, function( x ) ... end )
gap> List (AsList (C3), x -> Image (m, x));
[ f1, f1, f1 ]
gap> IsIdentityEndoMapping (EndoMappingByFunction (
> AlternatingGroup ( [1..5] ), x -> x^31));
true
gap> C3 := CyclicGroup ( 3 );
<pc group of size 3 with 1 generators>
gap> IsConstantEndoMapping ( EndoMappingByFunction ( C3, x -> x^3 ));
true
gap> G := Group ( (1,2,3), (1,2) );
Group([ (1,2,3), (1,2) ])
gap> IsDistributiveEndoMapping ( EndoMappingByFunction ( G, x -> x^3));
false
gap> IsDistributiveEndoMapping ( EndoMappingByFunction ( G, x -> x^7));
true
gap> t1 := ConstantEndoMapping ( GTW2_1, ());
MappingByFunction( 2/1, 2/1, function( x ) ... end )
gap> t2 := ConstantEndoMapping (GTW2_1, (1, 2));
MappingByFunction( 2/1, 2/1, function( x ) ... end )
gap> List ( AsList ( GTW2_1 ), x -> Image ( t1 * t2, x ));
[ (1,2), (1,2) ]
gap> G := SymmetricGroup ( 3 );
Sym( [ 1 .. 3 ] )
gap> invertingOnG := EndoMappingByFunction ( G, x -> x^-1 );
<mapping: SymmetricGroup( [ 1 .. 3 ] ) -> SymmetricGroup(
[ 1 .. 3 ] ) >
gap> identityOnG := IdentityEndoMapping (G);
<mapping: SymmetricGroup( [ 1 .. 3 ] ) -> SymmetricGroup(
[ 1 .. 3 ] ) >
gap> AsSortedList ( G );
[ (), (2,3), (1,2), (1,2,3), (1,3,2), (1,3) ]
gap> List ( AsSortedList (G),
> x -> Image ( identityOnG * invertingOnG, x ));
[ (), (2,3), (1,2), (1,3,2), (1,2,3), (1,3) ]
gap> List ( AsSortedList (G),
> x -> Image ( identityOnG + invertingOnG, x ));
[ (), (), (), (), (), () ]
gap> IsIdentityEndoMapping ( - invertingOnG );
true
gap> - invertingOnG = identityOnG;
true
gap> G := SymmetricGroup ( 3 );
Sym( [ 1 .. 3 ] )
gap> m := ConstantEndoMapping (G, (1,2,3)) + IdentityEndoMapping( G );
MappingByFunction( Sym( [ 1 .. 3 ] ), Sym( [ 1 .. 3 ] ), function( g ) ... end )
gap> PrintArray( GraphOfMapping( m ) );
[ [ (), (1,2,3) ],
[ (2,3), (1,3) ],
[ (1,2), (2,3) ],
[ (1,2,3), (1,3,2) ],
[ (1,3,2), () ],
[ (1,3), (1,2) ] ]
gap> G := SymmetricGroup ( 3 );
Sym( [ 1 .. 3 ] )
gap> p := Random( PolynomialNearRing( G ) );
<mapping: SymmetricGroup( [ 1 .. 3 ] ) -> SymmetricGroup( [ 1 .. 3 ] ) >
gap> PrintAsTerm( p );
g1 - x - 2 * g1 - g2 - x - g1 - g2 + g1 - x - 2 * g1 -
g2 - x - g1 - g2 - 3 * x + g1
gap> GeneratorsOfGroup( G );
[ (1,2,3), (1,2) ]
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
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
gap> m := MapNearRing ( GTW32_12 );
TransformationNearRing(32/12)
gap> Size ( m );
1461501637330902918203684832716283019655932542976
gap> NearRingIdeals ( m );
[ < nearring ideal >, < nearring ideal > ]
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
gap> P := PolynomialNearRing ( GTW16_6 );
PolynomialNearRing( 16/6 )
gap> Size ( P );
256
gap> ES4 := EndomorphismNearRing ( SymmetricGroup ( 4 ) );
EndomorphismNearRing( Sym( [ 1 .. 4 ] ) )
gap> Size ( ES4 );
927712935936
gap> A := AutomorphismNearRing ( DihedralGroup ( 8 ) );
AutomorphismNearRing( <pc group of size 8 with 3 generators> )
gap> Length(NearRingRightIdeals ( A ));
28
gap> Size (A);
32
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) ] ]
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 ]
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 > ]
gap> P := PolynomialNearRing ( GTW8_5 );
PolynomialNearRing( 8/5 )
gap> L := LocalInterpolationNearRing ( P, 2 );
LocalInterpolationNearRing( PolynomialNearRing( 8/5 ), 2 )
gap> Size ( L ) / Size ( P );
16
gap> Gamma ( PolynomialNearRing ( CyclicGroup ( 25 ) ) );
<pc group of size 25 with 2 generators>
gap> IsCyclic (last);
true
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
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 )
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
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);