Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  CHAP008.htm   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/sonata/doc/htm/ref/CHAP008.htm


<html><head><title>[SONATA] 8 N-groups</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP007.htm">Previous</a>] [<a href ="CHAP009.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<h1>8 N-groups</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP008.htm#SECT001">Construction of N-groups</a>
<li> <A HREF="CHAP008.htm#SECT002">Operation tables of N-groups</a>
<li> <A HREF="CHAP008.htm#SECT003">Functions for N-groups</a>
<li> <A HREF="CHAP008.htm#SECT004">N-subgroups</a>
<li> <A HREF="CHAP008.htm#SECT005">N0-subgroups</a>
<li> <A HREF="CHAP008.htm#SECT006">Ideals of N-groups</a>
<li> <A HREF="CHAP008.htm#SECT007">Special properties of N-groups</a>
<li> <A HREF="CHAP008.htm#SECT008">Noetherian quotients</a>
<li> <A HREF="CHAP008.htm#SECT009">Nearring radicals</a>
</ol><p>
<p>
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. <strong>Note</strong>, that the elements of an N-group are
added via <code>*</code>, not <code>+</code>.
<p>
The functions described in this section can be found in the source files
<code>ngroups.g?</code>.
<p>
<p>
<h2><a name="SECT001">8.1 Construction of N-groups</a></h2>
<p><p>
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 <code>NGroup</code> 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
<code>NGroupByNearRingMultiplication</code>.
<p>
<a name = "SSEC001.1"></a>
<li><code>NGroup( </code><var>G</var><code>, </code><var>nr</var><code>, </code><var>action</var><code> )</code>
<p>
The function <code>NGroup</code> has three arguments. <var>G</var> must be a group, <var>nr</var> the
nearring that acts on the group and <var>action</var> a binary operation from the
direct product of <var>G</var> and <var>nr</var> into <var>G</var>. It returns the N-group.
<p>
<pre>
    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 );
</pre>
<p>
<a name = "SSEC001.2"></a>
<li><code>NGroupByNearRingMultiplication( </code><var>nr</var><code> )</code>
<p>
For every (left) nearring (<i>N</i>,+,·) the group (<i>N</i>,+) is an N-group
over <i>N</i> with respect to nearring multiplication from the right as the
action.  The function <code>NGroupByNearRingMultiplication</code> returns this
N-group of the nearring <var>nr</var>.
<p>
<pre>
    gap> n := LibraryNearRing( GTW8_2, 3 );
    LibraryNearRing(8/2, 3)
    gap> NGroupByNearRingMultiplication( n ) = GTW8_2;
    true
</pre>
<p>
<a name = "SSEC001.3"></a>
<li><code>NGroupByApplication( </code><var>tfmnr</var><code> )</code>
<p>
For a nearring <i>T</i> of transformations on a group <i>G</i>, <i>G</i> is an
N-group of <i>T</i> with the application of functions as the action. The
function <code>NGroupByApplication</code> returns this <code>N-group</code> of the nearring
<var>tfmnr</var>.
<p>
Another way to construct an N-Group is to take a nearring <i>N</i>, a right
ideal <i>R</i> and let <i>N</i> act on the factor <i>N</i>/<i>R</i> in the canonical way.
This is accomplished by
<p>
<a name = "SSEC001.4"></a>
<li><code>NGroupByRightIdealFactor( </code><var>nr</var><code>, </code><var>R</var><code> )</code>
<p>
The function <code>NGroupByRightIdealFactor</code> has two arguments, a nearring
<var>nr</var> and a right ideal <var>R</var>. It returns the N-group <var>nr</var>/<var>R</var>.
<p>
<pre>
    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  

</pre>
<p>
<p>
<h2><a name="SECT002">8.2 Operation tables of N-groups</a></h2>
<p><p>
<a name = "SSEC002.1"></a>
<li><code>PrintTable( </code><var>G</var><code> )</code>
<p>
The function <code>PrintTable</code> prints out the operation table of the 
action of a nearring on its N-group <var>G</var>
<p>
<pre>
    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  

