Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/GAP/pkg/numericalsgps/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 30.7.2024 mit Größe 56 kB image not shown  

SSL chap12_mj.html   Sprache: HTML

 
 products/sources/formale Sprachen/GAP/pkg/numericalsgps/doc/chap12_mj.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (NumericalSgps) - Chapter 12: 
  Good semigroups
 </title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap12"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap11_mj.html">[Previous Chapter]</a>    <a href="chap13_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap12.html">[MathJax off]</a></p>
<p><a id="X7A9271AC84C7277F" name="X7A9271AC84C7277F"></a></p>
<div class="ChapSects"><a href="chap12_mj.html#X7A9271AC84C7277F">12 <span class="Heading">
  Good semigroups
 </span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap12_mj.html#X82B9F71084D2358E">12.1 <span class="Heading">
      Defining good semigroups
    </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X79E86DEE79281BF2">12.1-1 IsGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X82A8863E78650FC4">12.1-2 NumericalSemigroupDuplication</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X873FE7B37A747247">12.1-3 AmalgamationOfNumericalSemigroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X855341C57F43DB72">12.1-4 CartesianProductOfNumericalSemigroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7856241678224958">12.1-5 GoodSemigroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap12_mj.html#X8431465B82643392">12.2 <span class="Heading">
      Notable elements
  </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X79EBBF6D7A2C9A12">12.2-1 BelongsToGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X78A2A60481EE02E7">12.2-2 Conductor</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7B2F716B7985872B">12.2-3 Multiplicity</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X792BCCF87CF63122">12.2-4 IsLocal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X836AB83682858A11">12.2-5 SmallElements</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X82D40159783F0D48">12.2-6 RepresentsSmallElementsOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7E538585815C94D0">12.2-7 GoodSemigroupBySmallElements</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X83F444E586D96723">12.2-8 MaximalElementsOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X8503AC767A90C2BD">12.2-9 IrreducibleMaximalElementsOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X78B456D27856761F">12.2-10 GoodSemigroupByMaximalElements</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X8742875C836C9488">12.2-11 MinimalGoodGenerators</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X806865CB794CAC5D">12.2-12 ProjectionOfAGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7D70CD958333D49B">12.2-13 Genus</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X81BD57ED80145EB0">12.2-14 Length</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X809E0C077A613806">12.2-15 AperySetOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7B234A537F0C0AEF">12.2-16 StratifiedAperySetOfGoodSemigroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap12_mj.html#X87FE42227F47666F">12.3 <span class="Heading">
      Symmetric good semigroups
  </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X85A0D9C485431828">12.3-1 IsSymmetric</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap12_mj.html#X80A3D64386A152EB">12.4 <span class="Heading">
    Arf good closure
  </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X87248BD481228F36">12.4-1 ArfClosure</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap12_mj.html#X7FA8DCAC7951F7FB">12.5 <span class="Heading">
      Good ideals
    </span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X843CA9D5874A33F2">12.5-1 GoodIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7E4FC6DB794992E0">12.5-2 GoodGeneratingSystemOfGoodIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X82D384397EE5CAC4">12.5-3 AmbientGoodSemigroupOfGoodIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X84636A127ECEDA24">12.5-4 MinimalGoodGeneratingSystemOfGoodIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X797999937E4E1E2B">12.5-5 BelongsToGoodIdeal</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X842F3CE07E893949">12.5-6 SmallElements</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7DA7AE32837CC1C7">12.5-7 CanonicalIdealOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X7DC7A4B57BC2E55C">12.5-8 AbsoluteIrreduciblesOfGoodSemigroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap12_mj.html#X87AB3B09857B383A">12.5-9 TracksOfGoodSemigroup</a></span>
</div></div>
</div>

<h3>12 <span class="Heading">
  Good semigroups
 </span></h3>

<p>We will only cover here good semigroups of <span class="SimpleMath">\(\mathbb{N}^2\)</span>.</p>

<p>A <em>good semigroup</em> <span class="SimpleMath">\(S\)</span> is a submonoid of <span class="SimpleMath">\(\mathbb{N}^2\)</span>, with the following properties.</p>

<p>(G1) It is closed under infimums (minimum componentwise).</p>

<p>(G2) If <span class="SimpleMath">\(a, b \in M\)</span> and <span class="SimpleMath">\(a_i = b_i\)</span> for some <span class="SimpleMath">\(i \in \{1, 2\}\)</span>, then there exists <span class="SimpleMath">\(c \in M\)</span> such that <span class="SimpleMath">\(c_i > a_i = b_i\)</span> and <span class="SimpleMath">\(c_j = \min\{a_j,b_j\}\)</span>, with <span class="SimpleMath">\(j∈\{1,2\}\setminus \{i\}\)</span>.</p>

<p>(G3) There exists <span class="SimpleMath">\(C\in\mathbb{N}^n\)</span> such that <span class="SimpleMath">\(C+\mathbb{N}^n\subseteq S\)</span>.</p>

