1#############################################################################
2##
3#W  arf-med.gd              Manuel Delgado <mdelgado@fc.up.pt>
4#W                          Pedro A. Garcia-Sanchez <pedro@ugr.es>
5#W                          Jose Morais <josejoao@fc.up.pt>
6##
7##
8#Y  Copyright 2005 by Manuel Delgado,
9#Y  Pedro Garcia-Sanchez and Jose Joao Morais
10#Y  We adopt the copyright regulations of GAP as detailed in the
11#Y  copyright notice in the GAP manual.
12##
13#############################################################################
14
15
16
17#####################################################################
18##                        ARF
19## See [RGGB04]
20#####################################################################
21##
22#F ArfNumericalSemigroupClosure(arg)
23##
24## The argument may be a numerical semigroup or a list of relatively prime
25## positive integers
26## The output is the Arf-closure of arg (the smallest Arf-semigroup
27## containing arg)
28##
29#####################################################################
30DeclareGlobalFunction("ArfNumericalSemigroupClosure");
31DeclareOperation("ArfClosure",[IsNumericalSemigroup]);
32
33#####################################################################
34##
35#P IsArfNumericalSemigroup(s)
36##
37## The argument s is a numerical semigroup
38## returns true if s is an Arf-semigroup and false otherwise
39##
40#####################################################################
41DeclareProperty("IsArf", IsNumericalSemigroup);
42DeclareSynonymAttr("IsArfNumericalSemigroup",IsArf);
43
44
45#####################################################################
46##
47#A MinimalArfGeneratingSystemOfArfNumericalSemigroup(s)
48##
49## The argument s is an Arf numerical semigroup
50## returns the minimal Arf-generating system of s.
51##
52#############################################################################
53DeclareAttribute("MinimalArfGeneratingSystemOfArfNumericalSemigroup", IsNumericalSemigroup);
54DeclareSynonymAttr("ArfCharactersOfArfNumericalSemigroup",MinimalArfGeneratingSystemOfArfNumericalSemigroup);
55
56#####################################################################
57##
58#F ArfNumericalSemigroupsWithFrobeniusNumber(f)
59##
60## The argument f is an integer
61## Returns the set of Arf numerical semigroups with Frobenius number f
62## as explained in the preprint
63##    Rosales et al., Arf numerical semigroups with given genus and Frobenius number
64## New version by Giuseppe Zito (U Catania)
65#############################################################################
66DeclareGlobalFunction("ArfNumericalSemigroupsWithFrobeniusNumber");
67
68#####################################################################
69##
70#F ArfNumericalSemigroupsWithFrobeniusNumberUpTo(f)
71##
72## Returns the set of Arf numerical semigroups with Frobenius number
73## New version by Giuseppe Zito (U Catania)
74#############################################################################
75DeclareGlobalFunction("ArfNumericalSemigroupsWithFrobeniusNumberUpTo");
76
77#####################################################################
78##
79#F ArfNumericalSemigroupsWithGenus(g)
80##
81## Returns the set of Arf numerical semigroups with genus g,
82## This version is due to Giuseppe Zito
83#############################################################################
84DeclareGlobalFunction("ArfNumericalSemigroupsWithGenus");
85
86
87#####################################################################
88##
89#F ArfNumericalSemigroupsWithGenusUpTo(g)
90##
91## Returns the set of Arf numerical semigroups with genus less than
92## or equal to g, as explained in
93## -Rosales et al., Arf numerical semigroups with given genus and
94##  Frobenius number
95#############################################################################
96DeclareGlobalFunction("ArfNumericalSemigroupsWithGenusUpTo");
97
98
99#####################################################################
100##
101#F ArfNumericalSemigroupsWithGenusAndFrobeniusNumber(g,f)
102##
103## Returns the set of Arf numerical semigroups with genus g and
104## Frobenius number f, as explained in
105##    Rosales et al., Arf numerical semigroups with given genus and Frobenius number
106#############################################################################
107DeclareGlobalFunction("ArfNumericalSemigroupsWithGenusAndFrobeniusNumber");
108
109#####################################################################
110##                        MED
111## See [RGGB03]
112#####################################################################
113##
114#P IsMEDNumericalSemigroup(s)
115##
116## The argument s is a numerical semigroup
117## returns true if s is a MED-semigroup and false otherwise
118##
119#####################################################################
120DeclareProperty("IsMED", IsNumericalSemigroup);
121DeclareSynonymAttr("IsMEDNumericalSemigroup",IsMED);
122
123
124#####################################################################
125##
126#F MEDNumericalSemigroupClosure(arg)
127##
128## The argument may be a numerical semigroup or a list of relatively prime
129## positive integers
130## The output is the MED-closure of arg (the smallest MED-semigroup
131## containing arg)
132##
133#####################################################################
134DeclareGlobalFunction("MEDNumericalSemigroupClosure");
135DeclareOperation("MEDClosure",[IsNumericalSemigroup]);
136
137#####################################################################
138##
139#A MinimalMEDGeneratingSystemOfMEDNumericalSemigroup(s)
140##
141## The argument s is a MED numerical semigroup
142## returns the minimal MED-generating system of s.
143##
144#############################################################################
145DeclareAttribute("MinimalMEDGeneratingSystemOfMEDNumericalSemigroup", IsNumericalSemigroup);
146
147#####################################################################
148##                        Saturated
149## See [book]
150#####################################################################
151##
152#F SaturatedfNumericalSemigroupClosure(arg)
153##
154## The argument may be a numerical semigroup or a list of relatively prime
155## positive integers
156## The output is the saturated-closure of arg (the smallest saturated-semigroup
157## containing arg)
158##
159#####################################################################
160DeclareGlobalFunction("SaturatedNumericalSemigroupClosure");
161DeclareOperation("SaturatedClosure",[IsNumericalSemigroup]);
162
163#####################################################################
164##
165#P IsSaturatedNumericalSemigroup(s)
166##
167## The argument s is a numerical semigroup
168## returns true if s is a saturated-semigroup and false otherwise
169##
170#####################################################################
171#DeclareProperty("IsSaturatedNumericalSemigroup", IsNumericalSemigroup);
172DeclareProperty("IsSaturated", IsNumericalSemigroup);
173DeclareSynonymAttr("IsSaturatedNumericalSemigroup",IsSaturated);
174#DeclareOperation("IsSaturated",[IsSaturatedNumericalSemigroup]);
175#REPORT CRISP for this collission; we shold be able to use synonyms here
176
177
178#####################################################################
179##
180#F SaturatedNumericalSemigroupsWithFrobeniusNumber(f)
181##
182## The argument f is an integer
183## returns the the set of saturated numerical semigroups with Frobenius number f
184## as explained in the preprint
185##    Rosales et al., Arf numerical semigroups with given genus and Frobenius number
186########################################################################
187DeclareGlobalFunction("SaturatedNumericalSemigroupsWithFrobeniusNumber");
188