Adding and removing elements of a numerical semigroup 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 ). S is a numerical semigroup and n is one if its minimal generators.

The output is the numerical semigroup S \setminus\{n\} (see ; S\setminus\{n\} is a numerical semigroup if and only if n is a minimal generator of S).
gap> s:=NumericalSemigroup(3,5,7); <Numerical semigroup with 3 generators> gap> RemoveMinimalGeneratorFromNumericalSemigroup(7,s); <Numerical semigroup with 3 generators> gap> MinimalGeneratingSystemOfNumericalSemigroup(last); [ 3, 5 ]
S is a numerical semigroup and g is a special gap of S

The output is the numerical semigroup S \cup\{g\} (see , where it is explained why this set is a numerical semigroup).
gap> s:=NumericalSemigroup(3,5,7);; gap> s2:=RemoveMinimalGeneratorFromNumericalSemigroup(5,s); <Numerical semigroup with 3 generators> gap> s3:=AddSpecialGapOfNumericalSemigroup(5,s2); <Numerical semigroup> gap> SmallElementsOfNumericalSemigroup(s) = > SmallElementsOfNumericalSemigroup(s3); true gap> s=s3; true
Intersections and quotients by integers S and T are numerical semigroups. Computes the intersection of S and T (which is a numerical semigroup).
gap> S := NumericalSemigroup("modular", 5,53); <Modular numerical semigroup satisfying 5x mod 53 <= x > gap> T := NumericalSemigroup(2,17); <Modular numerical semigroup satisfying 17x mod 34 <= x > gap> SmallElementsOfNumericalSemigroup(S); [ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ] gap> SmallElementsOfNumericalSemigroup(T); [ 0, 2, 4, 6, 8, 10, 12, 14, 16 ] gap> IntersectionOfNumericalSemigroups(S,T); <Numerical semigroup> gap> SmallElementsOfNumericalSemigroup(last); [ 0, 12, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
S is a numerical semigroup and n is an integer. Computes the quotient of S by n, that is, the set \{ x\in {\mathbb N}\ |\ nx \in S\}, which is again a numerical semigroup. S / n may be used as a short for QuotientOfNumericalSemigroup(S, n).
gap> s:=NumericalSemigroup(3,29); <Modular numerical semigroup satisfying 58x mod 87 <= x > gap> 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 ] gap> t:=QuotientOfNumericalSemigroup(s,7); <Numerical semigroup> gap> SmallElementsOfNumericalSemigroup(t); [ 0, 3, 5, 6, 8 ] gap> u := s / 7; <Numerical semigroup> gap> SmallElementsOfNumericalSemigroup(u); [ 0, 3, 5, 6, 8 ]