Skip to article frontmatterSkip to article content

Numerical semigroups and notable elements

Some basic definitions

Recall that a numerical semigroup SS is a subset of the set of nonnegative integers, N\mathbb{N}, that is closed under addition, 0S0\in S, and there are only finitely many positive integers not belonging to SS. The first two contidions imply that (S,+)(S,+) is a submonoid of (N,+)(\mathbb{N},+).

The set NS\mathbb{N}\setminus S is known as the set of gaps of SS, denoted G(S)\operatorname{G}(S), and the largest integer not belonging to SS is its Frobenius number, F(S)\operatorname{F}(S). The conductor of SS, C(S)\operatorname{C}(S) has the following property: C(S)+NS\operatorname{C}(S)+\mathbb{N}\subseteq S.

LoadPackage("num");
true
s:=NumericalSemigroupByGaps([1..5]);
<Numerical semigroup>
10 in s;
true
FrobeniusNumber(s);
5
Gaps(s);
[ 1 .. 5 ]

We can see which elements in the semigroup are in a given interval.

Intersection(s,[0..30]);
[ 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ]

Or which is the iith element in the semigroup.

s[30];
34

Or even, what are the first nn elements in the semigroup.

s{[1..20]};
[ 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 ]

The genus of SS is the cardinality of NS\mathbb{N}\setminus S, denoted g(S)\operatorname{g}(S).

Genus(s);
5

The set S[0,C(S)]S\cap[0,\operatorname{C}(S)] is known as the set of small elements of SS (if we remove the conductor, then somtimes is called the set of left or sporadic elements).

SmallElements(s);
[ 0, 6 ]
s=NumericalSemigroupBySmallElements([0,6]);
true

Denote by n(S)=#{sS:s<F(S)}\operatorname{n}(S)=\#\{s \in S : s<\operatorname{F}(S)\}. It follows that n(S)+g(S)=F(S)+1\operatorname{n}(S)+\operatorname{g}(S)=\operatorname{F}(S)+1. Since for every nSn\in S with n<F(S)n<\operatorname{F}(S) we have that F(S)n∉S\operatorname{F}(S)-n\not\in S, we have that there are less left elements than gaps, and so the following inequality always holds.

Genus(s)>= (FrobeniusNumber(s)+1)/2;
true

Given AA a set of positive integers, the submonoid (under addition) of N\mathbb{N} generated by AA is the intersection of all submonoids of N\mathbb{N} contanining AA, which can be described as

A={i=1nλiai:nN,λiN,aiA}. \langle A\rangle = \left\{ \sum_{i=1}^n \lambda_i a_i : n\in\mathbb{N}, \lambda_i\in \mathbb{N}, a_i\in A\right\}.

The submonoid A\langle A\rangle is a numerical semigroup if and only if gcd(A)=1\gcd(A)=1.

We say that AA is a generating system of SS if S=AS=\langle A\rangle, and that AA is a minimal generating system of SS if, in addition, no proper subset of AA generates SS.

Every numerical semgiroup has a unique minimal generating system: S(S+S)S^*\setminus (S^*+S^*), with S=S{0}S^*=S\setminus\{0\}. Sometimes the elements in the minimal generating system of SS are called minimal generators, atoms, irreducible, or primitive elements of SS. The cardinality of the minimal generating system of SS is known as the embedding dimension of SS, denoted e(S)\operatorname{e}(S).

Generators(s);
[ 6 .. 11 ]
MinimalGenerators(s);
[ 6 .. 11 ]
EmbeddingDimension(s);
6

We can define a numerical semigoup by giving one of its generating sets.

s:=NumericalSemigroup(3,5,7);
<Numerical semigroup with 3 generators>

The multiplicity of a numerical semigroup SS is the least positive integer in SS (and coincides with its smallest minimal generator), we will denote it by m(S)\operatorname{m}(S).

Multiplicity(s);
3

Apéry sets

One of the most important tools when studying numerical semigroups is the concept of Apéry sets. Given a numerical semigroup SS and nn a nonzero element of SS (one can define also Apéry sets for elements outside SS, but we are not going to deal with them here), the Apéry set of nn in SS (or of SS with respect to nn) is the set

Ap(S,n)={sS:sn∉S}.\operatorname{Ap}(S,n)=\{ s\in S : s-n\not\in S\}.

