Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 3223

gap-system-4.4.12-5mdv2010.0.i586.rpm

<html><head><title>[SONATA-tutorial] 6 Ideals, factors, and direct products of nearrings</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP005.htm">Previous</a>] [<a href ="CHAP007.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<h1>6 Ideals, factors, and direct products of nearrings</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP006.htm#SECT001">Direct products</a>
<li> <A HREF="CHAP006.htm#SECT002">Ideals and factors</a>
</ol><p>
<p>
An <strong>ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that
<var>I</var> is a normal subgroup of <var>(N,+)</var>, and
for all <var>i inI</var>, <var>n,m inN</var>, we have
<var>(m+i)*n - m*n inI</var> and <var>n*i inI</var>. Ideals are in
one-to-one correspondence to the congruence relations
on <var>(N,+,*)</var>.
<p>
A <strong>right ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that
<var>I</var> is a normal subgroup of <var>(N,+)</var>, and
for all <var>i inI</var>, <var>n,m inN</var>, we have
<var>(m+i)*n - m*n inI</var>. Right ideals are in
one-to-one correspondence to the congruence relations
on <var>(N,+, { lambda<sub>m</sub> | m inM } )</var>, where
<var>lambda<sub>m</sub> (n) := n*m</var>. Hence, right ideals
describe the congruences of the <var>N</var>-group
<var>N<sub>N</sub></var>. 
<p>
A <strong>left ideal</strong> of a nearring <var>(N,+,*)</var> is a subset <var>I</var> such that
<var>I</var> is a normal subgroup of <var>(N,+)</var>, and
for all <var>i inI</var>, <var>n inN</var>, we have
<var>n*i inI</var>. 
<p>
<p>
<h2><a name="SECT001">6.1 Direct products</a></h2>
<p><p>
For all sorts of nearrings direct products <var>A timesB</var> can be constructed. The
result is again a nearring. In the case that both <var>A</var> and <var>B</var>
are <code>TransformationNearRings</code>, the result will be a <code>TransformationNearRing</code>
acting on the direct product of the groups <var>A</var> and <var>B</var> act on. In any other
case the result is an <code>ExplicitMultiplicationNearRing</code>, even if one of the
factors is a <code>TransformationNearRing</code>. In any case, the elements of a direct
product are <strong>not</strong> pairs or tuples.
<pre>
    gap&gt; A := LibraryNearRing( GTW8_2, 12 );
    LibraryNearRing(8/2, 12)
    gap&gt; B := LibraryNearRing( GTW12_4, 13 );
    LibraryNearRing(12/4, 13)
    gap&gt; D := DirectProductNearRing( A, B );
    DirectProductNearRing( LibraryNearRing(8/2, 12),
      LibraryNearRing(12/4, 13) )
    gap&gt; SetName( D, "A x B" );
    gap&gt; D;
    A x B
</pre>
        In this case the result is an <code>ExplicitMultiplicationNearRing</code>.
        It is a good idea to give a shorter name to the nearring <var>D</var>, because
        we will investigate one of its ideals in the next section.
<p>
<p>
<h2><a name="SECT002">6.2 Ideals and factors</a></h2>
<p><p>
        We go on with the last example of the previous section and try to
        compute a left ideal which is generated by two elements, namely the
        second and the twenty-fifth in the sorted list of elements. The <font face="Gill Sans,Helvetica,Arial">GAP</font>
        function <code>list{[ poss ]}</code> constructs a list of those elements
        of the list <code>list</code> the position in the list <code>list</code> of which is
        in the list <code>poss</code>. For short, <code>elms{[2,25]}</code> is a list which
        contains the second and the twenty-fifth element of the list <code>elms</code>.
<pre>
    gap&gt; elms := AsSortedList( D );;
    gap&gt; gens := elms{[2,25]};
    [ (( 8, 9,10)), ((3,5)(4,6)) ]
    gap&gt; L := NearRingLeftIdealByGenerators( D, gens );
    &lt; nearring left ideal &gt;
</pre>
        Now we can start investigating <var>I</var>. We can compute its size and test
        if it is an ideal.
<pre>
    gap&gt; Size( L );
    24
    gap&gt; IsNearRingRightIdeal( L );
    true
    gap&gt; L;
    &lt; nearring ideal of size 24 &gt;
</pre>
        So <var>L</var> is a two-sided ideal with 24 elements. Now we are getting
        interested in <var>L</var>. Is it a maximal ideal, what is the factor <var>D/L</var>?
<pre>
    gap&gt; IsMaximalNearRingIdeal( L );
    false
    gap&gt; F := D/L;
    FactorNearRing( A x B, &lt; nearring ideal of size 24 &gt; )
    gap&gt; PrintTable( F, "am" );

       +  | n0  n1  n2  n3  
      --------------------
      n0  | n0  n1  n2  n3  
      n1  | n1  n0  n3  n2  
      n2  | n2  n3  n0  n1  
      n3  | n3  n2  n1  n0  

       *  | n0  n1  n2  n3  
      --------------------
      n0  | n0  n0  n0  n0  
      n1  | n0  n0  n0  n0  
      n2  | n0  n0  n0  n0  
      n3  | n0  n0  n0  n0  
</pre>
        Here, we use <code>PrintTable</code> with a second argument, because we do 
        not want to see all the information. Here <code>a</code> stands for addition and <code>m</code> 
        stands for multiplication table. For more options see the reference 
        manual. Obviously, <var>F</var> is a constant nearring on a group of order 4. 
        The additive group of the nearring is <var><font face="helvetica,arial">Z</font><sub>2</sub> times<font face="helvetica,arial">Z</font><sub>2</sub></var>. To make this
        fact more obvious, we choose other names (symbols) for the elements
        of the nearring and print the addition table again.
<pre>
    gap&gt; IsElementaryAbelian( GroupReduct( F ) );
    true
    gap&gt; # this would also convince us
    gap&gt; IsCyclic( GroupReduct( F ) );
    false
    gap&gt; SetSymbols( F, ["(0,0)","(0,1)","(1,0)","(1,1)"] );
    gap&gt; PrintTable( F, "m" );                             

          *  | (0,0)  (0,1)  (1,0)  (1,1)  
      -----------------------------------
      (0,0)  | (0,0)  (0,0)  (0,0)  (0,0)  
      (0,1)  | (0,0)  (0,0)  (0,0)  (0,0)  
      (1,0)  | (0,0)  (0,0)  (0,0)  (0,0)  
      (1,1)  | (0,0)  (0,0)  (0,0)  (0,0)  
</pre>
        So <var>F</var> is the zero-ring on <var><font face="helvetica,arial">Z</font><sub>2</sub> times<font face="helvetica,arial">Z</font><sub>2</sub></var>, which is not simple,
        but we knew that before.
<p>
        Of course all this operations can be applied to all nearrings.
<p>
<p>
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP005.htm">Previous</a>] [<a href ="CHAP007.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>SONATA-tutorial manual<br>November 2008
</address></body></html>