CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
<?xml version="1.0" encoding="UTF-8"?>
2
<Section>
3
<Heading>Intersections, and quotients and multiples by integers</Heading>
4
<ManSection>
5
<Oper Name="Intersection" Arg="S, T" Label="for numerical semigroups"/>
6
<Func Name="IntersectionOfNumericalSemigroups" Arg="S, T"/>
7
<Description>
8
<A>S</A> and <A>T</A>
9
are numerical semigroups. Computes the intersection of <A>S</A> and <A>T</A>
10
(which is a numerical semigroup).
11
<Example><![CDATA[
12
gap> S := NumericalSemigroup("modular", 5,53);
13
<Modular numerical semigroup satisfying 5x mod 53 <= x >
14
gap> T := NumericalSemigroup(2,17);
15
<Numerical semigroup with 2 generators>
16
gap> SmallElements(S);
17
[ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
18
gap> SmallElements(T);
19
[ 0, 2, 4, 6, 8, 10, 12, 14, 16 ]
20
gap> IntersectionOfNumericalSemigroups(S,T);
21
<Numerical semigroup>
22
gap> SmallElements(last);
23
[ 0, 12, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ]
24
]]></Example>
25
</Description>
26
</ManSection>
27
28
<ManSection>
29
<Func Name="QuotientOfNumericalSemigroup" Arg="S, n"></Func>
30
<Oper Name="\/" Arg="S, n" Label="quotient of numerical semigroup"/>
31
<Description>
32
<A>S</A> is a numerical semigroup and <A>n</A> is an integer.
33
Computes the quotient of <A>S</A> by <A>n</A>, that is, the set <M>\{ x\in {\mathbb N}\ |\ nx \in S\}</M>, which is again a numerical semigroup.
34
<C>S / n</C> may be used as a short for <C>QuotientOfNumericalSemigroup(S, n)</C>.
35
<Example><![CDATA[
36
gap> s:=NumericalSemigroup(3,29);
37
<Numerical semigroup with 2 generators>
38
gap> SmallElements(s);
39
[ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 29, 30, 32, 33, 35, 36, 38,
40
39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56 ]
41
gap> t:=QuotientOfNumericalSemigroup(s,7);
42
<Numerical semigroup>
43
gap> SmallElements(t);
44
[ 0, 3, 5, 6, 8 ]
45
gap> u := s / 7;
46
<Numerical semigroup>
47
gap> SmallElements(u);
48
[ 0, 3, 5, 6, 8 ]
49
]]></Example>
50
</Description>
51
</ManSection>
52
53
<ManSection>
54
<Func Name="MultipleOfNumericalSemigroup" Arg="S, a, b"/>
55
<Description>
56
<A>S</A> is a numerical semigroup, and <A>a</A> and <A>b</A> are positive integers.
57
Computes <M>a S\cup \{b,b+1,\to\}</M>. If <A>b</A> is smaller than <M>a c</M>, with <M>c</M> the conductor of <M>S</M>, then a warning is displayed.
58
<Example><![CDATA[
59
gap> N:=NumericalSemigroup(1);;
60
gap> s:=MultipleOfNumericalSemigroup(N,4,20);;
61
gap> SmallElements(s);
62
[ 0, 4, 8, 12, 16, 20 ]
63
]]></Example>
64
</Description>
65
66
</ManSection>
67
<ManSection>
68
<Oper Name="Difference" Arg="S, T" Label="for numerical semigroups"/>
69
<Func Arg="S, T" Name="DifferenceOfNumericalSemigroups"></Func>
70
<Description>
71
<A>S, T</A> are numerical semigroups.
72
The output is the set <M><A>S</A>\setminus <A>T</A></M>.
73
74
<Example><![CDATA[
75
gap> ns1 := NumericalSemigroup(5,7);;
76
gap> ns2 := NumericalSemigroup(7,11,12);;
77
gap> Difference(ns1,ns2);
78
[ 5, 10, 15, 17, 20, 27 ]
79
gap> Difference(ns2,ns1);
80
[ 11, 18, 23 ]
81
gap> DifferenceOfNumericalSemigroups(ns2,ns1);
82
[ 11, 18, 23 ]
83
]]></Example>
84
</Description>
85
</ManSection>
86
87
<ManSection>
88
<Func Name="NumericalDuplication" Arg="S, E, b"/>
89
<Description>
90
<A>S</A> is a numerical semigroup, and <A>E</A> and ideal of <A>S</A>, and <A>b</A> is a positive odd integer, so that <M>2S\cup (2E+b)</M> is a numerical semigroup
91
(this extends slightly the original definition where <A>b</A> was imposed to be in <A>S</A>, <Cite Key="duplication"></Cite>; now the condition imposed is <M>E+E+b\subseteq S</M>).
92
93
Computes <M>2S\cup (2E+b)</M>.
94
<Example><![CDATA[
95
gap> s:=NumericalSemigroup(3,5,7);
96
<Numerical semigroup with 3 generators>
97
gap> e:=6+s;
98
<Ideal of numerical semigroup>
99
gap> ndup:=NumericalDuplication(s,e,3);
100
<Numerical semigroup with 4 generators>
101
gap> SmallElements(ndup);
102
[ 0, 6, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24 ]
103
]]></Example>
104
</Description>
105
</ManSection>
106
107
<ManSection>
108
<Func Name="InductiveNumericalSemigroup" Arg="S, a, b"/>
109
<Description>
110
<A>S</A> is a numerical semigroup, and <A>a</A> and <A>b</A> are lists of positive integers, such that <M>b[i+1]\ge a[i]b[i]</M>.
111
Computes inductively <M>S_0=\mathbb N</M> and <M>S_{i+1}=a[i]S_i\cup \{a[i]b[i],a[i]b[i]+1,\to\}</M>, and returns <M>S_{k}</M>, with <M>k</M> the length of <A>a</A> and <A>b</A>.
112
<Example><![CDATA[
113
gap> s:=InductiveNumericalSemigroup([4,2],[5,23]);;
114
gap> SmallElements(s);
115
[ 0, 8, 16, 24, 32, 40, 42, 44, 46 ]
116
]]></Example>
117
</Description>
118
</ManSection>
119
120
121
122
</Section>
123
124