<Section>
                <Heading>
                    The definitions
                </Heading>





                <ManSection>
                    <Attr Name="MultiplicityOfNumericalSemigroup" Arg="NS"/>
                    <Description>
                        <A>NS</A> is a numerical semigroup. Returns the multiplicity of <A>NS</A>, which is the smallest positive integer belonging to <A>NS</A>.
                        <Example><![CDATA[
gap> S := NumericalSemigroup("modular", 7,53);
<Modular numerical semigroup satisfying 7x mod 53 <= x >
gap> MultiplicityOfNumericalSemigroup(S);
8
]]></Example>
                    </Description>
                </ManSection>

                <ManSection>
                    <Func Name="GeneratorsOfNumericalSemigroup" Arg="S"/>
                    <Func Name="GeneratorsOfNumericalSemigroupNC" Arg="S"/>
                    <Attr Name="MinimalGeneratingSystemOfNumericalSemigroup" Arg="S"/>
                    <Description>
                        <A>S</A>
                        is a numerical semigroup.
                        <C>GeneratorsOfNumericalSemigroup</C>
                        returns a set of generators of <C>S</C>, which may
                        not be minimal.

                        <C>GeneratorsOfNumericalSemigroupNC</C>
                        returns the set of generators recorded in <C>S!.generators</C>, which may
                        not be minimal.

                        <C>MinimalGeneratingSystemOfNumericalSemigroup</C>
                        returns the minimal set of generators of <C>S</C>.

                        <Example><![CDATA[
gap> S := NumericalSemigroup("modular", 5,53);
<Modular numerical semigroup satisfying 5x mod 53 <= x >
gap> GeneratorsOfNumericalSemigroup(S);
[ 11, 12, 13, 32, 53 ]
gap> S := NumericalSemigroup(3, 5, 53);
<Numerical semigroup with 3 generators>
gap> GeneratorsOfNumericalSemigroup(S);
[ 3, 5, 53 ]
gap> MinimalGeneratingSystemOfNumericalSemigroup(S);
[ 3, 5 ]
]]></Example>
                    </Description>
                </ManSection>


                <ManSection>
                    <Attr Name="SmallElementsOfNumericalSemigroup" Arg="NS"/>
                    <Description>
                        <C>NS</C>
                        is a numerical semigroup. It returns the list of small elements of <C>NS</C>.
Of course, the time consumed
                        to return a result may depend on the way the semigroup is given.
                        <Example><![CDATA[
gap> SmallElementsOfNumericalSemigroup(NumericalSemigroup(3,5,7));
[ 0, 3, 5 ]
]]></Example>
                    </Description>
                </ManSection>


				<ManSection>
					<Func Name="FirstElementsOfNumericalSemigroup" Arg="n, NS"></Func>
					<Description>
						<C>NS</C> is a numerical semigroup. It returns the list with the
						first <A>n</A> elements of <C>NS</C>.
						<Example><![CDATA[
gap> FirstElementsOfNumericalSemigroup(2,NumericalSemigroup(3,5,7));
[ 0, 3 ]
gap> FirstElementsOfNumericalSemigroup(10,NumericalSemigroup(3,5,7));
[ 0, 3, 5, 6, 7, 8, 9, 10, 11, 12 ]
]]></Example>
					</Description>
</ManSection>


                <ManSection>
                    <Oper Name="AperyListOfNumericalSemigroupWRTElement" Arg="S, m"/>
                    <Description>
                        <A>S</A> is a numerical semigroup and <A>m</A> is a positive element of
                        <A>S</A>. Computes the Apéry list of <A>S</A> wrt <A>m</A>. It contains for
                        every <M>i\in \{0,\ldots,<A>m</A>-1\}</M>, in the <M>i+1</M>th position,
                        the smallest element in the semigroup congruent with <M>i</M> modulo <A>m</A>.

                        <Example><![CDATA[
gap> S := NumericalSemigroup("modular", 5,53);
<Modular numerical semigroup satisfying 5x mod 53 <= x >
gap> AperyListOfNumericalSemigroupWRTElement(S,12);
[ 0, 13, 26, 39, 52, 53, 54, 43, 32, 33, 22, 11 ]
]]></Example>
                    </Description>
                </ManSection>


<ManSection>
                    <Func Name="DrawAperyListOfNumericalSemigroup" Arg="ap"/>
                    <Description>
                        <A>ap</A> is the Apéry list of a numerical semigroup.
This function draws the graph <M>(ap, E)</M> where the edge <M>u -> v</M> is
in <M>E</M> iff <M>v - u</M> is in <M>ap</M>.
To use this function, <C>Graphviz</C> (<URL>http://www.graphviz.org</URL>)
should be installed and also <C>Evince</C>
(<URL>http://www.gnome.org/projects/evince/</URL>)
or <C>ggv</C>
(<URL>http://directory.fsf.org/ggv.html</URL>).
                    </Description>
                </ManSection>

<ManSection>
                    <Func Name="AperyListOfNumericalSemigroupAsGraph" Arg="ap"/>
                    <Description>
                        <A>ap</A> is the Apéry list of a numerical semigroup.
This function returns the adjacency list of the graph <M>(ap, E)</M> where the edge <M>u -> v</M> is
in <M>E</M> iff <M>v - u</M> is in <M>ap</M>.
The 0 is ignored.

<Example><![CDATA[
gap> s:=NumericalSemigroup(3,7);
<Numerical semigroup with 2 generators>
gap> AperyListOfNumericalSemigroupWRTElement(s,10);
[ 0, 21, 12, 3, 14, 15, 6, 7, 18, 9 ]
gap> AperyListOfNumericalSemigroupAsGraph(last);
[ ,, [ 3, 6, 9, 12, 15, 18, 21 ],,, [ 6, 9, 12, 15, 18, 21 ],
[ 7, 14, 21 ],, [ 9, 12, 15, 18, 21 ],,, [ 12, 15, 18, 21 ],,
[ 14, 21 ], [ 15, 18, 21 ],,, [ 18, 21 ],,, [ 21 ] ]
]]></Example>

                    </Description>
                </ManSection>





            </Section>
