Catenary degree of an element
Definition
Let \(S\) be a numerical semigroup, let \(s \in S\) and let \(\mathbf{Z}(s)\) be the set of factorizations of \(s\) in \(S\). It is defined the catenary degree of \(s\), denoted by \(\mathbf{C}(s)\), as the least \(N\) such that for any two factorizations \(x, y \in \mathbf{Z}(s)\), there is an N-chain joining them.
From the catenary degree of an element it is defined the catenary degree of a numerical semigroup.
Examples
\(\circ\) Let \(S = \langle 6, 13, 17\rangle\) and \(s = 85\). The set of factorizations is
\[ \mathbf{Z}(85) = \{(12, 1, 0), (7, 2, 1), (2, 3, 2), (0, 0, 5)\}. \]
If we compute the distance between each pair, it is obtained the following graph.
```{r librerias, include=FALSE, warning=FALSE}
library(tidyverse) library(tidygraph) library(ggraph)
```{r grafo ejemplo1, fig.height=5, fig.width=5}
tabla_aristas = data.frame(
"from" = c( "(12, 1, 0)", "(12, 1, 0)", "(12, 1, 0)",
"(7, 2, 1)", "(7, 2, 1)",
"(2, 3, 2)"),
"to" = c( "(7, 2, 1)", "(2, 3, 2)", "(0, 0, 5)",
"(2, 3, 2)", "(0, 0, 5)",
"(0, 0, 5)"),
"weight" = c(5, 10, 13, 5, 9, 5))
ggraph(tabla_aristas, layout = "igraph", algorithm = "kk") +
geom_edge_link(width = 1, colour = "lightgray") +
geom_edge_hive(aes(label = tabla_aristas[, "weight"]), strength = 0) +
geom_node_point(size = 5.5, colour = "lightblue") +
geom_node_text(aes(label = c("(12,1,0)", "(7, 2, 1)", "(2, 3, 2)", "(0, 0, 5)")), repel = TRUE, nudge_y = 0.1) +
coord_fixed() +
theme_graph()
From this graph, it is deduced that the least \(N\) is \(N = 5\), concluding that \(\mathbf{C}(85) = 5\).
Examples with GAP
The following example is made with the package NumericalSgps in GAP.
\(\diamond\) Let \(S = \langle 47, 63, 81, 90 \rangle\), in GAP:
gap> S := NumericalSemigroup(47, 63, 81, 90);
<Numerical semigroup with 4 generators>
Given the set of factorizations of an element, the functions CatenaryDegree
and CatenaryDegreeOfSetOfFactorizations
compute the catenary degree with respect to the given set of factorizations.
gap> z := Factorizations(715, S);
2, 6, 3, 0 ], [ 2, 2, 5, 1 ], [ 2, 7, 0, 2 ], [ 2, 3, 2, 3 ],
[ [ 2, 0, 1, 6 ] ]
[ gap> CatenaryDegree(z);
4
gap> CatenaryDegree(z) = CatenaryDegreeOfSetOfFactorizations(z);
true
If we give a numerical semigroup \(S\) and an element \(n\) of it in CatenaryDegree
, then the function returns the catenary degree of \(n\) in \(S\).
gap> CatenaryDegree(715, S);
4
gap> CatenaryDegree(S, 715);
4
Moreover, if we give only a numerical semigroup \(S\), the function returns the catenary degree of \(S\).
gap> CatenaryDegree(S);
9
References
https://gap-packages.github.io/
numericalsgps
.