% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
\documentclass[a4paper,11pt]{report}

\usepackage{a4wide}
\sloppy
\pagestyle{myheadings}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage{makeidx}
\makeindex
\usepackage{color}
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
\definecolor{Black}{rgb}{0.0,0.0,0.0}

\definecolor{linkColor}{rgb}{0.0,0.0,0.554}
\definecolor{citeColor}{rgb}{0.0,0.0,0.554}
\definecolor{fileColor}{rgb}{0.0,0.0,0.554}
\definecolor{urlColor}{rgb}{0.0,0.0,0.554}
\definecolor{promptColor}{rgb}{0.0,0.0,0.589}
\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0}

%%  for a long time these were red and blue by default,
%%  now black, but keep variables to overwrite
\definecolor{FuncColor}{rgb}{0.0,0.0,0.0}
%% strange name because of pdflatex bug:
\definecolor{Chapter }{rgb}{0.0,0.0,0.0}
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}


\usepackage{fancyvrb}

\usepackage{mathptmx,helvet}
\usepackage[T1]{fontenc}
\usepackage{textcomp}


\usepackage[
            pdftex=true,
            bookmarks=true,        
            a4paper=true,
            pdftitle={Written with GAPDoc},
            pdfcreator={LaTeX with hyperref package / GAPDoc},
            colorlinks=true,
            backref=page,
            breaklinks=true,
            linkcolor=linkColor,
            citecolor=citeColor,
            filecolor=fileColor,
            urlcolor=urlColor,
            pdfpagemode={UseNone}, 
           ]{hyperref}

\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont}

% write page numbers to a .pnr log file for online help
\newwrite\pagenrlog
\immediate\openout\pagenrlog =\jobname.pnr
\immediate\write\pagenrlog{PAGENRS := [}
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
%% were never documented, give conflicts with some additional packages

\newcommand{\GAP}{\textsf{GAP}}

%% nicer description environments, allows long labels
\usepackage{enumitem}
\setdescription{style=nextline}

%% depth of toc
\setcounter{tocdepth}{1}





%% command for ColorPrompt style examples
\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}}
\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}}
\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}}


\begin{document}

\logpage{[ 0, 0, 0 ]}
\begin{titlepage}
\mbox{}\vfill

\begin{center}{\maintitlesize \textbf{\textsf{numericalsgps}-- a package for numerical semigroups\mbox{}}}\\
\vfill

