This GAP code is intended to work with the NumericalSgps GAP package. There are three main parts to this code.
We give two methods for ideal decomposition.
-
IdealDecomposition(I) gives the decomposition the relative Ideal, I, into Z-irreducible ideals.
-
ProperIdealDecomposition(I) gives the decomposition the proper Ideal, I, into proper irreducible ideals.
The first part is focused in alternative characterizations of numerical semigroups, based on nu, tau and oplus.
-
Nu(S,i) computes the i-th value of the Nu-sequence, and NuSequence(S) computes the Nu-Sequence of the semigroup S, up to Nu_2*c-g (from that point onwards, it increases 1 by 1)
-
SemigroupFromNu(Nu) computes the numerical semigroup with nu sequence nu, assuming Nu contains enough elements to determine the semigroup.
-
TauSemigroup(S,i) computes the i-th value of the Tau-sequence, and TauSequence(S) computes the Nu-Sequence of the semigroup S, up to Nu_2*c-g (from that point onwards, it increases by 1 every two elements)
-
TauSequence(S) Computes the TauSequence of the semigrup S, up to 2c-g+1. For numbers greater than that, it increases 1 by 1, every 2, Tau_{2c-g+1}=Tau_{2c-g+2}.
-
SemigroupFromTau(Tau) computes the numerical semigroup with tau sequence Tau, assuming Tau contains enough elements to determine the semigroup.
-
Oplus(i,j,S) computes the operation oplus for indexes i and j in the semigroup S. Returns k=i oplus j.
-
SemigroupFromOplus(O) computes the semigroup, using the Oplus operation, given as a list of triplets. For testing, there is a createO function in the
Testfolder that can generate this sequence from a list of tuples. In the same way, NuFromOplus computes the nu sequence, given the oplus operation as triplets.
The third part focuses on the computation of Feng-Rao distances, for special cases.
-
FengRaoDistance2(s,r,m) Computes the r-th Feng-Rao distance, for element m in semigrup s. It is based on the default function, FengRaoDistance, implemented in the package
NumericalSgps. It incorporates all the functions that are listed below. -
FengRaoDistanceArf(S,m) Computes the 1-st Feng-Rao distance of S, an Arf numerical Semigroup.
-
FengRaoDistance2(S,m) Computes the second Feng-Rao distance of m<2c-1, m in S, an Arf numerical Semigroup.
-
FengRaoDistanceBruteForce(S,m) Comptes the first Feng-Rao distance of S, in a non recursive way.
-
FengRaoDistanceOrdinary2(S,m) Computes the second Feng-Rao distance of c<m<2c-1, in the semigrup S, an ordinary Semigroup.
-
FengRaoDistanceSymmetric(S,m) Computes the first Feng-Rao Distance of a Symmetric semigrup, for m in [c+1, 2c-2]
-
FengRaoDistanceSymmetricGeneralized(S,r,m) Computes the r-th Feng-Rao distance of m, in a Symmetric semigroup, S, for m in [c+1, 2c-2], if m-2*g+1 in s.
-
FengRaoDistanceTwoGenerators(S,m) Computes the first Feng-Rao distance of m<2c-1, an element of S, a semigroup generated by 2 elements.