Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 2781

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

<html><head><title>[SONATA] 6 Nearring ideals</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 Nearring ideals</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP006.htm#SECT001">Construction of nearring ideals</a>
<li> <A HREF="CHAP006.htm#SECT002">Testing for ideal properties</a>
<li> <A HREF="CHAP006.htm#SECT003">Special ideal properties</a>
<li> <A HREF="CHAP006.htm#SECT004">Generators of nearring ideals</a>
<li> <A HREF="CHAP006.htm#SECT005">Near-ring ideal elements</a>
<li> <A HREF="CHAP006.htm#SECT006">Random ideal elements</a>
<li> <A HREF="CHAP006.htm#SECT007">Membership of an ideal</a>
<li> <A HREF="CHAP006.htm#SECT008">Size of ideals</a>
<li> <A HREF="CHAP006.htm#SECT009">Group reducts of ideals</a>
<li> <A HREF="CHAP006.htm#SECT010">Comparision of ideals</a>
<li> <A HREF="CHAP006.htm#SECT011">Operations with ideals</a>
<li> <A HREF="CHAP006.htm#SECT012">Commutators</a>
<li> <A HREF="CHAP006.htm#SECT013">Simple nearrings</a>
<li> <A HREF="CHAP006.htm#SECT014">Factor nearrings</a>
</ol><p>
<p>
For an introduction to nearring ideals we suggest citePilz:Nearrings,
citemeldrum85:NATLWG, and citeClay:Nearrings.
<p>
Ideals of nearrings can either be left, right or twosided ideals. However,
all of them are called ideals. Mathematicians tend to use the expression
ideal also for subgroups of the group reduct of the nearring. <font face="Gill Sans,Helvetica,Arial">GAP</font> does
not allow that.
<p>
Left, right or twosided ideals in <font face="Gill Sans,Helvetica,Arial">GAP</font> form their own category <code>IsNRI</code>.
Whenever a left, right or twosided ideal is constructed it lies in this
category. The objects in this category are what <font face="Gill Sans,Helvetica,Arial">GAP</font> considers as ideals.
We will refer to them as <code>NRI</code>s.
<p>
All the functions in this chapter can be applied to all types of nearrings.
<p>
The functions described in this chapter can be found in the source files
<code>nrid.g?</code>, <code>idlatt.g?</code> and <code>nrconstr.g?</code>.
<p>
<p>
<h2><a name="SECT001">6.1 Construction of nearring ideals</a></h2>
<p><p>
There are several ways to construct ideals in nearrings.
<code>NearRingLeftIdealByGenerators</code>, <code>NearRingRightIdealByGenerators</code> and
<code>NearRingIdealByGenerators</code> can be used to construct (left / right)
ideals generated by a subset of the nearring.
<code>NearRingLeftIdealBySubgroupNC</code>, <code>NearRingRightIdealBySubgroupNC</code> and
<code>NearRingIdealBySubgroupNC</code> construct (left / right) ideals from a subgroup
of the group reduct of the nearring which is an ideal. Finally
<code>NearRingLeftIdeals</code>, <code>NearRingRightIdeals</code> and <code>NearRingIdeals</code>
compute lists of all (left / right) ideals of a nearring.
<p>
<a name = "SECT001"></a>
<li><code>NearRingIdealByGenerators( </code><var>nr</var><code>, </code><var>gens</var><code> )</code>
<p>
The function <code>NearRingIdealByGenerators</code> takes as arguments a nearring <var>nr</var>
and a list <var>gens</var> of arbitrarily many elements of <var>nr</var>. It returns the
smallest ideal of <var>nr</var> containing all elements of <var>gens</var>.
<p>
<a name = "SECT001"></a>
<li><code>NearRingLeftIdealByGenerators( </code><var>nr</var><code>, </code><var>gens</var><code> )</code>
<p>
The function <code>NearRingLeftIdealByGenerators</code> takes as arguments a nearring <var>nr</var>
and a list <var>gens</var> of arbitrarily many elements of <var>nr</var>. It returns the
smallest left ideal of <var>nr</var> containing all elements of <var>gens</var>.
<p>
<a name = "SECT001"></a>
<li><code>NearRingRightIdealByGenerators( </code><var>nr</var><code>, </code><var>gens</var><code> )</code>
<p>
The function <code>NearRingRightIdealByGenerators</code> takes as arguments a nearring
<var>nr</var> and a list <var>gens</var> of arbitrarily many elements of <var>nr</var>. It returns the
smallest right ideal of <var>nr</var> containing all elements of <var>gens</var>.
<p>
<pre>
    gap&gt; n := LibraryNearRing( GTW8_4, 12 );
    LibraryNearRing(8/4, 12)
    gap&gt; e := AsNearRingElement( n, (1,3)(2,4) );         
    ((1,3)(2,4))
    gap&gt; r := NearRingRightIdealByGenerators( n, [e] );
    &lt; nearring right ideal &gt;
    gap&gt; l := NearRingLeftIdealByGenerators( n, [e] );
    &lt; nearring left ideal &gt;
    gap&gt; i := NearRingIdealByGenerators( n, [e] );
    &lt; nearring ideal &gt;
    gap&gt; r = i;
    true
    gap&gt; l = i;
    false
    gap&gt; l = r;
    false