\hypersetup{pdftitle=\textsf{numericalsgps}-- a package for numerical semigroups}
\markright{\scriptsize \mbox{}\hfill \textsf{numericalsgps}-- a package for numerical semigroups \hfill\mbox{}}
{\Huge  Version 1.0.1 \mbox{}}\\[1cm]
\mbox{}\\[2cm]
{\Large \textbf{ Manuel Delgado   \mbox{}}}\\
{\Large \textbf{ Pedro A. Garc{\a'\i}a-S{\a'a}nchez   \mbox{}}}\\
{\Large \textbf{ Jos{\a'e} Jo{\~a}o Morais  \mbox{}}}\\
\hypersetup{pdfauthor= Manuel Delgado   ;  Pedro A. Garc{\a'\i}a-S{\a'a}nchez   ;  Jos{\a'e} Jo{\~a}o Morais  }
\end{center}\vfill

\mbox{}\\
{\mbox{}\\
\small \noindent \textbf{ Manuel Delgado   }  Email: \href{mailto://mdelgado@fc.up.pt} {\texttt{mdelgado@fc.up.pt}}\\
  Homepage: \href{http://www.fc.up.pt/cmup/mdelgado} {\texttt{http://www.fc.up.pt/cmup/mdelgado}}}\\
{\mbox{}\\
\small \noindent \textbf{ Pedro A. Garc{\a'\i}a-S{\a'a}nchez   }  Email: \href{mailto://pedro@ugr.es} {\texttt{pedro@ugr.es}}\\
  Homepage: \href{http://www.ugr.es/~pedro} {\texttt{http://www.ugr.es/\texttt{\symbol{126}}pedro}}}\\
\end{titlepage}

\newpage\setcounter{page}{2}
{\small 
\section*{Copyright}
\logpage{[ 0, 0, 1 ]}
 {\copyright} 2005--2015 Centro de Matem{\a'a}tica da Universidade do Porto,
Portugal and Universidad de Granada, Spain

  \emph{Numericalsgps} is free software; you can redistribute it and/or modify it under the terms of
the \href{http://www.fsf.org/licenses/gpl.html} {GNU General Public License} as published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version. \mbox{}}\\[1cm]
{\small 
\section*{Acknowledgements}
\logpage{[ 0, 0, 2 ]}
 The first author's work was (partially) supported by the \emph{Centro de Matem{\a'a}tica da Universidade do Porto} (CMUP), financed by FCT (Portugal) through the programs POCTI (Programa
Operacional "Ci{\^e}ncia, Tecnologia, Inova{\c c}{\~a}o") and POSI (Programa
Operacional Sociedade da Informa{\c c}{\~a}o), with national and European
Community structural funds and a sabbatical grant of FCT. 

 The second author was supported by the projects MTM2004-01446, FQM-343, and
FEDER founds. 

 The third author acknowledges financial support of FCT and the POCTI program
through a scholarship given by \emph{Centro de Matem{\a'a}tica da Universidade do Porto}. 

 The authors wish to thank J. I. Garc{\a'\i}a-Garc{\a'\i}a and Alfredo
S{\a'a}nchez-R. Navarro for many helpful discussions and for helping in the
programming of preliminary versions of some functions, and also to C. O'Neill
and A. Sammartano for their contributions (see Contributions Chapter). We are
also in debt with S. Gutsche, M. Horn, H. Sch{\"o}nemann, C. S{\"o}eger and M.
Barakat for their fruitful advices concerning 4ti2Interface,
SingularInterface, Singular, Normaliz, NormalizInterface and GradedModules. 

 The first and second authors warmly thank Mar{\a'\i}a Burgos for her support
and help. 

 

 \textsc{Concerning the mantainment:} 

 

 The first author was (partially) supported by the FCT project
PTDC/MAT/65481/2006 and also by the \emph{Centro de Matem{\a'a}tica da Universidade do Porto} (CMUP), funded by the European Regional Development Fund through the programme
COMPETE and by the Portuguese Government through the FCT - Funda{\c c}{\~a}o
para a Ci{\^e}ncia e a Tecnologia under the project PEst-C/MAT/UI0144/2011. 

 The second author was/is supported by the projects MTM2007-62346 and
MTM2010-15595. 

 Both authors want to acknowledge partial support by CMUP (UID/MAT/00144/2013),
which is funded by FCT (Portugal) with national (MEC) and European structural
funds through the programs FEDER, under the partnership agreement PT2020. 

 The maintainers want to thank the organizers of \texttt{GAPDays} in their several editions. \mbox{}}\\[1cm]
{\small 
\section*{Colophon}
\logpage{[ 0, 0, 3 ]}
 This work started when (in 2004) the first author visited the University of
Granada in part of a sabbatical year. Since Version 0.96 (released in 2008),
the package is maintained by the first two authors. Bug reports, suggestions
and comments are, of course, welcome. Please use our email addresses to this
effect. 

 If you have benefited from the use of the numerigalsgps GAP package in your
research, please cite it in addition to GAP itself, following the scheme
proposed in \href{http://www.gap-system.org/Contacts/cite.html} {\texttt{http://www.gap-system.org/Contacts/cite.html}}. 

 If you have predominantly used the functions in the Appendix, contributed by
other authors, please cite in addition these authors, referring "software
implementations available in the GAP package NumericalSgps". \mbox{}}\\[1cm]
\newpage

\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}

\tableofcontents
\newpage

  
\chapter{\textcolor{Chapter }{ Introduction }}\label{Intro}
\logpage{[ 1, 0, 0 ]}
\hyperdef{L}{X7DFB63A97E67C0A1}{}
{
  A \emph{numerical semigroup} is a subset of the set $ {\mathbb N} $ of nonnegative integers that is closed under addition, contains $0$ and whose complement in $ {\mathbb N} $ is finite. The smallest positive integer belonging to a numerical semigroup is
its \emph{multiplicity}. 

 Let $S$ be a numerical semigroup and $A$ be a subset of $S$. We say that $A$ is a \emph{system of generators} of $S$ if $S=\{ k_1 a_1+\cdots+ k_n a_n\ |\ n,k_1,\ldots,k_n\in{\mathbb N},
a_1,\ldots,a_n\in A\}$. The set $A$ is a \emph{minimal system of generators} of $S$ if no proper subset of $A$ is a system of generators of $S$. 

 Every numerical semigroup has a unique minimal system of generators. This is a
data that can be used in order to uniquely define a numerical semigroup.
Observe that since the complement of a numerical semigroup in the set of
nonnegative integers is finite, this implies that the greatest common divisor
of the elements of a numerical semigroup is 1, and the same condition must be
fulfilled by its minimal system of generators (or by any of its systems of
generators). 

 Given a numerical semigroup $S$ and a nonzero element $s$ in it, one can consider for every integer $i$ ranging from $0$ to $s-1$, the smallest element in $S$ congruent with $i$ modulo $s$, say $w(i)$ (this element exists since the complement of $S$ in ${\mathbb N}$ is finite). Clearly $w(0)=0$. The set ${\rm Ap}(S,s)=\{ w(0),w(1),\ldots, w(s-1)\}$ is called the \label{zl1}\emph{Ap{\a'e}ry set} of $S$ with respect to $s$. Note that a nonnegative integer $x$ congruent with $i$ modulo $s$ belongs to $S$ if and only if $w(i)\leq x$. Thus the pair $(s,{\rm Ap}(S,s))$ fully determines the numerical semigroup $S$ (and can be used to easily solve the membership problem to $S$). This set is in fact one of the most powerfull tools known for numerical
semigroups, and it is used almost everywhere in the computation of components
and invariants associated to a numerical semigroup. Usually the element $s$ is taken to be the multiplicity, since in this way the resulting Ap{\a'e}ry
set is the smallest possible. 

 A \label{xx1}\emph{gap} of a numerical semigroup $S$ is a nonnegative integer not belonging to $S$. The set of gaps of $S$ is usually denoted by ${\rm H}(S)$, and clearly determines uniquely $S$. Note that if $x$ is a gap of $S$, then so are all the nonnegative integers dividing it. Thus in order to
describe $S$ we do not need to know all its gaps, but only those that are maximal with
respect to the partial order induced by division in ${\mathbb N}$. These gaps are called \label{lab1}\emph{fundamental gaps}. 

 The largest nonnegative integer not belonging to a numerical semigroup $S$ is the \emph{Frobenius number} of $S$. If $S$ is the set of nonnegative integers, then clearly its Frobenius number is $-1$, otherwise its Frobenius number coincides with the maximum of the gaps (or
fundamental gaps) of $S$. The Frobenius number plus one is known as the \emph{conductor} of the semigroup. In this package we refer to the elements in the semigroup
that are less than or equal to the conductor as \label{zlab1}\emph{small elements} of the semigroup. Observe that from the definition, if $S$ is a numerical semigroup with Frobenius number $f$, then $f+{\mathbb N}\setminus\{0\}\subseteq S$. An integer $z$ is a \label{lab2}\emph{pseudo-Frobenius number} of $S$ if $z+S\setminus\{0\}\subseteq S$. Thus the Frobenius number of $S$ is one of its pseudo-Frobenius numbers. The \emph{type} of a numerical semigroup is the cardinality of the set of its pseudo-Frobenius
numbers. 

 The number of numerical semigroups having a given Frobenius number is finite.
The elements in this set of numerical semigroups that are maximal with respect
to set inclusion are precisely those numerical semigroups that cannot be
expressed as intersection of two other numerical semigroups containing them
properly, and thus they are known as \emph{irreducible} numerical semigroups. Clearly, every numerical semigroup is the intersection
of (finitely many) irreducible numerical semigroups. 

 A numerical semigroup $S$ with Frobenius number $f$ is \emph{symmetric} if for every integer $x$, either $x\in S$ or $f-x\in S$. The set of irreducible numerical semigroups with odd Frobenius number
coincides with the set of symmetric numerical semigroups. The numerical
semigroup $S$ is \emph{pseudo-symmetric} if $f$ is even and for every integer $x$ not equal to $f/2$ either $x\in S$ or $f-x\in S$. The set of irreducible numerical semigroups with even Frobenius number is
precisely the set of pseudo-symmetric numerical semigroups. These two classes
of numerical semigroups have been widely studied in the literature due to
their nice applications in Algebraic Geometry. This is probably one of the
main reasons that made people turn their attention on numerical semigroups
again in the last decades. Symmetric numerical semigroups can be also
characterized as those with type one, and pseudo-symmetric numerical
semigroups are those numerical semigroups with type two and such that its
pseudo-Frobenius numbers are its Frobenius number and its Frobenius number
divided by two. 

 Another class of numerical semigroups that catched the attention of
researchers working on Algebraic Geometry and Commutative Ring Theory is the
class of numerical semigroups with maximal embedding dimension. The \emph{embedding dimension} of a numerical semigroup is the cardinality of its minimal system of
generators. It can be shown that the embedding dimension is at most the
multiplicity of the numerical semigroup. Thus \emph{maximal embedding dimension} numerical semigroups are those numerical semigroups for which their embedding
dimension and multiplicity coincide. These numerical semigroups have nice
maximal properties, not only (of course) related to their embedding dimension,
but also by means of their presentations. Among maximal embedding dimension
there are two classes of numerical semigroups that have been studied due to
the connections with the equivalence of algebroid branches. A numerical
semigroup $S$ is Arf if for every $x\geq y\geq z\in S$, then $x+y-z\in S$; and it is \emph{saturated} if the following condition holds: if $s,s_1,\ldots,s_r\in S$ are such that $s_i\leq s$ for all $i\in \{1,\ldots,r\}$ and $z_1,\ldots,z_r\in {\mathbb Z}$ are such that $z_1s_1+\cdots+z_rs_r\geq 0$, then $s+z_1s_1+\cdots +z_rs_r\in S$. 

 If we look carefully inside the set of fundamental gaps of a numerical
semigroup, we see that there are some fulfilling the condition that if they
are added to the given numerical semigroup, then the resulting set is again a
numerical semigroup. These elements are called \label{lab3}\emph{special gaps} of the numerical semigroup. A numerical semigroup other than the set of
nonnegative integers is irreducible if and only if it has only a special gap. 

 The inverse operation to the one described in the above paragraph is that of
removing an element of a numerical semigroup. If we want the resulting set to
be a numerical semigroup, then the only thing we can remove is a minimal
generator. 

 Let $a,b,c,d$ be positive integers such that $a/b < c/d$, and let $I=[a/b,c/d]$. Then the set ${\rm S}(I)={\mathbb N}\cap \bigcup_{n\geq 0} n I$ is a numerical semigroup. This class of numerical semigroups coincides with
that of sets of solutions to equations of the form $ A x \ mod\ B \leq C x$ with $ A,B,C$ positive integers. A numerical semigroup in this class is said to be \label{llab1}\emph{proportionally modular}. 

 A sequence of positive rational numbers $ a_1/b_1 < \cdots < a_n/b_n$ with $a_i,b_i$ positive integers is a \emph{B{\a'e}zout sequence} if $ a_{i+1}b_i - a_i b_{i+1}=1$ for all $i\in \{1,\ldots,n-1\}$. If $ a/b=a_1/b_1 < \cdots < a_n/b_n =c/d$, then ${\rm S}([a/b,c/d])=\langle a_1,\ldots,a_n\rangle$. B{\a'e}zout sequences are not only interesting for this fact, they have
shown to be a major tool in the study of proportionally modular numerical
semigroups. 

 If $S$ is a numerical semigroup and $k$ is a positive integer, then the set $S/k=\{ x\in {\mathbb N} \ |\ kx\in S\}$ is a numerical semigroup, known as the \emph{quotient} $S$ by $k$. 

 Let $m$ be a positive integer. A \label{llab2}\emph{subadditive} function with period $m$ is a map $f:{\mathbb N}\to {\mathbb N}$ such that $ f(0)=0$, $f(x+y)\leq f(x)+f(y)$ and $f(x+m)=f(x)$. If $f$ is a subadditive function with period $m$, then the set ${\rm M}_f=\{ x\in {\mathbb N}\ |\ f(x)\leq x\}$ is a numerical semigroup. Moreover, every numerical semigroup is of this form.
Thus a numerical semigroup can be given by a subadditive function with a given
period. If $S$ is a numerical semigroup and $s\in S, s\not=0$, and ${\rm Ap}(S,s)=\{ w(0),w(1),\ldots, w(s-1)\}$, then $f(x)=w(x \ mod\ s)$ is a subadditive function with period $s$ such that ${\rm M}_f=S$. 

 Let $S$ be a numerical semigroup generated by $\{n_1,\ldots,n_k\}$. Then we can define the following morphism (called sometimes the
factorization morphism) by $\varphi: {\mathbb N}^k \to S,\ \varphi(a_1,\ldots,a_k)=a_1n_1+\cdots+a_kn_k$. If $\sigma$ is the kernel congruence of $\varphi$ (that is, $a\sigma b$ if $\varphi(a)=\varphi(b)$), then $S$ is isomorphic to ${\mathbb N}^k/\sigma$. A \emph{presentation} for $S$ is a system of generators (as a congruence) of $\sigma$. If $\{n_1,\ldots,n_p\}$ is a minimal system of generators, then a \emph{minimal presentation} is a presentation such that none of its proper subsets is a presentation.
Minimal presentations of numerical semigroups coincide with presentations with
minimal cardinality, though in general these two concepts are not the same for
an arbitrary commutative semigroup. 

 A set $I$ of integers is an \emph{ideal relative to a numerical semigroup} $S$ provided that $I+S\subseteq I$ and that there exists $d\in S$ such that $d+I\subseteq S$. If $I\subseteq S$, we simply say that $I$ is an \emph{ideal} of $S$. If $I$ and $J$ are relative ideals of $S$, then so is $I-J=\{z\in {\mathbb Z}\ |\ z+J\subseteq I\}$, and it is tightly related to the operation ":" of ideals in a commutative
ring. 

 In this package we have implemented the functions needed to deal with the
elements exposed in this introduction. 

 Many of the algorithms, and the necessary background to understand them, can
be found in the monograph \cite{RGbook}. Some examples in this book have been illustrated with the help of this
package. So the reader can also find there more examples on the usage of the
functions implemented here. 

 This package was presented in \cite{JMDA}. }

 
\chapter{\textcolor{Chapter }{ Numerical Semigroups }}\logpage{[ 2, 0, 0 ]}
\hyperdef{L}{X8324E5D97DC2A801}{}
{
  This chapter describes how to create numerical semigroups in \textsf{GAP} and perform some basic tests.  
\section{\textcolor{Chapter }{ Generating Numerical Semigroups }}\logpage{[ 2, 1, 0 ]}
\hyperdef{L}{X7E89D7EB7FCC2197}{}
{
  Recalling some definitions from Chapter \ref{Intro}. 

 A numerical semigroup is a subset of the set $ {\mathbb N} $ of nonnegative integers that is closed under addition, contains $0$ and whose complement in $ {\mathbb N} $ is finite. 

 We refer to the elements in a numerical semigroup that are less than or equal
to the conductor as \emph{small elements} of the semigroup. 

 A \emph{gap} of a numerical semigroup $S$ is a nonnegative integer not belonging to $S$. The \emph{fundamental gaps} of $S$ are those gaps that are maximal with respect to the partial order induced by
division in ${\mathbb N}$. 

 Given a numerical semigroup $S$ and a nonzero element $s$ in it, one can consider for every integer $i$ ranging from $0$ to $s-1$, the smallest element in $S$ congruent with $i$ modulo $s$, say $w(i)$ (this element exists since the complement of $S$ in ${\mathbb N}$ is finite). Clearly $w(0)=0$. The set ${\rm Ap}(S,s)=\{ w(0),w(1),\ldots, w(s-1)\}$ is called the \emph{Ap{\a'e}ry set} of $S$ with respect to $s$. 

 Let $a,b,c,d$ be positive integers such that $a/b < c/d$, and let $I=[a/b,c/d]$. Then the set ${\rm S}(I)={\mathbb N}\cap \bigcup_{n\geq 0} n I$ is a numerical semigroup. This class of numerical semigroups coincides with
that of sets of solutions to equations of the form $ A x \bmod\ B \leq C x$ with $ A,B,C$ positive integers. A numerical semigroup in this class is said to be \emph{proportionally modular}. If $C = 1$, then it is said to be \emph{modular}. 

 There are different ways to specify a numerical semigroup $S$, namely, by its generators; by its gaps, its fundamental or special gaps by
its Ap{\a'e}ry set, just to name some. In this section we describe functions
that may be used to specify, in one of these ways, a numerical semigroup in \textsf{GAP}. 

 To create a numerical semigroup in \textsf{GAP} the function \texttt{NumericalSemigroup} is used. 

\subsection{\textcolor{Chapter }{NumericalSemigroup}}
\logpage{[ 2, 1, 1 ]}\nobreak
\hyperdef{L}{X86DEEBFE854B60A6}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroup({\mdseries\slshape Representation, List})\index{NumericalSemigroup@\texttt{NumericalSemigroup}}
\label{NumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \texttt{Representation} 

 May be \texttt{"generators"}, \texttt{"minimalgenerators"}, \texttt{"modular"}, \texttt{"propmodular"}, \texttt{"elements"}, \texttt{"gaps"}, \texttt{"fundamentalgaps"}, \texttt{"subadditive"} or \texttt{"apery"} according to whether the semigroup is to be given by means of a system of
generators, a minimal system of generators, a condition of the form $ ax \bmod\ m \le x$, a condition of the form $ ax \bmod\ m\le cx$, a set of all elements up to the conductor, the set of gaps, the set of
fundamental gaps, a periodic subaditive function, or the Ap{\a'e}ry set. 

 When no string is given as first argument it is assumed that the numerical
semigroup will be given by means of a set of generators. 

 \texttt{List} 

 When the semigroup is given through a set of generators, this set may be given
as a list or through its individual elements. 

 The set of all elements up to the conductor, the set of gaps, the set of
fundamental gaps or the Ap{\a'e}ry set are given through lists. 

 A periodic subadditive function with period $m$ is given through the list of images of the elements, from $1$ to $m$. The image of $m$ has to be $0$. 

 Numerical semigroups generated by an interval of positive integers and
embedding dimension two numerical semigroups are known to be proportionally
modular, and thus they are treated as such (unles the representation
"minimalgenerators" is specified), since membership and other problems are
solved faster for these semigroups. 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s1 := NumericalSemigroup("generators",3,5,7);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@s2 := NumericalSemigroup("generators",[3,5,7]);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@s1=s2;|
  true
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup("minimalgenerators",3,7);|
  <Numerical semigroup with 2 generators>
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup("modular",3,5);|
  <Modular numerical semigroup satisfying 3x mod 5 <= x >
  !gapprompt@gap>| !gapinput@s1:=NumericalSemigroup("generators",2,5);       |
  <Modular numerical semigroup satisfying 5x mod 10 <= x >
  !gapprompt@gap>| !gapinput@s = s1;|
  true
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,5,6);|
  <Proportionally modular numerical semigroup satisfying 6x mod 24 <= 2x >
\end{Verbatim}
 

 Once it is known that a numerical semigroup contains the element $1$, i.e. the semigroup is $\mathbb N$, the semigroup is treated as such. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@NumericalSemigroup(1);|
  <The numerical semigroup N>
  !gapprompt@gap>| !gapinput@NumericalSemigroupByInterval(1/3,1/2);|
  <The numerical semigroup N>
   
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ModularNumericalSemigroup}}
\logpage{[ 2, 1, 2 ]}\nobreak
\hyperdef{L}{X87206D597873EAFF}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ModularNumericalSemigroup({\mdseries\slshape a, b})\index{ModularNumericalSemigroup@\texttt{ModularNumericalSemigroup}}
\label{ModularNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Given two positive integers \mbox{\texttt{\mdseries\slshape a}} and \mbox{\texttt{\mdseries\slshape b}}, this function returns a modular numerical semigroup satisfying $ax \bmod\ b \le x$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ModularNumericalSemigroup(3,7);|
  <Modular numerical semigroup satisfying 3x mod 7 <= x >
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ProportionallyModularNumericalSemigroup}}
\logpage{[ 2, 1, 3 ]}\nobreak
\hyperdef{L}{X879171CD7AC80BB5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ProportionallyModularNumericalSemigroup({\mdseries\slshape a, b, c})\index{ProportionallyModularNumericalSemigroup@\texttt{Proportionally}\-\texttt{Modular}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{ProportionallyModularNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Given three positive integers \mbox{\texttt{\mdseries\slshape a}}, \mbox{\texttt{\mdseries\slshape b}} and \mbox{\texttt{\mdseries\slshape c}}, this function returns a proportionally modular numerical semigroup
satisfying $ax\bmod\ b \le cx$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ProportionallyModularNumericalSemigroup(3,7,12);|
  <Proportionally modular numerical semigroup satisfying 3x mod 7 <= 12x >
\end{Verbatim}
 When $c=1$, the semigroup is seen as a modular numerical semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@NumericalSemigroup("propmodular",67,98,1);         |
  <Modular numerical semigroup satisfying 67x mod 98 <= x >
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{NumericalSemigroupByGenerators}}
\logpage{[ 2, 1, 4 ]}\nobreak
\hyperdef{L}{X79B38AB3816BF3C5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByGenerators({\mdseries\slshape List})\index{NumericalSemigroupByGenerators@\texttt{NumericalSemigroupByGenerators}}
\label{NumericalSemigroupByGenerators}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByMinimalGenerators({\mdseries\slshape List})\index{NumericalSemigroupByMinimalGenerators@\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Minimal}\-\texttt{Generators}}
\label{NumericalSemigroupByMinimalGenerators}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByMinimalGeneratorsNC({\mdseries\slshape List})\index{NumericalSemigroupByMinimalGeneratorsNC@\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Minimal}\-\texttt{GeneratorsNC}}
\label{NumericalSemigroupByMinimalGeneratorsNC}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByInterval({\mdseries\slshape List})\index{NumericalSemigroupByInterval@\texttt{NumericalSemigroupByInterval}}
\label{NumericalSemigroupByInterval}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByOpenInterval({\mdseries\slshape List})\index{NumericalSemigroupByOpenInterval@\texttt{NumericalSemigroupByOpenInterval}}
\label{NumericalSemigroupByOpenInterval}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupBySubAdditiveFunction({\mdseries\slshape List})\index{NumericalSemigroupBySubAdditiveFunction@\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Sub}\-\texttt{Additive}\-\texttt{Function}}
\label{NumericalSemigroupBySubAdditiveFunction}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByAperyList({\mdseries\slshape List})\index{NumericalSemigroupByAperyList@\texttt{NumericalSemigroupByAperyList}}
\label{NumericalSemigroupByAperyList}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupBySmallElements({\mdseries\slshape List})\index{NumericalSemigroupBySmallElements@\texttt{NumericalSemigroupBySmallElements}}
\label{NumericalSemigroupBySmallElements}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByGaps({\mdseries\slshape List})\index{NumericalSemigroupByGaps@\texttt{NumericalSemigroupByGaps}}
\label{NumericalSemigroupByGaps}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupByFundamentalGaps({\mdseries\slshape List})\index{NumericalSemigroupByFundamentalGaps@\texttt{NumericalSemigroupByFundamentalGaps}}
\label{NumericalSemigroupByFundamentalGaps}
}\hfill{\scriptsize (function)}}\\


The function \texttt{NumericalSemigroup} (\ref{NumericalSemigroup}) is a front-end for these functions. The argument of each of these functions is
a list representing an entity of the type to which the function's name refers. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,11);|
  <Modular numerical semigroup satisfying 22x mod 33 <= x >
  !gapprompt@gap>| !gapinput@GapsOfNumericalSemigroup(s);|
  [ 1, 2, 4, 5, 7, 8, 10, 13, 16, 19 ]
  !gapprompt@gap>| !gapinput@t:=NumericalSemigroupByGaps(last);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@s=t;|
  true
  
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTElement(s,20);;|
  !gapprompt@gap>| !gapinput@t:=NumericalSemigroupByAperyList(last);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@s=t;|
  true
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{Some basic tests}}\logpage{[ 2, 2, 0 ]}
\hyperdef{L}{X7EF4254C81ED6665}{}
{
  This section describes some basic tests on numerical semigroups. The first
described tests refer to what the semigroup is currently known to be (not
necessarily the way it was created). Then are presented functions to test if a
given list represents the small elements, gaps or the Ap{\a'e}ry set (see \ref{zlab1}) of a numerical semigroup; to test if an integer belongs to a numerical
semigroup and if a numerical semigroup is a subsemigroup of another one. 

\subsection{\textcolor{Chapter }{IsNumericalSemigroup}}
\logpage{[ 2, 2, 1 ]}\nobreak
\hyperdef{L}{X7B1B6B8C82BD7084}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroup({\mdseries\slshape NS})\index{IsNumericalSemigroup@\texttt{IsNumericalSemigroup}}
\label{IsNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByGenerators({\mdseries\slshape NS})\index{IsNumericalSemigroupByGenerators@\texttt{IsNumericalSemigroupByGenerators}}
\label{IsNumericalSemigroupByGenerators}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByMinimalGenerators({\mdseries\slshape NS})\index{IsNumericalSemigroupByMinimalGenerators@\texttt{IsNumerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Minimal}\-\texttt{Generators}}
\label{IsNumericalSemigroupByMinimalGenerators}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByInterval({\mdseries\slshape NS})\index{IsNumericalSemigroupByInterval@\texttt{IsNumericalSemigroupByInterval}}
\label{IsNumericalSemigroupByInterval}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByOpenInterval({\mdseries\slshape NS})\index{IsNumericalSemigroupByOpenInterval@\texttt{IsNumericalSemigroupByOpenInterval}}
\label{IsNumericalSemigroupByOpenInterval}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupBySubAdditiveFunction({\mdseries\slshape NS})\index{IsNumericalSemigroupBySubAdditiveFunction@\texttt{IsNumerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Sub}\-\texttt{Additive}\-\texttt{Function}}
\label{IsNumericalSemigroupBySubAdditiveFunction}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByAperyList({\mdseries\slshape NS})\index{IsNumericalSemigroupByAperyList@\texttt{IsNumericalSemigroupByAperyList}}
\label{IsNumericalSemigroupByAperyList}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupBySmallElements({\mdseries\slshape NS})\index{IsNumericalSemigroupBySmallElements@\texttt{IsNumericalSemigroupBySmallElements}}
\label{IsNumericalSemigroupBySmallElements}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByGaps({\mdseries\slshape NS})\index{IsNumericalSemigroupByGaps@\texttt{IsNumericalSemigroupByGaps}}
\label{IsNumericalSemigroupByGaps}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupByFundamentalGaps({\mdseries\slshape NS})\index{IsNumericalSemigroupByFundamentalGaps@\texttt{IsNumerical}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Fundamental}\-\texttt{Gaps}}
\label{IsNumericalSemigroupByFundamentalGaps}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsProportionallyModularNumericalSemigroup({\mdseries\slshape NS})\index{IsProportionallyModularNumericalSemigroup@\texttt{IsProportionally}\-\texttt{Modular}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{IsProportionallyModularNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsModularNumericalSemigroup({\mdseries\slshape NS})\index{IsModularNumericalSemigroup@\texttt{IsModularNumericalSemigroup}}
\label{IsModularNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \mbox{\texttt{\mdseries\slshape NS}} is a numerical semigroup and these attributes are available (their names
should be self explanatory). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,7);|
  <Modular numerical semigroup satisfying 7x mod 21 <= x >
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTElement(s,30);;|
  !gapprompt@gap>| !gapinput@t:=NumericalSemigroupByAperyList(last);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupByGenerators(s);|
  true
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupByGenerators(t);|
  false
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupByAperyList(s);|
  false
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupByAperyList(t);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RepresentsSmallElementsOfNumericalSemigroup}}
\logpage{[ 2, 2, 2 ]}\nobreak
\hyperdef{L}{X87B02A9F7AF90CB9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RepresentsSmallElementsOfNumericalSemigroup({\mdseries\slshape L})\index{RepresentsSmallElementsOfNumericalSemigroup@\texttt{Represents}\-\texttt{Small}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{RepresentsSmallElementsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 Tests if the list \mbox{\texttt{\mdseries\slshape L}} (which has to be a set) may represent the ``small" elements of a numerical
semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@L:=[ 0, 3, 6, 9, 11, 12, 14, 15, 17, 18, 20 ];|
  [ 0, 3, 6, 9, 11, 12, 14, 15, 17, 18, 20 ]
  !gapprompt@gap>| !gapinput@RepresentsSmallElementsOfNumericalSemigroup(L);|
  true
  !gapprompt@gap>| !gapinput@L:=[ 6, 9, 11, 12, 14, 15, 17, 18, 20 ];|
  [ 6, 9, 11, 12, 14, 15, 17, 18, 20 ]
  !gapprompt@gap>| !gapinput@RepresentsSmallElementsOfNumericalSemigroup(L);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RepresentsGapsOfNumericalSemigroup}}
\logpage{[ 2, 2, 3 ]}\nobreak
\hyperdef{L}{X78906CCD7BEE0E58}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RepresentsGapsOfNumericalSemigroup({\mdseries\slshape L})\index{RepresentsGapsOfNumericalSemigroup@\texttt{RepresentsGapsOfNumericalSemigroup}}
\label{RepresentsGapsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 Tests if the list \mbox{\texttt{\mdseries\slshape L}} may represent the gaps (see \ref{xx1}) of a numerical semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,7);|
  <Modular numerical semigroup satisfying 7x mod 21 <= x >
  !gapprompt@gap>| !gapinput@L:=GapsOfNumericalSemigroup(s);|
  [ 1, 2, 4, 5, 8, 11 ]
  !gapprompt@gap>| !gapinput@RepresentsGapsOfNumericalSemigroup(L);|
  true
  !gapprompt@gap>| !gapinput@L:=Set(List([1..21],i->RandomList([1..50])));|
  [ 2, 6, 7, 8, 10, 12, 14, 19, 24, 28, 31, 35, 42, 50 ]
  !gapprompt@gap>| !gapinput@RepresentsGapsOfNumericalSemigroup(L);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAperyListOfNumericalSemigroup}}
\logpage{[ 2, 2, 4 ]}\nobreak
\hyperdef{L}{X84A611557B5ACF42}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAperyListOfNumericalSemigroup({\mdseries\slshape L})\index{IsAperyListOfNumericalSemigroup@\texttt{IsAperyListOfNumericalSemigroup}}
\label{IsAperyListOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Tests whether a list \mbox{\texttt{\mdseries\slshape L}} of integers may represent the Ap{\a'e}ry list of a numerical semigroup. It
returns \texttt{true} when the periodic function represented by \mbox{\texttt{\mdseries\slshape L}} is subadditive (see \texttt{RepresentsPeriodicSubAdditiveFunction} (\ref{RepresentsPeriodicSubAdditiveFunction})) and the remainder of the division of \texttt{L[i]} by the length of \mbox{\texttt{\mdseries\slshape L}} is \texttt{i} and returns \texttt{false} otherwise (the criterium used is the one explained in \cite{R96}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsAperyListOfNumericalSemigroup([0,21,7,28,14]);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsSubsemigroupOfNumericalSemigroup}}
\logpage{[ 2, 2, 5 ]}\nobreak
\hyperdef{L}{X86D5B3517AF376D4}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsSubsemigroupOfNumericalSemigroup({\mdseries\slshape S, T})\index{IsSubsemigroupOfNumericalSemigroup@\texttt{IsSubsemigroupOfNumericalSemigroup}}
\label{IsSubsemigroupOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} and \mbox{\texttt{\mdseries\slshape T}} are numerical semigroups. Tests whether \mbox{\texttt{\mdseries\slshape T}} is contained in \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@T:=NumericalSemigroup(2,3);|
  <Modular numerical semigroup satisfying 3x mod 6 <= x >
  !gapprompt@gap>| !gapinput@IsSubsemigroupOfNumericalSemigroup(T,S);|
  true
  !gapprompt@gap>| !gapinput@IsSubsemigroupOfNumericalSemigroup(S,T);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BelongsToNumericalSemigroup}}
\logpage{[ 2, 2, 6 ]}\nobreak
\hyperdef{L}{X864C2D8E80DD6D16}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BelongsToNumericalSemigroup({\mdseries\slshape n, S})\index{BelongsToNumericalSemigroup@\texttt{BelongsToNumericalSemigroup}}
\label{BelongsToNumericalSemigroup}
}\hfill{\scriptsize (operation)}}\\


 \mbox{\texttt{\mdseries\slshape n}} is an integer and \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. Tests whether \mbox{\texttt{\mdseries\slshape n}} belongs to \mbox{\texttt{\mdseries\slshape S}}. \texttt{n in S} is the short for \texttt{BelongsToNumericalSemigroup(n,S)}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@BelongsToNumericalSemigroup(15,S);|
  false
  !gapprompt@gap>| !gapinput@15 in S;|
  false
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(S);|
  [ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
  !gapprompt@gap>| !gapinput@BelongsToNumericalSemigroup(13,S);|
  true
  !gapprompt@gap>| !gapinput@13 in S;|
  true
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Basic operations with numerical semigroups }}\logpage{[ 3, 0, 0 ]}
\hyperdef{L}{X7A9D13C778697F6C}{}
{
   
\section{\textcolor{Chapter }{ The definitions }}\logpage{[ 3, 1, 0 ]}
\hyperdef{L}{X7F15FEA980D637AF}{}
{
  

\subsection{\textcolor{Chapter }{MultiplicityOfNumericalSemigroup}}
\logpage{[ 3, 1, 1 ]}\nobreak
\hyperdef{L}{X842721EF8145C3D3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MultiplicityOfNumericalSemigroup({\mdseries\slshape NS})\index{MultiplicityOfNumericalSemigroup@\texttt{MultiplicityOfNumericalSemigroup}}
\label{MultiplicityOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \mbox{\texttt{\mdseries\slshape NS}} is a numerical semigroup. Returns the multiplicity of \mbox{\texttt{\mdseries\slshape NS}}, which is the smallest positive integer belonging to \mbox{\texttt{\mdseries\slshape NS}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 7,53);|
  <Modular numerical semigroup satisfying 7x mod 53 <= x >
  !gapprompt@gap>| !gapinput@MultiplicityOfNumericalSemigroup(S);|
  8
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{GeneratorsOfNumericalSemigroup}}
\logpage{[ 3, 1, 2 ]}\nobreak
\hyperdef{L}{X7A3177E779C49D13}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GeneratorsOfNumericalSemigroup({\mdseries\slshape S})\index{GeneratorsOfNumericalSemigroup@\texttt{GeneratorsOfNumericalSemigroup}}
\label{GeneratorsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalGeneratingSystemOfNumericalSemigroup({\mdseries\slshape S})\index{MinimalGeneratingSystemOfNumericalSemigroup@\texttt{Minimal}\-\texttt{Generating}\-\texttt{System}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MinimalGeneratingSystemOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalGeneratingSystem({\mdseries\slshape S})\index{MinimalGeneratingSystem@\texttt{MinimalGeneratingSystem}}
\label{MinimalGeneratingSystem}
}\hfill{\scriptsize (attribute)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. \texttt{GeneratorsOfNumericalSemigroup} returns a set of generators of \texttt{S}, which may not be minimal.  \texttt{MinimalGeneratingSystemOfNumericalSemigroup} returns the minimal set of generators of \texttt{S}. 

 From Version 0.980, \texttt{ReducedSetOfGeneratorsOfNumericalSemigroup} is just a synonym of \texttt{MinimalGeneratingSystemOfNumericalSemigroup} and \texttt{GeneratorsOfNumericalSemigroupNC} is just a synonym of \texttt{GeneratorsOfNumericalSemigroup}. The names are kept for compatibility with code produced for previous
versions, but will be removed in the future. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@GeneratorsOfNumericalSemigroup(S);|
  [ 11, 12, 13, 32, 53 ]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup(3, 5, 53);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@GeneratorsOfNumericalSemigroup(S);|
  [ 3, 5, 53 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfNumericalSemigroup(S);|
  [ 3, 5 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystem(S)=MinimalGeneratingSystemOfNumericalSemigroup(S);|
  true
\end{Verbatim}
  }

 

\subsection{\textcolor{Chapter }{EmbeddingDimensionOfNumericalSemigroup}}
\logpage{[ 3, 1, 3 ]}\nobreak
\hyperdef{L}{X87B2695083DE2A83}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EmbeddingDimensionOfNumericalSemigroup({\mdseries\slshape NS})\index{EmbeddingDimensionOfNumericalSemigroup@\texttt{Embedding}\-\texttt{Dimension}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{EmbeddingDimensionOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{NS} is a numerical semigroup. It returns the cardinality of its minimal generating
system. }

 

\subsection{\textcolor{Chapter }{SmallElementsOfNumericalSemigroup}}
\logpage{[ 3, 1, 4 ]}\nobreak
\hyperdef{L}{X79D6E4727B612B54}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SmallElementsOfNumericalSemigroup({\mdseries\slshape NS})\index{SmallElementsOfNumericalSemigroup@\texttt{SmallElementsOfNumericalSemigroup}}
\label{SmallElementsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SmallElements({\mdseries\slshape NS})\index{SmallElements@\texttt{SmallElements}}
\label{SmallElements}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{NS} is a numerical semigroup. It returns the list of small elements of \texttt{NS}. Of course, the time consumed to return a result may depend on the way the
semigroup is given. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(NumericalSemigroup(3,5,7));|
  [ 0, 3, 5 ]
  !gapprompt@gap>| !gapinput@SmallElements(NumericalSemigroup(3,5,7));                    |
  [ 0, 3, 5 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FirstElementsOfNumericalSemigroup}}
\logpage{[ 3, 1, 5 ]}\nobreak
\hyperdef{L}{X7F0EDFA77F929120}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FirstElementsOfNumericalSemigroup({\mdseries\slshape n, NS})\index{FirstElementsOfNumericalSemigroup@\texttt{FirstElementsOfNumericalSemigroup}}
\label{FirstElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \texttt{NS} is a numerical semigroup. It returns the list with the first \mbox{\texttt{\mdseries\slshape n}} elements of \texttt{NS}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FirstElementsOfNumericalSemigroup(2,NumericalSemigroup(3,5,7));|
  [ 0, 3 ]
  !gapprompt@gap>| !gapinput@FirstElementsOfNumericalSemigroup(10,NumericalSemigroup(3,5,7));|
  [ 0, 3, 5, 6, 7, 8, 9, 10, 11, 12 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AperyListOfNumericalSemigroupWRTElement}}
\logpage{[ 3, 1, 6 ]}\nobreak
\hyperdef{L}{X86C699F2800F9ED0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyListOfNumericalSemigroupWRTElement({\mdseries\slshape S, m})\index{AperyListOfNumericalSemigroupWRTElement@\texttt{Apery}\-\texttt{List}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Element}}
\label{AperyListOfNumericalSemigroupWRTElement}
}\hfill{\scriptsize (operation)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape m}} is a positive element of \mbox{\texttt{\mdseries\slshape S}}. Computes the Ap{\a'e}ry list of \mbox{\texttt{\mdseries\slshape S}} with respect to \mbox{\texttt{\mdseries\slshape m}}. It contains for every $i\in \{0,\ldots,\mbox{\texttt{\mdseries\slshape m}}-1\}$, in the $i+1$th position, the smallest element in the semigroup congruent with $i$ modulo \mbox{\texttt{\mdseries\slshape m}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTElement(S,12);|
  [ 0, 13, 26, 39, 52, 53, 54, 43, 32, 33, 22, 11 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AperyListOfNumericalSemigroup}}
\logpage{[ 3, 1, 7 ]}\nobreak
\hyperdef{L}{X85EACCB87E7F563B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyListOfNumericalSemigroup({\mdseries\slshape S})\index{AperyListOfNumericalSemigroup@\texttt{AperyListOfNumericalSemigroup}}
\label{AperyListOfNumericalSemigroup}
}\hfill{\scriptsize (operation)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. It computes the Ap{\a'e}ry list of \mbox{\texttt{\mdseries\slshape S}} with respect to the multiplicity of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroup(S);|
  [ 0, 12, 13, 25, 26, 38, 39, 51, 52, 53, 32 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AperyListOfNumericalSemigroupWRTInteger}}
\logpage{[ 3, 1, 8 ]}\nobreak
\hyperdef{L}{X877266A18524982E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyListOfNumericalSemigroupWRTInteger({\mdseries\slshape S, m})\index{AperyListOfNumericalSemigroupWRTInteger@\texttt{Apery}\-\texttt{List}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Integer}}
\label{AperyListOfNumericalSemigroupWRTInteger}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape m}} is a positive integer. Computes the Ap{\a'e}ry list of \mbox{\texttt{\mdseries\slshape S}} with respect to \mbox{\texttt{\mdseries\slshape m}}, that is, the set of elements $x$ in \mbox{\texttt{\mdseries\slshape S}} such that $x-$\mbox{\texttt{\mdseries\slshape m}} is not in \mbox{\texttt{\mdseries\slshape S}}. If \mbox{\texttt{\mdseries\slshape m}} is an element in \mbox{\texttt{\mdseries\slshape S}}, then the output, as sets, is the same as \mbox{\texttt{\mdseries\slshape AperyListOfNumericalSemigroupWRTInteger}}, though without side effects, in the sense that this information is no longer
used by the package. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ s:=NumericalSemigroup(10,13,19,27);|
  <Numerical semigroup with 4 generators>
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTInteger(s,11);|
  [ 0, 10, 13, 19, 20, 23, 26, 27, 29, 32, 33, 36, 39, 42, 45, 46, 52, 55 ]
  !gapprompt@gap>| !gapinput@Length(last);|
  18
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTInteger(s,10);|
  [ 0, 13, 19, 26, 27, 32, 38, 45, 51, 54 ]
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTElement(s,10);|
  [ 0, 51, 32, 13, 54, 45, 26, 27, 38, 19 ]
  !gapprompt@gap>| !gapinput@Length(last);|
  10
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AperyListOfNumericalSemigroupAsGraph}}
\logpage{[ 3, 1, 9 ]}\nobreak
\hyperdef{L}{X8022CC477E9BF678}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyListOfNumericalSemigroupAsGraph({\mdseries\slshape ap})\index{AperyListOfNumericalSemigroupAsGraph@\texttt{Apery}\-\texttt{List}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{As}\-\texttt{Graph}}
\label{AperyListOfNumericalSemigroupAsGraph}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ap}} is the Ap{\a'e}ry list of a numerical semigroup. This function returns the
adjacency list of the graph $(ap, E)$ where the edge $u -> v$ is in $E$ iff $v - u$ is in $ap$. The 0 is ignored. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,7);;|
  !gapprompt@gap>| !gapinput@AperyListOfNumericalSemigroupWRTElement(s,10);|
  [ 0, 21, 12, 3, 14, 15, 6, 7, 18, 9 ]
  !gapprompt@gap>| !gapinput@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 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{KunzCoordinatesOfNumericalSemigroup}}
\logpage{[ 3, 1, 10 ]}\nobreak
\hyperdef{L}{X86A5FB907B917729}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{KunzCoordinatesOfNumericalSemigroup({\mdseries\slshape S, m})\index{KunzCoordinatesOfNumericalSemigroup@\texttt{KunzCoordinatesOfNumericalSemigroup}}
\label{KunzCoordinatesOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup, and \mbox{\texttt{\mdseries\slshape m}} is a nonzero element of \mbox{\texttt{\mdseries\slshape S}}. The second argument is optional, and if missing it is assumed to be the
multiplicity of \mbox{\texttt{\mdseries\slshape S}}. 

 Then the Ap{\a'e}ry set of \mbox{\texttt{\mdseries\slshape m}} in \mbox{\texttt{\mdseries\slshape S}} has the form $[0,k_1m+1,...,k_{m-1}m+m-1]$, and the output is the $(m-1)$-uple $[k_1,k_2,...,k_{m-1}]$ 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@KunzCoordinatesOfNumericalSemigroup(s);|
  [ 2, 1 ]
  !gapprompt@gap>| !gapinput@KunzCoordinatesOfNumericalSemigroup(s,5);|
  [ 1, 1, 0, 1 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{KunzPolytope}}
\logpage{[ 3, 1, 11 ]}\nobreak
\hyperdef{L}{X7C21E5417A3894EC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{KunzPolytope({\mdseries\slshape m})\index{KunzPolytope@\texttt{KunzPolytope}}
\label{KunzPolytope}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape m}} is a positive ingeger. 

 The Kunz coordinates of the semigroups with that multiplicity \mbox{\texttt{\mdseries\slshape m}} are solutions of a system of inequalities $Ax\ge b$ (see \cite{R-GS-GG-B}). The output is the matrix $(A|-b)$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@KunzPolytope(3);|
  [ [ 1, 0, -1 ], [ 0, 1, -1 ], [ 2, -1, 0 ], [ -1, 2, 1 ] ]
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{Frobenius Number}}\logpage{[ 3, 2, 0 ]}
\hyperdef{L}{X7F97E0127A1D2835}{}
{
  The largest nonnegative integer not belonging to a numerical semigroup $S$ is the \emph{Frobenius number} of $S$. If $S$ is the set of nonnegative integers, then clearly its Frobenius number is $-1$, otherwise its Frobenius number coincides with the maximum of the gaps (or
fundamental gaps) of $S$. An integer $z$ is a \emph{pseudo-Frobenius number} of $S$ if $z+S\setminus\{0\}\subseteq S$. 

\subsection{\textcolor{Chapter }{FrobeniusNumberOfNumericalSemigroup}}
\logpage{[ 3, 2, 1 ]}\nobreak
\hyperdef{L}{X7828CD2B83E380FA}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FrobeniusNumberOfNumericalSemigroup({\mdseries\slshape NS})\index{FrobeniusNumberOfNumericalSemigroup@\texttt{FrobeniusNumberOfNumericalSemigroup}}
\label{FrobeniusNumberOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{NS} is a numerical semigroup. It returns the Frobenius number of \texttt{NS}. Of course, the time consumed to return a result may depend on the way the
semigroup is given or on the knowledge already produced on the semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FrobeniusNumberOfNumericalSemigroup(NumericalSemigroup(3,5,7));|
  4
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FrobeniusNumber}}
\logpage{[ 3, 2, 2 ]}\nobreak
\hyperdef{L}{X7B7DFAB2834B2B36}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FrobeniusNumber({\mdseries\slshape NS})\index{FrobeniusNumber@\texttt{FrobeniusNumber}}
\label{FrobeniusNumber}
}\hfill{\scriptsize (attribute)}}\\


 This is just a synonym of \texttt{FrobeniusNumberOfNumericalSemigroup} (\ref{FrobeniusNumberOfNumericalSemigroup}). }

 

\subsection{\textcolor{Chapter }{ConductorOfNumericalSemigroup}}
\logpage{[ 3, 2, 3 ]}\nobreak
\hyperdef{L}{X87AAF6807D727149}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ConductorOfNumericalSemigroup({\mdseries\slshape NS})\index{ConductorOfNumericalSemigroup@\texttt{ConductorOfNumericalSemigroup}}
\label{ConductorOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 This is just a synonym of \texttt{ FrobeniusNumberOfNumericalSemigroup} (\texttt{NS})$+1$. }

 

\subsection{\textcolor{Chapter }{PseudoFrobeniusOfNumericalSemigroup}}
\logpage{[ 3, 2, 4 ]}\nobreak
\hyperdef{L}{X829A9C517A83FFD5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{PseudoFrobeniusOfNumericalSemigroup({\mdseries\slshape S})\index{PseudoFrobeniusOfNumericalSemigroup@\texttt{PseudoFrobeniusOfNumericalSemigroup}}
\label{PseudoFrobeniusOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{S} is a numerical semigroup. It returns set of pseudo-Frobenius numbers of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@PseudoFrobeniusOfNumericalSemigroup(S);|
  [ 21, 40, 41, 42 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TypeOfNumericalSemigroup}}
\logpage{[ 3, 2, 5 ]}\nobreak
\hyperdef{L}{X82AD9C1281FB1F58}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TypeOfNumericalSemigroup({\mdseries\slshape NS})\index{TypeOfNumericalSemigroup@\texttt{TypeOfNumericalSemigroup}}
\label{TypeOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 Stands for \texttt{Length(PseudoFrobeniusOfNumericalSemigroup (NS))}. }

 }

  
\section{\textcolor{Chapter }{Gaps}}\logpage{[ 3, 3, 0 ]}
\hyperdef{L}{X787FE6F180C6291F}{}
{
  A \emph{gap} of a numerical semigroup $S$ is a nonnegative integer not belonging to $S$. The \emph{fundamental gaps} of $S$ are those gaps that are maximal with respect to the partial order induced by
division in ${\mathbb N}$. The \emph{special gaps} of a numerical semigroup $S$, are those fundamental gaps such that if they are added to the given
numerical semigroup, then the resulting set is again a numerical semigroup. 

\subsection{\textcolor{Chapter }{GapsOfNumericalSemigroup}}
\logpage{[ 3, 3, 1 ]}\nobreak
\hyperdef{L}{X7B1BEC5786C66244}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GapsOfNumericalSemigroup({\mdseries\slshape NS})\index{GapsOfNumericalSemigroup@\texttt{GapsOfNumericalSemigroup}}
\label{GapsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{NS} is a numerical semigroup. It returns the set of gaps of \texttt{NS}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@GapsOfNumericalSemigroup(NumericalSemigroup(3,5,7));|
  [ 1, 2, 4 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{GenusOfNumericalSemigroup}}
\logpage{[ 3, 3, 2 ]}\nobreak
\hyperdef{L}{X7CC51E047DBB8F24}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GenusOfNumericalSemigroup({\mdseries\slshape NS})\index{GenusOfNumericalSemigroup@\texttt{GenusOfNumericalSemigroup}}
\label{GenusOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{NS} is a numerical semigroup. It returns the number of gaps of \texttt{NS}. }

 

\subsection{\textcolor{Chapter }{FundamentalGapsOfNumericalSemigroup}}
\logpage{[ 3, 3, 3 ]}\nobreak
\hyperdef{L}{X81EC33E978C73FEA}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FundamentalGapsOfNumericalSemigroup({\mdseries\slshape S})\index{FundamentalGapsOfNumericalSemigroup@\texttt{FundamentalGapsOfNumericalSemigroup}}
\label{FundamentalGapsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{S} is a numerical semigroup. It returns the set of fundamental gaps of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@FundamentalGapsOfNumericalSemigroup(S);|
  [ 16, 17, 18, 19, 27, 28, 29, 30, 31, 40, 41, 42 ]
  !gapprompt@gap>| !gapinput@GapsOfNumericalSemigroup(S);|
  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 20, 21, 27, 28, 29,
    30, 31, 40, 41, 42 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SpecialGapsOfNumericalSemigroup}}
\logpage{[ 3, 3, 4 ]}\nobreak
\hyperdef{L}{X7E373952877AC30A}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SpecialGapsOfNumericalSemigroup({\mdseries\slshape S})\index{SpecialGapsOfNumericalSemigroup@\texttt{SpecialGapsOfNumericalSemigroup}}
\label{SpecialGapsOfNumericalSemigroup}
}\hfill{\scriptsize (attribute)}}\\


 \texttt{S} is a numerical semigroup. It returns the special gaps of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@SpecialGapsOfNumericalSemigroup(S);|
  [ 40, 41, 42 ]
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Presentations of Numerical Semigroups }}\logpage{[ 4, 0, 0 ]}
\hyperdef{L}{X7969F7F27AAF0BF1}{}
{
  In this chapter we explain how to compute a minimal presentation of a
numerical semigroup. There are three functions involved in this process.  
\section{\textcolor{Chapter }{Presentations of Numerical Semigroups}}\logpage{[ 4, 1, 0 ]}
\hyperdef{L}{X7969F7F27AAF0BF1}{}
{
  

\subsection{\textcolor{Chapter }{MinimalPresentationOfNumericalSemigroup}}
\logpage{[ 4, 1, 1 ]}\nobreak
\hyperdef{L}{X7D8199858781EB41}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalPresentationOfNumericalSemigroup({\mdseries\slshape S})\index{MinimalPresentationOfNumericalSemigroup@\texttt{Minimal}\-\texttt{Presentation}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MinimalPresentationOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is a list of lists with two elements.
Each list of two elements represents a relation between the minimal generators
of the numerical semigroup. If $ \{ \{x_1,y_1\},\ldots,\{x_k,y_k\}\} $ is the output and $ \{m_1,\ldots,m_n\} $ is the minimal system of generators of the numerical semigroup, then $ \{x_i,y_i\}=\{\{a_{i_1},\ldots,a_{i_n}\},\{b_{i_1},\ldots,b_{i_n}\}\}$ and $ a_{i_1}m_1+\cdots+a_{i_n}m_n= b_{i_1}m_1+ \cdots +b_{i_n}m_n.$ 

 Any other relation among the minimal generators of the semigroup can be
deduced from the ones given in the output. 

 The algorithm implemented is described in \cite{Ros96} (see also \cite{RGS99}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);
        <Numerical semigroup with 3 generators>
        gap> MinimalPresentationOfNumericalSemigroup(s);
        [ [ [ 0, 2, 0 ], [ 1, 0, 1 ] ], [ [ 3, 1, 0 ], [ 0, 0, 2 ] ], 
        [ [ 4, 0, 0 ], [ 0, 1, 1 ] ] ]
        
        
\end{Verbatim}
 The first element in the list means that $ 1\times 3+1\times 7=2\times 5 $, and the others have similar meanings. }

 

\subsection{\textcolor{Chapter }{GraphAssociatedToElementInNumericalSemigroup}}
\logpage{[ 4, 1, 2 ]}\nobreak
\hyperdef{L}{X81CC5A6C870377E1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GraphAssociatedToElementInNumericalSemigroup({\mdseries\slshape n, S})\index{GraphAssociatedToElementInNumericalSemigroup@\texttt{Graph}\-\texttt{Associated}\-\texttt{To}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{GraphAssociatedToElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} is an element in \mbox{\texttt{\mdseries\slshape S}}. 

 The output is a pair. If $ \{m_1,\ldots,m_n\} $ is the set of minimal generators of \mbox{\texttt{\mdseries\slshape S}}, then the first component is the set of vertices of the graph associated to \mbox{\texttt{\mdseries\slshape n}} in \mbox{\texttt{\mdseries\slshape S}}, that is, the set $\{ m_i \ |\ n-m_i\in S\} $, and the second component is the set of edges of this graph, that is, $ \{ \{m_i,m_j\} \ |\ n-(m_i+m_j)\in S\}.$ 

 This function is used to compute a minimal presentation of the numerical
semigroup \mbox{\texttt{\mdseries\slshape S}}, as explained in \cite{Ros96}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> GraphAssociatedToElementInNumericalSemigroup(10,s);
        [ [ 3, 5, 7 ], [ [ 3, 7 ] ] ]
        
        
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BettiElementsOfNumericalSemigroup}}
\logpage{[ 4, 1, 3 ]}\nobreak
\hyperdef{L}{X836B6BF4853DB8E2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BettiElementsOfNumericalSemigroup({\mdseries\slshape S})\index{BettiElementsOfNumericalSemigroup@\texttt{BettiElementsOfNumericalSemigroup}}
\label{BettiElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is the set of elements in \mbox{\texttt{\mdseries\slshape S}} whose associated graph is nonconnected \cite{GS-O}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> BettiElementsOfNumericalSemigroup(s);
        [ 10, 12, 14 ]
        
        
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{PrimitiveElementsOfNumericalSemigroup}}
\logpage{[ 4, 1, 4 ]}\nobreak
\hyperdef{L}{X814717BB798E4E1E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{PrimitiveElementsOfNumericalSemigroup({\mdseries\slshape S})\index{PrimitiveElementsOfNumericalSemigroup@\texttt{Primitive}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{PrimitiveElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is the set of elements $s$ in \mbox{\texttt{\mdseries\slshape S}} such that there exists a minimal solution to $msg\cdot x-msg\cdot y = 0$, such that $x,y$ are factorizations of $s$, and $msg$ is the minimal generating system of \mbox{\texttt{\mdseries\slshape S}}. Betti elements are primitive, but not the way around in general. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> PrimitiveElementsOfNumericalSemigroup(s);
        [ 3, 5, 7, 10, 12, 14, 15, 21, 28, 35 ]
        
        
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ShadedSetOfElementInNumericalSemigroup}}
\logpage{[ 4, 1, 5 ]}\nobreak
\label{shadedset}
\hyperdef{L}{X7C42DEB68285F2B8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ShadedSetOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{ShadedSetOfElementInNumericalSemigroup@\texttt{Shaded}\-\texttt{Set}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{ShadedSetOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} is an element in \mbox{\texttt{\mdseries\slshape S}}. 

 The output is a simplicial complex $C$. If $ \{m_1,\ldots,m_n\} $ is the set of minimal generators of \mbox{\texttt{\mdseries\slshape S}}, then $L \in C$ if $n-\sum_{i\in L} m_i\in S$ (\cite{SzW}). 

 This function is a generalization of the graph associated to \mbox{\texttt{\mdseries\slshape n}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> ShadedSetOfElementInNumericalSemigroup(10,s);
        [ [  ], [ 3 ], [ 3, 7 ], [ 5 ], [ 7 ] ]
        
        
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Uniquely Presented Numerical Semigroups}}\logpage{[ 4, 2, 0 ]}
\hyperdef{L}{X7D7EA20F818A5994}{}
{
  A numerical semigroup $S$ is uniquely presented if for any two minimal presentations $\sigma$ and $\tau$ and any $(a,b)\in \sigma$, either $(a,b)\in \tau$ or $(b,a)\in \tau$, that is, there is essentially a unique minimal presentation (up to
arrangement of the components of the pairs in it). 

\subsection{\textcolor{Chapter }{IsUniquelyPresentedNumericalSemigroup}}
\logpage{[ 4, 2, 1 ]}\nobreak
\label{UniqPre}
\hyperdef{L}{X87A72C497E37760D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsUniquelyPresentedNumericalSemigroup({\mdseries\slshape S})\index{IsUniquelyPresentedNumericalSemigroup@\texttt{IsUniquely}\-\texttt{Presented}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{IsUniquelyPresentedNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is true if \mbox{\texttt{\mdseries\slshape S}} has uniquely presented. The implementation is based on (see \cite{GS-O}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> IsUniquelyPresentedNumericalSemigroup(s);
        true
        
        
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsGenericNumericalSemigroup}}
\logpage{[ 4, 2, 2 ]}\nobreak
\label{Generic}
\hyperdef{L}{X7955C87C80F41CFE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGenericNumericalSemigroup({\mdseries\slshape S})\index{IsGenericNumericalSemigroup@\texttt{IsGenericNumericalSemigroup}}
\label{IsGenericNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is true if \mbox{\texttt{\mdseries\slshape S}} has a generic presentation, that is, in every minimal relation all generators
occur. These semigroups are uniquely presented (see \cite{B-GS-G}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
        gap> s:=NumericalSemigroup(3,5,7);;
        gap> IsGenericNumericalSemigroup(s);
        true
        
        
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Constructing numerical semigroups from others }}\logpage{[ 5, 0, 0 ]}
\hyperdef{L}{X8148F05A830EE2D5}{}
{
   
\section{\textcolor{Chapter }{ Adding and removing elements of a numerical semigroup }}\logpage{[ 5, 1, 0 ]}
\hyperdef{L}{X782F3AB97ACF84B8}{}
{
  In this section we show how to construct new numerical semigroups from a given
numerical semigroup. Two dual operations are presented. The first one removes
a minimal generator from a numerical semigroup. The second adds a special gap
to a semigroup (see \cite{RGGJ03}). 

\subsection{\textcolor{Chapter }{RemoveMinimalGeneratorFromNumericalSemigroup}}
\logpage{[ 5, 1, 1 ]}\nobreak
\hyperdef{L}{X7C94611F7DD9E742}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RemoveMinimalGeneratorFromNumericalSemigroup({\mdseries\slshape n, S})\index{RemoveMinimalGeneratorFromNumericalSemigroup@\texttt{Remove}\-\texttt{Minimal}\-\texttt{Generator}\-\texttt{From}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{RemoveMinimalGeneratorFromNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} is one if its minimal generators. 

 The output is the numerical semigroup $ \mbox{\texttt{\mdseries\slshape S}} \setminus\{\mbox{\texttt{\mdseries\slshape n}}\} $ (see \cite{RGGJ03}; $S\setminus\{n\}$ is a numerical semigroup if and only if $n$ is a minimal generator of $S$). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@RemoveMinimalGeneratorFromNumericalSemigroup(7,s);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfNumericalSemigroup(last);|
  [ 3, 5 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AddSpecialGapOfNumericalSemigroup}}
\logpage{[ 5, 1, 2 ]}\nobreak
\hyperdef{L}{X865EA8377D632F53}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AddSpecialGapOfNumericalSemigroup({\mdseries\slshape g, S})\index{AddSpecialGapOfNumericalSemigroup@\texttt{AddSpecialGapOfNumericalSemigroup}}
\label{AddSpecialGapOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape g}} is a special gap of \mbox{\texttt{\mdseries\slshape S}} 

 The output is the numerical semigroup $ \mbox{\texttt{\mdseries\slshape S}} \cup\{\mbox{\texttt{\mdseries\slshape g}}\} $ (see \cite{RGGJ03}, where it is explained why this set is a numerical semigroup). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@s2:=RemoveMinimalGeneratorFromNumericalSemigroup(5,s);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@s3:=AddSpecialGapOfNumericalSemigroup(5,s2);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(s) =|
  !gapprompt@>| !gapinput@SmallElementsOfNumericalSemigroup(s3);|
  true                
  !gapprompt@gap>| !gapinput@s=s3;|
  true
  
                          
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Intersections and quotients by integers}}\logpage{[ 5, 2, 0 ]}
\hyperdef{L}{X7968F4A37A1329C3}{}
{
  

\subsection{\textcolor{Chapter }{IntersectionOfNumericalSemigroups}}
\logpage{[ 5, 2, 1 ]}\nobreak
\hyperdef{L}{X874494928728023E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IntersectionOfNumericalSemigroups({\mdseries\slshape S, T})\index{IntersectionOfNumericalSemigroups@\texttt{IntersectionOfNumericalSemigroups}}
\label{IntersectionOfNumericalSemigroups}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} and \mbox{\texttt{\mdseries\slshape T}} are numerical semigroups. Computes the intersection of \mbox{\texttt{\mdseries\slshape S}} and \mbox{\texttt{\mdseries\slshape T}} (which is a numerical semigroup). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := NumericalSemigroup("modular", 5,53);|
  <Modular numerical semigroup satisfying 5x mod 53 <= x >
  !gapprompt@gap>| !gapinput@T := NumericalSemigroup(2,17);|
  <Modular numerical semigroup satisfying 17x mod 34 <= x >
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(S);|
  [ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(T);|
  [ 0, 2, 4, 6, 8, 10, 12, 14, 16 ]
  !gapprompt@gap>| !gapinput@IntersectionOfNumericalSemigroups(S,T);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(last);|
  [ 0, 12, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{QuotientOfNumericalSemigroup}}
\logpage{[ 5, 2, 2 ]}\nobreak
\hyperdef{L}{X83CCE63C82F34C25}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{QuotientOfNumericalSemigroup({\mdseries\slshape S, n})\index{QuotientOfNumericalSemigroup@\texttt{QuotientOfNumericalSemigroup}}
\label{QuotientOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} is an integer. Computes the quotient of \mbox{\texttt{\mdseries\slshape S}} by \mbox{\texttt{\mdseries\slshape n}}, that is, the set $\{ x\in {\mathbb N}\ |\ nx \in S\}$, which is again a numerical semigroup. \texttt{S / n} may be used as a short for \texttt{QuotientOfNumericalSemigroup(S, n)}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,29);|
  <Modular numerical semigroup satisfying 58x mod 87 <= x >
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(s);|
  [ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 29, 30, 32, 33, 35, 36, 38, 
    39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56 ]
  !gapprompt@gap>| !gapinput@t:=QuotientOfNumericalSemigroup(s,7);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(t);|
  [ 0, 3, 5, 6, 8 ]
  !gapprompt@gap>| !gapinput@u := s / 7;|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(u);|
  [ 0, 3, 5, 6, 8 ]
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{ Constructing the set of all numerical semigroups containing a given numerical
semigroup }}\logpage{[ 5, 3, 0 ]}
\hyperdef{L}{X867D9A9A87CEB869}{}
{
  In order to construct the set of numerical semigroups containing a fixed
numerical semigroup $S$, one first constructs its unitary extensions, that is to say, the sets $S\cup\{g\}$ that are numerical semigroups with $g$ a positive integer. This is achieved by constructing the special gaps of the
semigroup, and then adding each of them to the numerical semigroup. Then we
repeat the process for each of this new numerical semigroups until we reach $ {\mathbb N} $. 

 These procedures are described in \cite{RGGJ03}. 

\subsection{\textcolor{Chapter }{OverSemigroupsNumericalSemigroup}}
\logpage{[ 5, 3, 1 ]}\nobreak
\hyperdef{L}{X7EEA97AB85FE078C}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OverSemigroupsNumericalSemigroup({\mdseries\slshape s})\index{OverSemigroupsNumericalSemigroup@\texttt{OverSemigroupsNumericalSemigroup}}
\label{OverSemigroupsNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is the set of numerical semigroups
containing it. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@OverSemigroupsNumericalSemigroup(NumericalSemigroup(3,5,7));|
  [ <The numerical semigroup N>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup with 3 generators> ]
  !gapprompt@gap>| !gapinput@List(last,s->MinimalGeneratingSystemOfNumericalSemigroup(s));|
  [ [ 1 ], [ 2, 3 ], [ 3 .. 5 ], [ 3, 5, 7 ] ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Constructing the set of numerical semigroup with given Frobenius number}}\logpage{[ 5, 4, 0 ]}
\hyperdef{L}{X7F40052D7B0EC8ED}{}
{
  

\subsection{\textcolor{Chapter }{NumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 5, 4, 1 ]}\nobreak
\hyperdef{L}{X87369D567AA6DBA0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{NumericalSemigroupsWithFrobeniusNumber@\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{NumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an non zero integer greater than or equal to -1. The output is the set of
numerical semigroups with Frobenius number \mbox{\texttt{\mdseries\slshape f}}. The algorithm implemented is given in \cite{RGGJ04}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(NumericalSemigroupsWithFrobeniusNumber(20));|
  900
  
                          
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Constructing the set of numerical semigroups with genus g, that is, numerical
semigroups with exactly g gaps }}\logpage{[ 5, 5, 0 ]}
\hyperdef{L}{X85725F5287D20CBB}{}
{
  Given a numerical semigroup of genus g, removing minimal generators, one
obtains numerical semigroups of genus g+1. In order to avoid repetitions, we
only remove minimal generators greater than the frobenius number of the
numerical semigroup (this is accomplished with the local function sons). 

 These procedures are described in \cite{RGGB03} and \cite{B-A08}. 

\subsection{\textcolor{Chapter }{NumericalSemigroupsWithGenus}}
\logpage{[ 5, 5, 1 ]}\nobreak
\hyperdef{L}{X86970F6A868DEA95}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupsWithGenus({\mdseries\slshape g})\index{NumericalSemigroupsWithGenus@\texttt{NumericalSemigroupsWithGenus}}
\label{NumericalSemigroupsWithGenus}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape g}} is a nonnegative integer. The output is the set of numerical semigroups with
genus\mbox{\texttt{\mdseries\slshape g}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@NumericalSemigroupsWithGenus(5);|
  [ <Proportionally modular numerical semigroup satisfying 11x mod 66 <= 5x >, 
    <Numerical semigroup with 5 generators>, 
    <Numerical semigroup with 5 generators>, 
    <Numerical semigroup with 5 generators>, 
    <Numerical semigroup with 5 generators>, 
    <Numerical semigroup with 4 generators>, 
    <Numerical semigroup with 4 generators>, 
    <Numerical semigroup with 4 generators>, 
    <Numerical semigroup with 4 generators>, 
    <Numerical semigroup with 3 generators>, 
    <Numerical semigroup with 3 generators>, 
    <Modular numerical semigroup satisfying 11x mod 22 <= x > ]
  !gapprompt@gap>| !gapinput@List(last,MinimalGeneratingSystemOfNumericalSemigroup);|
  [ [ 6 .. 11 ], [ 5, 7, 8, 9, 11 ], [ 5, 6, 8, 9 ], [ 5, 6, 7, 9 ], 
    [ 5, 6, 7, 8 ], [ 4, 6, 7 ], [ 4, 7, 9, 10 ], [ 4, 6, 9, 11 ], 
    [ 4, 5, 11 ], [ 3, 8, 10 ], [ 3, 7, 11 ], [ 2, 11 ] ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Constructing the set of numerical semigroups with a given set of
pseudo-Frobenius numbers }}\logpage{[ 5, 6, 0 ]}
\hyperdef{L}{X8265233586477CC7}{}
{
  Refer to \texttt{PseudoFrobeniusOfNumericalSemigroup} (\ref{PseudoFrobeniusOfNumericalSemigroup}). 

 These procedures are described in \cite{DGSRP15}. 

\subsection{\textcolor{Chapter }{ForcedIntegersForPseudoFrobenius}}
\logpage{[ 5, 6, 1 ]}\nobreak
\hyperdef{L}{X874B252180BD7EB4}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ForcedIntegersForPseudoFrobenius({\mdseries\slshape PF})\index{ForcedIntegersForPseudoFrobenius@\texttt{ForcedIntegersForPseudoFrobenius}}
\label{ForcedIntegersForPseudoFrobenius}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape PF}} is a list of positive integers (given as a list or individual elements). The
output is: 
\begin{itemize}
\item  in case there exists a numerical semigroup $S$ such that $PF(S)=PF$: 
\begin{itemize}
\item  a list $[forced\_gaps,forced\_elts]$ such that: 
\begin{itemize}
\item  $forced\_gaps$ is contained in ${\mathbb N} - S$ for any numerical semigroup S such that $PF(S)=\{g\_1,\ldots,g\_n\}$ 
\item  forced{\textunderscore}elts is contained in $S$ for any numerical semigroup $S$ such that $PF(S)=\{g\_1,\ldots,g\_n\}$ 
\end{itemize}
 
\end{itemize}
 
\item  "fail" in case it is found some condition that fails. 
\end{itemize}
 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@pf := [ 58, 64, 75 ];|
  [ 58, 64, 75 ]
  !gapprompt@gap>| !gapinput@ForcedIntegersForPseudoFrobenius(pf);                              |
  [ [ 1, 2, 3, 4, 5, 6, 7, 8, 11, 15, 16, 17, 25, 29, 32, 58, 64, 75 ], 
    [ 0, 59, 60, 67, 68, 69, 70, 71, 72, 73, 74, 76 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SimpleForcedIntegersForPseudoFrobenius}}
\logpage{[ 5, 6, 2 ]}\nobreak
\hyperdef{L}{X87AAFFF9814E9BD2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SimpleForcedIntegersForPseudoFrobenius({\mdseries\slshape fg, fe, PF})\index{SimpleForcedIntegersForPseudoFrobenius@\texttt{Simple}\-\texttt{Forced}\-\texttt{Integers}\-\texttt{For}\-\texttt{Pseudo}\-\texttt{Frobenius}}
\label{SimpleForcedIntegersForPseudoFrobenius}
}\hfill{\scriptsize (function)}}\\


 Is just a quicker version of \texttt{ForcedIntegersForPseudoFrobenius} (\ref{ForcedIntegersForPseudoFrobenius}) 

 \mbox{\texttt{\mdseries\slshape fg}} is a list of integers that we require to be gaps of the semigroup; \mbox{\texttt{\mdseries\slshape fe}} is a list of integers that we require to be elements of the semigroup; \mbox{\texttt{\mdseries\slshape PF}} is a list of positive integers. The output is: 
\begin{itemize}
\item  in case there exists a numerical semigroup $S$ such that $PF(S)=PF$: 
\begin{itemize}
\item  a list $[forced\_gaps,forced\_elts]$ such that: 
\begin{itemize}
\item  $forced\_gaps$ is contained in ${\mathbb N} - S$ for any numerical semigroup S such that $PF(S)=\{g\_1,\ldots,g\_n\}$ 
\item  forced{\textunderscore}elts is contained in $S$ for any numerical semigroup $S$ such that $PF(S)=\{g\_1,\ldots,g\_n\}$ 
\end{itemize}
 
\end{itemize}
 
\item  "fail" in case it is found some condition that fails. 
\end{itemize}
 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@pf := [ 15, 20, 27, 35 ];;                                               |
  !gapprompt@gap>| !gapinput@fint := ForcedIntegersForPseudoFrobenius(pf); |
  [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 16, 20, 27, 35 ], 
    [ 0, 19, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36 ] ]
  !gapprompt@gap>| !gapinput@free := Difference([1..Maximum(pf)],Union(fint));|
  [ 11, 13, 14, 17, 18, 21, 22, 24 ]
  !gapprompt@gap>| !gapinput@SimpleForcedIntegersForPseudoFrobenius(fint[1],Union(fint[2],[free[1]]),pf);|
  [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 20, 24, 27, 35 ], 
    [ 0, 11, 19, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{NumericalSemigroupsWithPseudoFrobeniusNumbers}}
\logpage{[ 5, 6, 3 ]}\nobreak
\hyperdef{L}{X7D6775A57B800892}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupsWithPseudoFrobeniusNumbers({\mdseries\slshape g})\index{NumericalSemigroupsWithPseudoFrobeniusNumbers@\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Pseudo}\-\texttt{Frobenius}\-\texttt{Numbers}}
\label{NumericalSemigroupsWithPseudoFrobeniusNumbers}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape PF}} is a list of positive integers (given as a list or individual elements). The
output is: a list of numerical semigrups S such that PF(S)=PF When
Length(PF)=1, it makes use of the function \texttt{NumericalSemigroupsWithFrobeniusNumber} (\ref{NumericalSemigroupsWithFrobeniusNumber}) 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@pf := [ 58, 64, 75 ];|
  [ 58, 64, 75 ]
  !gapprompt@gap>| !gapinput@Length(NumericalSemigroupsWithPseudoFrobeniusNumbers(pf));|
  561
  !gapprompt@gap>| !gapinput@pf := [11,19,22];;|
  !gapprompt@gap>| !gapinput@NumericalSemigroupsWithPseudoFrobeniusNumbers(pf);|
  [ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup>, <Numerical semigroup> ]
  !gapprompt@gap>| !gapinput@List(last,MinimalGeneratingSystemOfNumericalSemigroup);   |
  [ [ 7, 9, 17, 20 ], [ 7, 10, 13, 16, 18 ], [ 9, 12, 14, 15, 16, 17, 20 ], 
    [ 10, 13, 14, 15, 16, 17, 18, 21 ], 
    [ 12, 13, 14, 15, 16, 17, 18, 20, 21, 23 ] ]
  
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomNumericalSemigroupWithPseudoFrobeniusNumbers}}
\logpage{[ 5, 6, 4 ]}\nobreak
\hyperdef{L}{X786F1A5A79374254}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomNumericalSemigroupWithPseudoFrobeniusNumbers({\mdseries\slshape g})\index{RandomNumericalSemigroupWithPseudoFrobeniusNumbers@\texttt{Random}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{With}\-\texttt{Pseudo}\-\texttt{Frobenius}\-\texttt{Numbers}}
\label{RandomNumericalSemigroupWithPseudoFrobeniusNumbers}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape PF}} is a list of positive integers (given as a list or individual elements).
Alternatively, a record with fields "pseudo{\textunderscore}frobenius" and
"max{\textunderscore}attempts" option The output is: A numerical semigrups S
such that PF(S)=PF, at random. Returns fail if it conludes that it exists and
suggets to use NumericalSemigroupsWithPseudoFrobeniusNumbers if it is not able
to conclude... 

 It makes use of the function \texttt{AnIrreducibleNumericalSemigroupWithFrobeniusNumber} (\ref{AnIrreducibleNumericalSemigroupWithFrobeniusNumber}), when Length(PF)=1. 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@pf := [ 83, 169, 173, 214, 259 ];;                     |
  !gapprompt@gap>| !gapinput@RandomNumericalSemigroupWithPseudoFrobeniusNumbers(pf);|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@gen := MinimalGeneratingSystem(last);|
  [ 38, 57, 64, 72, 79, 98, 99, 106, 118, 120, 124, 132, 134, 146, 147, 154, 
    165, 168, 179 ]
  !gapprompt@gap>| !gapinput@ns := NumericalSemigroup(gen);       |
  <Numerical semigroup with 19 generators>
  !gapprompt@gap>| !gapinput@PseudoFrobeniusOfNumericalSemigroup(ns);|
  [ 83, 169, 173, 214, 259 ]
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Irreducible numerical semigroups }}\logpage{[ 6, 0, 0 ]}
\hyperdef{L}{X83C597EC7FAA1C0F}{}
{
   
\section{\textcolor{Chapter }{ Irreducible numerical semigroups }}\logpage{[ 6, 1, 0 ]}
\hyperdef{L}{X83C597EC7FAA1C0F}{}
{
  An irreducible numerical semigroup is a semigroup that cannot be expressed as
the intersection of numerical semigroups properly containing it. 

 It is not difficult to prove that a semigroup is irreducible if and only if it
is maximal (with respect to set inclusion) in the set of all numerical
semigroup having its same Frobenius number (see \cite{RB03}). Hence, according to \cite{FGH87} (respectively \cite{BDF97}), symmetric (respectively pseudo-symmetric) numerical semigroups are those
irreducible numerical semigroups with odd (respectively even) Frobenius
number. 

 In \cite{RGGJ03} it is shown that a nontrivial numerical semigroup is irreducible if and only
if it has only one special gap. We use this characterization. 

 In this section we show how to construct the set of all numerical semigroups
with a given Frobenius number. In old versions of the package, we first
constructed an irreducible numerical semigroup with the given Frobenius number
(as explained in \cite{RGS04}), and then we constructed the rest from it. That is why we separated both
functions. The present version uses a faster procedure presented in \cite{BR13}. 

 Every numerical semigroup can be expressed as an intersection of irreducible
numerical semigroups. If $S$ can be expressed as $S=S_1\cap \cdots\cap S_n$, with $S_i$ irreducible numerical semigroups, and no factor can be removed, then we say
that this decomposition is minimal. Minimal decompositions can be computed by
using Algorithm 26 in \cite{RGGJ03}. 

 

\subsection{\textcolor{Chapter }{IsIrreducibleNumericalSemigroup}}
\logpage{[ 6, 1, 1 ]}\nobreak
\hyperdef{L}{X87D62468791EDE8A}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsIrreducibleNumericalSemigroup({\mdseries\slshape s})\index{IsIrreducibleNumericalSemigroup@\texttt{IsIrreducibleNumericalSemigroup}}
\label{IsIrreducibleNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if \mbox{\texttt{\mdseries\slshape s}} is irreducible, false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,9));|
  true
  !gapprompt@gap>| !gapinput@IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,7,9));|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsSymmetricNumericalSemigroup}}
\logpage{[ 6, 1, 2 ]}\nobreak
\hyperdef{L}{X7BCDAFE3791A3C48}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsSymmetricNumericalSemigroup({\mdseries\slshape s})\index{IsSymmetricNumericalSemigroup@\texttt{IsSymmetricNumericalSemigroup}}
\label{IsSymmetricNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if \mbox{\texttt{\mdseries\slshape s}} is symmetric, false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsSymmetricNumericalSemigroup(NumericalSemigroup(10,23));      |
  true            
  !gapprompt@gap>| !gapinput@IsSymmetricNumericalSemigroup(NumericalSemigroup(10,11,23));|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsPseudoSymmetricNumericalSemigroup}}
\logpage{[ 6, 1, 3 ]}\nobreak
\hyperdef{L}{X84125DC485D48A88}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsPseudoSymmetricNumericalSemigroup({\mdseries\slshape s})\index{IsPseudoSymmetricNumericalSemigroup@\texttt{IsPseudoSymmetricNumericalSemigroup}}
\label{IsPseudoSymmetricNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if \mbox{\texttt{\mdseries\slshape s}} is pseudo-symmetric, false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsPseudoSymmetricNumericalSemigroup(NumericalSemigroup(6,7,8,9,11));|
  true
  !gapprompt@gap>| !gapinput@IsPseudoSymmetricNumericalSemigroup(NumericalSemigroup(4,6,9));|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AnIrreducibleNumericalSemigroupWithFrobeniusNumber}}
\logpage{[ 6, 1, 4 ]}\nobreak
\hyperdef{L}{X7C8AB03F7E0B71F0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AnIrreducibleNumericalSemigroupWithFrobeniusNumber({\mdseries\slshape f})\index{AnIrreducibleNumericalSemigroupWithFrobeniusNumber@\texttt{AnIrreducible}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{AnIrreducibleNumericalSemigroupWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is an irreducible
numerical semigroup with frobenius number \mbox{\texttt{\mdseries\slshape  f}}. From the way the procedure is implemented, the resulting semigroup has at
most four generators (see \cite{RGS04}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FrobeniusNumber(AnIrreducibleNumericalSemigroupWithFrobeniusNumber(28));|
  28
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IrreducibleNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 6, 1, 5 ]}\nobreak
\hyperdef{L}{X78345A267ADEFBAB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IrreducibleNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{IrreducibleNumericalSemigroupsWithFrobeniusNumber@\texttt{Irreducible}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{IrreducibleNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all
irreducible numerical semigroups with frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(39));|
  227
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DecomposeIntoIrreducibles}}
\logpage{[ 6, 1, 6 ]}\nobreak
\hyperdef{L}{X8227EF2B7F67E2FB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DecomposeIntoIrreducibles({\mdseries\slshape s})\index{DecomposeIntoIrreducibles@\texttt{DecomposeIntoIrreducibles}}
\label{DecomposeIntoIrreducibles}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is a set of irreducible numerical
semigroups containing it. These elements appear in a minimal decomposition of \mbox{\texttt{\mdseries\slshape s}} as intersection into irreducibles. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@DecomposeIntoIrreducibles(NumericalSemigroup(5,6,8));|
  [ <Numerical semigroup>, <Numerical semigroup> ]
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{ Complete intersection numerical semigroups }}\logpage{[ 6, 2, 0 ]}
\hyperdef{L}{X7D3FD9C8786B5D72}{}
{
  The cardinality of a minimal presentation of a numerical semigroup is alwas
greater than or equal to its embedding dimension minus one. Complete
intersection numerical semigroups are numerical semigroups reching this bound,
and they are irreducible. It can be shown that every complete intersection
(other that $\mathbb N$) is a complete intersection if and only if it is the gluing of two complete
intersections. When in this gluing, one of the copies is isomorphic to $\mathbb N$, then we obtain a free semigroups in the sense of \cite{BC77}. Two special kinds of free semigroups are telescopic semigroups (\cite{KP95}) and those associated to an irreducible planar curve (\cite{Z86}). We use the algorithms presented in \cite{AGS13} to find the set of all complete intersections (also free, telescopic and
associated to irreducible planar curves) numerical semigroups with given
Frobenius number. 

 

\subsection{\textcolor{Chapter }{AsGluingOfNumericalSemigroups}}
\logpage{[ 6, 2, 1 ]}\nobreak
\hyperdef{L}{X848FCB49851D19B8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AsGluingOfNumericalSemigroups({\mdseries\slshape s})\index{AsGluingOfNumericalSemigroups@\texttt{AsGluingOfNumericalSemigroups}}
\label{AsGluingOfNumericalSemigroups}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. Returns all partitions $\{A_1,A_2\}$ of the minimal generating set of \mbox{\texttt{\mdseries\slshape s}} such that \mbox{\texttt{\mdseries\slshape s}} is a gluing of $\langle A_1\rangle$ and $\langle A_2\rangle$ by $gcd(A_1)gcd(A_2)$ 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup( 10, 15, 16 );                   
|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@AsGluingOfNumericalSemigroups(s);     
|
  [ [ [ 10, 15 ], [ 16 ] ], [ [ 10, 16 ], [ 15 ] ] ]
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup( 18, 24, 34, 46, 51, 61, 74, 8 );
|
  <Numerical semigroup with 8 generators>
  !gapprompt@gap>| !gapinput@AsGluingOfNumericalSemigroups(s);                        
|
  [  ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsACompleteIntersectionNumericalSemigroup}}
\logpage{[ 6, 2, 2 ]}\nobreak
\hyperdef{L}{X86BE7CD17E99BE23}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsACompleteIntersectionNumericalSemigroup({\mdseries\slshape s})\index{IsACompleteIntersectionNumericalSemigroup@\texttt{IsA}\-\texttt{Complete}\-\texttt{Intersection}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{IsACompleteIntersectionNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if the numerical semigroup is a
complete intersection, that is, the cardinality of a (any) minimal
presentation equals its embedding dimension minus one. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup( 10, 15, 16 );       
|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@IsACompleteIntersectionNumericalSemigroup(s);
|
  true
  !gapprompt@gap>| !gapinput@s := NumericalSemigroup( 18, 24, 34, 46, 51, 61, 74, 8 );
|
  <Numerical semigroup with 8 generators>
  !gapprompt@gap>| !gapinput@IsACompleteIntersectionNumericalSemigroup(s);            
|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 6, 2, 3 ]}\nobreak
\hyperdef{L}{X86350BCE7D047599}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber@\texttt{Complete}\-\texttt{Intersection}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all
complete intersection numerical semigroups with frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber(57));
|
  34
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsFreeNumericalSemigroup}}
\logpage{[ 6, 2, 4 ]}\nobreak
\hyperdef{L}{X78FF54BF79F19AB3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsFreeNumericalSemigroup({\mdseries\slshape s})\index{IsFreeNumericalSemigroup@\texttt{IsFreeNumericalSemigroup}}
\label{IsFreeNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if the numerical semigroup is
free in the sense of \cite{BC77}: it is either $\mathbb N$ or the gluing of a copy of $\mathbb N$ with a free numerical semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsFreeNumericalSemigroup(NumericalSemigroup(10,15,16));
|
  true
  !gapprompt@gap>| !gapinput@IsFreeNumericalSemigroup(NumericalSemigroup(3,5,7));
|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FreeNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 6, 2, 5 ]}\nobreak
\hyperdef{L}{X86B4BA6A79F734A8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FreeNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{FreeNumericalSemigroupsWithFrobeniusNumber@\texttt{Free}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{FreeNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all free
numerical semigroups with frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(FreeNumericalSemigroupsWithFrobeniusNumber(57));
|
  33
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsTelescopicNumericalSemigroup}}
\logpage{[ 6, 2, 6 ]}\nobreak
\hyperdef{L}{X7807E8998663F8C0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsTelescopicNumericalSemigroup({\mdseries\slshape s})\index{IsTelescopicNumericalSemigroup@\texttt{IsTelescopicNumericalSemigroup}}
\label{IsTelescopicNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if the numerical semigroup is
telescopic in the sense of \cite{KP95}: it is either $\mathbb N$ or the gluing of $\langle n_e\rangle$ and $s'=\langle n_1/d,\ldots, n_{e-1}/d\rangle$, and $s'$ is again a telescopic numerical semigroup, where $n_1 < \cdots < n_e $ are the minimal generators of \mbox{\texttt{\mdseries\slshape s}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsTelescopicNumericalSemigroup(NumericalSemigroup(4,11,14));
|
  false
  !gapprompt@gap>| !gapinput@IsFreeNumericalSemigroup(NumericalSemigroup(4,11,14));
|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TelescopicNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 6, 2, 7 ]}\nobreak
\hyperdef{L}{X84475353846384E8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TelescopicNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{TelescopicNumericalSemigroupsWithFrobeniusNumber@\texttt{Telescopic}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{TelescopicNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all
telescopic numerical semigroups with frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(TelescopicNumericalSemigroupsWithFrobeniusNumber(57));
|
  20
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity}}
\logpage{[ 6, 2, 8 ]}\nobreak
\hyperdef{L}{X847CD0EF8452F771}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity({\mdseries\slshape s})\index{IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity@\texttt{IsNumerical}\-\texttt{Semigroup}\-\texttt{Associated}\-\texttt{Irreducible}\-\texttt{Planar}\-\texttt{Curve}\-\texttt{Singularity}}
\label{IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if the numerical semigroup is
associated to an irreducible planar curve singularity (\cite{Z86}). These semigroups are telescopic. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ns := NumericalSemigroup(4,11,14);;
|
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity(ns);
|
  false
  !gapprompt@gap>| !gapinput@ns := NumericalSemigroup(4,11,19);;                                 
|
  !gapprompt@gap>| !gapinput@IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity(ns);
|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber}}
\logpage{[ 6, 2, 9 ]}\nobreak
\hyperdef{L}{X85BD8C3680F22594}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber({\mdseries\slshape f})\index{NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber@\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{Associated}\-\texttt{Irreducible}\-\texttt{Planar}\-\texttt{Curve}\-\texttt{Singularity}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all
numerical semigroups associated to irreducible planar curves singularities
with frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(                                                                         
|
  !gapprompt@>| !gapinput@NumericalSemigroupsAssociatedIrreduciblePlanarCurveSingularityWithFrobeniusNumber
|
  !gapprompt@>| !gapinput@(57));                                                                           
|
  7
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{ Almost-symmetric numerical semigroups }}\logpage{[ 6, 3, 0 ]}
\hyperdef{L}{X7998FF857F70C9A2}{}
{
  A numerical semigroup is almost-symmetric (\cite{BF97}) if its genus is the arithmetic mean of its Frobenius number and type. We use
a procedure presented in \cite{RGS13} to determine the set of all almost-symmetric numerical semigroups with given
Frobenius number. In order to do this, we first calculate the set of all
almost-symmetric numerical semigroups that can be constructed from an
irreducible numerical semigroup. 

 

\subsection{\textcolor{Chapter }{AlmostSymmetricNumericalSemigroupsFromIrreducible}}
\logpage{[ 6, 3, 1 ]}\nobreak
\hyperdef{L}{X7A81F31479DB5DF2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AlmostSymmetricNumericalSemigroupsFromIrreducible({\mdseries\slshape s})\index{AlmostSymmetricNumericalSemigroupsFromIrreducible@\texttt{Almost}\-\texttt{Symmetric}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{From}\-\texttt{Irreducible}}
\label{AlmostSymmetricNumericalSemigroupsFromIrreducible}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is an irreducible numerical semigroup. The output is the set of
almost-symetric numerical semigroups that can be constructed from \mbox{\texttt{\mdseries\slshape s}} by removing some of its generators as explained in \cite{RGS13}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ns := NumericalSemigroup(5,8,9,11);;
|
  !gapprompt@gap>| !gapinput@AlmostSymmetricNumericalSemigroupsFromIrreducible(ns);
|
  [ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
  !gapprompt@gap>| !gapinput@List(last,MinimalGeneratingSystemOfNumericalSemigroup);
|
  [ [ 5, 8, 9, 11 ], [ 5, 8, 11, 14, 17 ], [ 5, 9, 11, 13, 17 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAlmostSymmetricNumericalSemigroup}}
\logpage{[ 6, 3, 2 ]}\nobreak
\hyperdef{L}{X7CF201F185943C30}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAlmostSymmetricNumericalSemigroup({\mdseries\slshape s})\index{IsAlmostSymmetricNumericalSemigroup@\texttt{IsAlmostSymmetricNumericalSemigroup}}
\label{IsAlmostSymmetricNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. The output is true if the numerical semigroup is
almost symmetric. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsAlmostSymmetricNumericalSemigroup(NumericalSemigroup(5,8,11,14,17));
|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 6, 3, 3 ]}\nobreak
\hyperdef{L}{X7B0DF2FE7D00A9E0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber@\texttt{Almost}\-\texttt{Symmetric}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all almost
symmetric numerical semigroups with Frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@Length(AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber(12));
|
  15
  !gapprompt@gap>| !gapinput@Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(12));
|
  2
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Ideals of numerical semigroups }}\logpage{[ 7, 0, 0 ]}
\hyperdef{L}{X83C2F0CF825B3869}{}
{
   Let $S$ be a numerical semigroup. A set $I$ of integers is an \emph{ideal relative} to a numerical semigroup $S$ provided that $I+S\subseteq I$ and that there exists $d\in S$ such that $d+I\subseteq S$. 

 If $\{i_1,\ldots,i_k\}$ is a subset of ${\mathbb Z}$, then the set $I=\{i_1,\ldots,i_k\}+S=\bigcup_{n=1}^k i_n+S$ is an ideal relative to $S$, and $\{i_1,\ldots, i_k\}$ is a system of generators of $I$. A system of generators $M$ is minimal if no proper subset of $M$ generates the same ideal. Usually, ideals are specified by means of its
generators and the ambient numerical semigroup to which they are ideals (for
more information see for instance \cite{BDF97}). 
\section{\textcolor{Chapter }{ Definitions and basic operations }}\logpage{[ 7, 1, 0 ]}
\hyperdef{L}{X84B6453A8015B40B}{}
{
  

\subsection{\textcolor{Chapter }{IdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 1 ]}\nobreak
\hyperdef{L}{X78E5F44E81485C17}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IdealOfNumericalSemigroup({\mdseries\slshape l, S})\index{IdealOfNumericalSemigroup@\texttt{IdealOfNumericalSemigroup}}
\label{IdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape l}} a list of integers. 

 The output is the ideal of \mbox{\texttt{\mdseries\slshape S}} generated by \mbox{\texttt{\mdseries\slshape l}} 

 There are several shortcuts for this function, as shown in the example. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IdealOfNumericalSemigroup([3,5],NumericalSemigroup(9,11));|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@[3,5]+NumericalSemigroup(9,11);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@last=last2;|
  true
  !gapprompt@gap>| !gapinput@3+NumericalSemigroup(5,9);|
  <Ideal of numerical semigroup>
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 2 ]}\nobreak
\hyperdef{L}{X85BD6FAD7EA3B5DD}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsIdealOfNumericalSemigroup({\mdseries\slshape Obj})\index{IsIdealOfNumericalSemigroup@\texttt{IsIdealOfNumericalSemigroup}}
\label{IsIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Tests if the object \mbox{\texttt{\mdseries\slshape Obj}} is an ideal of a numerical semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[1..7]+NumericalSemigroup(7,19);;|
  !gapprompt@gap>| !gapinput@IsIdealOfNumericalSemigroup(I);|
  true
  !gapprompt@gap>| !gapinput@IsIdealOfNumericalSemigroup(2);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MinimalGeneratingSystemOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 3 ]}\nobreak
\hyperdef{L}{X7CF1EA687B137C3D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalGeneratingSystemOfIdealOfNumericalSemigroup({\mdseries\slshape I})\index{MinimalGeneratingSystemOfIdealOfNumericalSemigroup@\texttt{Minimal}\-\texttt{Generating}\-\texttt{System}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MinimalGeneratingSystemOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalGeneratingSystem({\mdseries\slshape I})\index{MinimalGeneratingSystem@\texttt{MinimalGeneratingSystem}}
\label{MinimalGeneratingSystem}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup. 

 The output is the minimal system of generators of \mbox{\texttt{\mdseries\slshape I}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[3,5,9]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I);|
  [ 3 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystem(I);                           |
  [ 3 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{GeneratorsOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 4 ]}\nobreak
\hyperdef{L}{X86A9200283D1B32B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GeneratorsOfIdealOfNumericalSemigroup({\mdseries\slshape I})\index{GeneratorsOfIdealOfNumericalSemigroup@\texttt{Generators}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{GeneratorsOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GeneratorsOfIdealOfNumericalSemigroupNC({\mdseries\slshape I})\index{GeneratorsOfIdealOfNumericalSemigroupNC@\texttt{Generators}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{SemigroupNC}}
\label{GeneratorsOfIdealOfNumericalSemigroupNC}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup. 

 The output of \texttt{GeneratorsOfIdealOfNumericalSemigroup} is a system of generators of the ideal. If the minimal system of generators is
known, then it is used as output. \texttt{GeneratorsOfIdealOfNumericalSemigroupNC} always returns the set of generators stored in \mbox{\texttt{\mdseries\slshape I!.generators}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[3,5,9]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@GeneratorsOfIdealOfNumericalSemigroup(I);|
  [ 3, 5, 9 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I);|
  [ 3 ]
  !gapprompt@gap>| !gapinput@GeneratorsOfIdealOfNumericalSemigroup(I);|
  [ 3 ]
  !gapprompt@gap>| !gapinput@GeneratorsOfIdealOfNumericalSemigroupNC(I);|
  [ 3, 5, 9 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AmbientNumericalSemigroupOfIdeal}}
\logpage{[ 7, 1, 5 ]}\nobreak
\hyperdef{L}{X81E445518529C175}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AmbientNumericalSemigroupOfIdeal({\mdseries\slshape I})\index{AmbientNumericalSemigroupOfIdeal@\texttt{AmbientNumericalSemigroupOfIdeal}}
\label{AmbientNumericalSemigroupOfIdeal}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup, say $S$. 

 The output is $S$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[3,5,9]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@AmbientNumericalSemigroupOfIdeal(I);|
  <Modular numerical semigroup satisfying 11x mod 22 <= x >
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SmallElementsOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 6 ]}\nobreak
\hyperdef{L}{X7BDEBFCB7A1DAFC7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SmallElementsOfIdealOfNumericalSemigroup({\mdseries\slshape I})\index{SmallElementsOfIdealOfNumericalSemigroup@\texttt{Small}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{SmallElementsOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SmallElements({\mdseries\slshape I})\index{SmallElements@\texttt{SmallElements}}
\label{SmallElements}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup. 

 The output is a list with the elements in \mbox{\texttt{\mdseries\slshape I}} that are less than or equal to the greatest integer not belonging to the ideal
plus one. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[3,5,9]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@SmallElementsOfIdealOfNumericalSemigroup(I);|
  [ 3, 5, 7, 9, 11, 13 ]
  !gapprompt@gap>| !gapinput@SmallElements(I) = SmallElementsOfIdealOfNumericalSemigroup(I);|
  true
  !gapprompt@gap>| !gapinput@J:=[2,11]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@SmallElementsOfIdealOfNumericalSemigroup(J);|
  [ 2, 4, 6, 8, 10 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BelongsToIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 7 ]}\nobreak
\hyperdef{L}{X87508E7A7CFB0B20}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BelongsToIdealOfNumericalSemigroup({\mdseries\slshape n, I})\index{BelongsToIdealOfNumericalSemigroup@\texttt{BelongsToIdealOfNumericalSemigroup}}
\label{BelongsToIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup, \mbox{\texttt{\mdseries\slshape n}} is an integer. 

 The output is true if \mbox{\texttt{\mdseries\slshape n}} belongs to \mbox{\texttt{\mdseries\slshape I}}. 

 \mbox{\texttt{\mdseries\slshape  n in I}} can be used for short. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@J:=[2,11]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@BelongsToIdealOfNumericalSemigroup(9,J);|
  false
  !gapprompt@gap>| !gapinput@9 in J;|
  false
  !gapprompt@gap>| !gapinput@BelongsToIdealOfNumericalSemigroup(10,J);|
  true
  !gapprompt@gap>| !gapinput@10 in J;|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SumIdealsOfNumericalSemigroup}}
\logpage{[ 7, 1, 8 ]}\nobreak
\hyperdef{L}{X7B39610D7AD5A654}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SumIdealsOfNumericalSemigroup({\mdseries\slshape I, J})\index{SumIdealsOfNumericalSemigroup@\texttt{SumIdealsOfNumericalSemigroup}}
\label{SumIdealsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I, J}} are ideals of a numerical semigroup. 

 The output is the sum of both ideals $\{ i+j \ |\ i\in \mbox{\texttt{\mdseries\slshape I}}, j\in \mbox{\texttt{\mdseries\slshape J}}\}$. 

 \mbox{\texttt{\mdseries\slshape I + J}} is a synonym of this function. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[3,5,9]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@J:=[2,11]+NumericalSemigroup(2,11);;|
  !gapprompt@gap>| !gapinput@I+J;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);|
  [ 5, 14 ]
  !gapprompt@gap>| !gapinput@SumIdealsOfNumericalSemigroup(I,J);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);|
  [ 5, 14 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MultipleOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 9 ]}\nobreak
\hyperdef{L}{X857FE5C57EE98F5E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MultipleOfIdealOfNumericalSemigroup({\mdseries\slshape n, I})\index{MultipleOfIdealOfNumericalSemigroup@\texttt{MultipleOfIdealOfNumericalSemigroup}}
\label{MultipleOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup, \mbox{\texttt{\mdseries\slshape n}} is a non negative integer. 

 The output is the ideal $\mbox{\texttt{\mdseries\slshape I}}+\cdots+\mbox{\texttt{\mdseries\slshape I}}$ (\mbox{\texttt{\mdseries\slshape n}} times). 

 \mbox{\texttt{\mdseries\slshape  n * I}} can be used for short. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[0,1]+NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(2*I);|
  [ 0, 1, 2 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SubtractIdealsOfNumericalSemigroup}}
\logpage{[ 7, 1, 10 ]}\nobreak
\hyperdef{L}{X78743CE2845B5860}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SubtractIdealsOfNumericalSemigroup({\mdseries\slshape I, J})\index{SubtractIdealsOfNumericalSemigroup@\texttt{SubtractIdealsOfNumericalSemigroup}}
\label{SubtractIdealsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I, J}} are ideals of a numerical semigroup. 

 The output is the ideal $\{ z\in {\mathbb Z}\ |\ z+\mbox{\texttt{\mdseries\slshape J}}\subseteq \mbox{\texttt{\mdseries\slshape I}}\}$. 

 \mbox{\texttt{\mdseries\slshape I - J}} is a synonym of this function. 

 $S-$\mbox{\texttt{\mdseries\slshape J}} is a synonym of $(0+S)-$\mbox{\texttt{\mdseries\slshape J}}, if $S$ is the ambient semigroup of \mbox{\texttt{\mdseries\slshape I}} and \mbox{\texttt{\mdseries\slshape J}}. The following example appears in \cite{HS04}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S:=NumericalSemigroup(14, 15, 20, 21, 25);;|
  !gapprompt@gap>| !gapinput@I:=[0,1]+S;;|
  !gapprompt@gap>| !gapinput@II:=S-I;;|
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I);|
  [ 0, 1 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(II);|
  [ 14, 20 ]
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I+II);|
  [ 14, 15, 20, 21 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DifferenceOfIdealsOfNumericalSemigroup}}
\logpage{[ 7, 1, 11 ]}\nobreak
\hyperdef{L}{X7C2DAB737ECE7D34}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DifferenceOfIdealsOfNumericalSemigroup({\mdseries\slshape I, J})\index{DifferenceOfIdealsOfNumericalSemigroup@\texttt{Difference}\-\texttt{Of}\-\texttt{Ideals}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DifferenceOfIdealsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I, J}} are ideals of a numerical semigroup. \mbox{\texttt{\mdseries\slshape J}} must be contained in \mbox{\texttt{\mdseries\slshape I}}. 

 The output is the set $\mbox{\texttt{\mdseries\slshape I}}\setminus \mbox{\texttt{\mdseries\slshape J}}$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S:=NumericalSemigroup(14, 15, 20, 21, 25);;|
  !gapprompt@gap>| !gapinput@I:=[0,1]+S;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@2*I-2*I;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@I-I;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@DifferenceOfIdealsOfNumericalSemigroup(last2,last);|
  [ 26, 27, 37, 38 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TranslationOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 12 ]}\nobreak
\hyperdef{L}{X803921F97BEDCA88}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TranslationOfIdealOfNumericalSemigroup({\mdseries\slshape k, I})\index{TranslationOfIdealOfNumericalSemigroup@\texttt{Translation}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{TranslationOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Given an ideal \mbox{\texttt{\mdseries\slshape I}} of a numerical semigroup S and an integer \mbox{\texttt{\mdseries\slshape k}} returns an ideal of the numerical semigroup S generated by $\{i_1+k,\ldots,i_n+k\}$ where $\{i_1,\ldots,i_n\}$ is the system of generators of \mbox{\texttt{\mdseries\slshape I}}. 

 As a synonym to \texttt{TranslationOfIdealOfNumericalSemigroup(k, I)} the expression \texttt{k + I} may be used. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(13,23);;|
  !gapprompt@gap>| !gapinput@l:=List([1..6], _ -> Random([8..34]));|
  [ 22, 29, 34, 25, 10, 12 ]
  !gapprompt@gap>| !gapinput@I:=IdealOfNumericalSemigroup(l, s);;|
  !gapprompt@gap>| !gapinput@It:=TranslationOfIdealOfNumericalSemigroup(7,I);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@It2:=7+I;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@It2=It;|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IntersectionIdealsOfNumericalSemigroup}}
\logpage{[ 7, 1, 13 ]}\nobreak
\hyperdef{L}{X85CC100F78608D5E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IntersectionIdealsOfNumericalSemigroup({\mdseries\slshape I, J})\index{IntersectionIdealsOfNumericalSemigroup@\texttt{Intersection}\-\texttt{Ideals}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{IntersectionIdealsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Given two ideals \mbox{\texttt{\mdseries\slshape I}} and \mbox{\texttt{\mdseries\slshape J}} of a numerical semigroup \mbox{\texttt{\mdseries\slshape S}} returns the ideal of the numerical semigroup \mbox{\texttt{\mdseries\slshape S}} which is the intersection of the ideals \mbox{\texttt{\mdseries\slshape I}} and \mbox{\texttt{\mdseries\slshape J}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@i:=IdealOfNumericalSemigroup([75,89],s);;|
  !gapprompt@gap>| !gapinput@j:=IdealOfNumericalSemigroup([115,289],s);;|
  !gapprompt@gap>| !gapinput@IntersectionIdealsOfNumericalSemigroup(i,j);|
  <Ideal of numerical semigroup>
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MaximalIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 14 ]}\nobreak
\hyperdef{L}{X829EACA378BE3665}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MaximalIdealOfNumericalSemigroup({\mdseries\slshape S})\index{MaximalIdealOfNumericalSemigroup@\texttt{MaximalIdealOfNumericalSemigroup}}
\label{MaximalIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Returns the maximal ideal of the numerical semigroup \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@MaximalIdealOfNumericalSemigroup(NumericalSemigroup(3,7));|
  <Ideal of numerical semigroup>
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CanonicalIdealOfNumericalSemigroup}}
\logpage{[ 7, 1, 15 ]}\nobreak
\hyperdef{L}{X835890A078F5D6DC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CanonicalIdealOfNumericalSemigroup({\mdseries\slshape S})\index{CanonicalIdealOfNumericalSemigroup@\texttt{CanonicalIdealOfNumericalSemigroup}}
\label{CanonicalIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Computes a canonical ideal of \mbox{\texttt{\mdseries\slshape S}} (\cite{BF06}): $\{ x \in \mathbb{Z} | g-x \not \in S\} $. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@m:=MaximalIdealOfNumericalSemigroup(s);;|
  !gapprompt@gap>| !gapinput@c:=CanonicalIdealOfNumericalSemigroup(s);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@(m-c)-c=m;|
  true
  !gapprompt@gap>| !gapinput@id:=3+s;|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@(id-c)-c=id;|
  true
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Other functions for ideals }}\logpage{[ 7, 2, 0 ]}
\hyperdef{L}{X81DC1C0284968537}{}
{
  

\subsection{\textcolor{Chapter }{HilbertFunctionOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 2, 1 ]}\nobreak
\hyperdef{L}{X82156F18807B00BF}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HilbertFunctionOfIdealOfNumericalSemigroup({\mdseries\slshape n, I})\index{HilbertFunctionOfIdealOfNumericalSemigroup@\texttt{Hilbert}\-\texttt{Function}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{HilbertFunctionOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup, \mbox{\texttt{\mdseries\slshape n}} is a non negative integer. \mbox{\texttt{\mdseries\slshape I}} must be contained in its ambient semigroup. 

 The output is the cardinality of the set $\mbox{\texttt{\mdseries\slshape n}}\mbox{\texttt{\mdseries\slshape I}}\setminus (\mbox{\texttt{\mdseries\slshape n}}+1)\mbox{\texttt{\mdseries\slshape I}}$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[6,9,11]+NumericalSemigroup(6,9,11);;|
  !gapprompt@gap>| !gapinput@List([1..7],n->HilbertFunctionOfIdealOfNumericalSemigroup(n,I));|
  [ 3, 5, 6, 6, 6, 6, 6 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BlowUpIdealOfNumericalSemigroup}}
\logpage{[ 7, 2, 2 ]}\nobreak
\hyperdef{L}{X7C00A86F83024003}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BlowUpIdealOfNumericalSemigroup({\mdseries\slshape I})\index{BlowUpIdealOfNumericalSemigroup@\texttt{BlowUpIdealOfNumericalSemigroup}}
\label{BlowUpIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup. 

 The output is the ideal $\bigcup_{n\geq 0} n\mbox{\texttt{\mdseries\slshape I}}-n\mbox{\texttt{\mdseries\slshape I}}$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[0,2]+NumericalSemigroup(6,9,11);;|
  !gapprompt@gap>| !gapinput@BlowUpIdealOfNumericalSemigroup(I);;|
  !gapprompt@gap>| !gapinput@SmallElementsOfIdealOfNumericalSemigroup(last);|
  [ 0, 2, 4, 6, 8 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ReductionNumberIdealNumericalSemigroup}}
\logpage{[ 7, 2, 3 ]}\nobreak
\hyperdef{L}{X82C2BF5E840C815D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ReductionNumberIdealNumericalSemigroup({\mdseries\slshape I})\index{ReductionNumberIdealNumericalSemigroup@\texttt{Reduction}\-\texttt{Number}\-\texttt{Ideal}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{ReductionNumberIdealNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape I}} is an ideal of a numerical semigroup. 

 The output is the least integer such that $n \mbox{\texttt{\mdseries\slshape I}} + i=(n+1)\mbox{\texttt{\mdseries\slshape I}}$, where $i=min(\mbox{\texttt{\mdseries\slshape I}})$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@I:=[0,2]+NumericalSemigroup(6,9,11);;|
  !gapprompt@gap>| !gapinput@ReductionNumberIdealNumericalSemigroup(I);|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BlowUpOfNumericalSemigroup}}
\logpage{[ 7, 2, 4 ]}\nobreak
\hyperdef{L}{X84B5121C7EEECB30}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BlowUpOfNumericalSemigroup({\mdseries\slshape S})\index{BlowUpOfNumericalSemigroup@\texttt{BlowUpOfNumericalSemigroup}}
\label{BlowUpOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 If \mbox{\texttt{\mdseries\slshape M}} is the maximal ideal of the numerical semigroup, then the output is the
numerical semigroup $\bigcup_{n\geq 0} n\mbox{\texttt{\mdseries\slshape M}}-n\mbox{\texttt{\mdseries\slshape M}}$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@BlowUpOfNumericalSemigroup(s);|
  <Numerical semigroup with 10 generators>
  !gapprompt@gap>| !gapinput@SmallElementsOfNumericalSemigroup(last);|
  [ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
    40, 41, 42, 44 ]
  !gapprompt@gap>| !gapinput@m:=MaximalIdealOfNumericalSemigroup(s);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@BlowUpIdealOfNumericalSemigroup(m);|
  <Ideal of numerical semigroup>
  !gapprompt@gap>| !gapinput@SmallElementsOfIdealOfNumericalSemigroup(last);|
  [ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39,
    40, 41, 42, 44 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MicroInvariantsOfNumericalSemigroup}}
\logpage{[ 7, 2, 5 ]}\nobreak
\hyperdef{L}{X7B29CDA7783FC0D2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MicroInvariantsOfNumericalSemigroup({\mdseries\slshape S})\index{MicroInvariantsOfNumericalSemigroup@\texttt{MicroInvariantsOfNumericalSemigroup}}
\label{MicroInvariantsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Returns the microinvariants of the numerical semigroup \mbox{\texttt{\mdseries\slshape S}} defined in \cite{E01}. For their computation we have used the formula given in \cite{BF06}. The Ap\texttt{\symbol{92}}'ery set of \mbox{\texttt{\mdseries\slshape S}} and its blow up are involved in this computation. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@bu:=BlowUpOfNumericalSemigroup(s);;|
  !gapprompt@gap>| !gapinput@ap:=AperyListOfNumericalSemigroupWRTElement(s,30);;|
  !gapprompt@gap>| !gapinput@apbu:=AperyListOfNumericalSemigroupWRTElement(bu,30);;|
  !gapprompt@gap>| !gapinput@(ap-apbu)/30;|
  [ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2,
    5, 4, 3, 3, 2 ]
  !gapprompt@gap>| !gapinput@MicroInvariantsOfNumericalSemigroup(s)=last;|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsGradedAssociatedRingNumericalSemigroupCM}}
\logpage{[ 7, 2, 6 ]}\nobreak
\hyperdef{L}{X7876199778D6B320}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGradedAssociatedRingNumericalSemigroupCM({\mdseries\slshape S})\index{IsGradedAssociatedRingNumericalSemigroupCM@\texttt{IsGraded}\-\texttt{Associated}\-\texttt{Ring}\-\texttt{Numerical}\-\texttt{SemigroupCM}}
\label{IsGradedAssociatedRingNumericalSemigroupCM}
}\hfill{\scriptsize (function)}}\\


 Returns true if the graded ring associated to $K[[\mbox{\texttt{\mdseries\slshape S}}]]$ is Cohen-Macaulay, and false otherwise. This test is the implementation of the
algorithm given in \cite{BF06}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupCM(s);|
  false
  !gapprompt@gap>| !gapinput@MicroInvariantsOfNumericalSemigroup(s);|
  [ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2,
    5, 4, 3, 3, 2 ]
  !gapprompt@gap>| !gapinput@List(AperyListOfNumericalSemigroupWRTElement(s,30),|
  !gapprompt@>| !gapinput@w->MaximumDegreeOfElementWRTNumericalSemigroup (w,s));|
  [ 0, 1, 4, 1, 2, 1, 3, 1, 4, 3, 2, 3, 1, 1, 4, 3, 3, 1, 4, 1, 4, 3, 2, 4, 2,
    5, 4, 3, 1, 2 ]
  !gapprompt@gap>| !gapinput@last=last2;|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupCM(s);|
  true
  !gapprompt@gap>| !gapinput@MicroInvariantsOfNumericalSemigroup(s);|
  [ 0, 2, 1, 1 ]
  !gapprompt@gap>| !gapinput@List(AperyListOfNumericalSemigroupWRTElement(s,4),|
  !gapprompt@>| !gapinput@w->MaximumDegreeOfElementWRTNumericalSemigroup(w,s));|
  [ 0, 2, 1, 1 ]
\end{Verbatim}
 }

  

\subsection{\textcolor{Chapter }{IsMonomialNumericalSemigroup}}
\logpage{[ 7, 2, 7 ]}\nobreak
\hyperdef{L}{X7A04B8887F493733}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsMonomialNumericalSemigroup({\mdseries\slshape S})\index{IsMonomialNumericalSemigroup@\texttt{IsMonomialNumericalSemigroup}}
\label{IsMonomialNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Tests whether \mbox{\texttt{\mdseries\slshape S}} a monomial numerical semigroup. 

 Let $R$ a Noetherian ring such that $K \subseteq R \subseteq K[[t]]$, $K$ is a field of characteristic zero, the algebraic closure of $R$ is $K[[t]]$, and the conductor $(R : K[[t]])$ is not zero. If $v : K((t))\to {\mathbb Z}$ is the natural valuation for $K((t))$, then $v(R)$ is a numerical semigroup. 

 Let $S$ be a numerical semigroup minimally generated by $\{n_1,\ldots,n_e\}$. The semigroup ring associated to $S$ is $K[[S]]=K[[t^{n_1},\ldots,t^{n_e}]]$. A ring is called a semigroup ring if it is of the form $K[[S]]$, for some numerical semigroup $S$. We say that $S$ is a monomial numerical semigroup if for any $R$ as above with $v(R)=S$, $R$ is a semigroup ring. See \cite{VMic02} for details. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,7));|
  true
  !gapprompt@gap>| !gapinput@IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,11));|
  false
\end{Verbatim}
 }

  

\subsection{\textcolor{Chapter }{AperyListOfIdealOfNumericalSemigroupWRTElement}}
\logpage{[ 7, 2, 8 ]}\nobreak
\hyperdef{L}{X7D14AA4D7EE12369}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyListOfIdealOfNumericalSemigroupWRTElement({\mdseries\slshape I, n})\index{AperyListOfIdealOfNumericalSemigroupWRTElement@\texttt{Apery}\-\texttt{List}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Element}}
\label{AperyListOfIdealOfNumericalSemigroupWRTElement}
}\hfill{\scriptsize (function)}}\\


 Computes the sets of elements $x$ of \mbox{\texttt{\mdseries\slshape I}} such that $x-$\mbox{\texttt{\mdseries\slshape n}} not in the ideal \mbox{\texttt{\mdseries\slshape I}}, where \mbox{\texttt{\mdseries\slshape n}} is supposed to be in the ambient semigroup of \mbox{\texttt{\mdseries\slshape I}}. The element in the $i$th position of the output list (starting in 0) is congruent with $i$ modulo \mbox{\texttt{\mdseries\slshape n}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);;|
  !gapprompt@gap>| !gapinput@i:=[12,14]+s;;|
  !gapprompt@gap>| !gapinput@AperyListOfIdealOfNumericalSemigroupWRTElement(i,10);|
  [ 40, 51, 12, 23, 14, 25, 36, 27, 38, 49 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AperyTableOfNumericalSemigroup}}
\logpage{[ 7, 2, 9 ]}\nobreak
\hyperdef{L}{X8693990B8479E7E1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AperyTableOfNumericalSemigroup({\mdseries\slshape s})\index{AperyTableOfNumericalSemigroup@\texttt{AperyTableOfNumericalSemigroup}}
\label{AperyTableOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Computes the Ap{\a'e}ry table associated to the numerical semigroup \mbox{\texttt{\mdseries\slshape s}} as explained in \cite{CJZ}, that is, a list containing the Ap{\a'e}ry list of \mbox{\texttt{\mdseries\slshape s}} with respect to its multiplicity and the Ap{\a'e}ry lists of $kM$ (with $M$ the maximal ideal of \mbox{\texttt{\mdseries\slshape s}}) with respect to the multiplicity of \mbox{\texttt{\mdseries\slshape s}}, for $k\in\{1,\ldots,r\}$, where $r$ is the reduction number of $M$ (see ReductionNumberIdealNumericalSemigroup). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);;|
  !gapprompt@gap>| !gapinput@AperyTableOfNumericalSemigroup(s);|
  [ [ 0, 11, 22, 13, 24, 35, 26, 37, 48, 39 ], 
    [ 10, 11, 22, 13, 24, 35, 26, 37, 48, 39 ], 
    [ 20, 21, 22, 23, 24, 35, 26, 37, 48, 39 ], 
    [ 30, 31, 32, 33, 34, 35, 36, 37, 48, 39 ], 
    [ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{StarClosureOfIdealOfNumericalSemigroup}}
\logpage{[ 7, 2, 10 ]}\nobreak
\hyperdef{L}{X7A16238D7EDB2AB3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{StarClosureOfIdealOfNumericalSemigroup({\mdseries\slshape i, is})\index{StarClosureOfIdealOfNumericalSemigroup@\texttt{Star}\-\texttt{Closure}\-\texttt{Of}\-\texttt{Ideal}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{StarClosureOfIdealOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape i}} is an ideal and \mbox{\texttt{\mdseries\slshape is}} is a set of ideals (all from the same numerical semigroup$s$). The output is $i^{*_is}$, where $*_is$ is the star operation generated by \mbox{\texttt{\mdseries\slshape is}}: $(s-(s-i))\bigcap_{k\in is} (k-(k-i))$. The implementation uses Section 3 of \cite{Sp}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@StarClosureOfIdealOfNumericalSemigroup([0,2]+s,[[0,4]+s]);;|
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);|
  [ 0, 2, 4 ]
  						
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Numerical semigroups with maximal embedding dimension }}\logpage{[ 8, 0, 0 ]}
\hyperdef{L}{X7D2E70FC82D979D3}{}
{
   
\section{\textcolor{Chapter }{ Numerical semigroups with maximal embedding dimension }}\logpage{[ 8, 1, 0 ]}
\hyperdef{L}{X7D2E70FC82D979D3}{}
{
  If $S$ is a numerical semigroup and $m$ is its multiplicity (the least positive integer belonging to it), then the
embedding dimension $e$ of $S$ (the cardinality of the minimal system of generators of $S$) is less than or equal to $m$. We say that $S$ has maximal embedding dimension (MED for short) when $e=m$. The intersection of two numerical semigroups with the same multiplicity and
maximal embedding dimension is again of maximal embedding dimension. Thus we
define the MED closure of a non-empty subset of positive integers $M=\{m < m_1 < \cdots < m_n <\cdots\}$ with $\gcd(M)=1$ as the intersection of all MED numerical semigroups with multiplicity $m$. 

 Given a MED numerical semigroup $S$, we say that $M=\{m_1 < \cdots< m_k\}$ is a MED system of generators if the MED closure of $M$ is $S$. Moreover, $M$ is a minimal MED generating system for $S$ provided that every proper subset of $M$ is not a MED system of generators of $S$. Minimal MED generating systems are unique, and in general are smaller that
the classical minimal generating systems (see \cite{RGGB03}). 

\subsection{\textcolor{Chapter }{IsMEDNumericalSemigroup}}
\logpage{[ 8, 1, 1 ]}\nobreak
\hyperdef{L}{X867615F8846824EB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsMEDNumericalSemigroup({\mdseries\slshape S})\index{IsMEDNumericalSemigroup@\texttt{IsMEDNumericalSemigroup}}
\label{IsMEDNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if \mbox{\texttt{\mdseries\slshape S}} is a MED numerical semigroup and false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsMEDNumericalSemigroup(NumericalSemigroup(3,5,7)); |
  true 
  !gapprompt@gap>| !gapinput@IsMEDNumericalSemigroup(NumericalSemigroup(3,5)); |
  false
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MEDNumericalSemigroupClosure}}
\logpage{[ 8, 1, 2 ]}\nobreak
\hyperdef{L}{X86C8358D8530106F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MEDNumericalSemigroupClosure({\mdseries\slshape S})\index{MEDNumericalSemigroupClosure@\texttt{MEDNumericalSemigroupClosure}}
\label{MEDNumericalSemigroupClosure}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns the MED closure of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@MEDNumericalSemigroupClosure(NumericalSemigroup(3,5)); |
  <Numerical semigroup> 
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfNumericalSemigroup(last); |
  [ 3, 5, 7 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MinimalMEDGeneratingSystemOfMEDNumericalSemigroup}}
\logpage{[ 8, 1, 3 ]}\nobreak
\hyperdef{L}{X848FD3FA7DB2DD4C}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalMEDGeneratingSystemOfMEDNumericalSemigroup({\mdseries\slshape S})\index{MinimalMEDGeneratingSystemOfMEDNumericalSemigroup@\texttt{Minimal}\-\texttt{M}\-\texttt{E}\-\texttt{D}\-\texttt{Generating}\-\texttt{System}\-\texttt{Of}\-\texttt{M}\-\texttt{E}\-\texttt{D}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MinimalMEDGeneratingSystemOfMEDNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a MED numerical semigroup. 

 Returns the minimal MED generating system of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@MinimalMEDGeneratingSystemOfMEDNumericalSemigroup( |
  !gapprompt@>| !gapinput@NumericalSemigroup(3,5,7)); |
  [ 3, 5 ]
  
                          
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{ Numerical semigroups with the Arf property and Arf closures }}\logpage{[ 8, 2, 0 ]}
\hyperdef{L}{X82E40EFD83A4A186}{}
{
  Numerical semigroups with the Arf property are a special kind of numerical
semigroups with maximal embedding dimension. A numerical semigroup $S$ is Arf if for every $x,y,z$ in $S$ with $x\geq y\geq z$, one has that $x+y-z\in S$. 

 The intersection of two Arf numerical semigroups is again Arf, and thus we can
consider the Arf closure of a set of nonnegative integers with greatest common
divisor equal to one. Analogously as with MED numerical semigroups, we define
Arf systems of generators and minimal Arf generating system for an Arf
numerical semigroup. These are also unique(see \cite{RGGB04}). 

\subsection{\textcolor{Chapter }{IsArfNumericalSemigroup}}
\logpage{[ 8, 2, 1 ]}\nobreak
\hyperdef{L}{X8255C5907F8968B9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsArfNumericalSemigroup({\mdseries\slshape S})\index{IsArfNumericalSemigroup@\texttt{IsArfNumericalSemigroup}}
\label{IsArfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if \mbox{\texttt{\mdseries\slshape S}} is an Arf numerical semigroup and false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ IsArfNumericalSemigroup(NumericalSemigroup(3,5,7)); |
  true 
  !gapprompt@gap>| !gapinput@ IsArfNumericalSemigroup(NumericalSemigroup(3,7,11)); |
  false 
  !gapprompt@gap>| !gapinput@IsMEDNumericalSemigroup(NumericalSemigroup(3,7,11)); |
  true
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ArfNumericalSemigroupClosure}}
\logpage{[ 8, 2, 2 ]}\nobreak
\hyperdef{L}{X7FE10E2F85CB01A2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ArfNumericalSemigroupClosure({\mdseries\slshape S})\index{ArfNumericalSemigroupClosure@\texttt{ArfNumericalSemigroupClosure}}
\label{ArfNumericalSemigroupClosure}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns the Arf closure of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ArfNumericalSemigroupClosure(NumericalSemigroup(3,7,11)); |
  <Numerical semigroup> 
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfNumericalSemigroup(last); |
  [ 3, 7, 8 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MinimalArfGeneratingSystemOfArfNumericalSemigroup}}
\logpage{[ 8, 2, 3 ]}\nobreak
\hyperdef{L}{X7C0D2F7986165DDE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalArfGeneratingSystemOfArfNumericalSemigroup({\mdseries\slshape S})\index{MinimalArfGeneratingSystemOfArfNumericalSemigroup@\texttt{Minimal}\-\texttt{Arf}\-\texttt{Generating}\-\texttt{System}\-\texttt{Of}\-\texttt{Arf}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MinimalArfGeneratingSystemOfArfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is an Arf numerical semigroup. 

 Returns the minimal MED generating system of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@MinimalArfGeneratingSystemOfArfNumericalSemigroup( |
  !gapprompt@>| !gapinput@NumericalSemigroup(3,7,8)); |
  [ 3, 7 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ArfNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 8, 2, 4 ]}\nobreak
\hyperdef{L}{X85CD144384FD55F3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ArfNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{ArfNumericalSemigroupsWithFrobeniusNumber@\texttt{Arf}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{ArfNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all Arf
numerical semigroups with Frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@ArfNumericalSemigroupsWithFrobeniusNumber(10);|
  [ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
  !gapprompt@gap>| !gapinput@List(last,MinimalGeneratingSystemOfNumericalSemigroup);|
  [ [ 7, 9, 11, 12, 13, 15, 17 ], [ 3, 11, 13 ], [ 6, 9, 11, 13, 14, 16 ], 
    [ 9, 11, 12, 13, 14, 15, 16, 17, 19 ], [ 4, 11, 13, 14 ], 
    [ 8, 11, 12, 13, 14, 15, 17, 18 ], [ 7, 11, 12, 13, 15, 16, 17 ], 
    [ 6, 11, 13, 14, 15, 16 ], [ 11 .. 21 ] ]
\end{Verbatim}
 }

 }

  
\section{\textcolor{Chapter }{ Saturated numerical semigroups }}\logpage{[ 8, 3, 0 ]}
\hyperdef{L}{X7E6D857179E5BF1B}{}
{
  Saturated numerical semigroups with the Arf property are a special kind of
numerical semigroups with maximal embedding dimension. A numerical semigroup $S$ is saturated if the following condition holds: $ s, s_1 , \ldots , s_r$ in $S$ are such that $s_i \leq s$ for all $i$ in $\{1, \ldots , r\}$ and $z_1 , \ldots , z_r$ in $\mathbb Z$ are such that $z_1 s_1 + \cdots + z_r s_r\geq 0$, then $s + z_1 s_1 + \cdots + z_r s_r$ in $S$. 

 The intersection of two saturated numerical semigroups is again saturated, and
thus we can consider the saturated closure of a set of nonnegative integers
with greatest common divisor equal to one (see \cite{RGbook}). 

\subsection{\textcolor{Chapter }{IsSaturatedNumericalSemigroup}}
\logpage{[ 8, 3, 1 ]}\nobreak
\hyperdef{L}{X7C5D0FFA85044DF7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsSaturatedNumericalSemigroup({\mdseries\slshape S})\index{IsSaturatedNumericalSemigroup@\texttt{IsSaturatedNumericalSemigroup}}
\label{IsSaturatedNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if \mbox{\texttt{\mdseries\slshape S}} is a saturated numerical semigroup and false otherwise. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsSaturatedNumericalSemigroup(NumericalSemigroup(4,6,9,11));|
  true
  !gapprompt@gap>| !gapinput@IsSaturatedNumericalSemigroup(NumericalSemigroup(8, 9, 12, 13, 15, 19 ));|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SaturatedNumericalSemigroupClosure}}
\logpage{[ 8, 3, 2 ]}\nobreak
\hyperdef{L}{X8752A66B7E500645}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SaturatedNumericalSemigroupClosure({\mdseries\slshape S})\index{SaturatedNumericalSemigroupClosure@\texttt{SaturatedNumericalSemigroupClosure}}
\label{SaturatedNumericalSemigroupClosure}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns the saturated closure of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@SaturatedNumericalSemigroupClosure(NumericalSemigroup(8, 9, 12, 13, 15));|
  <Numerical semigroup>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystemOfNumericalSemigroup(last);|
  [ 8 .. 15 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SaturatedNumericalSemigroupsWithFrobeniusNumber}}
\logpage{[ 8, 3, 3 ]}\nobreak
\hyperdef{L}{X7CC07D997880E298}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SaturatedNumericalSemigroupsWithFrobeniusNumber({\mdseries\slshape f})\index{SaturatedNumericalSemigroupsWithFrobeniusNumber@\texttt{Saturated}\-\texttt{Numerical}\-\texttt{Semigroups}\-\texttt{With}\-\texttt{Frobenius}\-\texttt{Number}}
\label{SaturatedNumericalSemigroupsWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is an integer greater than or equal to -1. The output is the set of all
Saturated numerical semigroups with Frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@SaturatedNumericalSemigroupsWithFrobeniusNumber(10);|
  [ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, 
    <Numerical semigroup>, <Numerical semigroup> ]
  !gapprompt@gap>| !gapinput@ List(last,MinimalGeneratingSystemOfNumericalSemigroup);|
  [ [ 3, 11, 13 ], [ 4, 11, 13, 14 ], [ 6, 9, 11, 13, 14, 16 ], 
    [ 6, 11, 13, 14, 15, 16 ], [ 7, 11, 12, 13, 15, 16, 17 ], 
    [ 8, 11, 12, 13, 14, 15, 17, 18 ], [ 9, 11, 12, 13, 14, 15, 16, 17, 19 ], 
    [ 11 .. 21 ] ]
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Nonunique invariants for factorizations in numerical semigroups }}\logpage{[ 9, 0, 0 ]}
\hyperdef{L}{X7B6F914879CD505F}{}
{
   
\section{\textcolor{Chapter }{ Factorizations in Numerical Semigroups }}\logpage{[ 9, 1, 0 ]}
\hyperdef{L}{X7FDB54217B15148F}{}
{
  Let $ S $ be a numerical semigroup minimally generated by $ \{m_1,\ldots,m_n\} $. A factorization of an element $s\in S$ is an n-tuple $ a=(a_1,\ldots,a_n) $ of nonnegative integers such that $ n=a_1 n_1+\cdots+a_n m_n$. The lenght of $a$ is $|a|=a_1+\cdots+a_n$. Given two factorizations $a$ and $b$ of $n$, the distance between $a$ and $b$ is $d(a,b)=\max \{ |a-\gcd(a,b)|,|b-\gcd(a,b)|\}$, where $\gcd((a_1,\ldots,a_n),(b_1,\ldots,b_n))=(\min(a_1,b_1),\ldots,\min(a_n,b_n))$. 

 If $l_1>\cdots > l_k$ are the lenghts of all the factorizations of $s \in S$, the Delta set associated to $s$ is $\Delta(s)=\{l_1-l_2,\ldots,l_k-l_{k-1}\}$. 

 The catenary degree of an element in $S$ is the least positive integer $c$ such that for any two of its factorizations $a$ and $b$, there exists a chain of factorizations starting in $a$ and ending in $b$ and so that the distance between two consecutive links is at most $c$. The catenary degree of $S$ is the supremum of the catenary degrees of the elements in $S$. 

 The tame degree of $S$ is the least positive integer $t$ for any factorization $a$ of an element $s$ in $S$, and any $i$ such that $s-m_i\in S$, there exists another factorization $b$ of $s$ so that the distance to $a$ is at most $t$ and $b_i\not = 0$. 

 The $\omega$-primality of an elment $s$ in $S$ is the least positive integer $k$ such that if $(\sum_{i\in I} s_i)-s\in S, s_i\in S$, then there exists $\Omega\subseteq I$ with cardinality $k$ such that $(\sum_{i\in \Omega} s_i)-s\in S$. The $\omega$-primality is the maximum of the $\omega$-primality of its minimal generators. 

 The basic properties of these constants can be found in \cite{GHKb}. The algorithm used to compute the catenary and tame degree is an adaptation
of the algorithms appearing in \cite{CGLPR} for numerical semigroup (see \cite{CGL}). The computation of the elascitiy of a numerical semigroup reduces to $m/n$ with $m$ the multiplicity of the semigroup and $n$ its largest minimal generator (see \cite{CHM06} or \cite{GHKb}). 

\subsection{\textcolor{Chapter }{FactorizationsIntegerWRTList}}
\logpage{[ 9, 1, 1 ]}\nobreak
\hyperdef{L}{X8429AECF78EE7EAB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FactorizationsIntegerWRTList({\mdseries\slshape n, ls})\index{FactorizationsIntegerWRTList@\texttt{FactorizationsIntegerWRTList}}
\label{FactorizationsIntegerWRTList}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a list of integers and \mbox{\texttt{\mdseries\slshape n}} an integer. The output is the set of factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the elements in the list \mbox{\texttt{\mdseries\slshape ls}}. This function uses RestrictedPartitions. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], 
    [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FactorizationsElementWRTNumericalSemigroup}}
\logpage{[ 9, 1, 2 ]}\nobreak
\hyperdef{L}{X78C6D3BF7C7C2760}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FactorizationsElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{FactorizationsElementWRTNumericalSemigroup@\texttt{Factorizations}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{FactorizationsElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. The output is the set of factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@FactorizationsElementWRTNumericalSemigroup(1100,s);|
  [ [ 0, 8, 1, 0, 0, 0 ], [ 0, 0, 0, 2, 2, 0 ], [ 5, 1, 1, 0, 0, 1 ], 
    [ 0, 2, 3, 0, 0, 1 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RClassesOfSetOfFactorizations}}
\logpage{[ 9, 1, 3 ]}\nobreak
\hyperdef{L}{X813D2A3A83916A36}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RClassesOfSetOfFactorizations({\mdseries\slshape ls})\index{RClassesOfSetOfFactorizations@\texttt{RClassesOfSetOfFactorizations}}
\label{RClassesOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The output is the set of $\mathcal R$-classes of this set of factorizations as defined in Chapter 7 of \cite{RGbook}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,19,23);;|
  !gapprompt@gap>| !gapinput@BettiElementsOfNumericalSemigroup(s);|
  [ 30, 33, 42, 57, 69 ]
  !gapprompt@gap>| !gapinput@FactorizationsElementWRTNumericalSemigroup(69,s);|
  [ [ 5, 0, 1, 0 ], [ 2, 1, 2, 0 ], [ 0, 0, 0, 3 ] ]
  !gapprompt@gap>| !gapinput@RClassesOfSetOfFactorizations(last);|
  [ [ [ 2, 1, 2, 0 ], [ 5, 0, 1, 0 ] ], [ [ 0, 0, 0, 3 ] ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{LShapesOfNumericalSemigroup}}
\logpage{[ 9, 1, 4 ]}\nobreak
\hyperdef{L}{X7D8BE22680E4A859}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{LShapesOfNumericalSemigroup({\mdseries\slshape S})\index{LShapesOfNumericalSemigroup@\texttt{LShapesOfNumericalSemigroup}}
\label{LShapesOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the number of LShapes associated to \mbox{\texttt{\mdseries\slshape S}}. These are ways of arranging the set of factorizations of the elements in the
Ap{\a'e}ry set of the largest generator, so that if one factorization $x$ is chosen for $w$ and $w-w'\in S$, then only the factorization of $x'$ of $w'$ with $x'\le $ can be in the LShape (and if there is no such a factorization, then we have no
LShape with $x$ in it), see \cite{AG-GS}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,9);;|
  !gapprompt@gap>| !gapinput@LShapesOfNumericalSemigroup(s);|
  [ [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 0, 2 ], [ 2, 1 ], 
        [ 1, 2 ], [ 2, 2 ] ], 
    [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 3, 0 ], [ 2, 1 ], 
        [ 4, 0 ], [ 5, 0 ] ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DenumerantOfElementInNumericalSemigroup}}
\logpage{[ 9, 1, 5 ]}\nobreak
\hyperdef{L}{X86D58E0084CFD425}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DenumerantOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{DenumerantOfElementInNumericalSemigroup@\texttt{Denumerant}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DenumerantOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a positive integer. The output is the number of factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,195,272,278,286);;|
  !gapprompt@gap>| !gapinput@DenumerantOfElementInNumericalSemigroup(1311,s);|
  6
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Invariants based on lengths }}\logpage{[ 9, 2, 0 ]}
\hyperdef{L}{X846FEE457D4EC03D}{}
{
  

\subsection{\textcolor{Chapter }{LengthsOfFactorizationsIntegerWRTList}}
\logpage{[ 9, 2, 1 ]}\nobreak
\hyperdef{L}{X7D4CC092859AF81F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{LengthsOfFactorizationsIntegerWRTList({\mdseries\slshape n, ls})\index{LengthsOfFactorizationsIntegerWRTList@\texttt{Lengths}\-\texttt{Of}\-\texttt{Factorizations}\-\texttt{Integer}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{List}}
\label{LengthsOfFactorizationsIntegerWRTList}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a list of integers and \mbox{\texttt{\mdseries\slshape n}} an integer. The output is the set of lengths of the factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the elements in \mbox{\texttt{\mdseries\slshape ls}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ 6, 8 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{LengthsOfFactorizationsElementWRTNumericalSemigroup}}
\logpage{[ 9, 2, 2 ]}\nobreak
\hyperdef{L}{X7FDE4F94870951B1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{LengthsOfFactorizationsElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{LengthsOfFactorizationsElementWRTNumericalSemigroup@\texttt{Lengths}\-\texttt{Of}\-\texttt{Factorizations}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{LengthsOfFactorizationsElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. The output is the set of lengths of the factorizations
of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@LengthsOfFactorizationsElementWRTNumericalSemigroup(1100,s);|
  [ 4, 6, 8, 9 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ElasticityOfFactorizationsElementWRTNumericalSemigroup}}
\logpage{[ 9, 2, 3 ]}\nobreak
\hyperdef{L}{X85C2987C7827D18D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ElasticityOfFactorizationsElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{ElasticityOfFactorizationsElementWRTNumericalSemigroup@\texttt{Elasticity}\-\texttt{Of}\-\texttt{Factorizations}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{ElasticityOfFactorizationsElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a positive integer. The output is the maximum length divided by the minimum
length of the factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@ElasticityOfFactorizationsElementWRTNumericalSemigroup(1100,s);|
  9/4
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ElasticityOfNumericalSemigroup}}
\logpage{[ 9, 2, 4 ]}\nobreak
\hyperdef{L}{X7FE2D6F77BE96716}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ElasticityOfNumericalSemigroup({\mdseries\slshape S})\index{ElasticityOfNumericalSemigroup@\texttt{ElasticityOfNumericalSemigroup}}
\label{ElasticityOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the elasticity of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@ElasticityOfNumericalSemigroup(s);|
  286/101
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetOfSetOfIntegers}}
\logpage{[ 9, 2, 5 ]}\nobreak
\hyperdef{L}{X84667349840AF1F9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetOfSetOfIntegers({\mdseries\slshape ls})\index{DeltaSetOfSetOfIntegers@\texttt{DeltaSetOfSetOfIntegers}}
\label{DeltaSetOfSetOfIntegers}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is list of integers. The output is the Delta set of the elements in \mbox{\texttt{\mdseries\slshape ls}}, that is, the set of differences of consecutive elements in the list. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ 6, 8 ]
  !gapprompt@gap>| !gapinput@DeltaSetOfSetOfIntegers(last);|
  [ 2 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetOfFactorizationsElementWRTNumericalSemigroup}}
\logpage{[ 9, 2, 6 ]}\nobreak
\hyperdef{L}{X8384DBFE7D82A634}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetOfFactorizationsElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{DeltaSetOfFactorizationsElementWRTNumericalSemigroup@\texttt{Delta}\-\texttt{Set}\-\texttt{Of}\-\texttt{Factorizations}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DeltaSetOfFactorizationsElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. The output is the Delta set of the factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@DeltaSetOfFactorizationsElementWRTNumericalSemigroup(1100,s);|
  [ 1, 2 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MaximumDegreeOfElementWRTNumericalSemigroup}}
\logpage{[ 9, 2, 7 ]}\nobreak
\hyperdef{L}{X7E3ED34D78F3A8CA}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MaximumDegreeOfElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{MaximumDegreeOfElementWRTNumericalSemigroup@\texttt{Maximum}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MaximumDegreeOfElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. The output is the maximum length of the factorizations
of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@MaximumDegreeOfElementWRTNumericalSemigroup(1100,s);|
  9
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MaximalDenumerantOfElementInNumericalSemigroup}}
\logpage{[ 9, 2, 8 ]}\nobreak
\hyperdef{L}{X8105D1CB78CFEA4D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MaximalDenumerantOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{MaximalDenumerantOfElementInNumericalSemigroup@\texttt{Maximal}\-\texttt{Denumerant}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MaximalDenumerantOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a positive integer. The output is the number of factorizations of \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating set of \mbox{\texttt{\mdseries\slshape S}} with maximal length. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);;|
  !gapprompt@gap>| !gapinput@MaximalDenumerantOfElementInNumericalSemigroup(1100,s);|
  1
  !gapprompt@gap>| !gapinput@MaximalDenumerantOfElementInNumericalSemigroup(1311,s);|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MaximalDenumerantOfSetOfFactorizations}}
\logpage{[ 9, 2, 9 ]}\nobreak
\hyperdef{L}{X7DFC4ED0827761C1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MaximalDenumerantOfSetOfFactorizations({\mdseries\slshape ls})\index{MaximalDenumerantOfSetOfFactorizations@\texttt{Maximal}\-\texttt{Denumerant}\-\texttt{Of}\-\texttt{Set}\-\texttt{Of}\-\texttt{Factorizations}}
\label{MaximalDenumerantOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is list of factorizations (a list of lists of nonnegative integers with the
same lenght). The output is number of elements in \mbox{\texttt{\mdseries\slshape ls}} with maximal length. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ], 
    [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@MaximalDenumerantOfSetOfFactorizations(last);|
  6
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MaximalDenumerantOfNumericalSemigroup}}
\logpage{[ 9, 2, 10 ]}\nobreak
\hyperdef{L}{X8434BC107D613B74}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MaximalDenumerantOfNumericalSemigroup({\mdseries\slshape S})\index{MaximalDenumerantOfNumericalSemigroup@\texttt{Maximal}\-\texttt{Denumerant}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MaximalDenumerantOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the maximal denumerant of \mbox{\texttt{\mdseries\slshape S}}, that is, the maximum of the maximal denumerant of the elements in \mbox{\texttt{\mdseries\slshape S}} (see \cite{BH}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);;|
  !gapprompt@gap>| !gapinput@MaximalDenumerantOfNumericalSemigroup(s);|
  4
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AdjustmentOfNumericalSemigroup}}
\logpage{[ 9, 2, 11 ]}\nobreak
\hyperdef{L}{X8145326379EF46F5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AdjustmentOfNumericalSemigroup({\mdseries\slshape S})\index{AdjustmentOfNumericalSemigroup@\texttt{AdjustmentOfNumericalSemigroup}}
\label{AdjustmentOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the adjustment of \mbox{\texttt{\mdseries\slshape S}} as defined in \cite{BH}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);;|
  !gapprompt@gap>| !gapinput@AdjustmentOfNumericalSemigroup(s);|
  [ 0, 12, 24, 36, 48, 60, 72, 84, 95, 96, 107, 108, 119, 120, 131, 132, 143,
    144, 155, 156, 167, 168, 171, 177, 179, 180, 183, 185, 189, 190, 191, 192, 
    195, 197, 201, 203, 204, 207, 209, 213, 215, 216, 219, 221, 225, 227, 228, 
    231, 233, 237, 239, 240, 243, 245, 249, 251, 252, 255, 257, 261, 263, 264, 
    266, 267, 269, 273, 275, 276, 279, 280, 281, 285, 287, 288, 292, 293, 299, 
    300, 304, 305, 311, 312, 316, 317, 323, 324, 328, 329, 335, 336, 340, 341, 
    342, 347, 348, 352, 353, 354, 356, 359, 360, 361, 362, 364, 365, 366, 368, 
    370, 371, 372, 374, 376, 377, 378, 380, 382, 383, 384, 388, 389, 390, 394, 
    395, 396, 400, 401, 402, 406, 407, 408, 412, 413, 414, 418, 419, 420, 424, 
    425, 426, 430, 431, 432, 436, 437, 438, 442, 444, 448, 450, 451, 454, 456, 
    460, 465, 466, 472, 477, 478, 484, 489, 490, 496, 501, 502, 508, 513, 514, 
    519, 520, 525, 526, 527, 531, 532, 533, 537, 539, 543, 545, 549, 551, 555, 
    561, 567, 573, 579, 585, 591, 597, 603, 609, 615, 621, 622, 627, 698, 704, 
    710, 716, 722 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAdditiveNumericalSemigroup}}
\logpage{[ 9, 2, 12 ]}\nobreak
\hyperdef{L}{X7F8B10C2870932B8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAdditiveNumericalSemigroup({\mdseries\slshape S})\index{IsAdditiveNumericalSemigroup@\texttt{IsAdditiveNumericalSemigroup}}
\label{IsAdditiveNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. Detects if \mbox{\texttt{\mdseries\slshape S}} is additive, that is, $ord(m+x)=ord(x)+1$ for all $x$ in \mbox{\texttt{\mdseries\slshape S}}, where $m$ is the multiplicity of \mbox{\texttt{\mdseries\slshape S}} and $ord$ stands for MaximumDegreeOfElementWRTNumericalSemigroup. For these semigroups $gr_m(K[[S]])$ is Cohen-Macaulay(see \cite{BH}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;|
  !gapprompt@gap>| !gapinput@Length(l);|
  109
  !gapprompt@gap>| !gapinput@Length(Filtered(l,IsAdditiveNumericalSemigroup));|
  20
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsSuperSymmetricNumericalSemigroup}}
\logpage{[ 9, 2, 13 ]}\nobreak
\hyperdef{L}{X8630DEF77A350D76}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsSuperSymmetricNumericalSemigroup({\mdseries\slshape S})\index{IsSuperSymmetricNumericalSemigroup@\texttt{IsSuperSymmetricNumericalSemigroup}}
\label{IsSuperSymmetricNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. Detects if \mbox{\texttt{\mdseries\slshape S}} is supersymmetric, that is, it is symmetric, additive and whenever $w+w'=f+m$ (with $m$ the multiplicity and $f$ the Frobenius number) we have $ord(w+w')=ord(w)+ord(w')$, where $ord$ stands for MaximumDegreeOfElementWRTNumericalSemigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;|
  !gapprompt@gap>| !gapinput@Length(l);|
  109
  !gapprompt@gap>| !gapinput@Length(Filtered(l,IsSuperSymmetricNumericalSemigroup));|
  7
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Invariants based on distances }}\logpage{[ 9, 3, 0 ]}
\hyperdef{L}{X84F5CA8D7B0F6C02}{}
{
  

\subsection{\textcolor{Chapter }{CatenaryDegreeOfSetOfFactorizations}}
\logpage{[ 9, 3, 1 ]}\nobreak
\hyperdef{L}{X7E8A56F3810F1769}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CatenaryDegreeOfSetOfFactorizations({\mdseries\slshape ls})\index{CatenaryDegreeOfSetOfFactorizations@\texttt{CatenaryDegreeOfSetOfFactorizations}}
\label{CatenaryDegreeOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The output is the catenary degree of this set of factorizations. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], 
    [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfSetOfFactorizations(last);|
  5
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AdjacentCatenaryDegreeOfSetOfFactorizations}}
\logpage{[ 9, 3, 2 ]}\nobreak
\hyperdef{L}{X7DDB40BB84FF0042}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AdjacentCatenaryDegreeOfSetOfFactorizations({\mdseries\slshape ls})\index{AdjacentCatenaryDegreeOfSetOfFactorizations@\texttt{Adjacent}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Set}\-\texttt{Of}\-\texttt{Factorizations}}
\label{AdjacentCatenaryDegreeOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The output is the adjacent catenary degree of this set of
factorizations, that is, the supremum of the distance between to sets of
factorizations with adjacet lengths. More precisely, if $l_1,\ldots,l_t$ are the lengths of the factorizations of the elements in \mbox{\texttt{\mdseries\slshape ls}}, and $Z_{l_i}$ is the set of factorizations in \mbox{\texttt{\mdseries\slshape ls}} with length $l_i$, then the adjacent catenary degre is the maximum of the distances $\mathrm d (Z_{l_i},Z_{l_{i+1}})$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
    [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@AdjacentCatenaryDegreeOfSetOfFactorizations(last);|
  5
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{EqualCatenaryDegreeOfSetOfFactorizations}}
\logpage{[ 9, 3, 3 ]}\nobreak
\hyperdef{L}{X86E0CAD28655839C}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EqualCatenaryDegreeOfSetOfFactorizations({\mdseries\slshape ls})\index{EqualCatenaryDegreeOfSetOfFactorizations@\texttt{Equal}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Set}\-\texttt{Of}\-\texttt{Factorizations}}
\label{EqualCatenaryDegreeOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The same as CatenaryDegreeOfSetOfFactorizations, but now the
factorizations joined by the chain must have the same length, and the elements
in the chain also. Equivalently, if $l_1,\ldots,l_t$ are the lengths of the factorizations of the elements in \mbox{\texttt{\mdseries\slshape ls}}, and $Z_{l_i}$ is the set of factorizations in \mbox{\texttt{\mdseries\slshape ls}} with length $l_i$, then the equal catenary degre is the maximum of the
CatenaryDegreeOfSetOfFactorizations of $\mathrm d (Z_{l_i},Z_{l_{i+1}})$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
    [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@EqualCatenaryDegreeOfSetOfFactorizations(last);|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MonotoneCatenaryDegreeOfSetOfFactorizations}}
\logpage{[ 9, 3, 4 ]}\nobreak
\hyperdef{L}{X845D850F7812E176}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MonotoneCatenaryDegreeOfSetOfFactorizations({\mdseries\slshape ls})\index{MonotoneCatenaryDegreeOfSetOfFactorizations@\texttt{Monotone}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Set}\-\texttt{Of}\-\texttt{Factorizations}}
\label{MonotoneCatenaryDegreeOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The same as CatenaryDegreeOfSetOfFactorizations, but now the
factorizations are joined by a chain with nondecreasing lengths. Equivalently,
it is the maximum of the AdjacentCatenaryDegreeOfSetOfFactorizations and the
EqualCatenaryDegreeOfSetOfFactorizations. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
    [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@MonotoneCatenaryDegreeOfSetOfFactorizations(last);|
  5
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CatenaryDegreeOfElementInNumericalSemigroup}}
\logpage{[ 9, 3, 5 ]}\nobreak
\hyperdef{L}{X812500217B183FC3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CatenaryDegreeOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{CatenaryDegreeOfElementInNumericalSemigroup@\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{CatenaryDegreeOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape n}} is a nonnegative integer and \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the catenary degree of \mbox{\texttt{\mdseries\slshape n}} relative to \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfElementInNumericalSemigroup(157,NumericalSemigroup(13,18));|
  0
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfElementInNumericalSemigroup(1157,NumericalSemigroup(13,18));|
  18
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TameDegreeOfSetOfFactorizations}}
\logpage{[ 9, 3, 6 ]}\nobreak
\hyperdef{L}{X86D5A10183C150FC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TameDegreeOfSetOfFactorizations({\mdseries\slshape ls})\index{TameDegreeOfSetOfFactorizations@\texttt{TameDegreeOfSetOfFactorizations}}
\label{TameDegreeOfSetOfFactorizations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a set of factorizations (a list of lists of nonnegative integers with the
same lenght). The output is the tame degree of this set of factorizations. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsIntegerWRTList(100,[11,13,15,19]);|
  [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], 
    [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
  !gapprompt@gap>| !gapinput@TameDegreeOfSetOfFactorizations(last);|
  4
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CatenaryDegreeOfNumericalSemigroup}}
\logpage{[ 9, 3, 7 ]}\nobreak
\hyperdef{L}{X7FAF204E85D9C21B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CatenaryDegreeOfNumericalSemigroup({\mdseries\slshape S})\index{CatenaryDegreeOfNumericalSemigroup@\texttt{CatenaryDegreeOfNumericalSemigroup}}
\label{CatenaryDegreeOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the catenary degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfNumericalSemigroup(s);|
  8
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{EqualPrimitiveElementsOfNumericalSemigroup}}
\logpage{[ 9, 3, 8 ]}\nobreak
\hyperdef{L}{X86498DA1858BA11B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EqualPrimitiveElementsOfNumericalSemigroup({\mdseries\slshape S})\index{EqualPrimitiveElementsOfNumericalSemigroup@\texttt{Equal}\-\texttt{Primitive}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{EqualPrimitiveElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is the set of elements $s$ in \mbox{\texttt{\mdseries\slshape S}} such that there exists a minimal solution to $msg\cdot x-msg\cdot y = 0$, such that $x,y$ are factorizations with the same length of $s$, and $msg$ is the minimal generating system of \mbox{\texttt{\mdseries\slshape S}}. These elements are used to compute the equal catenary degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@BettiElementsOfNumericalSemigroup(s);|
  [ 10, 12, 14 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{EqualCatenaryDegreeOfNumericalSemigroup}}
\logpage{[ 9, 3, 9 ]}\nobreak
\hyperdef{L}{X780E2C737FA8B2A9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EqualCatenaryDegreeOfNumericalSemigroup({\mdseries\slshape S})\index{EqualCatenaryDegreeOfNumericalSemigroup@\texttt{Equal}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{EqualCatenaryDegreeOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the equal catenary degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@EqualPrimitiveElementsOfNumericalSemigroup(s);|
  [ 3, 5, 7, 10 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MonotonePrimitiveElementsOfNumericalSemigroup}}
\logpage{[ 9, 3, 10 ]}\nobreak
\hyperdef{L}{X842C07F77CAD3BD1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MonotonePrimitiveElementsOfNumericalSemigroup({\mdseries\slshape S})\index{MonotonePrimitiveElementsOfNumericalSemigroup@\texttt{Monotone}\-\texttt{Primitive}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MonotonePrimitiveElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 The output is the set of elements $s$ in \mbox{\texttt{\mdseries\slshape S}} such that there exists a minimal solution to $msg\cdot x-msg\cdot y = 0$, such that $x,y$ are factorizations of $s$, with $|x|\le |y|$; $msg$ stands the minimal generating system of \mbox{\texttt{\mdseries\slshape S}}. These elements are used to compute the monotone catenary degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@MonotonePrimitiveElementsOfNumericalSemigroup(s);|
  [ 3, 5, 7, 10, 12, 14, 15, 21, 28, 35 ]
  
                          
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{MonotoneCatenaryDegreeOfNumericalSemigroup}}
\logpage{[ 9, 3, 11 ]}\nobreak
\hyperdef{L}{X7E0458187956C395}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MonotoneCatenaryDegreeOfNumericalSemigroup({\mdseries\slshape S})\index{MonotoneCatenaryDegreeOfNumericalSemigroup@\texttt{Monotone}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MonotoneCatenaryDegreeOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the monotone catenary degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,23,31,44);;|
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfNumericalSemigroup(s);|
  9
  !gapprompt@gap>| !gapinput@MonotoneCatenaryDegreeOfNumericalSemigroup(s);|
  21
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TameDegreeOfNumericalSemigroup}}
\logpage{[ 9, 3, 12 ]}\nobreak
\hyperdef{L}{X860BDF5B85975B73}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TameDegreeOfNumericalSemigroup({\mdseries\slshape S})\index{TameDegreeOfNumericalSemigroup@\texttt{TameDegreeOfNumericalSemigroup}}
\label{TameDegreeOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the tame degree of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(101,113,196,272,278,286);|
  <Numerical semigroup with 6 generators>
  !gapprompt@gap>| !gapinput@TameDegreeOfNumericalSemigroup(s);|
  14
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TameDegreeOfElementInNumericalSemigroup}}
\logpage{[ 9, 3, 13 ]}\nobreak
\hyperdef{L}{X8738B4F87E782ED2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TameDegreeOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{TameDegreeOfElementInNumericalSemigroup@\texttt{Tame}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{TameDegreeOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape n}} is an elment of the numerical semigroup \mbox{\texttt{\mdseries\slshape S}}. The output is the tame degree of \mbox{\texttt{\mdseries\slshape n}} in \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@TameDegreeOfElementInNumericalSemigroup(100,s); |
  5
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Primality }}\logpage{[ 9, 4, 0 ]}
\hyperdef{L}{X78EBC6A57B8167E6}{}
{
  

\subsection{\textcolor{Chapter }{OmegaPrimalityOfElementInNumericalSemigroup}}
\logpage{[ 9, 4, 1 ]}\nobreak
\hyperdef{L}{X86B0E91684B39839}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OmegaPrimalityOfElementInNumericalSemigroup({\mdseries\slshape n, S})\index{OmegaPrimalityOfElementInNumericalSemigroup@\texttt{Omega}\-\texttt{Primality}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{OmegaPrimalityOfElementInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape n}} is an elment of the numerical semigroup \mbox{\texttt{\mdseries\slshape S}}. The output is the $\omega$-primality of \mbox{\texttt{\mdseries\slshape n}} in \mbox{\texttt{\mdseries\slshape S}} as explained in \cite{B-GS-G}. The current implementation is due to Chris O'Neill based on a work in
progress with Pelayo and Thomas. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);        |
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@OmegaPrimalityOfElementInNumericalSemigroup(100,s);|
  13
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{OmegaPrimalityOfNumericalSemigroup}}
\logpage{[ 9, 4, 2 ]}\nobreak
\hyperdef{L}{X7919066C7A7265E1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OmegaPrimalityOfNumericalSemigroup({\mdseries\slshape n, S})\index{OmegaPrimalityOfNumericalSemigroup@\texttt{OmegaPrimalityOfNumericalSemigroup}}
\label{OmegaPrimalityOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the maximum of the $\omega$-primalities of the minimal generators of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);        |
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@OmegaPrimalityOfNumericalSemigroup(s);|
  5
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Homogenization of Numerical Semigroups }}\logpage{[ 9, 5, 0 ]}
\hyperdef{L}{X86735EEA780CECDA}{}
{
  Let $ S $ be a numerical semigroup minimally generated by $ \{m_1,\ldots,m_n\} $. The homogenization of $S$, $S^\mathrm{hom}$ is the semigroup generated by $\{(1,0),(1,m_1),\ldots, (1,m_n)\}$. The catenary degree of $S^\mathrm{hom}$ coincides with the homogeneous catenary degree of $S$, and it is between the catenary and the monotone catenary degree of $S$. The advantage of this catenary degree is that is less costly to compute than
the monotone catenary degree, and has some nice interpretations (\cite{GSOSN}). This section contains the auxiliary functions needed to compute the
homogeneous catenary degree. 

\subsection{\textcolor{Chapter }{BelongsToHomogenizationOfNumericalSemigroup}}
\logpage{[ 9, 5, 1 ]}\nobreak
\hyperdef{L}{X856B689185C1F5D9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BelongsToHomogenizationOfNumericalSemigroup({\mdseries\slshape n, S})\index{BelongsToHomogenizationOfNumericalSemigroup@\texttt{Belongs}\-\texttt{To}\-\texttt{Homogenization}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{BelongsToHomogenizationOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a list with two entries (a pair). The output is true if the \mbox{\texttt{\mdseries\slshape n}} belongs to the homogenization of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);;|
  !gapprompt@gap>| !gapinput@BelongsToHomogenizationOfNumericalSemigroup([10,23],s);|
  true
  !gapprompt@gap>| !gapinput@BelongsToHomogenizationOfNumericalSemigroup([1,23],s);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FactorizationsInHomogenizationOfNumericalSemigroup}}
\logpage{[ 9, 5, 2 ]}\nobreak
\hyperdef{L}{X85D03DBB7BA3B1FB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FactorizationsInHomogenizationOfNumericalSemigroup({\mdseries\slshape n, S})\index{FactorizationsInHomogenizationOfNumericalSemigroup@\texttt{Factorizations}\-\texttt{In}\-\texttt{Homogenization}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{FactorizationsInHomogenizationOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} a list with two entries (a pair). The output is the set of factorizations \mbox{\texttt{\mdseries\slshape n}} in terms of the minimal generating system of the homogenization of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);;|
  !gapprompt@gap>| !gapinput@FactorizationsInHomogenizationOfNumericalSemigroup([20,230],s);|
  [ [ 0, 0, 15, 5 ], [ 0, 2, 12, 6 ], [ 0, 4, 9, 7 ],
    [ 0, 6, 6, 8 ], [ 0, 8, 3, 9 ], [ 0, 10, 0, 10 ],
    [ 1, 1, 7, 11 ], [ 1, 3, 4, 12 ], [ 1, 5, 1, 13 ],
    [ 2, 0, 2, 16 ] ]
  !gapprompt@gap>| !gapinput@FactorizationsElementWRTNumericalSemigroup(230,s);|
  [ [ 23, 0, 0 ], [ 12, 10, 0 ], [ 1, 20, 0 ], [ 14, 7, 1 ],
    [ 3, 17, 1 ], [ 16, 4, 2 ], [ 5, 14, 2 ], [ 18, 1, 3 ],
    [ 7, 11, 3 ], [ 9, 8, 4 ], [ 11, 5, 5 ], [ 0, 15, 5 ],
    [ 13, 2, 6 ], [ 2, 12, 6 ], [ 4, 9, 7 ], [ 6, 6, 8 ],
    [ 8, 3, 9 ], [ 10, 0, 10 ], [ 1, 7, 11 ], [ 3, 4, 12 ],
    [ 5, 1, 13 ], [ 0, 2, 16 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{HomogeneousBettiElementsOfNumericalSemigroup}}
\logpage{[ 9, 5, 3 ]}\nobreak
\hyperdef{L}{X857CC7FF85C05318}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HomogeneousBettiElementsOfNumericalSemigroup({\mdseries\slshape n, S})\index{HomogeneousBettiElementsOfNumericalSemigroup@\texttt{Homogeneous}\-\texttt{Betti}\-\texttt{Elements}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{HomogeneousBettiElementsOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the set of Betti elements of the
homogenization of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,17,19);;|
  !gapprompt@gap>| !gapinput@BettiElementsOfNumericalSemigroup(s);|
  [ 57, 68, 70 ]
  !gapprompt@gap>| !gapinput@HomogeneousBettiElementsOfNumericalSemigroup(s);|
  [ [ 5, 57 ], [ 5, 68 ], [ 6, 95 ], [ 7, 70 ], [ 9, 153 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{HomogeneousCatenaryDegreeOfNumericalSemigroup}}
\logpage{[ 9, 5, 4 ]}\nobreak
\hyperdef{L}{X7DFFCAC87B3B632B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HomogeneousCatenaryDegreeOfNumericalSemigroup({\mdseries\slshape S})\index{HomogeneousCatenaryDegreeOfNumericalSemigroup@\texttt{Homogeneous}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{HomogeneousCatenaryDegreeOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. The output is the homogeneus catenary degree of \mbox{\texttt{\mdseries\slshape S}}. Observe that for a single element in the homogenization of \mbox{\texttt{\mdseries\slshape S}}, its catenary degree can be computed with CatenaryDegreeOfSetOfFactorizations
and FactorizationsInHomogenizationOfNumericalSemigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,17,19);;|
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfNumericalSemigroup(s);|
  7
  !gapprompt@gap>| !gapinput@HomogeneousCatenaryDegreeOfNumericalSemigroup(s);|
  9
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Divisors, posets }}\logpage{[ 9, 6, 0 ]}
\hyperdef{L}{X7A54E9FD7D4CB18F}{}
{
  Given a numerical semigroup $S$ and two integers $a,b$, we write $a\le_S b$ if $b-a\in S$. We also say that $a$ divides $b$ (with respecto to $S$). The semigroup $S$ with this binary relation is a poset. 

\subsection{\textcolor{Chapter }{MoebiusFunctionAssociatedToNumericalSemigroup}}
\logpage{[ 9, 6, 1 ]}\nobreak
\hyperdef{L}{X853930E97F7F8A43}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MoebiusFunctionAssociatedToNumericalSemigroup({\mdseries\slshape S, n})\index{MoebiusFunctionAssociatedToNumericalSemigroup@\texttt{Moebius}\-\texttt{Function}\-\texttt{Associated}\-\texttt{To}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{MoebiusFunctionAssociatedToNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape n}} is an integer. As $(S,\le_S)$ is a poset, we can define the M{\"o}bius function associtate to it as in \cite{CHRA}. The output is the value of the M{\"o}bius function in the integer \mbox{\texttt{\mdseries\slshape n}}, that is, the alternate sum of the number of chains from 0 to \mbox{\texttt{\mdseries\slshape n}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@MoebiusFunctionAssociatedToNumericalSemigroup(s,10);|
  2
  !gapprompt@gap>| !gapinput@MoebiusFunctionAssociatedToNumericalSemigroup(s,34);|
  25
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Polynomials and numerical semigroups }}\logpage{[ 10, 0, 0 ]}
\hyperdef{L}{X7D2C77607815273E}{}
{
   
\section{\textcolor{Chapter }{ Generating functions or Hilbert series }}\logpage{[ 10, 1, 0 ]}
\hyperdef{L}{X808FAEE28572191C}{}
{
  Let $S$ be a numerical semigroup. The Hilbert series or generating function associated
to $S$ is $H_S(x)=\sum_{s\in S}x^s$ (actually it is the Hilbert function of the ring $K[S]$ with $K$ a field). See for instance \cite{M}. 

\subsection{\textcolor{Chapter }{NumericalSemigroupPolynomial}}
\logpage{[ 10, 1, 1 ]}\nobreak
\hyperdef{L}{X8391C8E782FBFA8A}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumericalSemigroupPolynomial({\mdseries\slshape s, x})\index{NumericalSemigroupPolynomial@\texttt{NumericalSemigroupPolynomial}}
\label{NumericalSemigroupPolynomial}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroups and \mbox{\texttt{\mdseries\slshape x}} a variable (or a value to evaluate in). The output is the polynomial $1+(x-1)\sum_{s\in \mathbb N\setminus S} x^s$, which equals $(1-x)H_S(x)$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,9);;|
  !gapprompt@gap>| !gapinput@NumericalSemigroupPolynomial(s,x);|
  x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{HilbertSeriesOfNumericalSemigroup}}
\logpage{[ 10, 1, 2 ]}\nobreak
\hyperdef{L}{X780479F978D166B0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HilbertSeriesOfNumericalSemigroup({\mdseries\slshape s, x})\index{HilbertSeriesOfNumericalSemigroup@\texttt{HilbertSeriesOfNumericalSemigroup}}
\label{HilbertSeriesOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroups and \mbox{\texttt{\mdseries\slshape x}} a variable (or a value to evaluate in). The output is the series $\sum_{s\in \setminus S} x^s$. The series is given as a rational function. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,9);;|
  !gapprompt@gap>| !gapinput@HilbertSeriesOfNumericalSemigroup(s,x);|
  (x^14-x^13+x^12-x^11+x^9-x^8+x^7-x^6+x^5-x+1)/(-x+1)
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{GraeffePolynomial}}
\logpage{[ 10, 1, 3 ]}\nobreak
\hyperdef{L}{X87C88E5C7B56931F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GraeffePolynomial({\mdseries\slshape p})\index{GraeffePolynomial@\texttt{GraeffePolynomial}}
\label{GraeffePolynomial}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape p}} is a polynomial. Computes the Graeffe polynomial of \mbox{\texttt{\mdseries\slshape p}}. Needed to test if \mbox{\texttt{\mdseries\slshape p}} is a cyclotomic polynomial (see \cite{BD-cyclotomic}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@GraeffePolynomial(x^2-1);|
  x^2-2*x+1
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsCyclotomicPolynomial}}
\logpage{[ 10, 1, 4 ]}\nobreak
\hyperdef{L}{X87A46B53815B158F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsCyclotomicPolynomial({\mdseries\slshape p})\index{IsCyclotomicPolynomial@\texttt{IsCyclotomicPolynomial}}
\label{IsCyclotomicPolynomial}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape p}} is a polynomial. Detects if \mbox{\texttt{\mdseries\slshape p}} is a cyclotomic polynomial using the procedure given in \cite{BD-cyclotomic}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@CyclotomicPolynomial(Rationals,3);|
  x^2+x+1
  !gapprompt@gap>| !gapinput@IsCyclotomicPolynomial(last);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsKroneckerPolynomial}}
\logpage{[ 10, 1, 5 ]}\nobreak
\hyperdef{L}{X7D9618ED83776B0B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsKroneckerPolynomial({\mdseries\slshape p})\index{IsKroneckerPolynomial@\texttt{IsKroneckerPolynomial}}
\label{IsKroneckerPolynomial}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape p}} is a polynomial. Detects if \mbox{\texttt{\mdseries\slshape p}} is a Kronecker polynomial, that is, a monic polynomial with integer
coefficients having all its roots in the unit circunference, or equivalently,
a product of cyclotomic polynomials. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@ s:=NumericalSemigroup(3,5,7);;|
  !gapprompt@gap>| !gapinput@ t:=NumericalSemigroup(4,6,9);;|
  !gapprompt@gap>| !gapinput@p:=NumericalSemigroupPolynomial(s,x);|
  x^5-x^4+x^3-x+1
  !gapprompt@gap>| !gapinput@q:=NumericalSemigroupPolynomial(t,x);|
  x^12-x^11+x^8-x^7+x^6-x^5+x^4-x+1
  !gapprompt@gap>| !gapinput@IsKroneckerPolynomial(p);|
  false
  !gapprompt@gap>| !gapinput@IsKroneckerPolynomial(q);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsCyclotomicNumericalSemigroup}}
\logpage{[ 10, 1, 6 ]}\nobreak
\hyperdef{L}{X8366BB727C496D31}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsCyclotomicNumericalSemigroup({\mdseries\slshape s})\index{IsCyclotomicNumericalSemigroup@\texttt{IsCyclotomicNumericalSemigroup}}
\label{IsCyclotomicNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is a numerical semigroup. Detects if the polynomial associated to \mbox{\texttt{\mdseries\slshape s}} is a Kronecker polynomial. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@l:=CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber(21);;|
  !gapprompt@gap>| !gapinput@ForAll(l,IsCyclotomicNumericalSemigroup);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsSelfReciprocalUnivariatePolynomial}}
\logpage{[ 10, 1, 7 ]}\nobreak
\hyperdef{L}{X82C6355287C3BDD1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsSelfReciprocalUnivariatePolynomial({\mdseries\slshape p})\index{IsSelfReciprocalUnivariatePolynomial@\texttt{IsSelf}\-\texttt{Reciprocal}\-\texttt{Univariate}\-\texttt{Polynomial}}
\label{IsSelfReciprocalUnivariatePolynomial}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape p}} is a polynomial. Detects if \mbox{\texttt{\mdseries\slshape p}} is a selfreciprocal. A numerical semigroup is symmetric if and only if it is
selfreciprocal, \cite{M} 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(13);;|
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@ForAll(l, s->|
  !gapprompt@>| !gapinput@IsSelfReciprocalUnivariatePolynomial(NumericalSemigroupPolynomial(s,x)));|
  true
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Semigroup of values of algebraic curves }}\logpage{[ 10, 2, 0 ]}
\hyperdef{L}{X7EEF2A1781432A2D}{}
{
  Let $f(x,y)\in \mathbb K[x,y]$, with $\mathbb K$ an algebraically close field of characteristic zero. Let $f(x,y)=y^n+a_1(x)y^{n-1}+\dots+a_n(x)$ be a nonzero polynomial of $\mathbb K[x][y]$. After possibly a change of variables, we may assume that, that $\deg_x(a_i(x))\le i-1$ for all $i\in\{1,\ldots, n\}$. For $g\in\mathbb K[x,y]$ that is not a multiple of $f$, define $\mathrm{int}(f,g)=\dim_\mathbb K \frac{\mathbb K[x,y]}{(f,g)}$. If $f$ as a one place at infinity, then the set $\{\mathrm{int}(f,g)\mid g\in\mathbb K[x,y]\setminus(f)\}$ is a free numerical semigroup (and thus a complete intersection). 

\subsection{\textcolor{Chapter }{SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity}}
\logpage{[ 10, 2, 1 ]}\nobreak
\hyperdef{L}{X7FFF949A7BEEA912}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity({\mdseries\slshape f})\index{SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity@\texttt{Semigroup}\-\texttt{Of}\-\texttt{Values}\-\texttt{Of}\-\texttt{Plane}\-\texttt{Curve}\-\texttt{With}\-\texttt{Single}\-\texttt{Place}\-\texttt{At}\-\texttt{Infinity}}
\label{SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is a polynomial in the variables X(Rationals,1) and X(Rationals,2). Computes
the semigroup $\{\mathrm{int}(f,g)\mid g\in\mathbb K[x,y]\setminus(f)\}$. The algorithm checks if \mbox{\texttt{\mdseries\slshape f}} has one place at infinity. If the extra argument "all" is given, then the
output is the $\delta$-sequence and approximate roots of \mbox{\texttt{\mdseries\slshape f}}. The method is explained in \cite{AGS14}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=X(Rationals,"x");; y:=X(Rationals,"y");;|
  !gapprompt@gap>| !gapinput@f:=((y^3-x^2)^2-x*y^2)^4-(y^3-x^2);;|
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(f,"all");|
  [ [ 24, 16, 28, 7 ], [ y, y^3-x^2, y^6-2*x^2*y^3+x^4-x*y^2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsDeltaSequence}}
\logpage{[ 10, 2, 2 ]}\nobreak
\hyperdef{L}{X834D6B1A7C421B9F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsDeltaSequence({\mdseries\slshape l})\index{IsDeltaSequence@\texttt{IsDeltaSequence}}
\label{IsDeltaSequence}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape l}} is a list of positive integers. Assume that \mbox{\texttt{\mdseries\slshape l}} equals $a_0,a_1,\dots,a_h$. Then \mbox{\texttt{\mdseries\slshape l}} is a $\delta$-sequence if $\gcd(a_0,\ldots, a_h)=1$, $\langle a_0,\cdots a_s$ is free, $a_kD_k > a_{k+1}D_{k+1}$ and $a_0> a_1 > D_2 > D_3 > \ldots > D_{h+1}$, where $D_1=a_0$, $D_k=\gcd(D_{k-1},a_{k-1}$. 

 Every $\delta$-sequence generates a numerical semigroup that is the semigroup of values of a
plane curve with one place at infinity. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsDeltaSequence([24,16,28,7]);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSequencesWithFrobeniusNumber}}
\logpage{[ 10, 2, 3 ]}\nobreak
\hyperdef{L}{X824ABFD680A34495}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSequencesWithFrobeniusNumber({\mdseries\slshape f})\index{DeltaSequencesWithFrobeniusNumber@\texttt{DeltaSequencesWithFrobeniusNumber}}
\label{DeltaSequencesWithFrobeniusNumber}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape f}} is a positive integer. Computes the set of all $\delta$-sequences generating numerical semigroups with Frobenius number \mbox{\texttt{\mdseries\slshape f}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@DeltaSequencesWithFrobeniusNumber(21);|
  [ [ 8, 6, 11 ], [ 10, 4, 15 ], [ 12, 8, 6, 11 ], [ 14, 4, 11 ], 
    [ 15, 10, 4 ], [ 23, 2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CurveAssociatedToDeltaSequence}}
\logpage{[ 10, 2, 4 ]}\nobreak
\hyperdef{L}{X87B819B886CA5A5C}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CurveAssociatedToDeltaSequence({\mdseries\slshape l})\index{CurveAssociatedToDeltaSequence@\texttt{CurveAssociatedToDeltaSequence}}
\label{CurveAssociatedToDeltaSequence}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape l}} is a $\delta$-sequence. Computes a curve in the variables X(Rationals,1) and X(Rationals,2)
whose semigroup of values is generated by the \mbox{\texttt{\mdseries\slshape l}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@CurveAssociatedToDeltaSequence([24,16,28,7]);|
  x_2^24-8*x^2*x_2^21+28*x^4*x_2^18-56*x^6*x_2^15-4*x*x_2^20+70*x^8*x_2^12+24*x^\
  3*x_2^17-56*x^10*x_2^9-60*x^5*x_2^14+28*x^12*x_2^6+80*x^7*x_2^11+6*x^2*x_2^16-\
  8*x^14*x_2^3-60*x^9*x_2^8-24*x^4*x_2^13+x^16+24*x^11*x_2^5+36*x^6*x_2^10-4*x^1\
  3*x_2^2-24*x^8*x_2^7-4*x^3*x_2^12+6*x^10*x_2^4+8*x^5*x_2^9-4*x^7*x_2^6+x^4*x_2\
  ^8-x_2^3+x^2
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfPlaneCurveWithSinglePlaceAtInfinity(last,"all");|
  [ [ 24, 16, 28, 7 ], [ x_2, x_2^3-x_1^2, x_2^6-2*x_1^2*x_2^3+x_1^4-x_1*x_2^2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SemigroupOfValuesOfCurve{\textunderscore}Local}}
\logpage{[ 10, 2, 5 ]}\nobreak
\hyperdef{L}{X7F88774F7812D30E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SemigroupOfValuesOfCurve{\textunderscore}Local({\mdseries\slshape arg})\index{SemigroupOfValuesOfCurveLocal@\texttt{Semigroup}\-\texttt{Of}\-\texttt{Values}\-\texttt{Of}\-\texttt{Curve{\textunderscore}}\-\texttt{Local}}
\label{SemigroupOfValuesOfCurveLocal}
}\hfill{\scriptsize (function)}}\\


 The function admits one or two parameters. In any case, the first is a list of
polynomials \mbox{\texttt{\mdseries\slshape pols}}. And the second can be the string \mbox{\texttt{\mdseries\slshape "basis"}} or an integer \mbox{\texttt{\mdseries\slshape val}}. 

 If only one argument is given, the output is the semigroup of all possible
orders of $K[[pols]]$ provided that $K[[x]]/K[[pols]]$ has finite length. If the second argument \mbox{\texttt{\mdseries\slshape "basis"}} is given, then the output is a (reduced) basis of the algebra $K[[pols]]$ such that the orders of the basis elements generate minimally the semigroup of
orders of $K[[pols]]$. If an integer \mbox{\texttt{\mdseries\slshape val}} is the second argument, then the output is a polynomial in $K[[pols]]$ with order \mbox{\texttt{\mdseries\slshape val}} (\texttt{fail} if there is no such polynomioal, that is, \mbox{\texttt{\mdseries\slshape val}} is not in the semigroup of values).

 The method is explained in \cite{AGSM14}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=Indeterminate(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13]);|
  <Numerical semigroup with 4 generators>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystem(last);|
  [ 4, 6, 13, 15 ]
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], "basis");|
  [ x^4, x^7+x^6, x^13, x^15 ]
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Local([x^4,x^6+x^7,x^13], 20);     |
  x^20
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SemigroupOfValuesOfCurve{\textunderscore}Global}}
\logpage{[ 10, 2, 6 ]}\nobreak
\hyperdef{L}{X8597259279D1E793}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SemigroupOfValuesOfCurve{\textunderscore}Global({\mdseries\slshape arg})\index{SemigroupOfValuesOfCurveGlobal@\texttt{Semigroup}\-\texttt{Of}\-\texttt{Values}\-\texttt{Of}\-\texttt{Curve{\textunderscore}}\-\texttt{Global}}
\label{SemigroupOfValuesOfCurveGlobal}
}\hfill{\scriptsize (function)}}\\


 The function admits one or two parameters. In any case, the first is a list of