</pre>
<p>
<p>
<h2><a name="SECT003">8.3 Functions for N-groups</a></h2>
<p><p>
<a name = "SSEC003.1"></a>
<li><code>IsNGroup( </code><var>G</var><code> )</code>
<p>
For any group <var>G</var> the function <code>IsNGroup</code> tests whether there is a nearring
defined that acts on <var>G</var>.
<p>
<a name = "SSEC003.2"></a>
<li><code>NearRingActingOnNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>NearRingActingOnNGroup</code> returns the nearring that acts on the
N-group <var>G</var>.
<p>
<pre>
    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)
</pre>
<p>
<a name = "SSEC003.3"></a>
<li><code>ActionOfNearRingOnNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>ActionOfNearRingOnNGroup</code> returns the action of the nearring
that acts on the N-group <var>G</var> as a 2-ary <font face="Gill Sans,Helvetica,Arial">GAP</font>-function.
<p>
<pre>
    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
</pre>
<p>
<p>
<h2><a name="SECT004">8.4 N-subgroups</a></h2>
<p><p>
<a name = "SSEC004.1"></a>
<li><code>NSubgroup( </code><var>G</var><code>, </code><var>gens</var><code> )</code>
<p>
The function <code>NSubgroup</code> returns the N-subgroup of the N-group <var>G</var>
generated by <var>gens</var>.
<p>
<a name = "SSEC004.2"></a>
<li><code>NSubgroups( </code><var>G</var><code> )</code>
<p>
The function <code>NSubgroups</code> returns a list of all N-subgroups of the
N-group <var>G</var>.
<p>
<a name = "SSEC004.3"></a>
<li><code>IsNSubgroup( </code><var>G</var><code>, </code><var>S</var><code> )</code>
<p>
The function <code>IsNSubgroup</code> returns <code>true</code> iff <var>S</var> is an N-subgroup of
<var>G</var>.
<p>
<p>
<h2><a name="SECT005">8.5 N0-subgroups</a></h2>
<p><p>
<a name = "SSEC005.1"></a>
<li><code>N0Subgroups( </code><var>G</var><code> )</code>
<p>
The function <code>N0Subgroups</code> returns a list of all <i>N</i><sub>0</sub>-subgroups
of the N-group <var>G</var>.
<p>
<pre>
    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
</pre>
<p>
<p>
<h2><a name="SECT006">8.6 Ideals of N-groups</a></h2>
<p><p>
<a name = "SSEC006.1"></a>
<li><code>NIdeal( </code><var>G</var><code>, </code><var>gens</var><code> )</code>
<p>
The function <code>NIdeal</code> returns the N-ideal of the N-group <var>G</var> generated
by <var>gens</var>.
<p>
<a name = "SSEC006.2"></a>
<li><code>NIdeals( </code><var>G</var><code> )</code>
<p>
The function <code>NGroupIdeals</code> returns a list of all ideals of the N-group <var>G</var>.
<p>
<pre>
    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) > ]