</pre>
<p>
<a name = "SECT001"></a>
<li><code>NearRingIdealBySubgroupNC( </code><var>nr</var><code>, </code><var>S</var><code> )</code>
<p>
From a nearring <var>nr</var> and a subgroup <var>S</var> of the group reduct of <var>nr</var>,
<code>NearRingIdealBySubgroupNC</code> constructs a (<font face="Gill Sans,Helvetica,Arial">GAP</font>--) ideal of <var>nr</var>. It is
assumed (and hence not checked) that <var>S</var> is an ideal of <var>nr</var>. See Section
<a href="CHAP006.htm#SECT002">IsSubgroupNearRingLeftIdeal</a> for information how to check this.
<p>
<a name = "SECT001"></a>
<li><code>NearRingLeftIdealBySubgroupNC( </code><var>nr</var><code>, </code><var>S</var><code> )</code>
<p>
From a nearring <var>nr</var> and a subgroup <var>S</var> of the group reduct of <var>nr</var>,
<code>NearRingLeftIdealBySubgroupNC</code> constructs a (<font face="Gill Sans,Helvetica,Arial">GAP</font>--) left ideal of <var>nr</var>. It
is assumed (and hence not checked) that <var>S</var> is a left ideal of <var>nr</var>. See
Section <a href="CHAP006.htm#SECT002">IsSubgroupNearRingLeftIdeal</a> for information how to check this.
<p>
<a name = "SECT001"></a>
<li><code>NearRingRightIdealBySubgroupNC( </code><var>nr</var><code>, </code><var>S</var><code> )</code>
<p>
From a nearring <var>nr</var> and a subgroup <var>S</var> of the group reduct of <var>nr</var>,
<code>NearRingRightIdealBySubgroupNC</code> constructs a (<font face="Gill Sans,Helvetica,Arial">GAP</font>--) right ideal of <var>nr</var>.
It is assumed (and hence not checked) that <var>S</var> is a right ideal of <var>nr</var>.
See Section <a href="CHAP006.htm#SECT002">IsSubgroupNearRingRightIdeal</a> for information how to check this.
<p>
<pre>
    gap&gt; a := GroupReduct( n );                                          
    8/4
    gap&gt; nsgps := NormalSubgroups( a );
    [ Group(()), Group([ (1,3)(2,4) ]), 
      Group([ (1,3)(2,4), (1,2)(3,4) ]), Group([ (1,3)(2,4), (2,4) ]), 
      Group([ (1,2,3,4), (1,3)(2,4) ]), 8/4 ]
    gap&gt; l := Filtered( nsgps,                                             
    &gt; s -&gt; IsSubgroupNearRingRightIdeal( n, s ) );                      
    [ Group(()), Group([ (1,3)(2,4), (2,4) ]), 8/4 ]
    gap&gt; l := List( l,      
    &gt; s -&gt; NearRingRightIdealBySubgroupNC( n, s ) );
    [ &lt; nearring right ideal &gt;, &lt; nearring right ideal &gt;, 
      &lt; nearring right ideal &gt; ]