polynomials \mbox{\texttt{\mdseries\slshape pols}}. And the second can be the string \mbox{\texttt{\mdseries\slshape "basis"}} or an integer \mbox{\texttt{\mdseries\slshape val}}. 

 If only one argument is given, the output is the semigroup of all possible
degrees of $K[pols]$ provided that $K[x]/K[pols]$ has finite length. If the second argument \mbox{\texttt{\mdseries\slshape "basis"}} is given, then the output is a (reduced) basis of the algebra $K[pols]$ such that the degrees of the basis elements generate minimally the semigroup
of degrees of $K[pols]$. If an integer \mbox{\texttt{\mdseries\slshape val}} is the second argument, then the output is a polynomial in $K[pols]$ with degree \mbox{\texttt{\mdseries\slshape val}} (\texttt{fail} if there is no such polynomioal, that is, \mbox{\texttt{\mdseries\slshape val}} is not in the semigroup of values).

 The method is explained in \cite{AGSM14}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@x:=Indeterminate(Rationals,"x");;|
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13]);       |
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@MinimalGeneratingSystem(last);                             |
  [ 4, 7, 13 ]
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],"basis");|
  [ x^4, x^7+x^6, x^13 ]
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],12);     |
  x^12
  !gapprompt@gap>| !gapinput@SemigroupOfValuesOfCurve_Global([x^4,x^6+x^7,x^13],6); |
  fail