</pre>
<p>
<a name = "SSEC006.3"></a>
<li><code>IsNIdeal( </code><var>G</var><code>, </code><var>I</var><code> )</code>
<p>
The function <code>IsNIdeal</code> returns <code>true</code> iff <var>I</var> is an N-ideal of the
N-group <var>G</var>.
<p>
<a name = "SSEC006.4"></a>
<li><code>IsSimpleNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>IsSimpleNGroup</code> returns <code>true</code> if <var>G</var> is a simple N-group
and <code>false</code> otherwise.
<p>
<a name = "SSEC006.5"></a>
<li><code>IsN0SimpleNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>IsN0SimpleNGroup</code> returns <code>true</code> if the N-group <var>G</var> is
<i>N</i><sub>0</sub>-simple and <code>false</code> otherwise.
<p>
<p>
<h2><a name="SECT007">8.7 Special properties of N-groups</a></h2>
<p><p>
<a name = "SSEC007.1"></a>
<li><code>IsCompatible( </code><var>G</var><code> )</code>
<p>
The function <code>IsCompatible</code> returns <code>true</code> if the N-group <var>G</var> is compatible
and <code>false</code> otherwise.
<p>
<a name = "SSEC007.2"></a>
<li><code>IsTameNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>IsTameNGroup</code> returns <code>true</code> if <var>G</var> is a tame N-group
and <code>false</code> otherwise.
<p>
<a name = "SSEC007.3"></a>
<li><code>Is2TameNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>Is2TameNGroup</code> returns <code>true</code> if the N-group <var>G</var> is 2-tame
and <code>false</code> otherwise.
<p>
<a name = "SSEC007.4"></a>
<li><code>Is3TameNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>Is3TameNGroup</code> returns <code>true</code> if the N-group <var>G</var> is 3-tame
and <code>false</code> otherwise.
<p>
<a name = "SSEC007.5"></a>
<li><code>IsMonogenic( </code><var>G</var><code> )</code>
<p>
The function <code>IsMonogenic</code> returns <code>true</code> if the N-group <var>G</var> is monogenic
and <code>false</code> otherwise.
<p>
<a name = "SSEC007.6"></a>
<li><code>IsStronglyMonogenic( </code><var>G</var><code> )</code>
<p>
The function <code>IsStronglyMonogenic</code> returns <code>true</code> if the N-group <var>G</var> is
strongly monogenic and <code>false</code> otherwise.
<p>
<a name = "SSEC007.7"></a>
<li><code>TypeOfNGroup( </code><var>G</var><code> )</code>
<p>
The function <code>TypeOfNGroup</code> returns the type of a monogenic N-group <var>G</var>. If
<var>N</var> is not monogenic or not of type 0, 1 or 2 it returns <code>fail</code>.
<p>
<pre>
    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
</pre>
<p>
<p>
<h2><a name="SECT008">8.8 Noetherian quotients</a></h2>
<p><p>
<a name = "SSEC008.1"></a>
<li><code>NoetherianQuotient( </code><var>nr</var><code>, </code><var>ngrp</var><code>, </code><var>target</var><code>, </code><var>source</var><code> )</code>
<p>
It is assumed that <var>source</var> and <var>target</var> are subsets of the <var>nr</var>-group
<var>ngrp</var>. The function <code>NoetherianQuotient</code> computes the set of all
elements <var>f</var> of <var>nr</var> such that <var>source</var>*<var>f</var> is a subset of <var>target</var>.
If <var>target</var> is an <var>nr</var>-ideal of <var>ngrp</var>, the Noetherian quotient is
returned as a near ring ideal, if <var>target</var> is an <var>nr</var>-subgroup of
<var>ngrp</var>, a left ideal of <var>nr</var> is returned. Otherwise the result is a
subset of <var>nr</var>.
<p>
In the following example we let a nearring act on its group reduct and
compute the noetherian quotient (<i>I</i>,<i>I</i>)<sub><i>N</i></sub> for an ideal <i>I</i> of <i>N</i>.
<p>
<pre>
    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
</pre>
<p>
<p>
<h2><a name="SECT009">8.9 Nearring radicals</a></h2>
<p><p>
<a name = "SSEC009.1"></a>
<li><code>NuRadical( </code><var>nr</var><code>, </code><var>nu</var><code> )</code>
<p>
The function <code>NuRadical</code> has two arguments, a nearring <var>nr</var> and a number
<var>nu</var> which must be one of <code>0</code>, <code>1/2</code>, <code>1</code> and <code>2</code>. It returns the
ν-radical for ν =  0, 1/2, 1, 2 respectively.
<p>
<a name = "SSEC009.2"></a>
<li><code>NuRadicals( </code><var>nr</var><code> )</code>
<p>
the function <code>NuRadicals</code> returns a record with the components <code>J_0</code>, <code>J1_2</code>,
<code>J1</code> and <code>J2</code> with the corresponding radicals.
<p>
<pre>
    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
</pre>
<p>
<p>
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP007.htm">Previous</a>] [<a href ="CHAP009.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>SONATA manual<br>September 2025
</address></body></html>

100%


¤ Dauer der Verarbeitung: 0.30 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge