In [1]:
LoadPackage("FrancyMonoids");


Out[1]:
true

Trees


In [2]:
s:=NumericalSemigroup(1);


Out[2]:
The numerical semigroup N

DrawTreeOfSonsOfNumericalSemigroup(s,l,gensfunc)

This function draws the thre of the sons of s up to level l with respect to gensfunc (a function that gets minimal generators according to a given variety of numerical semigroups, for instance, MinimalGenerators)


In [3]:
DrawTreeOfSonsOfNumericalSemigroup(s,5,MinimalGenerators);


Out[3]:

In [4]:
s:=NumericalSemigroup(4,6,9);


Out[4]:
Numerical semigroup with 3 generators

DrawTreeOfGluingsOfNumericalSemigroup(s,expand...)

Draws the decomposition of s as a gluing of numerical semigroups, and then proceeds recursively with each of the factors. Decomposition is not unique, and this is why a tree is drawn. The optional argument expand may be true or false, and it makes the tree fully expandable or not.


In [5]:
DrawTreeOfGluingsOfNumericalSemigroup(s,true);


Out[5]:

Hasse Diagrams


In [6]:
s:=NumericalSemigroup(3,5,7);


Out[6]:
Numerical semigroup with 3 generators

DrawHasseDiagramOfNumericalSemigroup(s, A)

Draws the Hasse diagram of A (a set of integers) with respect to the ordering induced by s: $a\preceq b$ if $b-a$ is in s.


In [7]:
DrawHasseDiagramOfNumericalSemigroup(s,[1..20]);


Out[7]:

Of special interest is the Hasse diagram of an Apéry set or of the Betti elements.


In [9]:
s:=NumericalSemigroup(5,7,9,11);
DrawHasseDiagramOfNumericalSemigroup(s,AperyList(s,10));


Out[9]:
Numerical semigroup with 4 generators
Out[9]:

DrawOverSemigroupsNumericalSemigroup(s)

Draws the Hasse diagram of oversemigroups of the numerical semigroup s.


In [11]:
s:=NumericalSemigroup(5,7,11,13);
DrawOverSemigroupsNumericalSemigroup(s);


Out[11]:
Numerical semigroup with 4 generators
Out[11]:

Graphs


In [12]:
s:=NumericalSemigroup(3,5,7);


Out[12]:
Numerical semigroup with 3 generators

In [13]:
f:=FactorizationsElementWRTNumericalSemigroup(30,s);


Out[13]:
[ [ 10, 0, 0 ], [ 5, 3, 0 ], [ 0, 6, 0 ], [ 6, 1, 1 ], [ 1, 4, 1 ], [ 2, 2, 2 ], [ 3, 0, 3 ] ]

DrawFactorizationGraph(f)

Draws the factorization graph of a set of factorizations f, the complete graph with vertices the elements of f. Labels are labeled with distances between the nodes they join. It also draws a minimal spanning tree (with minimal distances) and thus one can read the Catenary degree from this tree.


In [14]:
DrawFactorizationGraph(f);


Out[14]:

DrawEliahouGraph(f)

Draws the Eliahou's graph associated to the set of factorizations f. The vertices of the graph are the elements in f, and two vertices are joined with an edge if they have common support.


In [15]:
DrawEliahouGraph(f);


Out[15]:

DrawRosalesGraph(n,s)

Draws the Rosales graph associated to n in s. The semigroup s can be either a numerical or an affine semigroup. The vertices of the graph are the minimal generators a of s such that n-a is in s, and edges are pairs ab such that n-(a+b) is in s.


In [16]:
DrawRosalesGraph(10,s);


Out[16]:

In [17]:
BettiElements(s);


Out[17]:
[ 10, 12, 14 ]