\end{Verbatim}
 }

 }

 }

 
\chapter{\textcolor{Chapter }{ Affine semigroups }}\logpage{[ 11, 0, 0 ]}
\hyperdef{L}{X7D92A1997D098A00}{}
{
   The use of the packages \texttt{NormalizInterface} \cite{NmzInterface} (an interface to \texttt{Normalize} \cite{Normaliz}; or in its absence \texttt{4ti2Interface}\cite{4ti2Interface}, and interface to \texttt{4ti2}\cite{4ti2}), \texttt{SingularInterface} (an interface to \texttt{Singular} \cite{Singular}; or in its absence \texttt{Singular} \cite{Singularpackage}); or in its absecnce \texttt{GradedModules} \cite{GradedModules} is highly recomended for many of the functions presented in this chapter.
However, whenever possible a method not depending on these packages is also
provided (though slower). The package tests if the user has downloaded any of
the above packages, and if so puts \texttt{NumSgpsCanUsePackage} to true, where \texttt{Package} is any of the above. 
\section{\textcolor{Chapter }{ Using external packages }}\logpage{[ 11, 1, 0 ]}
\hyperdef{L}{X7BD18FC581F0C4D3}{}
{
  As mentioned above some methods are specifially implemented to take advantage
of several external packages. The following functions can be used in case
these packages have not been loaded prior to \texttt{numericalsgps}. 

\subsection{\textcolor{Chapter }{NumSgpsUse4ti2}}
\logpage{[ 11, 1, 1 ]}\nobreak
\hyperdef{L}{X8736665E7CBEAB20}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUse4ti2({\mdseries\slshape })\index{NumSgpsUse4ti2@\texttt{NumSgpsUse4ti2}}
\label{NumSgpsUse4ti2}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{4ti2Interface}. If the package is available, then it also loads methods implemented using
functions in this package. }

 

\subsection{\textcolor{Chapter }{NumSgpsUse4ti2gap}}
\logpage{[ 11, 1, 2 ]}\nobreak
\hyperdef{L}{X875001717A8CF032}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUse4ti2gap({\mdseries\slshape })\index{NumSgpsUse4ti2gap@\texttt{NumSgpsUse4ti2gap}}
\label{NumSgpsUse4ti2gap}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{4ti2gap}. If the package is available, then it also loads methods implemented using
functions in this package. }

 

\subsection{\textcolor{Chapter }{NumSgpsUseNormalize}}
\logpage{[ 11, 1, 3 ]}\nobreak
\hyperdef{L}{X875040237A692C3C}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUseNormalize({\mdseries\slshape })\index{NumSgpsUseNormalize@\texttt{NumSgpsUseNormalize}}
\label{NumSgpsUseNormalize}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{NormalizInterface}. If the package is available, then it also loads methods implemented using
functions in this package. }

 

\subsection{\textcolor{Chapter }{NumSgpsUseSingular}}
\logpage{[ 11, 1, 4 ]}\nobreak
\hyperdef{L}{X7CD12ADD78089CBE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUseSingular({\mdseries\slshape })\index{NumSgpsUseSingular@\texttt{NumSgpsUseSingular}}
\label{NumSgpsUseSingular}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{singular}. If the package is available, then it also loads methods implemented using
functions in this package. 

 To prevent incompatibilities, the package will not load if \texttt{SingularInterface} has been already loaded. }

 

\subsection{\textcolor{Chapter }{NumSgpsUseSingularInterface}}
\logpage{[ 11, 1, 5 ]}\nobreak
\hyperdef{L}{X7F7699A9829940C2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUseSingularInterface({\mdseries\slshape })\index{NumSgpsUseSingularInterface@\texttt{NumSgpsUseSingularInterface}}
\label{NumSgpsUseSingularInterface}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{SingularInterface}. If the package is available, then it also loads methods implemented using
functions in this package. 

 To prevent incompatibilities, the package will not load if \texttt{singular} has been already loaded. }

 