This set has precisely nn elements, one in each congruence class modulo nn. Moreover, for every sSs\in S there exist unique kNk\in \mathbb{N} and wAp(S,n)w\in \operatorname{Ap}(S,n) such that s=kn+ws=kn+w. This in particular implies that the embedding dimension of SS is always smaller than or equal to its multiplicity, since (Ap(S,n)){0}{n}(\operatorname{Ap}(S,n))\setminus\{0\}\cup\{n\} is a minimal generating set of SS for all nS{0}n\in S\setminus\{0\}.

s:=NumericalSemigroup(6,10,15);;
AperyList(s,12);
[ 0, 25, 26, 15, 16, 41, 6, 31, 20, 21, 10, 35 ]

If the second argument is not given, then the Apéry set is taken with respect to the multiplicity of the numerical semigroup.

AperyList(s);
[ 0, 25, 20, 15, 10, 35 ]

The output is arranged in a list, so that in the iith position (starting in 0) we find the least element in SS congruent with ii modulo nn. In this way, membership to SS becomes trivial once an Apéry set of the semigroup is known.

This has some other interesting consequences:

FrobeniusNumber(s)=Maximum(AperyList(s,12))-12;
true
Genus(s)=(Sum(AperyList(s,12)))/12- (12-1)/2;
true

Let mm be the multiplcity of SS, and let wiw_i be the element in the Apéry set of mm in SS congruent with ii modulo mm. We can write wi=kim+iw_i=k_im+i. The tuple (k1,,km1)(k_1,\dots,k_{m-1}) is known as the Kunz coordinates of SS.

KunzCoordinates(s);
[ 4, 3, 2, 1, 5 ]

Notice that every nonnegative integer xx can be written as x=km+ix=k m+i for some k,nNk,n\in \mathbb{N}, with i<mi<m. It follows easily that xSx\in S if and only if kkik\ge k_i. So it is at no surprise that the genus is precisely the sum of the Kunz coordinates of SS, which is just a reformulation of the above statement on the genus.

Genus(s)=Sum(KunzCoordinates(s));
true

Notice that wi+wjSw_i+w_j\in S for all i,ji,j, and thus wi+wj=kijm+wi+jmodnw_i+w_j=k_{ij}m+w_{i+j \bmod n}, this imposes some conditions on the tuples (k1,,km1)(k_1,\dots,k_{m-1}) that can be Kunz coordinates of a numerical semigroup with multiplicity mm. In fact, there is a one to one correspondence between numerical semigroups with multiplicity mm and integers points in what it is called the Kunz polyhedron.

KunzPolytope(6);
[ [ 1, 0, 0, 0, 0, -1 ], [ 0, 1, 0, 0, 0, -1 ], [ 0, 0, 1, 0, 0, -1 ], [ 0, 0, 0, 1, 0, -1 ], [ 0, 0, 0, 0, 1, -1 ], [ 2, -1, 0, 0, 0, 0 ], [ 1, 1, -1, 0, 0, 0 ], [ 1, 0, 1, -1, 0, 0 ], [ 1, 0, 0, 1, -1, 0 ], [ 0, 2, 0, -1, 0, 0 ], [ 0, 1, 1, 0, -1, 0 ], [ -1, 1, 0, 0, 1, 1 ], [ -1, 0, 1, 1, 0, 1 ], [ 0, -1, 1, 0, 1, 1 ], [ 0, -1, 0, 2, 0, 1 ], [ 0, 0, -1, 1, 1, 1 ], [ 0, 0, 0, -1, 2, 1 ] ]

The first elements of this output mean that xi1x_i\ge 1, while for instance [1,0,1,1,0,0][ 1, 0, 1, -1, 0, 0 ] translates to x1+x3x4x_1+x_3\ge x_4, and [0,0,0,1,2,1] [ 0, 0, 0, -1, 2, 1 ] to 2x5+1x42x_5+1\ge x_4.

x:=List([1..5],i->Indeterminate(Rationals,i));;
x1:=Concatenation(x,[1]);;
for eq in KunzPolytope(6) do Print(eq*x1," ≥ 0\n"); od;
x_1-1 ≥ 0
x_2-1 ≥ 0
x_3-1 ≥ 0
x_4-1 ≥ 0
x_5-1 ≥ 0
2*x_1-x_2 ≥ 0
x_1+x_2-x_3 ≥ 0
x_1+x_3-x_4 ≥ 0
x_1+x_4-x_5 ≥ 0
2*x_2-x_4 ≥ 0
x_2+x_3-x_5 ≥ 0
-x_1+x_2+x_5+1 ≥ 0
-x_1+x_3+x_4+1 ≥ 0
-x_2+x_3+x_5+1 ≥ 0
-x_2+2*x_4+1 ≥ 0
-x_3+x_4+x_5+1 ≥ 0
-x_4+2*x_5+1 ≥ 0

Pseudo-Frobenius numbers and type

Let SS be a numerical semigroup. A pseudo-Frobenius number is an integer ff such that f+SSf+S^*\subseteq S. In particular, the Frobenius number of SS is a pseudo-Frobenius number. The cardinality of the set of pseudo-Frobenius numbers of SS, FP(S)\operatorname{FP}(S), is known as the type of SS.

The semigroup SS induces the following ordering over the integers: aSba \le_S b if baSb-a\in S. It easily follows that

PF(S)=MaximalsS(NS). \operatorname{PF}(S)= \operatorname{Maximals}_{\le_S}(\mathbb{N}\setminus S).
s:=NumericalSemigroup(6,11,13,21);
<Numerical semigroup with 4 generators>
PseudoFrobenius(s);
[ 15, 16, 20 ]
Type(s);
3

Is is not difficult to prove that for any nS{0}n\in S\setminus\{0\},

n+PF(S)=MaximalsS(Ap(S,n)).n+\operatorname{PF}(S)=\operatorname{Maximals}_{\le_S}(\operatorname{Ap}(S,n)).
rap:=HasseDiagramOfAperyListOfNumericalSemigroup(s);
<general mapping: Domain([ 0, 11, 13, 21, 22, 26 ]) -> Domain([ 0, 11, 13, 21, 22, 26 ]) >
JupyterSplashDot(DotBinaryRelation(rap));
Loading...
6+PseudoFrobenius(s);
[ 21, 22, 26 ]

The minimal elements in S{0}S\setminus\{0\} with respect to S\le_S are precisely the minimal generators of SS.

For every element nS[0,F(S))(PF(S){F(S)})n\in S\cap[0,\operatorname{F}(S))\cup (\operatorname{PF}(S)\setminus\{\operatorname{F}(S)\}), we have that F(S)n\operatorname{F}(S)-n is a gap of SS. Thus n(S)+t(S)1g(S)\operatorname{n}(S)+\operatorname{t}(S)-1\le \operatorname{g}(S). By combining this with n(S)+g(S)=F(S)+1\operatorname{n}(S)+\operatorname{g}(S)=\operatorname{F}(S)+1, we obtain

g(S)F(S)+t(S)2. \operatorname{g}(S)\ge \frac{\operatorname{F}(S)+\operatorname{t}(S)}2.
Genus(s);
13
(FrobeniusNumber(s)+Type(s))/2;
23/2

Duality minimal generators and special gaps

Notice that for a given numerical semigroup SS, an element nSn\in S is a minimal generator if and only if S{n}S\setminus\{n\} is also a numerical semigroup (which has one more gap than SS). Starting with N\mathbb{N}, by removing minimal generators we can construct all numerical semigroups with a given genus.

c:=Union(List([0..4],i->NumericalSemigroupsWithGenus(i)));;
cc:=Filtered(Cartesian(c,c),p->IsSubset(p[2],p[1]) and IsSubset(MinimalGenerators(p[2]),Difference(p[2],p[1])) 
                                and Length(Difference(p[2],p[1]))=1);;
d:=Domain(List(c,MinimalGenerators));;
pairs:=List(cc,p->Tuple([MinimalGenerators(p[1]),MinimalGenerators(p[2])]));;
br:=BinaryRelationByElements(d,pairs);
<general mapping: Domain([ [ 1 ], [ 2, 3 ], [ 2, 5 ], [ 2, 7 ], [ 2, 9 ], [ 3 .. 5 ], [ 3, 4 ], [ 3, 5, 7 ], [ 3, 5 ], [ 3, 7, 8 ], [ 4 .. 7 ], [ 4, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 7, 9 ], [ 5 .. 9 ] ]) -> Domain([ [ 1 ], [ 2, 3 ], [ 2, 5 ], [ 2, 7 ], [ 2, 9 ], [ 3 .. 5 ], [ 3, 4 ], [ 3, 5, 7 ], [ 3, 5 ], [ 3, 7, 8 ], [ 4 .. 7 ], [ 4, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 7, 9 ], [ 5 .. 9 ] ]) >
JupyterSplashDot(DotBinaryRelation(br));
Loading...

For any numerical semigroup SS (other than N\mathbb{N}), the set T=S{F(S)}T=S\cup\{\operatorname{F}(S)\} is also a numerical semigroup. The semigroup SS is obtained from TT by removing a minimal generator larger than its Frobenius number.

So if we remove minimal generators larger than the Frobenius number, we still obtain the same numerical semigroups, but the above directed graph becomes a tree.

cc:=Filtered(Cartesian(c,c),p->IsSubset(p[2],p[1]) and Difference(p[2],p[1])=[FrobeniusNumber(p[1])]);;
pairs:=List(cc,p->Tuple([MinimalGenerators(p[1]),MinimalGenerators(p[2])]));;
br:=BinaryRelationByElements(d,pairs);
<general mapping: Domain([ [ 1 ], [ 2, 3 ], [ 2, 5 ], [ 2, 7 ], [ 2, 9 ], [ 3 .. 5 ], [ 3, 4 ], [ 3, 5, 7 ], [ 3, 5 ], [ 3, 7, 8 ], [ 4 .. 7 ], [ 4, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 7, 9 ], [ 5 .. 9 ] ]) -> Domain([ [ 1 ], [ 2, 3 ], [ 2, 5 ], [ 2, 7 ], [ 2, 9 ], [ 3 .. 5 ], [ 3, 4 ], [ 3, 5, 7 ], [ 3, 5 ], [ 3, 7, 8 ], [ 4 .. 7 ], [ 4, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 7, 9 ], [ 5 .. 9 ] ]) >
JupyterSplashDot(DotBinaryRelation(br));
Loading...

Now let us think about the dual process: what are the gaps that I may add to a numerical semigroup in order to obtain a nuew numerical semigroup. We already know that we can always add the Frobenius number, but we may have some other options. Let SS be a numerical semigroup and let ff be a gap of SS. As we want S{f}S\cup \{f\} to be a numerical semigroup, f+SS{f}f+S\subseteq S\cup\{f\}, and consequently ff must be in PF(S)\operatorname{PF}(S). But also kfS{f}kf \in S\cup\{f\} for every positive integer kk. This means that 2f,3fS2f, 3f\in S. The set of gaps having these properties are known as special gaps.

SG(S)={gPF(S):2gS,3gS}. \operatorname{SG}(S)=\{ g\in \operatorname{PF}(S) : 2g\in S, 3g\in S\}.
s:=NumericalSemigroup(4,7,9,10);;
SpecialGaps(s);
[ 5, 6 ]

If we keep adding special gaps to our semigroup and the resulting semigroups, we will obtain the set of all oversemigroups of the given numerical semigroup.

s:=NumericalSemigroup(4,5,7);;
JupyterSplashDot(DotOverSemigroups(s));
Loading...

When some bounds are attained

Numerical semigroups with maximal embedding dimension

We have already seen that the embedding dimension of a numerical semigroup is always less than or equal to the multiplicity. We say that a numerical semigroup SS has maximal embedding dimension if m(S)=e(S)\operatorname{m}(S)=\operatorname{e}(S).

s:=NumericalSemigroup(3,5,7);;
IsMED(s);
true

A numerical semigroup SS is of maximal embedding dimension if and only if (S{0})m(S)(S\setminus\{0\})-\operatorname{m}(S) is a numerical semigroup, or equivalently, for any x,ySx,y\in S with xym(S)x\ge y \ge \operatorname{m}(S), we have x+ym(S)Sx+y-\operatorname{m}(S)\in S.

It turns out that the intersecction of two maximal embedding dimension numerical semigroups is again of maximal embedding dimension, and thus we can think about a maximal embedding dimension closure.

s:=NumericalSemigroup(3,5);;
MinimalGenerators(MEDClosure(s));
[ 3, 5, 7 ]