<p>Value semigroups of algebroid branches are good semigroups, but there are good semigroups that are not of this form. Since good semigroups are closed under infimums, if <span class="SimpleMath">\(C_1\)</span> and <span class="SimpleMath">\(C_2\)</span> fulfill <span class="SimpleMath">\(C_i+\mathbb{N}^n\subseteq S\)</span>, then <span class="SimpleMath">\(C_1\wedge C_2+\mathbb{N}^n\subseteq S\)</span>. So there is a minimum <span class="SimpleMath">\(C\)</span> fulfilling <span class="SimpleMath">\(C+\mathbb{N}^n\subseteq S\)</span>, which is called the <em>conductor</em> of <span class="SimpleMath">\(S\)</span>.</p>

<p>The contents of this chapter are described in <a href="chapBib_mj.html#biBDGSM">[DGMT18]</a>.</p>

<p><a id="X82B9F71084D2358E" name="X82B9F71084D2358E"></a></p>

<h4>12.1 <span class="Heading">
      Defining good semigroups
    </span></h4>

<p>Good semigroups can be constructed with numerical duplications, amalgamations, cartesian products, or by giving some of its generators and a candidate for conductor. Not every set determines a good semigroup; this is because the intersection of good semigroups might not be a good semigroup. So the terminology "good semigroup generated" by a set is a bit fragile.</p>

<p><a id="X79E86DEE79281BF2" name="X79E86DEE79281BF2"></a></p>

<h5>12.1-1 IsGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Detects if <var class="Arg">S</var> is an object of type good semigroup.</p>

<p><a id="X82A8863E78650FC4" name="X82A8863E78650FC4"></a></p>

<h5>12.1-2 NumericalSemigroupDuplication</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NumericalSemigroupDuplication</code>( <var class="Arg">S</var>, <var class="Arg">E</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup and <var class="Arg">E</var> is an ideal of <var class="Arg">S</var> with <span class="SimpleMath">\(E\subseteq S\)</span>. The output is <span class="SimpleMath">\(S\bowtie E= D\cup (E\times E)\cup\{ a\wedge b\mid a\in D, b\in E\times E\},\)</span> where <span class="SimpleMath">\(D=\{(s,s)\mid s\in S\}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">l:=Cartesian([1..11],[1..11]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Intersection(dup,l);</span>
[ [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
  [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ],
  [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ],
  [ 11, 9 ], [ 11, 11 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">[384938749837,349823749827] in dup;</span>
true
</pre></div>

<p><a id="X873FE7B37A747247" name="X873FE7B37A747247"></a></p>

<h5>12.1-3 AmalgamationOfNumericalSemigroups</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AmalgamationOfNumericalSemigroups</code>( <var class="Arg">S</var>, <var class="Arg">E</var>, <var class="Arg">b</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a numerical semigroup, <var class="Arg">E</var> is an ideal of a numerical semigroup <span class="SimpleMath">\(T\)</span> with <span class="SimpleMath">\(E\subseteq T\)</span>, and <var class="Arg">b</var> is an integer such that multiplication by <var class="Arg">b</var> is a morphism from <var class="Arg">S</var> to <span class="SimpleMath">\(T\)</span>, say <span class="SimpleMath">\(g\)</span>. The output is <span class="SimpleMath">\(S\bowtie^g E= D\cup(g^{-1}(E)\times E)\cup \{a\wedge b\mid a\in D, b\in g^{-1}(E)\times E\},\)</span> where <span class="SimpleMath">\(D=\{(s,b s)\mid s\in S\}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(2,3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=NumericalSemigroup(3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=3+t;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=AmalgamationOfNumericalSemigroups(s,e,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">[2,3] in dup;</span>
true
</pre></div>

<p><a id="X855341C57F43DB72" name="X855341C57F43DB72"></a></p>

<h5>12.1-4 CartesianProductOfNumericalSemigroups</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CartesianProductOfNumericalSemigroups</code>( <var class="Arg">S</var>, <var class="Arg">T</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> and <var class="Arg">T</var> are numerical semigroups. The output is <span class="SimpleMath">\(S\times T\)</span>, which is a good semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(2,3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=NumericalSemigroup(3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGoodSemigroup(CartesianProductOfNumericalSemigroups(s,t));</span>
true
</pre></div>

<p><a id="X7856241678224958" name="X7856241678224958"></a></p>

<h5>12.1-5 GoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GoodSemigroup</code>( <var class="Arg">X</var>, <var class="Arg">C</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">X</var> is a list of points with nonnegative integer coordinates and <span class="SimpleMath">\(C\)</span> is a pair of nonnegative integers (a list with two elements). If <span class="SimpleMath">\(M\)</span> is the affine and infimum closure of <var class="Arg">X</var>, decides if it is a good semigroup, and if so, outputs it.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];</span>
[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],
  [ 25, 12 ], [ 25, 16 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=[25,27];</span>
[ 25, 27 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GoodSemigroup(G,C);</span>
<Good semigroup>
</pre></div>

<p><a id="X8431465B82643392" name="X8431465B82643392"></a></p>

<h4>12.2 <span class="Heading">
      Notable elements
  </span></h4>

<p>Good semigroups are a natural extension of numerical semigroups, and so some of their notable elements are called in the same way as in the one dimensional case.</p>

<p><a id="X79EBBF6D7A2C9A12" name="X79EBBF6D7A2C9A12"></a></p>

<h5>12.2-1 BelongsToGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BelongsToGoodSemigroup</code>( <var class="Arg">v</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ \in</code>( <var class="Arg">v</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup and <var class="Arg">v</var> is a pair of integers. The output is <code class="code">true</code> if <var class="Arg">v</var> is in <var class="Arg">S</var>, and <code class="code">false</code> otherwise. Other ways to use this operation are <code class="code">\in(v,S)</code> and <code class="code">v in S</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(2,3);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">BelongsToGoodSemigroup([2,2],dup);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">[2,2] in dup;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">[3,2] in dup;</span>
false
</pre></div>

<p><a id="X78A2A60481EE02E7" name="X78A2A60481EE02E7"></a></p>

<h5>12.2-2 Conductor</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Conductor</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConductorOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is its conductor.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">Conductor(dup);</span>
[ 11, 11 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ConductorOfGoodSemigroup(dup);</span>
[ 11, 11 ]
</pre></div>

<p><a id="X7B2F716B7985872B" name="X7B2F716B7985872B"></a></p>

<h5>12.2-3 Multiplicity</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Multiplicity</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is its multiplicity (the minimum of the nonzero elements of the semigroup with respect to the usual partial order). It the semigroup is not local, it returns an error.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=GoodSemigroup([[2,2],[3,3]],[4,4]);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">Multiplicity(s);</span>
[ 2, 2 ]
</pre></div>

<p><a id="X792BCCF87CF63122" name="X792BCCF87CF63122"></a></p>

<h5>12.2-4 IsLocal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsLocal</code>( <var class="Arg">S</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. Returns true if the semigroup is local, and false otherwise.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=GoodSemigroup([[2,2],[3,3]],[4,4]);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsLoca(s);</span>
true
</pre></div>

<p><a id="X836AB83682858A11" name="X836AB83682858A11"></a></p>

<h5>12.2-5 SmallElements</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallElements</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallElementsOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is its set of small elements, that is, the elements smaller than its conductor with respect to the usual partial ordering.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElementsOfGoodSemigroup(dup);</span>
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ],
  [ 6, 10 ], [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ],
  [ 9, 9 ], [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ],
  [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
</pre></div>

<p><a id="X82D40159783F0D48" name="X82D40159783F0D48"></a></p>

<h5>12.2-6 RepresentsSmallElementsOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RepresentsSmallElementsOfGoodSemigroup</code>( <var class="Arg">X</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">X</var> is a list of points in the nonnegative orthant of the plane with integer coordinates. Determines if it represents the set of small elements of a good semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElementsOfGoodSemigroup(dup);</span>
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
  [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],
  [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">RepresentsSmallElementsOfGoodSemigroup(last);</span>
true
</pre></div>

<p><a id="X7E538585815C94D0" name="X7E538585815C94D0"></a></p>

<h5>12.2-7 GoodSemigroupBySmallElements</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GoodSemigroupBySmallElements</code>( <var class="Arg">X</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">X</var> is a list of points in the nonnegative orthant of the plane with integer coordinates. Determines if it represents the set of small elements of a good semigroup, and then outputs the good semigroup having <var class="Arg">X</var> as set of small elements.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElementsOfGoodSemigroup(dup);</span>
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
  [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],
  [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=GoodSemigroupBySmallElements(last);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup=G;</span>
true
</pre></div>

<p><a id="X83F444E586D96723" name="X83F444E586D96723"></a></p>

<h5>12.2-8 MaximalElementsOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MaximalElementsOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the set of elements <span class="SimpleMath">\((x,y)\)</span> of <var class="Arg">S</var> with the following property: there is no other element <span class="SimpleMath">\((x',y')\)</span> in <var class="Arg">S</var> with <span class="SimpleMath">\((x,y)\le (x',y')\)</span> sharing a coordinate with <span class="SimpleMath">\((x,y)\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[4,3],[7,13],[11,17]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=GoodSemigroup(G,[11,17]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mx:=MaximalElementsOfGoodSemigroup(g);</span>
[ [ 0, 0 ], [ 4, 3 ], [ 7, 13 ], [ 8, 6 ] ]
</pre></div>

<p><a id="X8503AC767A90C2BD" name="X8503AC767A90C2BD"></a></p>

<h5>12.2-9 IrreducibleMaximalElementsOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IrreducibleMaximalElementsOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the set of elements nonzero maximal elements that cannot be expressed as a sum of two nonzero maximal elements of the good semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[4,3],[7,13],[11,17]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=GoodSemigroup(G,[11,17]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IrreducibleMaximalElementsOfGoodSemigroup(g);</span>
[ [ 4, 3 ], [ 7, 13 ] ]
</pre></div>

<p><a id="X78B456D27856761F" name="X78B456D27856761F"></a></p>

<h5>12.2-10 GoodSemigroupByMaximalElements</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GoodSemigroupByMaximalElements</code>( <var class="Arg">S</var>, <var class="Arg">T</var>, <var class="Arg">M</var>, <var class="Arg">C</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> and <var class="Arg">T</var> are numerical semigroups, <var class="Arg">M</var> is a list of pairs in <span class="SimpleMath">\(S\times T\)</span>. <var class="Arg">C</var> is the conductor, and thus a pair of nonnegative integers. The output is the set of elements of <span class="SimpleMath">\(S\times T\)</span> that are not above an element in <var class="Arg">M</var>, that is, if they share a coordinate with an element in <var class="Arg">M</var>, then they must be smaller or equal to that element with respect to the usual partial ordering. The output is a good semigroup, if <var class="Arg">M</var> is an correct set of maximal elements.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[4,3],[7,13],[11,17]];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=GoodSemigroup(G,[11,17]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">sm:=SmallElements(g);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">mx:=MaximalElementsOfGoodSemigroup(g);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroupBySmallElements(Set(sm,x->x[1]));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">t:=NumericalSemigroupBySmallElements(Set(sm,x->x[2]));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Conductor(g);</span>
[ 11, 15 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">gg:=GoodSemigroupByMaximalElements(s,t,mx,[11,15]);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">gg=g;</span>
true
</pre></div>

<p><a id="X8742875C836C9488" name="X8742875C836C9488"></a></p>

<h5>12.2-11 MinimalGoodGenerators</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGoodGenerators</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGoodGeneratingSystemOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is its minimal good generating system (which is unique in the local case, <a href="chapBib_mj.html#biBDGSM">[DGMT18]</a>).</p>

<p><code class="code">MinimalGoodGeneratingSystemOfGoodSemigroup</code> and <code class="code">MinimalGoodGenerators</code> are synonyms.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=6+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGoodGenerators(dup);</span>
[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGoodGeneratingSystemOfGoodSemigroup(dup);</span>
[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ]

</pre></div>

<p><a id="X806865CB794CAC5D" name="X806865CB794CAC5D"></a></p>

<h5>12.2-12 ProjectionOfAGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ProjectionOfAGoodSemigroup</code>( <var class="Arg">S</var>, <var class="Arg">num</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup and <var class="Arg">num</var> is an integer, 1 or 2, which identify the numerical semigroup projection to compute. The output is the projection <span class="SimpleMath">\(S_i=\{\alpha_i\mid (\alpha_1,\alpha_2)\in S\}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 5 ], [ 4, 6 ], [ 8, 5 ],</span>
[ 8, 7 ], [ 8, 8 ], [ 8, 10 ], [ 11, 5 ], [ 11, 7], [ 11, 8 ], [ 11, 10 ], 
[ 12, 5 ], [ 12, 7 ], [ 12, 8 ], [ 12, 10 ], [ 15, 5 ], [ 15, 7 ], [ 15, 8 ],
[ 15, 10 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], [ 16, 10 ], [ 18, 5 ], [ 19, 7 ],
[ 19, 8 ], [ 19, 10 ], [ 20, 7 ], [ 20, 8 ], [ 20, 10 ], [ 22, 7 ], [ 22, 8 ],
[ 22, 10 ], [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 24, 7 ], [ 24, 8 ], [ 24, 10 ],
[ 25, 7 ], [ 25, 8 ], [ 26, 7 ], [ 26, 10 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">S1:=ProjectionOfGoodSemigroup(S,1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(S1);</span>
[ 0, 4, 8, 11, 12, 15, 16, 18, 19, 20, 22 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">S2:=ProjectionOfGoodSemigroup(S,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(S2);</span>
[ 0, 5, 6, 7, 8, 10 ]
</pre></div>

<p><a id="X7D70CD958333D49B" name="X7D70CD958333D49B"></a></p>

<h5>12.2-13 Genus</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Genus</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GenusOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the genus of <var class="Arg">S</var>, defined as <span class="SimpleMath">\(g(S)=d(\mathbb{N}^2\setminus C(S))\)</span>, where <span class="SimpleMath">\(C(S)=\{(\alpha_1,\alpha_2)\in S\mid (\alpha_1,\alpha_2)\geq c\}\)</span>, and <span class="SimpleMath">\(c\)</span> is the conductor.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 5 ], [ 4, 6 ], [ 8, 5 ],</span>
[ 8, 7 ], [ 8, 8 ], [ 8, 10 ], [ 11, 5 ], [ 11, 7], [ 11, 8 ], [ 11, 10 ], 
[ 12, 5 ], [ 12, 7 ], [ 12, 8 ], [ 12, 10 ], [ 15, 5 ], [ 15, 7 ], [ 15, 8 ],
[ 15, 10 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], [ 16, 10 ], [ 18, 5 ], [ 19, 7 ],
[ 19, 8 ], [ 19, 10 ], [ 20, 7 ], [ 20, 8 ], [ 20, 10 ], [ 22, 7 ], [ 22, 8 ],
[ 22, 10 ], [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 24, 7 ], [ 24, 8 ], [ 24, 10 ],
[ 25, 7 ], [ 25, 8 ], [ 26, 7 ], [ 26, 10 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">GenusOfGoodSemigroup(S);</span>
21
</pre></div>

<p><a id="X81BD57ED80145EB0" name="X81BD57ED80145EB0"></a></p>

<h5>12.2-14 Length</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Length</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LengthOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the lenght of <var class="Arg">S</var>, defined as <span class="SimpleMath">\(g(S)=d(S\setminus C(S))\)</span>, where <span class="SimpleMath">\(C(S)=\{(\alpha_1,\alpha_2)\in S\mid (\alpha_1,\alpha_2)\geq c\}\)</span> (<span class="SimpleMath">\(c\)</span> is the conductor).</p>

<p>When the good semigroup is the good semigroup of valuation of a ring <span class="SimpleMath">\(R\)</span>, it corresponds to the length of <span class="SimpleMath">\(R/C\)</span> as <span class="SimpleMath">\(R\)</span>-module, with <span class="SimpleMath">\(C\)</span> the conductor of <span class="SimpleMath">\(R\)</span>. See <a href="chapBib_mj.html#biBB-DA-F-1">[BDF00b]</a>, <a href="chapBib_mj.html#biBB-DA-F-2">[BDF00a]</a>, <a href="chapBib_mj.html#biBDM">[DdlM88]</a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 5 ], [ 4, 6 ], [ 8, 5 ],</span>
[ 8, 7 ], [ 8, 8 ], [ 8, 10 ], [ 11, 5 ], [ 11, 7], [ 11, 8 ], [ 11, 10 ], 
[ 12, 5 ], [ 12, 7 ], [ 12, 8 ], [ 12, 10 ], [ 15, 5 ], [ 15, 7 ], [ 15, 8 ],
[ 15, 10 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], [ 16, 10 ], [ 18, 5 ], [ 19, 7 ],
[ 19, 8 ], [ 19, 10 ], [ 20, 7 ], [ 20, 8 ], [ 20, 10 ], [ 22, 7 ], [ 22, 8 ],
[ 22, 10 ], [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 24, 7 ], [ 24, 8 ], [ 24, 10 ],
[ 25, 7 ], [ 25, 8 ], [ 26, 7 ], [ 26, 10 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(S);</span>
15
<span class="GAPprompt">gap></span> <span class="GAPinput">LengthOfGoodSemigroup(S);</span>
15
</pre></div>

<p><a id="X809E0C077A613806" name="X809E0C077A613806"></a></p>

<h5>12.2-15 AperySetOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AperySetOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the list of the Apery set of <var class="Arg">S</var>, defined as <span class="SimpleMath">\(Ap(S)=\{\alpha\in S\mid \alpha-e \notin S\)</span>, where <span class="SimpleMath">\(e\)</span> is the multiplicity of the good semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 5 ], [ 4, 6 ], [ 8, 5 ],</span>
[ 8, 7 ], [ 8, 8 ], [ 8, 10 ], [ 11, 5 ], [ 11, 7], [ 11, 8 ], [ 11, 10 ], 
[ 12, 5 ], [ 12, 7 ], [ 12, 8 ], [ 12, 10 ], [ 15, 5 ], [ 15, 7 ], [ 15, 8 ],
[ 15, 10 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], [ 16, 10 ], [ 18, 5 ], [ 19, 7 ],
[ 19, 8 ], [ 19, 10 ], [ 20, 7 ], [ 20, 8 ], [ 20, 10 ], [ 22, 7 ], [ 22, 8 ],
[ 22, 10 ], [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 24, 7 ], [ 24, 8 ], [ 24, 10 ],
[ 25, 7 ], [ 25, 8 ], [ 26, 7 ], [ 26, 10 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">AperySetOfGoodSemigroup(S);</span>
[ [ 0, 0 ], [ 4, 6 ], [ 8, 5 ], [ 8, 7 ], [ 8, 8 ], [ 8, 12 ], [ 8, 13 ], 
  [ 8, 14 ], [ 8, 15 ], [ 11, 5 ], [ 11, 7 ], [ 11, 8 ], [ 11, 10 ], 
  [ 11, 11 ], [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 11, 15 ], [ 12, 5 ], 
  [ 12, 7 ], [ 12, 8 ], [ 12, 11 ], [ 12, 14 ], [ 15, 5 ], [ 15, 7 ], 
  [ 15, 8 ], [ 15, 11 ], [ 15, 14 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], 
  [ 16, 11 ], [ 16, 14 ], [ 18, 5 ], [ 19, 7 ], [ 19, 8 ], [ 19, 11 ], 
  [ 19, 14 ], [ 20, 7 ], [ 20, 8 ], [ 20, 11 ], [ 20, 14 ], [ 22, 7 ], 
  [ 22, 8 ], [ 22, 11 ], [ 22, 12 ], [ 22, 13 ], [ 22, 14 ], [ 22, 15 ], 
  [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 23, 11 ], [ 23, 14 ], [ 24, 7 ], 
  [ 24, 8 ], [ 24, 10 ], [ 24, 11 ], [ 24, 14 ], [ 25, 7 ], [ 25, 8 ], 
  [ 26, 7 ], [ 26, 10 ], [ 26, 11 ], [ 26, 14 ], [ 27, 7 ], [ 27, 10 ], 
  [ 27, 11 ], [ 27, 14 ], [ 28, 7 ], [ 28, 10 ], [ 28, 11 ], [ 28, 14 ], 
  [ 29, 7 ], [ 29, 10 ], [ 29, 11 ], [ 29, 14 ], [ 29, 15 ], [ 30, 7 ], 
  [ 30, 10 ], [ 30, 11 ], [ 30, 13 ], [ 30, 14 ] ]
</pre></div>

<p><a id="X7B234A537F0C0AEF" name="X7B234A537F0C0AEF"></a></p>

<h5>12.2-16 StratifiedAperySetOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ StratifiedAperySetOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The function prints the number of level of the Apery Set. The output is a list where the <span class="SimpleMath">\(i\)</span>th element is the <span class="SimpleMath">\(i\)</span>th level of the Apery Set of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 5 ], [ 4, 6 ], [ 8, 5 ],</span>
[ 8, 7 ], [ 8, 8 ], [ 8, 10 ], [ 11, 5 ], [ 11, 7], [ 11, 8 ], [ 11, 10 ], 
[ 12, 5 ], [ 12, 7 ], [ 12, 8 ], [ 12, 10 ], [ 15, 5 ], [ 15, 7 ], [ 15, 8 ],
[ 15, 10 ], [ 16, 5 ], [ 16, 7 ], [ 16, 8 ], [ 16, 10 ], [ 18, 5 ], [ 19, 7 ],
[ 19, 8 ], [ 19, 10 ], [ 20, 7 ], [ 20, 8 ], [ 20, 10 ], [ 22, 7 ], [ 22, 8 ],
[ 22, 10 ], [ 23, 7 ], [ 23, 8 ], [ 23, 10 ], [ 24, 7 ], [ 24, 8 ], [ 24, 10 ],
[ 25, 7 ], [ 25, 8 ], [ 26, 7 ], [ 26, 10 ] ]);;
<span class="GAPprompt">gap></span> <span class="GAPinput">StratifiedAperySetOfGoodSemigroup(S);</span>
[ [ [ 0, 0 ] ], [ [ 4, 6 ], [ 8, 5 ], [ 11, 5 ] ], 
  [ [ 8, 7 ], [ 11, 7 ], [ 12, 5 ], [ 15, 5 ], [ 16, 5 ], [ 18, 5 ] ], 
  [ [ 8, 8 ], [ 11, 8 ], [ 12, 7 ], [ 15, 7 ], [ 16, 7 ], [ 19, 7 ], 
      [ 20, 7 ], [ 22, 7 ], [ 23, 7 ], [ 24, 7 ], [ 25, 7 ] ], 
  [ [ 8, 12 ], [ 8, 13 ], [ 8, 14 ], [ 11, 10 ], [ 11, 11 ], [ 12, 8 ], 
      [ 15, 8 ], [ 16, 8 ], [ 19, 8 ], [ 20, 8 ], [ 22, 8 ], [ 23, 8 ], 
      [ 24, 8 ], [ 25, 8 ], [ 26, 7 ], [ 27, 7 ], [ 28, 7 ], [ 29, 7 ], 
      [ 30, 7 ] ], 
  [ [ 8, 15 ], [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 12, 11 ], [ 15, 11 ], 
      [ 16, 11 ], [ 19, 11 ], [ 20, 11 ], [ 22, 11 ], [ 23, 10 ], [ 24, 10 ], 
      [ 26, 10 ], [ 27, 10 ], [ 28, 10 ], [ 29, 10 ], [ 30, 10 ] ], 
  [ [ 11, 15 ], [ 12, 14 ], [ 15, 14 ], [ 16, 14 ], [ 19, 14 ], [ 20, 14 ], 
      [ 22, 12 ], [ 22, 13 ], [ 22, 14 ], [ 23, 11 ], [ 24, 11 ], [ 26, 11 ], 
      [ 27, 11 ], [ 28, 11 ], [ 29, 11 ], [ 30, 11 ] ], 
  [ [ 22, 15 ], [ 23, 14 ], [ 24, 14 ], [ 26, 14 ], [ 27, 14 ], [ 28, 14 ], 
  [ 29, 14 ], [ 30, 13 ] ], [ [ 29, 15 ], [ 30, 14 ] ] ]
</pre></div>

<p><a id="X87FE42227F47666F" name="X87FE42227F47666F"></a></p>

<h4>12.3 <span class="Heading">
      Symmetric good semigroups
  </span></h4>

<p>The concept of symmetry in a numerical semigroup extends to good semigroups. Here we describe a test for symmetry.</p>

<p><a id="X85A0D9C485431828" name="X85A0D9C485431828"></a></p>

<h5>12.3-1 IsSymmetric</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSymmetric</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSymmetricGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. Determines if <var class="Arg">S</var> is a symmetric good semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=CanonicalIdealOfNumericalSemigroup(s);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=15+e;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">dup:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSymmetric(dup);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSymmetricGoodSemigroup(dup);</span>
true
</pre></div>

<p><a id="X80A3D64386A152EB" name="X80A3D64386A152EB"></a></p>

<h4>12.4 <span class="Heading">
    Arf good closure
  </span></h4>

<p>The definition of Arf good semigroup is similar to the definition of Arf numerical semigroup. In this section, we provide a function to compute the Arf good closure of a good semigroup.</p>

<p><a id="X87248BD481228F36" name="X87248BD481228F36"></a></p>

<h5>12.4-1 ArfClosure</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ArfClosure</code>( <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ArfGoodSemigroupClosure</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. Determines the Arf good semigroup closure of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[3,3],[4,4],[5,4],[4,6]];</span>
[ [ 3, 3 ], [ 4, 4 ], [ 5, 4 ], [ 4, 6 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=[6,6];</span>
[ 6, 6 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroup(G,C);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(S);</span>
[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ], [ 4, 6 ], [ 5, 4 ], [ 6, 6 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">A:=ArfClosure(S);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(A);</span>
[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ArfGoodSemigroupClosure(S) = ArfClosure(S);</span>
true
</pre></div>

<p><a id="X7FA8DCAC7951F7FB" name="X7FA8DCAC7951F7FB"></a></p>

<h4>12.5 <span class="Heading">
      Good ideals
    </span></h4>

<p>A relative ideal <span class="SimpleMath">\(I\)</span> of a relative good semigroup <span class="SimpleMath">\(M\)</span> is a relative good ideal if <span class="SimpleMath">\(I\)</span> fulfills conditions (G1) and (G2) of the definition of good semigroup.</p>

<p><a id="X843CA9D5874A33F2" name="X843CA9D5874A33F2"></a></p>

<h5>12.5-1 GoodIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GoodIdeal</code>( <var class="Arg">X</var>, <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">X</var> is a list of points with nonnegative integer coordinates and <span class="SimpleMath">\(S\)</span> is good semigroup. Decides if the closure of <span class="SimpleMath">\(X+S\)</span> under infimums is a relative good ideal of <span class="SimpleMath">\(S\)</span>, and if so, outputs it.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];</span>
[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],
[ 25, 12 ], [ 25, 16 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=[25,27];</span>
[ 25, 27 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">g := GoodSemigroup(G,C);</span>
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">i:=GoodIdeal([[2,3]],g);</span>
<Good ideal of good semigroup>
</pre></div>

<p><a id="X7E4FC6DB794992E0" name="X7E4FC6DB794992E0"></a></p>

<h5>12.5-2 GoodGeneratingSystemOfGoodIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GoodGeneratingSystemOfGoodIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is a good ideal of a good semigroup. The output is a good generating system of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=GoodIdeal([[2,3],[3,2],[2,2]],d);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GoodGeneratingSystemOfGoodIdeal(e);</span>
[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ] ]
</pre></div>

<p><a id="X82D384397EE5CAC4" name="X82D384397EE5CAC4"></a></p>

<h5>12.5-3 AmbientGoodSemigroupOfGoodIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AmbientGoodSemigroupOfGoodIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>If <var class="Arg">I</var> is a good ideal of a good semigroup <span class="SimpleMath">\(M\)</span>, then the output is <span class="SimpleMath">\(M\)</span>. The output is a good generating system of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a:=AmalgamationOfNumericalSemigroups(s,e,5);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=GoodIdeal([[2,3],[3,2],[2,2]],a);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">a=AmbientGoodSemigroupOfGoodIdeal(e);</span>
true
</pre></div>

<p><a id="X84636A127ECEDA24" name="X84636A127ECEDA24"></a></p>

<h5>12.5-4 MinimalGoodGeneratingSystemOfGoodIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalGoodGeneratingSystemOfGoodIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is a good ideal of a good semigroup. The output is the minimal good generating system of <var class="Arg">I</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=GoodIdeal([[2,3],[3,2],[2,2]],d);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGoodGeneratingSystemOfGoodIdeal(e);</span>
[ [ 2, 3 ], [ 3, 2 ] ]
</pre></div>

<p><a id="X797999937E4E1E2B" name="X797999937E4E1E2B"></a></p>

<h5>12.5-5 BelongsToGoodIdeal</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BelongsToGoodIdeal</code>( <var class="Arg">v</var>, <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ \in</code>( <var class="Arg">v</var>, <var class="Arg">I</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">I</var> is a good ideal of a good semigroup and <var class="Arg">v</var> is a pair of integers. The output is <code class="code">true</code> if <var class="Arg">v</var> is in <var class="Arg">I</var>, and <code class="code">false</code> otherwise. Other ways to use this operation are <code class="code">\in(v,I)</code> and <code class="code">v in I</code>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=GoodIdeal([[2,3],[3,2]],d);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">[1,1] in e;</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">[2,2] in e;</span>
true
</pre></div>

<p><a id="X842F3CE07E893949" name="X842F3CE07E893949"></a></p>

<h5>12.5-6 SmallElements</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallElements</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SmallElementsOfGoodIdeal</code>( <var class="Arg">I</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">I</var> is a good ideal. The output is its set of small elements, that is, the elements smaller than its conductor and larger than its minimum element (with respect to the usual partial ordering).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=GoodIdeal([[2,3],[3,2]],d);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">SmallElements(e);</span>
[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ], [ 5, 5 ], [ 5, 6 ], [ 6, 5 ], [ 7, 7 ] ]
</pre></div>

<p><a id="X7DA7AE32837CC1C7" name="X7DA7AE32837CC1C7"></a></p>

<h5>12.5-7 CanonicalIdealOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CanonicalIdealOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. The output is the canonical ideal of <var class="Arg">S</var>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=NumericalSemigroup(3,5,7);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">e:=10+s;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">d:=NumericalSemigroupDuplication(s,e);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c:=CanonicalIdealOfGoodSemigroup(d);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalGoodGeneratingSystemOfGoodIdeal(c);</span>
[ [ 0, 0 ], [ 2, 2 ] ]
</pre></div>

<p><a id="X7DC7A4B57BC2E55C" name="X7DC7A4B57BC2E55C"></a></p>

<h5>12.5-8 AbsoluteIrreduciblesOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AbsoluteIrreduciblesOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup; this function returns the absolute irreducibles of <var class="Arg">S</var>: nonzero elements of the semigroup that are irreducible with respect to both operations (that is, in the semiring <span class="SimpleMath">\((S,\mathrm{min},+)\)</span>). The notations <span class="SimpleMath">\((x,\infty)\)</span> and <span class="SimpleMath">\((\infty,y)\)</span> denote that starting from a certain element the respective line is included in the semigroup.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 5, 4 ], [ 5, 8 ], [ 5, 11 ],</span>
[ 5, 12 ], [ 5, 13 ], [ 6, 4 ], [ 7, 8 ], [ 7, 11 ], [ 7, 12 ], [ 7, 14 ],
[ 8, 8 ], [ 8, 11 ], [ 8, 12 ], [ 8, 15 ], [ 8, 16 ], [ 8, 17 ], [ 8, 18 ], 
[ 10, 8 ], [ 10, 11 ], [ 10, 12 ], [ 10, 15 ], [ 10, 16 ], [ 10, 17 ], 
[ 10, 18 ], [ 11, 8 ], [ 11, 11 ], [ 11, 12 ], [ 11, 15 ], [ 11, 16 ],
[ 11, 17 ], [ 12, 8 ], [ 12, 11 ], [ 12, 12 ], [ 12, 15 ], [ 12, 16 ], 
[ 12, 18 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">AbsoluteIrreduciblesOfGoodSemigroup(S);</span>
[ [ 5, 13 ], [ 6, 4 ], [ 7, 14 ], [ 8, infinity ], [ 10, infinity ],
  [ 12, infinity ], [ infinity, 8 ], [ infinity, 11 ], [ infinity, 18 ] ]
</pre></div>

<p><a id="X87AB3B09857B383A" name="X87AB3B09857B383A"></a></p>

<h5>12.5-9 TracksOfGoodSemigroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TracksOfGoodSemigroup</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><var class="Arg">S</var> is a good semigroup. This function returns the tracks of the good semigroup (see <a href="chapBib_mj.html#biBM-Z">[MZ20]</a> for the definition of track). Tracks behave like minimal generators in a numerical semigroups, because removing the elements of a track from the semigroup, with the exception of the infimums of incomparable elements, we obtain a good semigroup contained in <var class="Arg">S</var>.</p>

<p>A track <span class="SimpleMath">\(T(\alpha_1,\ldots,\alpha_n)\)</span> is represented with the list of the elements <span class="SimpleMath">\(\alpha_1,\ldots,\alpha_n\)</span> that determine it completely.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=GoodSemigroupBySmallElements([ [ 0, 0 ], [ 4, 3 ], [ 8, 6 ], [ 8, 7 ],</span>
[ 12, 6 ], [ 12, 9 ], [ 12, 10 ], [ 16, 6 ], [ 16, 9 ], [ 16, 12 ], [ 16, 13 ],
[ 16, 14 ], [ 18, 6 ], [ 20, 9 ], [ 20, 12 ], [ 20, 13 ], [ 20, 15 ], [ 20, 16 ],
[ 20, 17 ], [ 22, 9 ], [ 24, 12 ], [ 24, 13 ], [ 24, 15 ], [ 24, 16 ], [ 24, 18 ],
[ 26, 12 ], [ 26, 13 ], [ 28, 12 ], [ 28, 15 ], [ 28, 16 ], [ 28, 18 ],[ 30, 12 ], 
[ 30, 15 ], [ 30, 16 ], [ 30, 18 ] ]);
<Good semigroup>
<span class="GAPprompt">gap></span> <span class="GAPinput">TracksOfGoodSemigroup(S);</span>
[ [ [ 4, 3 ] ], [ [ 8, 7 ], [ 18, 6 ] ],
  [ [ 30, infinity ], [ infinity, 16 ] ],
  [ [ 31, infinity ], [ infinity, 16 ] ], [ [ 31, infinity ] ],
  [ [ 33, infinity ], [ infinity, 16 ] ], [ [ 33, infinity ] ] ]

</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap11_mj.html">[Previous Chapter]</a>    <a href="chap13_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

99%


¤ 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.0.29Bemerkung:  (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.