\subsection{\textcolor{Chapter }{NumSgpsUseSingularGradedModules}}
\logpage{[ 11, 1, 6 ]}\nobreak
\hyperdef{L}{X7F7F2ED87E151582}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NumSgpsUseSingularGradedModules({\mdseries\slshape })\index{NumSgpsUseSingularGradedModules@\texttt{NumSgpsUseSingularGradedModules}}
\label{NumSgpsUseSingularGradedModules}
}\hfill{\scriptsize (function)}}\\


 Tries to load the package \texttt{GradedModules}. If the package is available, then it also loads methods implemented using
functions in this package. 

 It also creates a ring of rationals \texttt{NumSgpsRationals}. }

 }

 
\section{\textcolor{Chapter }{ Defining affine semigroups }}\logpage{[ 11, 2, 0 ]}
\hyperdef{L}{X7E39DA7780D02DF5}{}
{
  An affine semigroup $S$ is a finitely generated cancellative monoid that is reduced (no units other
than 0) and is torsion-free ($ a s= b s$ implies $a=b$, with $a,b\in \mathbb N$ and $s\in S$). Up to isomorphisms any affine semigroup can ve viewed as a finitely
generated submonoid of $\mathbb N^k$ for some positive integer $k$. Thus affine semigroups are a natural generalization of numerical semigroups.
The most common way to give an affine semigroup is by any of its systems of
generators. As for numerical semigroups, any affine semigroup admits a unique
minimal system of generators. A system of generators can be represented as a
list of lists of nonnegative integers; all lists in the list having the same
length (a matrix actually). If $G$ is a subgroup of $\mathbb Z^k$, then $S=G\cap \mathbb N^k$ is an affine semigroup (these semigroups are call full affine semigroups). As $G$ can be represented by its defining equations (homogeneous and some of them
possibly in congruences), we can represent $S$ by the defining equations of $G$; indeed $S$ is just the set of nonnegative solutions of this system of equations. We can
represent the equations as a list of lists of integers, all with the same
length. Every list is a row of the matrix of coefficients of the system of
equations. For the equations in congruences, if we arrange them so that they
are the first ones in the list, we provide the corresponding moduli in a list.
So for instance, the equations $x+y\equiv 0\bmod 2,\ x-2y=0$ will be represented as [[1,1],[1,-2]] and the moduli [2]. 

 To create an affine semigroup in \textsf{GAP} the function \texttt{AffineSemigroup} is used. 

\subsection{\textcolor{Chapter }{AffineSemigroup}}
\logpage{[ 11, 2, 1 ]}\nobreak
\hyperdef{L}{X7AFF988F8797A1EF}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AffineSemigroup({\mdseries\slshape Representation, List})\index{AffineSemigroup@\texttt{AffineSemigroup}}
\label{AffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \texttt{Representation} may be \texttt{"generators"}, \texttt{"minimalgenerators"} according to whether the semigroup is to be given by means of a system of
generators, a minimal system of generators, ... 

 When no string is given as first argument it is assumed that the numerical
semigroup will be given by means of a set of generators. 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@AffineSemigroup([1,3],[7,2],[1,5]);|
  <Affine semigroup in 2 dimensional space, with 3 generators>
  !gapprompt@gap>| !gapinput@a2 := AffineSemigroup("equations",[[[-2,1]],[3]]);|
  <Affine semigroup>
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{AsAffineSemigroup}}
\logpage{[ 11, 2, 2 ]}\nobreak
\hyperdef{L}{X844806D97B4781B5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AsAffineSemigroup({\mdseries\slshape S})\index{AsAffineSemigroup@\texttt{AsAffineSemigroup}}
\label{AsAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup, the output is \mbox{\texttt{\mdseries\slshape S}} regarded as an affine semigroup. 

 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(1310,1411,1546,1601);|
  <Numerical semigroup with 4 generators>
  !gapprompt@gap>| !gapinput@MinimalPresentationOfNumericalSemigroup(s);;time;|
  2960
  !gapprompt@gap>| !gapinput@a:=AsAffineSemigroup(s);|
  <Affine semigroup in 1 dimensional space, with 4 generators>
  !gapprompt@gap>| !gapinput@GeneratorsOfAffineSemigroup(a);|
  [ [ 1310 ], [ 1411 ], [ 1546 ], [ 1601 ] ]
  !gapprompt@gap>| !gapinput@MinimalPresentationOfAffineSemigroup(a);;time;|
  237972
\end{Verbatim}
 If we use the package \texttt{SingularInterface}, the speed up is considerable. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@NumSgpsUseSingularInterface();|
  ...
  !gapprompt@gap>| !gapinput@MinimalPresentationOfAffineSemigroup(a);;time;|
  32
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAffineSemigroup}}
\logpage{[ 11, 2, 3 ]}\nobreak
\hyperdef{L}{X7A2902207BAA3936}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAffineSemigroup({\mdseries\slshape AS})\index{IsAffineSemigroup@\texttt{IsAffineSemigroup}}
\label{IsAffineSemigroup}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAffineSemigroupByGenerators({\mdseries\slshape AS})\index{IsAffineSemigroupByGenerators@\texttt{IsAffineSemigroupByGenerators}}
\label{IsAffineSemigroupByGenerators}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAffineSemigroupByMinimalGenerators({\mdseries\slshape AS})\index{IsAffineSemigroupByMinimalGenerators@\texttt{IsAffine}\-\texttt{Semigroup}\-\texttt{By}\-\texttt{Minimal}\-\texttt{Generators}}
\label{IsAffineSemigroupByMinimalGenerators}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAffineSemigroupByEquations({\mdseries\slshape AS})\index{IsAffineSemigroupByEquations@\texttt{IsAffineSemigroupByEquations}}
\label{IsAffineSemigroupByEquations}
}\hfill{\scriptsize (attribute)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAffineSemigroupByInequalities({\mdseries\slshape AS})\index{IsAffineSemigroupByInequalities@\texttt{IsAffineSemigroupByInequalities}}
\label{IsAffineSemigroupByInequalities}
}\hfill{\scriptsize (attribute)}}\\


 \mbox{\texttt{\mdseries\slshape AS}} is an affine semigroup and these attributes are available (their names should
be self explanatory). They reflect what is currently known about the
semigroup. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a1:=AffineSemigroup([[3,0],[2,1],[1,2],[0,3]]);|
  <Affine semigroup in 2 dimensional space, with 4 generators>
  !gapprompt@gap>| !gapinput@IsAffineSemigroupByEquations(a1);|
  false
  !gapprompt@gap>| !gapinput@IsAffineSemigroupByGenerators(a1);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BelongsToAffineSemigroup}}
\logpage{[ 11, 2, 4 ]}\nobreak
\hyperdef{L}{X851788D781A13C50}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BelongsToAffineSemigroup({\mdseries\slshape v, a})\index{BelongsToAffineSemigroup@\texttt{BelongsToAffineSemigroup}}
\label{BelongsToAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape v}} is a list of nonnegative integers and \mbox{\texttt{\mdseries\slshape a}} an affine semigroup. Returns true if the vector is in the semigroup, and false
otherwise. 

 If the semigroup is full and its equations are known (either because the
semigroup was defined by equations, or because the user has called \texttt{IsFullAffineSemgiroup(a)} and the output was true), then membership is performed by evaluating \mbox{\texttt{\mdseries\slshape v}} in the equations. The same holds for normal semigroups and its defining
inequalities. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([[2,0],[0,2],[1,1]]);;|
  !gapprompt@gap>| !gapinput@BelongsToAffineSemigroup([5,5],a);|
  true
  !gapprompt@gap>| !gapinput@BelongsToAffineSemigroup([1,2],a);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsFullAffineSemigroup}}
\logpage{[ 11, 2, 5 ]}\nobreak
\hyperdef{L}{X82FCB89B80D42205}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsFullAffineSemigroup({\mdseries\slshape S})\index{IsFullAffineSemigroup@\texttt{IsFullAffineSemigroup}}
\label{IsFullAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape s}} is an affine semigroup.

 Returns true if the semigroup is full, false otherwise. The semigroup is full
if whenever $a,b\in S$ and $b-a\in \mathbb N^k$, then $a-b\in S$, where $k$ is the dimension of $S$. 

 If the semigroup is full, then its equations are stored in the semigroup for
further use. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([[2,0],[0,2],[1,1]]);;|
  !gapprompt@gap>| !gapinput@BelongsToAffineSemigroup([5,5],a);|
  true
  !gapprompt@gap>| !gapinput@BelongsToAffineSemigroup([1,2],a);|
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{HilbertBasisOfSystemOfHomogeneousEquations}}
\logpage{[ 11, 2, 6 ]}\nobreak
\hyperdef{L}{X7D4D017A79AD98E2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HilbertBasisOfSystemOfHomogeneousEquations({\mdseries\slshape ls, m})\index{HilbertBasisOfSystemOfHomogeneousEquations@\texttt{Hilbert}\-\texttt{Basis}\-\texttt{Of}\-\texttt{System}\-\texttt{Of}\-\texttt{Homogeneous}\-\texttt{Equations}}
\label{HilbertBasisOfSystemOfHomogeneousEquations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a list of lists of integers and \mbox{\texttt{\mdseries\slshape m}} a list of integers. The elements of \mbox{\texttt{\mdseries\slshape ls}} represent the rows of a matrix $A$. The output is a minimal generating system (Hilbert basis) of the set of
nonnegative integer solutions of the sytem $Ax=0$ where the $k$ first equations are in the congruences modulo \mbox{\texttt{\mdseries\slshape m[i]}}, with $k$ the length of \mbox{\texttt{\mdseries\slshape m}}. 

 If the package \texttt{NormalizInterface} has not been loaded, then Contejean-Devie algorithm is used \cite{MR1283022} instead (if this is the case, congruences are treated as in \cite{R-GS}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@HilbertBasisOfSystemOfHomogeneousEquations([[1,0,1],[0,1,-1]],[2]);|
  [ [ 0, 2, 2 ], [ 1, 1, 1 ], [ 2, 0, 0 ] ]
\end{Verbatim}
 }

 If $C$ is a pointed cone (a cone in $\mathbb Q^k$ not containing lines and $0\in C$), then $S=C\cap \mathbb N^k$ is an affine semigroup (known as normal affine semigroup). So another way to
give an affine semigroup is by a set of homogeneous inequalities, and we can
represent these inequalities by its coefficients. If we put them in a matrix $S$ can be defined as the set of nonnegative integer solutions to $Ax \ge 0$. 

\subsection{\textcolor{Chapter }{HilbertBasisOfSystemOfHomogeneousInequalities}}
\logpage{[ 11, 2, 7 ]}\nobreak
\hyperdef{L}{X825B1CD37B0407A6}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HilbertBasisOfSystemOfHomogeneousInequalities({\mdseries\slshape ls})\index{HilbertBasisOfSystemOfHomogeneousInequalities@\texttt{Hilbert}\-\texttt{Basis}\-\texttt{Of}\-\texttt{System}\-\texttt{Of}\-\texttt{Homogeneous}\-\texttt{Inequalities}}
\label{HilbertBasisOfSystemOfHomogeneousInequalities}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape ls}} is a list of lists of integers. The elements of \mbox{\texttt{\mdseries\slshape ls}} represent the rows of a matrix $A$. The output is a minimal generating system (Hilbert basis) of the set of
nonnegative integer solutions to $Ax\ge 0$. 

 If the package \texttt{NormalizInterface} has not been loaded, then Contejean-Devie algorithm is used \cite{MR1283022} instead (the use of slack variables is described in \cite{R-GS-GG-B}). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@HilbertBasisOfSystemOfHomogeneousInequalities([[2,-3],[0,1]]);|
  [ [ 1, 0 ], [ 2, 1 ], [ 3, 2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{EquationsOfGroupGeneratedBy}}
\logpage{[ 11, 2, 8 ]}\nobreak
\hyperdef{L}{X8307A0597864B098}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EquationsOfGroupGeneratedBy({\mdseries\slshape M})\index{EquationsOfGroupGeneratedBy@\texttt{EquationsOfGroupGeneratedBy}}
\label{EquationsOfGroupGeneratedBy}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape M}} is a matrix of integers. The output is a pair $[A,m]$ that reperesents the set of defining equations of the group spanned by the
rows of \mbox{\texttt{\mdseries\slshape M}}: $Ax=0\in \mathbb Z_{n_1}\times \cdots \times \mathbb Z_{n_t}\times \mathbb Z^k$, with $m=[n_1,\ldots,n_t]$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@EquationsOfGroupGeneratedBy([[1,2,0],[2,-2,2]]);|
  [ [ [ 0, 0, -1 ], [ -2, 1, 3 ] ], [ 2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BasisOfGroupGivenByEquations}}
\logpage{[ 11, 2, 9 ]}\nobreak
\hyperdef{L}{X7A1CE5A98425CEA1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BasisOfGroupGivenByEquations({\mdseries\slshape A, m})\index{BasisOfGroupGivenByEquations@\texttt{BasisOfGroupGivenByEquations}}
\label{BasisOfGroupGivenByEquations}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape A}} is a matrix of integers and \mbox{\texttt{\mdseries\slshape m}} is a list of positive integers. The output is a basis for the group with
defining equations $Ax=0\in \mathbb Z_{n_1}\times \cdots \times \mathbb Z_{n_t}\times \mathbb Z^k$, with $m=[n_1,\ldots,n_t]$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@BasisOfGroupGivenByEquations([[0,0,1],[2,-1,-3]],[2]);|
  [ [ -1, -2, 0 ], [ -2, 2, -2 ] ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Gluings of affine semigroups }}\logpage{[ 11, 3, 0 ]}
\hyperdef{L}{X7F13DF9D7A4FB547}{}
{
  Let $S_1$ and $S_2$ be two affine semigroups with the same dimension generated by $A_1$ and $A_2$, respectively. We say that the affine semigroup $S$ generated by the union of $A_1$ and $A_2$ is a gluing of $S_1$ and $S_2$ if $G(S_1)\cap G(S_2)=d\mathbb Z$ ($G(\cdot)$ stands for group spanned by) for some $d\in S_1\cap S_2$. 

 The algorithm used is explained in \cite{MR1678508}. 

\subsection{\textcolor{Chapter }{GluingOfAffineSemigroups}}
\logpage{[ 11, 3, 1 ]}\nobreak
\hyperdef{L}{X7FE3B3C380641DDC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GluingOfAffineSemigroups({\mdseries\slshape a1, a2})\index{GluingOfAffineSemigroups@\texttt{GluingOfAffineSemigroups}}
\label{GluingOfAffineSemigroups}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a1, a2}} are affine semigroups. Determines if they can be glued, and if so, returns the
gluing. Otherwise it returns fail. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a1:=AffineSemigroup([[2,0],[0,2]]);|
  <Affine semigroup in 2 dimensional space, with 2 generators>
  !gapprompt@gap>| !gapinput@a2:=AffineSemigroup([[1,1]]);|
  <Affine semigroup in 2 dimensional space, with 1 generators>
  !gapprompt@gap>| !gapinput@GluingOfAffineSemigroups(a1,a2);|
  <Affine semigroup in 2 dimensional space, with 3 generators>
  !gapprompt@gap>| !gapinput@GeneratorsAS(last);|
  [ [ 0, 2 ], [ 1, 1 ], [ 2, 0 ] ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Presentations of affine semigroups }}\logpage{[ 11, 4, 0 ]}
\hyperdef{L}{X86A1018D7CB7BA81}{}
{
  A minimal presentation of an affine semigoup is defined analogously as for
numerical semigroups. The user might take into account that generators are
stored in a set, and thus might be arranged in a different way to the intitial
input. 

\subsection{\textcolor{Chapter }{GeneratorsOfKernelCongruence}}
\logpage{[ 11, 4, 1 ]}\nobreak
\hyperdef{L}{X7EE005267DEBC1DE}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{GeneratorsOfKernelCongruence({\mdseries\slshape M})\index{GeneratorsOfKernelCongruence@\texttt{GeneratorsOfKernelCongruence}}
\label{GeneratorsOfKernelCongruence}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape M}} is matrix with nonnegative integer coefficients. The output is a system of
generators of the congruence $\{(x,y)\mid xM=yM\}$. 

 The main differe3nce with \texttt{MinimalPresentationOfAffineSemigroup} is that the matrix \mbox{\texttt{\mdseries\slshape M}} can have repeated columns and these are not treated as a set. }

 

\subsection{\textcolor{Chapter }{MinimalPresentationOfAffineSemigroup}}
\logpage{[ 11, 4, 2 ]}\nobreak
\hyperdef{L}{X7BCA9C077F76920E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MinimalPresentationOfAffineSemigroup({\mdseries\slshape a})\index{MinimalPresentationOfAffineSemigroup@\texttt{Minimal}\-\texttt{Presentation}\-\texttt{Of}\-\texttt{Affine}\-\texttt{Semigroup}}
\label{MinimalPresentationOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is a minimal presentation for \mbox{\texttt{\mdseries\slshape a}}. 

 There are four methods implemented for this function, depending on the
packages loaded. All of them use elimination, and Herzog's correspondence,
computing the kernel of a ring homomorphism (\cite{MR0269762}). The fastest procedure is achived when \texttt{SingularInterface} is loaded, followed by \texttt{Singular}. The procedure that does not use external packages uses internal GAP
Gr{\"o}bner basis computations and thus it is slower. Also in this case, from
the Gr{\"o}bner basis, a minimal set of gerating binomials must be refined,
and for this Rclasses are used (if \texttt{NormalizInterface} is loaded, then the factorizations are faster). The \texttt{4ti2} implementation uses \texttt{4ti2} internal Gr{\"o}bner bases and factorizations are done via \texttt{zsolve}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@MinimalPresentationOfAffineSemigroup(a);|
  [ [ [ 1, 0, 1 ], [ 0, 2, 0 ] ] ]
  !gapprompt@gap>| !gapinput@GeneratorsOfAffineSemigroup(a);|
  [ [ 0, 2 ], [ 1, 1 ], [ 2, 0 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{BettiElementsOfAffineSemigroup}}
\logpage{[ 11, 4, 3 ]}\nobreak
\hyperdef{L}{X7C20CE97840ECF8E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BettiElementsOfAffineSemigroup({\mdseries\slshape a})\index{BettiElementsOfAffineSemigroup@\texttt{BettiElementsOfAffineSemigroup}}
\label{BettiElementsOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the set of Betti elements of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 

 This function relies on the computation of a minimal presentation. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@BettiElementsOfAffineSemigroup(a);|
  [ [ 2, 2 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ShadedSetOfElementInAffineSemigroup}}
\logpage{[ 11, 4, 4 ]}\nobreak
\hyperdef{L}{X7C1B355F83A55285}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ShadedSetOfElementInAffineSemigroup({\mdseries\slshape v, a})\index{ShadedSetOfElementInAffineSemigroup@\texttt{ShadedSetOfElementInAffineSemigroup}}
\label{ShadedSetOfElementInAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup and \mbox{\texttt{\mdseries\slshape v}} is an element in \mbox{\texttt{\mdseries\slshape a}}. This is a translation of \texttt{ShadedSetOfElementInNumericalSemigroup} (\ref{shadedset}) but for affine semigroups. }

 

\subsection{\textcolor{Chapter }{IsGenericAffineSemigroup}}
\logpage{[ 11, 4, 5 ]}\nobreak
\hyperdef{L}{X84FF536281884DB8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGenericAffineSemigroup({\mdseries\slshape a})\index{IsGenericAffineSemigroup@\texttt{IsGenericAffineSemigroup}}
\label{IsGenericAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. 

 The same as \texttt{IsGenericNumericalSemigroup} (\ref{Generic}) but for affine semigroups. }

 

\subsection{\textcolor{Chapter }{IsUniquelyPresentedAffineSemigroup}}
\logpage{[ 11, 4, 6 ]}\nobreak
\hyperdef{L}{X87170BBB85E9DEC8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsUniquelyPresentedAffineSemigroup({\mdseries\slshape a})\index{IsUniquelyPresentedAffineSemigroup@\texttt{IsUniquelyPresentedAffineSemigroup}}
\label{IsUniquelyPresentedAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. 

 The same as \texttt{IsUniquelyPresentedNumericalSemigroup} (\ref{UniqPre}) but for affine semigroups. }

 

\subsection{\textcolor{Chapter }{PrimitiveElementsOfAffineSemigroup}}
\logpage{[ 11, 4, 7 ]}\nobreak
\hyperdef{L}{X86EB7A9A8250E6DB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{PrimitiveElementsOfAffineSemigroup({\mdseries\slshape a})\index{PrimitiveElementsOfAffineSemigroup@\texttt{PrimitiveElementsOfAffineSemigroup}}
\label{PrimitiveElementsOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the set of primitive elements of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 

This function has three implementations (methods), one using Graver basis via
the Lawrence lifting of \mbox{\texttt{\mdseries\slshape a}} and the other (much faster) using \texttt{NormalizInterface}. Also a \texttt{4ti2} version using its Graber basis computation is provided. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@PrimitiveElementsOfAffineSemigroup(a);|
  [ [ 0, 2 ], [ 1, 1 ], [ 2, 0 ], [ 2, 2 ] ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{ Factorizations in affine semigroups }}\logpage{[ 11, 5, 0 ]}
\hyperdef{L}{X80A934B0826E21A6}{}
{
  The invariants presented here are defined as for numerical semigroups. 

As with presentations, the user should take into account that generators are
stored in a set, and thus might be arranged in a different way to the intitial
input. 

\subsection{\textcolor{Chapter }{FactorizationsVectorWRTList}}
\logpage{[ 11, 5, 1 ]}\nobreak
\hyperdef{L}{X8780C7E5830B9AE2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FactorizationsVectorWRTList({\mdseries\slshape v, ls})\index{FactorizationsVectorWRTList@\texttt{FactorizationsVectorWRTList}}
\label{FactorizationsVectorWRTList}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape v}} is a list of nonnegative integers and \mbox{\texttt{\mdseries\slshape ls}} is a list of lists of nonnegative integers. The output is set of
factorizations of \mbox{\texttt{\mdseries\slshape v}} in terms of the elements of \mbox{\texttt{\mdseries\slshape ls}}. 

 If no extra package is loaded, then factorizations are computed recursively;
and thus slowly. If \texttt{NormalizInterface} is loaded, then a system of equations is solve with Normaliz, and the
performance is much better. If \texttt{4ti2Interface} is loaded instead, then factorizations are calculated using \texttt{zsolve} command of \texttt{4ti2}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@FactorizationsVectorWRTList([5,5],[[2,0],[0,2],[1,1]]);|
  [ [ 2, 2, 1 ], [ 1, 1, 3 ], [ 0, 0, 5 ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{ElasticityOfAffineSemigroup}}
\logpage{[ 11, 5, 2 ]}\nobreak
\hyperdef{L}{X7D6B4FB38376C278}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{ElasticityOfAffineSemigroup({\mdseries\slshape a})\index{ElasticityOfAffineSemigroup@\texttt{ElasticityOfAffineSemigroup}}
\label{ElasticityOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the elasticity of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 

 The procedure used is based on \cite{PH}, where it is shown that the elasticity can be computed by using circuits. The
set of circutis is calculated using \cite{MR1394747}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@ElasticityOfAffineSemigroup(a);|
  1
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CatenaryDegreeOfAffineSemigroup}}
\logpage{[ 11, 5, 3 ]}\nobreak
\hyperdef{L}{X8718FF377C186106}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CatenaryDegreeOfAffineSemigroup({\mdseries\slshape a})\index{CatenaryDegreeOfAffineSemigroup@\texttt{CatenaryDegreeOfAffineSemigroup}}
\label{CatenaryDegreeOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the catenary degree of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfAffineSemigroup(a);|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{EqualCatenaryDegreeOfAffineSemigroup}}
\logpage{[ 11, 5, 4 ]}\nobreak
\hyperdef{L}{X7EADD306875FCBE6}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{EqualCatenaryDegreeOfAffineSemigroup({\mdseries\slshape a})\index{EqualCatenaryDegreeOfAffineSemigroup@\texttt{Equal}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Affine}\-\texttt{Semigroup}}
\label{EqualCatenaryDegreeOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the equal catenary degree of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 

This function relies on the results presented in \cite{GSOSN}. }

 

\subsection{\textcolor{Chapter }{HomogeneousCatenaryDegreeOfAffineSemigroup}}
\logpage{[ 11, 5, 5 ]}\nobreak
\hyperdef{L}{X84FE571A7E9E1AE9}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HomogeneousCatenaryDegreeOfAffineSemigroup({\mdseries\slshape a})\index{HomogeneousCatenaryDegreeOfAffineSemigroup@\texttt{Homogeneous}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Affine}\-\texttt{Semigroup}}
\label{HomogeneousCatenaryDegreeOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the homogeneous catenary degree of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 

This function is based on \cite{GSOSN}. }

 

\subsection{\textcolor{Chapter }{MonotoneCatenaryDegreeOfAffineSemigroup}}
\logpage{[ 11, 5, 6 ]}\nobreak
\hyperdef{L}{X8510C1527F2FE18E}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MonotoneCatenaryDegreeOfAffineSemigroup({\mdseries\slshape a})\index{MonotoneCatenaryDegreeOfAffineSemigroup@\texttt{Monotone}\-\texttt{Catenary}\-\texttt{Degree}\-\texttt{Of}\-\texttt{Affine}\-\texttt{Semigroup}}
\label{MonotoneCatenaryDegreeOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the monotone catenary degree of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups), computed as explained in \cite{PH}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup("inequalities",[[2,-1],[-1,3]]);|
  <Affine semigroup>
  !gapprompt@gap>| !gapinput@GeneratorsOfAffineSemigroup(a);|
  [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 3, 1 ] ]
  !gapprompt@gap>| !gapinput@CatenaryDegreeOfAffineSemigroup(a);|
  3
  !gapprompt@gap>| !gapinput@EqualCatenaryDegreeOfAffineSemigroup(a);|
  2
  !gapprompt@gap>| !gapinput@HomogeneousCatenaryDegreeOfAffineSemigroup(a);|
  3
  !gapprompt@gap>| !gapinput@MonotoneCatenaryDegreeOfAffineSemigroup(a);|
  3
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TameDegreeOfAffineSemigroup}}
\logpage{[ 11, 5, 7 ]}\nobreak
\hyperdef{L}{X7B42B3B17D08FE1D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TameDegreeOfAffineSemigroup({\mdseries\slshape a})\index{TameDegreeOfAffineSemigroup@\texttt{TameDegreeOfAffineSemigroup}}
\label{TameDegreeOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the tame degree of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). If \mbox{\texttt{\mdseries\slshape a}} is given by equations (or its equations are known), then the procedure
explained in \cite{GS} is used. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@TameDegreeOfAffineSemigroup(a);|
  2
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{OmegaPrimalityOfElementInAffineSemigroup}}
\logpage{[ 11, 5, 8 ]}\nobreak
\hyperdef{L}{X7F32723C860EA4B2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OmegaPrimalityOfElementInAffineSemigroup({\mdseries\slshape v, a})\index{OmegaPrimalityOfElementInAffineSemigroup@\texttt{Omega}\-\texttt{Primality}\-\texttt{Of}\-\texttt{Element}\-\texttt{In}\-\texttt{Affine}\-\texttt{Semigroup}}
\label{OmegaPrimalityOfElementInAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape v}} is a list of nonnegative integers and \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the omega primality of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). Returns 0 if the element is not in the
semigroup. 

 The implementation of this procedure is performed as explained in \cite{B-GS-G} (also, if the semigroup has defining equations, then it takes advantage of
this fact as explained in this reference). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@OmegaPrimalityOfElementInAffineSemigroup([5,5],a);|
  6
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{OmegaPrimalityOfAffineSemigroup}}
\logpage{[ 11, 5, 9 ]}\nobreak
\hyperdef{L}{X78DC427283B3C6FC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OmegaPrimalityOfAffineSemigroup({\mdseries\slshape a})\index{OmegaPrimalityOfAffineSemigroup@\texttt{OmegaPrimalityOfAffineSemigroup}}
\label{OmegaPrimalityOfAffineSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape a}} is an affine semigroup. The output is the omega primality of \mbox{\texttt{\mdseries\slshape a}} (defined as for numerical semigroups). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@a:=AffineSemigroup([2,0],[0,2],[1,1]);;|
  !gapprompt@gap>| !gapinput@OmegaPrimalityOfAffineSemigroup(a);|
  2
\end{Verbatim}
 }

 }

 }

 

\appendix


\chapter{\textcolor{Chapter }{Generalities}}\logpage{[ "A", 0, 0 ]}
\hyperdef{L}{X7AF8D94A7E56C049}{}
{
 Here we describe some functions which are not specific for numerical
semigroups but are used to do computations with them. As they may have
interest by themselves, we decribe them here. 
\section{\textcolor{Chapter }{B{\a'e}zout sequences}}\logpage{[ "A", 1, 0 ]}
\hyperdef{L}{X7A5D608487A8C98F}{}
{
 A sequence of positive rational numbers $ a_1/b_1 < \cdots < a_n/b_n$ with $a_i,b_i$ positive integers is a \emph{B{\a'e}zout sequence} if $ a_{i+1}b_i - a_i b_{i+1}=1$ for all $i\in \{1,\ldots,n-1\}$. 

 The following function uses an algorithm presented in \cite{Ros05}. 

\subsection{\textcolor{Chapter }{BezoutSequence}}
\logpage{[ "A", 1, 1 ]}\nobreak
\hyperdef{L}{X86859C84858ECAF1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BezoutSequence({\mdseries\slshape arg})\index{BezoutSequence@\texttt{BezoutSequence}}
\label{BezoutSequence}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape arg}} consits of two rational numbers or a list of two rational numbers. The output
is a B{\a'e}zout sequence with ends the two rational numbers given. (Warning:
rational numbers are silently transformed into irreducible fractions.) 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@BezoutSequence(4/5,53/27);|
  [ 4/5, 1, 3/2, 5/3, 7/4, 9/5, 11/6, 13/7, 15/8, 17/9, 19/10, 21/11, 23/12,
    25/13, 27/14, 29/15, 31/16, 33/17, 35/18, 37/19, 39/20, 41/21, 43/22,
    45/23, 47/24, 49/25, 51/26, 53/27 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsBezoutSequence}}
\logpage{[ "A", 1, 2 ]}\nobreak
\hyperdef{L}{X86C990AC7F40E8D0}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsBezoutSequence({\mdseries\slshape L})\index{IsBezoutSequence@\texttt{IsBezoutSequence}}
\label{IsBezoutSequence}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape L}} is a list of rational numbers. \texttt{IsBezoutSequence} returns \texttt{true} or \texttt{false} according to whether \mbox{\texttt{\mdseries\slshape L}} is a B{\a'e}zout sequence or not. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsBezoutSequence([ 4/5, 1, 3/2, 5/3, 7/4, 9/5, 11/6]);|
  true
  !gapprompt@gap>| !gapinput@IsBezoutSequence([ 4/5, 1, 3/2, 5/3, 7/4, 9/5, 11/3]);|
  Take the 6 and the 7 elements of the sequence
  false
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{CeilingOfRational}}
\logpage{[ "A", 1, 3 ]}\nobreak
\hyperdef{L}{X7C9DCBAF825CF7B2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CeilingOfRational({\mdseries\slshape r})\index{CeilingOfRational@\texttt{CeilingOfRational}}
\label{CeilingOfRational}
}\hfill{\scriptsize (function)}}\\


 Returns the smallest integer greater than or equal to the rational \mbox{\texttt{\mdseries\slshape r}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@CeilingOfRational(3/5);|
  1
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Periodic subadditive functions}}\logpage{[ "A", 2, 0 ]}
\hyperdef{L}{X7D3D347987953F44}{}
{
 A periodic function $f$ of period $m$ from the set $ {\mathbb N} $ of natural numbers into itself may be specified through a list of $m$ natural numbers. The function $f$ is said to be \emph{subadditive} if $f(i+j)\leq f(i)+f(j)$ and $f(0)=0$. 

\subsection{\textcolor{Chapter }{RepresentsPeriodicSubAdditiveFunction}}
\logpage{[ "A", 2, 1 ]}\nobreak
\hyperdef{L}{X8466A4DC82F07579}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RepresentsPeriodicSubAdditiveFunction({\mdseries\slshape L})\index{RepresentsPeriodicSubAdditiveFunction@\texttt{Represents}\-\texttt{Periodic}\-\texttt{Sub}\-\texttt{Additive}\-\texttt{Function}}
\label{RepresentsPeriodicSubAdditiveFunction}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape L}} is a list of integers. \texttt{RepresentsPeriodicSubAdditiveFunction} returns \texttt{true} or \texttt{false} according to whether \mbox{\texttt{\mdseries\slshape L}} represents a periodic subAdditive function $f$ periodic of period $m$ or not. To avoid defining $f(0)$ (which we assume to be 0) we define $f(m)=0$ and so the last element of the list must be 0. This technical need is due to
the fact that positions in a list must be positive (not a 0). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RepresentsPeriodicSubAdditiveFunction([1,2,3,4,0]);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsListOfIntegersNS}}
\logpage{[ "A", 2, 2 ]}\nobreak
\hyperdef{L}{X7DFEDA6B87BB2E1F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsListOfIntegersNS({\mdseries\slshape L})\index{IsListOfIntegersNS@\texttt{IsListOfIntegersNS}}
\label{IsListOfIntegersNS}
}\hfill{\scriptsize (function)}}\\


 Detects wheter \mbox{\texttt{\mdseries\slshape L}} is a nonempty list of integers. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@IsListOfIntegersNS([1,-1,0]);|
  true
  !gapprompt@gap>| !gapinput@IsListOfIntegersNS(2);|
  false
  !gapprompt@gap>| !gapinput@IsListOfIntegersNS([[2],3]);|
  false
  !gapprompt@gap>| !gapinput@IsListOfIntegersNS([]);|
  false
\end{Verbatim}
 }

 }

 }


\chapter{\textcolor{Chapter }{Random functions}}\logpage{[ "B", 0, 0 ]}
\hyperdef{L}{X86746B487B54A2D6}{}
{
 Here we describe some functions which allow to create several "random"
objects. 
\section{\textcolor{Chapter }{Random functions}}\logpage{[ "B", 1, 0 ]}
\hyperdef{L}{X86746B487B54A2D6}{}
{
 

\subsection{\textcolor{Chapter }{RandomNumericalSemigroup}}
\logpage{[ "B", 1, 1 ]}\nobreak
\hyperdef{L}{X7CC477867B00AD13}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomNumericalSemigroup({\mdseries\slshape n, a[, b]})\index{RandomNumericalSemigroup@\texttt{RandomNumericalSemigroup}}
\label{RandomNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Returns a ``random" numerical semigroup with no more than \mbox{\texttt{\mdseries\slshape n}} generators in [1..\mbox{\texttt{\mdseries\slshape a}}] (or in [\mbox{\texttt{\mdseries\slshape a}}..\mbox{\texttt{\mdseries\slshape b}}], if \mbox{\texttt{\mdseries\slshape b}} is present). 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RandomNumericalSemigroup(3,9);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@RandomNumericalSemigroup(3,9,55);|
  <Numerical semigroup with 3 generators>
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomListForNS}}
\logpage{[ "B", 1, 2 ]}\nobreak
\hyperdef{L}{X79E73F8787741190}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomListForNS({\mdseries\slshape n, a, b})\index{RandomListForNS@\texttt{RandomListForNS}}
\label{RandomListForNS}
}\hfill{\scriptsize (function)}}\\


 Returns a set of length not greater than \mbox{\texttt{\mdseries\slshape n}} of random integers in \mbox{\texttt{\mdseries\slshape [a..b]}} whose GCD is 1. It is used to create "random" numerical semigroups. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RandomListForNS(13,1,79);|
  [ 22, 26, 29, 31, 34, 46, 53, 61, 62, 73, 76 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomModularNumericalSemigroup}}
\logpage{[ "B", 1, 3 ]}\nobreak
\hyperdef{L}{X82E22E9B843DF70F}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomModularNumericalSemigroup({\mdseries\slshape k[, m]})\index{RandomModularNumericalSemigroup@\texttt{RandomModularNumericalSemigroup}}
\label{RandomModularNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Returns a ``random" modular numerical semigroup $S(a,b)$ with $ a \le k $ (see \ref{llab1}) and multiplicity at least $m$, were $m$ is the second argument, which may not be present.. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RandomModularNumericalSemigroup(9);|
  <Modular numerical semigroup satisfying 5x mod 6 <= x >
  !gapprompt@gap>| !gapinput@RandomModularNumericalSemigroup(10,25);|
  <Modular numerical semigroup satisfying 4x mod 157 <= x >
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomProportionallyModularNumericalSemigroup}}
\logpage{[ "B", 1, 4 ]}\nobreak
\hyperdef{L}{X8598F10A7CD4A135}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomProportionallyModularNumericalSemigroup({\mdseries\slshape k[, m]})\index{RandomProportionallyModularNumericalSemigroup@\texttt{Random}\-\texttt{Proportionally}\-\texttt{Modular}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{RandomProportionallyModularNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 Returns a ``random" proportionally modular numerical semigroup $S(a,b,c)$ with $ a \le k $ (see \ref{llab1}) and multiplicity at least $m$, were $m$ is the second argument, which may not be present. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RandomProportionallyModularNumericalSemigroup(9);|
  <Proportionally modular numerical semigroup satisfying 2x mod 3 <= 2x >
  !gapprompt@gap>| !gapinput@RandomProportionallyModularNumericalSemigroup(10,25);|
  <Proportionally modular numerical semigroup satisfying 6x mod 681 <= 2x >
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomListRepresentingSubAdditiveFunction}}
\logpage{[ "B", 1, 5 ]}\nobreak
\hyperdef{L}{X8665F6B08036AFFB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomListRepresentingSubAdditiveFunction({\mdseries\slshape m, a})\index{RandomListRepresentingSubAdditiveFunction@\texttt{Random}\-\texttt{List}\-\texttt{Representing}\-\texttt{Sub}\-\texttt{Additive}\-\texttt{Function}}
\label{RandomListRepresentingSubAdditiveFunction}
}\hfill{\scriptsize (function)}}\\


 Produces a ``random" list representing a subadditive function (see \ref{llab2}) which is periodic with period \mbox{\texttt{\mdseries\slshape m}} (or less). When possible, the images are in \mbox{\texttt{\mdseries\slshape [a..20*a]}}. (Otherwise, the list of possible images is enlarged.) 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@RandomListRepresentingSubAdditiveFunction(7,9);|
  [ 173, 114, 67, 0 ]
  !gapprompt@gap>| !gapinput@RepresentsPeriodicSubAdditiveFunction(last);|
  true
\end{Verbatim}
 }

 }

 }


\chapter{\textcolor{Chapter }{Contributions}}\logpage{[ "C", 0, 0 ]}
\hyperdef{L}{X7F1146137C92FF0E}{}
{
 
\section{\textcolor{Chapter }{Functions implemented by A. Sammartano}}\logpage{[ "C", 1, 0 ]}
\hyperdef{L}{X8516272A7ACC7C02}{}
{
 

\subsection{\textcolor{Chapter }{IsGradedAssociatedRingNumericalSemigroupBuchsbaum}}
\logpage{[ "C", 1, 1 ]}\nobreak
\hyperdef{L}{X782D557583CEDD04}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGradedAssociatedRingNumericalSemigroupBuchsbaum({\mdseries\slshape S})\index{IsGradedAssociatedRingNumericalSemigroupBuchsbaum@\texttt{IsGraded}\-\texttt{Associated}\-\texttt{Ring}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{Buchsbaum}}
\label{IsGradedAssociatedRingNumericalSemigroupBuchsbaum}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if the graded ring associated to $K[[\mbox{\texttt{\mdseries\slshape S}}]]$ is Buchsbaum, and false otherwise. This test is the implementation of the
algorithm given in \cite{DA-M-M}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupBuchsbaum(s);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsMpureNumericalSemigroup}}
\logpage{[ "C", 1, 2 ]}\nobreak
\hyperdef{L}{X87A47D22814E0DA8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsMpureNumericalSemigroup({\mdseries\slshape S})\index{IsMpureNumericalSemigroup@\texttt{IsMpureNumericalSemigroup}}
\label{IsMpureNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Test for the M-Purity of the numerical semigroup S \mbox{\texttt{\mdseries\slshape S}}. This test is based on \cite{Br}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsMpureNumericalSemigroup(s);                                       |
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsMpureNumericalSemigroup(s); |
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsPureNumericalSemigroup}}
\logpage{[ "C", 1, 3 ]}\nobreak
\hyperdef{L}{X83C96D0D7C8A507D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsPureNumericalSemigroup({\mdseries\slshape S})\index{IsPureNumericalSemigroup@\texttt{IsPureNumericalSemigroup}}
\label{IsPureNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Test for the purity of the numerical semigroup S \mbox{\texttt{\mdseries\slshape S}}. This test is based on \cite{Br}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsPureNumericalSemigroup(s);                                       |
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsPureNumericalSemigroup(s); |
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsGradedAssociatedRingNumericalSemigroupGorenstein}}
\logpage{[ "C", 1, 4 ]}\nobreak
\hyperdef{L}{X7A5752C0836370FA}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGradedAssociatedRingNumericalSemigroupGorenstein({\mdseries\slshape S})\index{IsGradedAssociatedRingNumericalSemigroupGorenstein@\texttt{IsGraded}\-\texttt{Associated}\-\texttt{Ring}\-\texttt{Numerical}\-\texttt{Semigroup}\-\texttt{Gorenstein}}
\label{IsGradedAssociatedRingNumericalSemigroupGorenstein}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if the graded ring associated to $K[[\mbox{\texttt{\mdseries\slshape S}}]]$ is Gorenstein, and false otherwise. This test is the implementation of the
algorithm given in \cite{DA-M-S}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupGorenstein(s);|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupGorenstein(s);|
  true
\end{Verbatim}
 }

  

\subsection{\textcolor{Chapter }{IsGradedAssociatedRingNumericalSemigroupCI}}
\logpage{[ "C", 1, 5 ]}\nobreak
\hyperdef{L}{X7800C5D68641E2B7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsGradedAssociatedRingNumericalSemigroupCI({\mdseries\slshape S})\index{IsGradedAssociatedRingNumericalSemigroupCI@\texttt{IsGraded}\-\texttt{Associated}\-\texttt{Ring}\-\texttt{Numerical}\-\texttt{SemigroupCI}}
\label{IsGradedAssociatedRingNumericalSemigroupCI}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Returns true if the Complete Intersection property of the associated graded
ring of a numerical semigroup ring associated to $K[[\mbox{\texttt{\mdseries\slshape S}}]]$, and false otherwise. This test is the implementation of the algorithm given
in \cite{DAMSwhen}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupCI(s);|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsGradedAssociatedRingNumericalSemigroupCI(s);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAperySetGammaRectangular}}
\logpage{[ "C", 1, 6 ]}\nobreak
\hyperdef{L}{X80CAA1FA7F6FF4FD}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAperySetGammaRectangular({\mdseries\slshape S})\index{IsAperySetGammaRectangular@\texttt{IsAperySetGammaRectangular}}
\label{IsAperySetGammaRectangular}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Test for the Gamma-Rectangularity of the Ap{\a'e}ry Set of a numerical
semigroup. This test is the implementation of the algorithm given in \cite{DAMSClasses}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsAperySetGammaRectangular(s);|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsAperySetGammaRectangular(s);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAperySetBetaRectangular}}
\logpage{[ "C", 1, 7 ]}\nobreak
\hyperdef{L}{X7E6E262C7C421635}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAperySetBetaRectangular({\mdseries\slshape S})\index{IsAperySetBetaRectangular@\texttt{IsAperySetBetaRectangular}}
\label{IsAperySetBetaRectangular}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Test for the Beta-Rectangularity of the Ap{\a'e}ry Set of a numerical
semigroup. This test is the implementation of the algorithm given in \cite{DAMSClasses}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsAperySetBetaRectangular(s);|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsAperySetBetaRectangular(s);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsAperySetAlphaRectangular}}
\logpage{[ "C", 1, 8 ]}\nobreak
\hyperdef{L}{X86F52FB67F76D2CB}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsAperySetAlphaRectangular({\mdseries\slshape S})\index{IsAperySetAlphaRectangular@\texttt{IsAperySetAlphaRectangular}}
\label{IsAperySetAlphaRectangular}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Test for the Alpha-Rectangularity of the Ap{\a'e}ry Set of a numerical
semigroup. This test is the implementation of the algorithm given in \cite{DAMSClasses}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@IsAperySetAlphaRectangular(s);|
  false
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@IsAperySetAlphaRectangular(s);|
  true
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{TypeSequenceOfNumericalSemigroup}}
\logpage{[ "C", 1, 9 ]}\nobreak
\hyperdef{L}{X7D2A75F086A5466B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{TypeSequenceOfNumericalSemigroup({\mdseries\slshape S})\index{TypeSequenceOfNumericalSemigroup@\texttt{TypeSequenceOfNumericalSemigroup}}
\label{TypeSequenceOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Computes the type sequence of a numerical semigroup. This test is the
implementation of the algorithm given in \cite{BDF97}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);;|
  !gapprompt@gap>| !gapinput@TypeSequenceOfNumericalSemigroup(s);|
  [ 13, 3, 4, 4, 7, 3, 3, 3, 2, 2, 2, 3, 3, 2, 4, 3, 2, 1, 3, 2, 1, 1, 2, 2, 1, 
    1, 1, 2, 2, 1, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 
    1, 1, 1 ]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(4,6,11);;|
  !gapprompt@gap>| !gapinput@TypeSequenceOfNumericalSemigroup(s);|
  [ 1, 1, 1, 1, 1, 1, 1 ]
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Functions implemented by C. O'Neill}}\logpage{[ "C", 2, 0 ]}
\hyperdef{L}{X821A695C7C0BDF59}{}
{
 This section includes the implementations of some procedures described in \cite{B-P-ON}. 

\subsection{\textcolor{Chapter }{OmegaPrimalityOfElementListInNumericalSemigroup}}
\logpage{[ "C", 2, 1 ]}\nobreak
\hyperdef{L}{X85EB5E2581FFB8B2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{OmegaPrimalityOfElementListInNumericalSemigroup({\mdseries\slshape l, S})\index{OmegaPrimalityOfElementListInNumericalSemigroup@\texttt{Omega}\-\texttt{Primality}\-\texttt{Of}\-\texttt{Element}\-\texttt{List}\-\texttt{In}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{OmegaPrimalityOfElementListInNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape l}} a list of elements of \mbox{\texttt{\mdseries\slshape S}}. 

 Computes the omega-values of all the elements in \mbox{\texttt{\mdseries\slshape l}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);;|
  !gapprompt@gap>| !gapinput@l:=FirstElementsOfNumericalSemigroup(100,s);;|
  !gapprompt@gap>| !gapinput@List(l,x->OmegaPrimalityOfElementInNumericalSemigroup(x,s)); time;|
  [ 0, 4, 5, 5, 4, 6, 7, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 8, 7, 8, 9, 8, 8, 8, 
    8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10, 
    10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12, 
    12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14, 
    14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
  218
  !gapprompt@gap>| !gapinput@OmegaPrimalityOfElementListInNumericalSemigroup(l,s);time;|
  [ 0, 4, 5, 5, 4, 6, 7, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 8, 7, 8, 9, 8, 8, 8, 
    8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10, 
    10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12, 
    12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14, 
    14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
  10
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{FactorizationsElementListWRTNumericalSemigroup}}
\logpage{[ "C", 2, 2 ]}\nobreak
\hyperdef{L}{X87C9E03C818AE1AA}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{FactorizationsElementListWRTNumericalSemigroup({\mdseries\slshape l, S})\index{FactorizationsElementListWRTNumericalSemigroup@\texttt{Factorizations}\-\texttt{Element}\-\texttt{List}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{FactorizationsElementListWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup and \mbox{\texttt{\mdseries\slshape l}} a list of elements of \mbox{\texttt{\mdseries\slshape S}}. 

 Computes the factorizations of all the elements in \mbox{\texttt{\mdseries\slshape l}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(10,11,13);|
  <Numerical semigroup with 3 generators>
  !gapprompt@gap>| !gapinput@FactorizationsElementListWRTNumericalSemigroup([100,101,103],s);|
  [ [ [ 0, 2, 6 ], [ 1, 7, 1 ], [ 3, 4, 2 ], [ 5, 1, 3 ], [ 10, 0, 0 ] ],
    [ [ 0, 8, 1 ], [ 1, 0, 7 ], [ 2, 5, 2 ], [ 4, 2, 3 ], [ 9, 1, 0 ] ],
    [ [ 0, 7, 2 ], [ 2, 4, 3 ], [ 4, 1, 4 ], [ 7, 3, 0 ], [ 9, 0, 1 ] ] ]
  
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetPeriodicityBoundForNumericalSemigroup}}
\logpage{[ "C", 2, 3 ]}\nobreak
\hyperdef{L}{X7A08CF05821DD2FC}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetPeriodicityBoundForNumericalSemigroup({\mdseries\slshape S})\index{DeltaSetPeriodicityBoundForNumericalSemigroup@\texttt{Delta}\-\texttt{Set}\-\texttt{Periodicity}\-\texttt{Bound}\-\texttt{For}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DeltaSetPeriodicityBoundForNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Computes the bound were the periodicity starts for Delta sets of the elements
in \mbox{\texttt{\mdseries\slshape S}}; see \cite{GG-MF-VT}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,11);;|
  !gapprompt@gap>| !gapinput@DeltaSetPeriodicityBoundForNumericalSemigroup(s);|
  60
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetPeriodicityStartForNumericalSemigroup}}
\logpage{[ "C", 2, 4 ]}\nobreak
\hyperdef{L}{X8123FC0E83ADEE45}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetPeriodicityStartForNumericalSemigroup({\mdseries\slshape S})\index{DeltaSetPeriodicityStartForNumericalSemigroup@\texttt{Delta}\-\texttt{Set}\-\texttt{Periodicity}\-\texttt{Start}\-\texttt{For}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DeltaSetPeriodicityStartForNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Computes the element were the periodicity starts for Delta sets of the
elements in \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,11);;|
  !gapprompt@gap>| !gapinput@DeltaSetPeriodicityStartForNumericalSemigroup(s);|
  21
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetListUpToElementWRTNumericalSemigroup}}
\logpage{[ "C", 2, 5 ]}\nobreak
\hyperdef{L}{X80B5DF908246BEB1}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetListUpToElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{DeltaSetListUpToElementWRTNumericalSemigroup@\texttt{Delta}\-\texttt{Set}\-\texttt{List}\-\texttt{Up}\-\texttt{To}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DeltaSetListUpToElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup, \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. 

 Computes the Delta sets of the integers up to (and including) \mbox{\texttt{\mdseries\slshape n}}, if an integer is not in \mbox{\texttt{\mdseries\slshape S}}, the corresponding Delta set is empty. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,11);;|
  !gapprompt@gap>| !gapinput@DeltaSetListUpToElementWRTNumericalSemigroup(31,s);|
  [ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
    [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [ 2 ], [  ], [  ], [ 2 ], [  ], 
    [ 2 ], [  ], [ 2 ], [ 2 ], [  ] ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetUnionUpToElementWRTNumericalSemigroup}}
\logpage{[ "C", 2, 6 ]}\nobreak
\hyperdef{L}{X85C6973E81583E8B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetUnionUpToElementWRTNumericalSemigroup({\mdseries\slshape n, S})\index{DeltaSetUnionUpToElementWRTNumericalSemigroup@\texttt{Delta}\-\texttt{Set}\-\texttt{Union}\-\texttt{Up}\-\texttt{To}\-\texttt{Element}\-\texttt{W}\-\texttt{R}\-\texttt{T}\-\texttt{Numerical}\-\texttt{Semigroup}}
\label{DeltaSetUnionUpToElementWRTNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup, \mbox{\texttt{\mdseries\slshape n}} a nonnegative integer. 

 Computes the union of the delta sets of the elements of \mbox{\texttt{\mdseries\slshape S}} up to and including \mbox{\texttt{\mdseries\slshape n}}, using a ring buffer to conserve memory. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,11);;|
  !gapprompt@gap>| !gapinput@DeltaSetUnionUpToElementWRTNumericalSemigroup(60,s);|
  [ 2 ]
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DeltaSetOfNumericalSemigroup}}
\logpage{[ "C", 2, 7 ]}\nobreak
\hyperdef{L}{X8325EBE17ED95740}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DeltaSetOfNumericalSemigroup({\mdseries\slshape S})\index{DeltaSetOfNumericalSemigroup@\texttt{DeltaSetOfNumericalSemigroup}}
\label{DeltaSetOfNumericalSemigroup}
}\hfill{\scriptsize (function)}}\\


 \mbox{\texttt{\mdseries\slshape S}} is a numerical semigroup. 

 Computes the Delta set of \mbox{\texttt{\mdseries\slshape S}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@s:=NumericalSemigroup(5,7,11);;|
  !gapprompt@gap>| !gapinput@DeltaSetOfNumericalSemigroup(s);|
  [ 2 ]
\end{Verbatim}
 }

 }

 }

\def\bibname{References\logpage{[ "Bib", 0, 0 ]}
\hyperdef{L}{X7A6F98FD85F02BFE}{}
}

\bibliographystyle{alpha}
\bibliography{NumericalSgpsMan}

\addcontentsline{toc}{chapter}{References}

\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}
\hyperdef{L}{X83A0356F839C696F}{}
}

\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Index}


\printindex

\newpage
\immediate\write\pagenrlog{["End"], \arabic{page}];}
\immediate\closeout\pagenrlog
\end{document}