It also makes sense to talk abot the minimal generators as a numerical semigroup with maximal embedding dimension. An element aa in a numerical semigroup SS with maximal embedding dimension, with a>m(S)a>\operatorname{m}(S), will be in that minimal MED generating system if and only if S{a}S\setminus\{a\} is again a numerical semigroup with maximal embedding dimension.

MinimalMEDGeneratingSystemOfMEDNumericalSemigroup(NumericalSemigroup(3,5,7));
[ 3, 5 ]
t:=RemoveMinimalGeneratorFromNumericalSemigroup(5,s);
<Numerical semigroup with 3 generators>
MinimalGenerators(t);
[ 3, 8, 10 ]
IsMED(t);
true

If S=m=n1<n2<<nmS=\langle m=n_1< n_2< \dots < n_m\rangle is a numerical semigroup with maximal embedding dimension, then Ap(S,m)={0,n2,,nm}\operatorname{Ap}(S,m)=\{0, n_2, \dots, n_m\}, and thus t(S)=m1\operatorname{t}(S)=m-1. It is not hard to prove that SS has maximal embedding dimension if and only if it has maximal type.

Type(NumericalSemigroup(3,5,7));
2

A particular class of numerical semigroups with maximal embedding dimension is that of Arf numerical semigroups. A numerical semigroup SS if Arf if for any x,y,zSx,y,z\in S, with xyzx\ge y\ge z, one gets x+yzSx+y-z\in S. Clearly, the intersection of two Arf numerical semigroups is again an Arf numerical semigroup.

MinimalGenerators(ArfNumericalSemigroupClosure(NumericalSemigroup(3,5)));
[ 3, 5, 7 ]

Irreducible numerical semigroups

We say that a numerical semigroup SS is irreducible if it cannot be expressed as the intersection of two numerical semigroups properly containing it.

It can be (easily) shown that if we fix a positive integer ff, then SS is irreducible if and only if it is maximal (with respect to inclusion) in the set of all numerical semigroups with Frobenius number ff (or equivalently, in the set of all numerical semigroups not containing ff).

Recall that g(S)(F(S)+1)/2\operatorname{g}(S)\ge (\operatorname{F}(S)+1)/2. Having less genus means being “bigger”, and so if F(S)\operatorname{F}(S) is odd, then SS is irreducible if and only if g(S)=(F(S)+1)/2\operatorname{g}(S)= (\operatorname{F}(S)+1)/2.

For F(S)\operatorname{F}(S) even, we obtain that SS is irreducible if and only if g(S)=(F(S)+2)/2\operatorname{g}(S)=(\operatorname{F}(S)+2)/2.

Every numerical semigroup can be expressed as a finite intersection of irreducible numerical semigroups. Two minimal (non-redundant) expressions of the semigroup as intersection of irreducible numerical semigroup may have different factors.

s:=NumericalSemigroup(3,7,8);
<Numerical semigroup with 3 generators>
SmallElements(s);
[ 0, 3, 6 ]
IsIrreducible(s);
false
l:=DecomposeIntoIrreducibles(s);
[ <Numerical semigroup with 2 generators>, <Numerical semigroup with 3 generators> ]
List(l,SmallElements);
[ [ 0, 3, 4, 6 ], [ 0, 3, 5 ] ]

Notice also that for every integer xx, both xx and F(S)x\operatorname{F}(S)-x cannot be in SS (since otherwise their sum, which is F(S)\operatorname{F}(S), would be in SS). If we want SS to have the least possible number of gaps once the Frobenius number is fixed, then we do not want xx and F(S)x\operatorname{F}(S)-x to be gaps at the same time (unless they are the same and then x=F(S)/2x=\operatorname{F}(S)/2).

Assume that F(S)\operatorname{F}(S) is odd. Then we say that SS is symmetric if for any integer x∉Sx\not\in S, we have that F(S)xS\operatorname{F}(S)-x\in S. A numerical semigroup with odd Frobenius number is irreducible if and only if it is symmetric.

For the case F(S)\operatorname{F}(S) even, we have to take into account F(S)/2\operatorname{F}(S)/2. A numerical semigroup SS is pseudo-symmetric if F(S)\operatorname{F}(S) is even and for any integer xx not in SS and different from F(S)/2\operatorname{F}(S)/2, we have that F(S)xS\operatorname{F}(S)-x\in S. A numerical semigroup with even Frobenius number is irreducible if and only if it is pseudo-symmetric.

PseudoFrobenius(s);
[ 4, 5 ]
li:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(13);
[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
List(li,PseudoFrobenius);
[ [ 13 ], [ 13 ], [ 13 ], [ 13 ], [ 13 ], [ 13 ], [ 13 ], [ 13 ] ]
li:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(14);
[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
List(li,PseudoFrobenius);
[ [ 7, 14 ], [ 7, 14 ], [ 7, 14 ], [ 7, 14 ], [ 7, 14 ], [ 7, 14 ] ]

Symmetric numerical semigroups correspond with those numerical semigroups of type one, while SS is pseudo-symmetric if and only if PF(S)={F(S)/2,F(S)}\operatorname{PF}(S)=\{\operatorname{F}(S)/2, \operatorname{F}(S)\}. As we have seen above, there are numerical semigroups with type two that are not pseudo-symmetric.

LoadPackage("jupyterviz");
true
li:=List([1..25], i->[i,Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(i))]);
[ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 5, 2 ], [ 6, 1 ], [ 7, 3 ], [ 8, 2 ], [ 9, 3 ], [ 10, 3 ], [ 11, 6 ], [ 12, 2 ], [ 13, 8 ], [ 14, 6 ], [ 15, 7 ], [ 16, 7 ], [ 17, 15 ], [ 18, 7 ], [ 19, 20 ], [ 20, 11 ], [ 21, 18 ], [ 22, 20 ], [ 23, 36 ], [ 24, 14 ], [ 25, 44 ] ]
# Plot(li);
Display(li);
[ [   1,   1 ],
  [   2,   1 ],
  [   3,   1 ],
  [   4,   1 ],
  [   5,   2 ],
  [   6,   1 ],
  [   7,   3 ],
  [   8,   2 ],
  [   9,   3 ],
  [  10,   3 ],
  [  11,   6 ],
  [  12,   2 ],
  [  13,   8 ],
  [  14,   6 ],
  [  15,   7 ],
  [  16,   7 ],
  [  17,  15 ],
  [  18,   7 ],
  [  19,  20 ],
  [  20,  11 ],
  [  21,  18 ],
  [  22,  20 ],
  [  23,  36 ],
  [  24,  14 ],
  [  25,  44 ] ]

Almost symmetric numerical semigroups

Recall that for a numerical semigroup SS, g(S)(F(S)+t(S))/2\operatorname{g}(S)\ge (\operatorname{F}(S)+\operatorname{t}(S))/2. We say that SS is almost symmetric if g(S)=(F(S)+t(S))/2\operatorname{g}(S)= (\operatorname{F}(S)+\operatorname{t}(S))/2. Consequently, these are numerical semigroups maximal with respect to inclusion once the type and the Frobenius number are fixed.

Clearly, every irreducible numerical semigroup is almost symmetric.

s:=NumericalSemigroup(3,7,8);;
IsAlmostSymmetric(s);
false
FrobeniusNumber(s);
5
la:=AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber(5);
[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
List(la,SmallElements);
[ [ 0, 6 ], [ 0, 4, 6 ], [ 0, 2, 4, 6 ], [ 0, 3, 4, 6 ] ]
SmallElements(s);
[ 0, 3, 6 ]
li:=List([1..25], i->[i,Length(AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber(i))]);;
Display(li);
[ [    1,    1 ],
  [    2,    1 ],
  [    3,    2 ],
  [    4,    2 ],
  [    5,    4 ],
  [    6,    3 ],
  [    7,    7 ],
  [    8,    6 ],
  [    9,   11 ],
  [   10,    9 ],
  [   11,   20 ],
  [   12,   15 ],
  [   13,   32 ],
  [   14,   24 ],
  [   15,   47 ],
  [   16,   42 ],
  [   17,   83 ],
  [   18,   58 ],
  [   19,  131 ],
  [   20,  103 ],
  [   21,  188 ],
  [   22,  151 ],
  [   23,  323 ],
  [   24,  241 ],
  [   25,  494 ] ]

There are many other generalizations of symmetry.