</pre>
<p>
<a name = "SECT001"></a>
<li><code>NearRingIdeals( </code><var>nr</var><code> )</code>
<p>
<code>NearRingIdeals</code>  computes all ideals of the nearring <var>nr</var>. The return value
is a list of ideals of <var>nr</var>
<p>
For one-sided ideals the functions
<p>
<a name = "SECT001"></a>
<li><code>NearRingLeftIdeals( </code><var>nr</var><code> )</code>
<p>
and
<p>
<a name = "SECT001"></a>
<li><code>NearRingRightIdeals( </code><var>nr</var><code> )</code>
<p>
can be used.
<p>
<pre>
    gap&gt; NearRingIdeals( n );
    [ &lt; nearring ideal &gt;, &lt; nearring ideal &gt;, &lt; nearring ideal &gt; ]
    gap&gt; NearRingRightIdeals( n );
    [ &lt; nearring left ideal &gt;, &lt; nearring left ideal &gt;, 
      &lt; nearring left ideal &gt; ]
    gap&gt; NearRingLeftIdeals( n );
    [ &lt; nearring right ideal &gt;, &lt; nearring right ideal &gt;, 
      &lt; nearring right ideal &gt;, &lt; nearring right ideal &gt; ]
</pre>
<p>
<p>
<h2><a name="SECT002">6.2 Testing for ideal properties</a></h2>
<p><p>
<a name = "SECT002"></a>
<li><code>IsNRI( </code><var>obj</var><code> )</code>
<p>
<code>IsNRI</code> returns <code>true</code> if the object <var>obj</var> is a left ideal, a right ideal or
an ideal of a nearring. (Such an object may be considered as a (one or
twosided) <font face="Gill Sans,Helvetica,Arial">GAP</font> -- nearring ideal.)
<p>
<a name = "SECT002"></a>
<li><code>IsNearRingLeftIdeal( </code><var>I</var><code> )</code>
<p>
The function <code>IsNearRingLeftIdeal</code> can be applied to any <code>NRI</code>.
It returns <code>true</code> if <var>I</var> is a left ideal in its parent nearring.
<p>
<a name = "SECT002"></a>
<li><code>IsNearRingRightIdeal( </code><var>I</var><code> )</code>
<p>
The function <code>IsNearRingRightIdeal</code> can be applied to any <code>NRI</code>.
It returns <code>true</code> if <var>I</var> is a right ideal in its parent nearring.
<p>
<a name = "SECT002"></a>
<li><code>IsNearRingIdeal( </code><var>I</var><code> )</code>
<p>
The function <code>IsNearRingIdeal</code> can be applied to any <code>NRI</code>.
It returns <code>true</code> if <var>I</var> is an ideal in its parent nearring.
<p>
<pre>
    gap&gt; n := LibraryNearRing( GTW6_2, 39 );                      
    LibraryNearRing(6/2, 39)
    gap&gt; e := Enumerator(n)[3];
    ((1,3,2))
    gap&gt; l := NearRingLeftIdealByGenerators( n, [e] );
    &lt; nearring left ideal &gt;
    gap&gt; IsNRI( l );
    true
    gap&gt; IsNearRingLeftIdeal( l );
    true
    gap&gt; IsNearRingRightIdeal( l );
    true
    gap&gt; l;
    &lt; nearring ideal &gt;
</pre>
<p>
<a name = "SECT002"></a>
<li><code>IsSubgroupNearRingLeftIdeal( </code><var>nr</var><code>, </code><var>S</var><code> )</code>
<p>
Let <var>(N,+,.)</var> be a nearring. A subgroup <var>S</var> of the group <var>(N,+)</var> is a
<strong>left ideal</strong> of <var>N</var> if for all <var>a</var>, <var>b</var> in <var>N</var> and  <var>s</var> in <var>S</var>:\
<var>a.(b+s)-a.b</var> in <var>S</var>. 
<code>IsSubgroupNearRingLeftIdeal</code> takes as arguments a nearring <var>nr</var> and a subgroup
<var>S</var> of the group reduct of <var>nr</var> and returns <code>true</code> if <var>S</var> is a nearring
ideal of <var>nr</var> and <code>false</code> otherwise.
<p>
<strong>Note</strong>, that if <code>IsSubgroupNearRingLeftIdeal</code> returns <code>true</code> this means that
<var>S</var> is a left ideal only in the mathematical sense, not in <font face="Gill Sans,Helvetica,Arial">GAP</font>--sense (it is
a group, not a left ideal). You can use <code>NearRingLeftIdealBySubgroupNC</code> (see
Section <a href="CHAP006.htm#SECT001">NearRingLeftIdealBySubgroupNC</a>) to construct the corresponding left
ideal.
<p>
<a name = "SECT002"></a>
<li><code>IsSubgroupNearRingRightIdeal( </code><var>nr</var><code>, </code><var>S</var><code> )</code>
<p>
Let <var>(N,+,.)</var> be a nearring. A subgroup <var>S</var> of the group <var>(N,+)</var> is a
<strong>right ideal</strong> of <var>N</var> if <var>S.N subseteqS</var>.
<code>IsSubgroupNearRingRightIdeal</code> takes as arguments a nearring <var>nr</var> and a
subgroup <var>S</var> of the group reduct of <var>nr</var> and returns <code>true</code> if <var>S</var> is a
right ideal of <var>nr</var> and <code>false</code> otherwise.
<p>
<strong>Note</strong>, that if <code>IsSubgroupNearRingRightIdeal</code> returns <code>true</code> this means that
<var>S</var> is a right ideal only in the mathematical sense, not in <font face="Gill Sans,Helvetica,Arial">GAP</font>--sense (it
is a group, not a right ideal). You can use
<code>NearRingRightIdealBySubgroupNC</code> (see Section
<a href="CHAP006.htm#SECT001">NearRingRightIdealBySubgroupNC</a>) to construct the corresponding right ideal.
<p>
<pre>
    gap&gt; n := LibraryNearRing( GTW6_2, 39 );                    
    LibraryNearRing(6/2, 39)
    gap&gt; s := Subgroups( GroupReduct( n ) );
    [ Group(()), Group([ (2,3) ]), Group([ (1,3) ]), Group([ (1,2) ]), 
      Group([ (1,3,2) ]), Group([ (1,2,3), (1,2) ]) ]
    gap&gt; List( s, sg -&gt; IsSubgroupNearRingLeftIdeal( n, sg ) );
    [ true, false, false, false, true, true ]
    gap&gt; List( s, sg -&gt; IsSubgroupNearRingRightIdeal( n, sg ) );
    [ true, false, false, false, true, true ]
</pre>
<p>
<p>
<h2><a name="SECT003">6.3 Special ideal properties</a></h2>
<p><p>
<a name = "SECT003"></a>
<li><code>IsPrimeNearRingIdeal( </code><var>I</var><code> )</code>
<p>
An ideal <var>I</var> of a nearring <var>N</var> is <strong>prime</strong> if for any two ideals <var>J</var> and <var>K</var>
of <var>N</var> whenever <var>J.K</var> is contained in <var>I</var> then at least one of them is
contained in <var>I</var>.
<code>IsPrimeNearRingIdeal</code> returns <code>true</code> if <var>I</var> is a prime ideal in its parent
nearring and <code>false</code> otherwise.
<p>
<pre>
    gap&gt; n := LibraryNearRingWithOne( GTW27_2, 5 );
    LibraryNearRingWithOne(27/2, 5)
    gap&gt; Filtered( NearRingIdeals( n ), IsPrimeNearRingIdeal );
    [ &lt; nearring ideal of size 9 &gt;, &lt; nearring ideal of size 27 &gt; ]
</pre>
<p>
<a name = "SECT003"></a>
<li><code>IsMaximalNearRingIdeal( </code><var>I</var><code> )</code>
<p>
A proper ideal <var>I</var> of a nearring <var>N</var> is <strong>maximal</strong> if there is no
proper ideal containing <var>I</var> properly.
<code>IsMaximalNearRingIdeal( </code><var>I</var><code> ) returns `true</code> if <var>I</var> is a
maximal ideal in its parent nearring and <code>false</code> otherwise.
<p>
<pre>
    gap&gt; n := LibraryNearRingWithOne( GTW27_2, 5 );
    LibraryNearRingWithOne(27/2, 5)
    gap&gt; Filtered( NearRingIdeals( n ), IsMaximalNearRingIdeal );
    [ &lt; nearring ideal of size 9 &gt; ]
</pre>
<p>
<p>
<h2><a name="SECT004">6.4 Generators of nearring ideals</a></h2>
<p><p>
<a name = "SECT004"></a>
<li><code>GeneratorsOfNearRingIdeal( </code><var>I</var><code> )</code>
<p>
For an <code>NRI</code> <var>I</var> the function <code>GeneratorsOfNearRingIdeal</code>
returns a set of elements of the parent nearring of <var>I</var> that generates <var>I</var>
as an ideal.
<p>
<a name = "SECT004"></a>
<li><code>GeneratorsOfNearRingLeftIdeal( </code><var>I</var><code> )</code>
<p>
For an <code>NRI</code> <var>I</var> the function <code>GeneratorsOfNearRingLeftIdeal</code>
returns a set of elements of the parent nearring of <var>I</var> that generates <var>I</var>
as a left ideal.
<p>
<a name = "SECT004"></a>
<li><code>GeneratorsOfNearRingRightIdeal( </code><var>I</var><code> )</code>
<p>
For an <code>NRI</code> <var>I</var> the function <code>GeneratorsOfNearRingRightIdeal</code>
returns a set of elements of the parent nearring of <var>I</var> that generates <var>I</var>
as a right ideal.
<p>
<p>
<h2><a name="SECT005">6.5 Near-ring ideal elements</a></h2>
<p><p>
<a name = "SECT005"></a>
<li><code>AsList( </code><var>I</var><code> )</code>
<p>
The function <code>AsList</code> computes the elements of the (left / right) ideal <var>I</var>.
It returns the elements as a list.
<p>
<a name = "SECT005"></a>
<li><code>AsSortedList( </code><var>I</var><code> )</code>
<p>
does essentially the same, but returns a set of elements.
<p>
<a name = "SECT005"></a>
<li><code>Enumerator( </code><var>I</var><code> )</code>
<p>
does essentially the same as <code>AsList</code>, but returns an enumerator for the
elements of <var>nr</var>.
<p>
<pre>
    gap&gt; n := LibraryNearRing( GTW8_2, 2 );
    LibraryNearRing(8/2, 2)
    gap&gt; li := NearRingLeftIdeals( n );
    [ &lt; nearring left ideal &gt;, &lt; nearring left ideal &gt;, 
      &lt; nearring left ideal &gt;, &lt; nearring left ideal &gt;, 
      &lt; nearring left ideal &gt;, &lt; nearring left ideal &gt; ]
    gap&gt; l := li[3];
    &lt; nearring left ideal &gt;
    gap&gt; e := Enumerator( l );;
    gap&gt; e[2];
    ((1,2)(3,6,5,4))
    gap&gt; AsList( e ); AsList( l );
    [ (()), ((1,2)(3,6,5,4)), ((3,5)(4,6)), ((1,2)(3,4,5,6)) ]
    [ (()), ((1,2)(3,6,5,4)), ((3,5)(4,6)), ((1,2)(3,4,5,6)) ]
</pre>
<p>
<p>
<h2><a name="SECT006">6.6 Random ideal elements</a></h2>
<p><p>
<a name = "SECT006"></a>
<li><code>Random( </code><var>I</var><code> )</code>
<p>
<code>Random</code> returns a random element of the (left / right) ideal <var>I</var>.
<p>
<pre>
    gap&gt; Random( l );
    ((3,5)(4,6))
</pre>
<p>
<p>
<h2><a name="SECT007">6.7 Membership of an ideal</a></h2>
<p><p>
For a (left / right) ideal <var>I</var> of a nearring <var>N</var> and an element <var>n</var> of <var>N</var>
<p>
<a name = "SECT007"></a>
<li><code></code><var>n</var><code> in </code><var>I</var><code></code>
<p>
tests whether <var>n</var> is an element of <var>I</var>.
<p>
<pre>
    gap&gt; Random( n ) in l;
    true
    gap&gt; Random( n ) in l;
    false
</pre>
<p>
<p>
<h2><a name="SECT008">6.8 Size of ideals</a></h2>
<p><p>
<a name = "SECT008"></a>
<li><code>Size( </code><var>I</var><code> )</code>
<p>
<code>Size</code> returns the number of elements of the (left / right) ideal <var>I</var>.
<p>
<p>
<h2><a name="SECT009">6.9 Group reducts of ideals</a></h2>
<p><p>
<a name = "SECT009"></a>
<li><code>GroupReduct( </code><var>I</var><code> )</code>
<p>
<code>GroupReduct</code> returns the group reduct of the (left / right) ideal <var>I</var>.
<p>
<p>
<h2><a name="SECT010">6.10 Comparision of ideals</a></h2>
<p><p>
<a name = "SECT010"></a>
<li><code></code><var>I</var><code> = </code><var>J</var><code></code>
<p>
If <var>I</var> and <var>J</var> are (left / right) ideals of the same nearring and consist of
the same elements, then <code>true</code> is returned. Otherwise the answer is <code>false</code>.
<p>
<p>
<h2><a name="SECT011">6.11 Operations with ideals</a></h2>
<p><p>
The most important operations for nearring (left / right) ideals are <strong>meet</strong>
and <strong>join</strong> in the lattice. <font face="Gill Sans,Helvetica,Arial">GAP</font> offers the functions <code>Intersection</code>,
<code>ClosureNearRingLeftIdeal</code>, <code>ClosureNearRingRightIdeal</code> and
<code>ClosureNearRingLeftIdeal</code> for this purpose.
<p>
<a name = "SECT011"></a>
<li><code>Intersection( </code><var>ideallist</var><code> )</code>
<p>
computes the intersection of the (left / right) ideals in the list <var>ideallist</var>.
All of the (left / right) ideals in <var>ideallist</var> must be (left / right) ideals
of the same nearring.
<p>
<a name = "SECT011"></a>
<li><code>Intersection( </code><var>I1</var><code>, ..., </code><var>In</var><code> )</code>
<p>
computes the intersection of the (left / right) ideals <var>I1</var>, ..., <var>In</var>.
<p>
In both cases the result is again a (left / right) ideal.
<p>
<a name = "SECT011"></a>
<li><code>ClosureNearRingLeftIdeal( </code><var>L1</var><code>, </code><var>L2</var><code> )</code>
<p>
The function <code>ClosureNearRingLeftIdeal</code> computes the left ideal <var>L1</var> + <var>L2</var>
of the nearRing <var>N</var> if both <var>L1</var> and <var>L2</var> are (left) ideals of <var>N</var>.
<p>
<a name = "SECT011"></a>
<li><code>ClosureNearRingRightIdeal( </code><var>R1</var><code>, </code><var>R2</var><code> )</code>
<p>
The function <code>ClosureNearRingRightIdeal</code> computes the right ideal <var>L1</var> + <var>L2</var>
of the nearring <var>N</var> if both <var>R1</var> and <var>R2</var> are (right) ideals of <var>N</var>.
<p>
<a name = "SECT011"></a>
<li><code>ClosureNearRingIdeal( </code><var>I1</var><code>, </code><var>I2</var><code> )</code>
<p>
The function <code>ClosureNearRingIdeal</code> computes the ideal <var>L1</var> + <var>L2</var>
of the nearring <var>N</var> if both <var>I1</var> and <var>I2</var> are ideals of <var>N</var>.
<p>
<p>
<h2><a name="SECT012">6.12 Commutators</a></h2>
<p><p>
<a name = "SECT012"></a>
<li><code>NearRingCommutator( </code><var>I</var><code>, </code><var>J</var><code> )</code>
<p>
The function <code>NearRingCommutator</code> returns the commutator of the two
ideals <var>I</var> and <var>J</var> of a common nearring.
<p>
<pre>
    gap&gt; l := LibraryNearRing( GTW6_2, 3 );
    LibraryNearRing(6/2, 3)
    gap&gt; i := NearRingIdeals( l );               
    [ &lt; nearring ideal &gt;, &lt; nearring ideal &gt; ]
    gap&gt; List( i, Size );
    [ 1, 6 ]
    gap&gt; NearRingCommutator( i[2], i[2] );
    &lt; nearring ideal of size 6 &gt;
</pre>
<p>
The function <code>PrintNearRingCommutatorsTable</code> prints a complete overview
over the action of the commutator operator on a group.
<p>
<pre>
    gap&gt; l := LibraryNearRing( GTW8_4, 13 );
    LibraryNearRing(8/4, 13)
    gap&gt; NearRingIdeals( l );
    [ &lt; nearring ideal &gt;, &lt; nearring ideal &gt;, &lt; nearring ideal &gt; ]
    gap&gt; PrintNearRingCommutatorsTable( l );
    [ 1, 1, 1 ]
    [ 1, 1, 2 ]
    [ 1, 2, 2 ]
</pre>
<p>
<p>
<h2><a name="SECT013">6.13 Simple nearrings</a></h2>
<p><p>
<a name = "SECT013"></a>
<li><code>IsSimpleNearRing( </code><var>nr</var><code> )</code>
<p>
The function <code>IsSimpleNearRing</code> returns <code>true</code> if the nearring <var>nr</var> has
no proper (two-sided) ideals.
<p>
<pre>
    gap&gt; NumberLibraryNearRings( GTW4_2 );                         
    23
    gap&gt; Filtered( AllLibraryNearRings( GTW4_2 ), IsSimpleNearRing );
    [ LibraryNearRing(4/2, 3), LibraryNearRing(4/2, 16), 
      LibraryNearRing(4/2, 17) ]
</pre>
<p>
<p>
<h2><a name="SECT014">6.14 Factor nearrings</a></h2>
<p><p>
<a name = "SECT014"></a>
<li><code>FactorNearRing( </code><var>nr</var><code>, </code><var>I</var><code> )</code>
<p>
For a nearring <var>nr</var> and an ideal <var>I</var> of the nearring <var>nr</var> the function
<code>FactorNearRing</code> returns the factor nearring of <var>nr</var> modulo the ideal <var>I</var>.
Alternatively,
<p>
<a name = "SECT014"></a>
<li><code></code><var>nr</var><code> / </code><var>I</var><code></code>
<p>
can be used and has the same effect.
<p>
The result is always an <code>ExplicitMultiplicationNearRing</code>, so all functions
for such nearrings can be applied to the factor nearring.
<p>
<pre>
    gap&gt; n := LibraryNearRing( GTW8_2, 2 );
    LibraryNearRing(8/2, 2)
    gap&gt; e := AsNearRingElement( n, (1,2) );
    ((1,2))
    gap&gt; e in n;
    true
    gap&gt; i := NearRingRightIdealByGenerators( n, [e] );
    &lt; nearring right ideal &gt;
    gap&gt; Size(i);
    4
    gap&gt; IsNearRingLeftIdeal( i );
    true
    gap&gt; i;
    &lt; nearring ideal of size 4 &gt;
    gap&gt; f := n/i;          
    FactorNearRing( LibraryNearRing(8/2, 2), &lt; nearring ideal of size 4 &gt; )
    gap&gt; IdLibraryNearRing(f);
    [ 2/1, 1 ]
</pre>
<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 manual<br>November 2008
</address></body></html>