File: invsgp.xml

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (150 lines) | stat: -rw-r--r-- 5,913 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

<Section Label="sect:IsInverseSemigroup">
  <Heading>Inverse semigroups and monoids</Heading>
  <ManSection>
    <Func Name="InverseSemigroup"  Arg="obj1, obj2, ... "/>
    <Returns>An inverse semigroup.</Returns>
    <Description>
      If <A>obj1</A>, <A>obj2</A>, ... are (any combination) of
      associative elements with unique semigroup inverses,
      semigroups of such elements, or collections of such elements, then
      <C>InverseSemigroup</C>
      returns the inverse semigroup generated by the union of
      <A>obj1</A>, <A>obj2</A>, .... This equals the semigroup generated by the
      union of <A>obj1</A>, <A>obj2</A>, ... and their inverses.<P/>

      For example if <C>S</C> and <C>T</C> are inverse semigroups, then
      <C>InverseSemigroup(S, f, Idempotents(T));</C> is the inverse semigroup
      generated by
      <C>Union(GeneratorsOfInverseSemigroup(S), [f], Idempotents(T)));</C>.<P/>

      As present, the only associative elements with unique semigroup inverses,
      which do not always generate a group, are partial permutations; see
      Chapter <Ref Chap="Partial permutations"/>.

      <Example>
gap> S := InverseSemigroup(
> PartialPerm( [ 1, 2, 3, 6, 8, 10 ], [ 2, 6, 7, 9, 1, 5 ] ) );;
gap> f := PartialPerm( [ 1, 2, 3, 4, 5, 8, 10 ],
> [ 7, 1, 4, 3, 2, 6, 5 ] );;
gap> S := InverseSemigroup(S, f, Idempotents(SymmetricInverseSemigroup(5)));
&lt;inverse partial perm semigroup of rank 10 with 34 generators>
gap> Size(S);
1233</Example>
  </Description>
  </ManSection>

  <ManSection>
    <Func Name="InverseMonoid"  Arg="obj1, obj2, ... "/>
    <Returns>An inverse monoid.</Returns>
    <Description>
      If <A>obj1</A>, <A>obj2</A>, ... are (any combination) of
      associative elements with unique semigroup inverses,
      semigroups of such elements, or collections of such elements, then
      <C>InverseMonoid</C>
      returns the inverse monoid generated by the union of
      <A>obj1</A>, <A>obj2</A>, .... This equals the monoid generated by the
      union of <A>obj1</A>, <A>obj2</A>, ... and their inverses.<P/>

      As present, the only associative elements with unique semigroup inverses
      are partial permutations; see Chapter
      <Ref Chap="Partial permutations"/>.<P/>

      For example if <C>S</C> and <C>T</C> are inverse monoids, then
      <C>InverseMonoid(S, f, Idempotents(T));</C> is the inverse monoid
      generated by
      <C>Union(GeneratorsOfInverseMonoid(S), [f], Idempotents(T)));</C>.
      <Example>
gap> S := InverseMonoid(
> PartialPerm( [ 1, 2, 3, 6, 8, 10 ], [ 2, 6, 7, 9, 1, 5 ] ) );;
gap> f := PartialPerm( [ 1, 2, 3, 4, 5, 8, 10 ],
> [ 7, 1, 4, 3, 2, 6, 5 ] );;
gap> S := InverseMonoid(S, f, Idempotents(SymmetricInverseSemigroup(5)));
&lt;inverse partial perm monoid of rank 10 with 35 generators>
gap> Size(S);
1243</Example>
  </Description>
  </ManSection>

<ManSection>
  <Attr Name="GeneratorsOfInverseSemigroup" Arg="S"/>
  <Returns>The generators of an inverse semigroup.</Returns>
  <Description>
    If <A>S</A> is an inverse semigroup, then
    <C>GeneratorsOfInverseSemigroup</C> returns the generators used to define
    <A>S</A>, i.e. an inverse semigroup
    generating set for <A>S</A>. <P/>

    The value of <C>GeneratorsOfSemigroup(<A>S</A>)</C>, for an inverse
    semigroup <A>S</A>, is the union of
    inverse semigroup generator and their inverses.
    So, <A>S</A> is the semigroup, as opposed to inverse semigroup,
    generated by the elements of <C>GeneratorsOfInverseSemigroup(<A>S</A>)</C>
    and their inverses.  <P/>

    If <A>S</A> is an inverse monoid, then <C>GeneratorsOfInverseSemigroup</C>
    returns the generators used to define <A>S</A>, as
    described above, and the identity of <A>S</A>.

    <Example><![CDATA[
gap> S:=InverseMonoid(
>  PartialPerm( [ 1, 2 ], [ 1, 4 ] ),
>  PartialPerm( [ 1, 2, 4 ], [ 3, 4, 1 ] ) );;
gap> GeneratorsOfSemigroup(S);
[ <identity partial perm on [ 1, 2, 3, 4 ]>, [2,4](1), [2,4,1,3],
  [4,2](1), [3,1,4,2] ]
gap> GeneratorsOfInverseSemigroup(S);
[ [2,4](1), [2,4,1,3], <identity partial perm on [ 1, 2, 3, 4 ]> ]
gap> GeneratorsOfMonoid(S);
[ [2,4](1), [2,4,1,3], [4,2](1), [3,1,4,2] ]]]></Example>
  </Description>
</ManSection>

<ManSection>
  <Attr Name="GeneratorsOfInverseMonoid" Arg="S"/>
  <Returns>The generators of an inverse monoid.</Returns>
  <Description>
    If <A>S</A> is an inverse monoid, then
    <C>GeneratorsOfInverseMonoid</C> returns the generators used to
    define <A>S</A>, i.e. an inverse monoid
    generating set for <A>S</A>. <P/>

    There are four different possible generating sets which define an inverse
    monoid. More precisely, an inverse monoid can be generated as an inverse
    monoid, inverse semigroup, monoid, or semigroup. The different generating
    sets in each case can be obtained using
    <Ref Attr="GeneratorsOfInverseMonoid"/>,
    <Ref Attr="GeneratorsOfInverseSemigroup"/>,
    <Ref Attr="GeneratorsOfMonoid"/>, and
    <Ref Attr="GeneratorsOfSemigroup"/>, respectively.

    <Example>
gap> S:=InverseMonoid(
>  PartialPerm( [ 1, 2 ], [ 1, 4 ] ),
>  PartialPerm( [ 1, 2, 4 ], [ 3, 4, 1 ] ) );;
gap> GeneratorsOfInverseMonoid(S);
[ [2,4](1), [2,4,1,3] ]</Example>
  </Description>
</ManSection>

<ManSection>
  <Oper Name="IsInverseSubsemigroup" Arg="S, T"/>
  <Returns><K>true</K> or <K>false</K>.</Returns>
  <Description>
    If the semigroup <A>T</A> is an inverse subsemigroup of the semigroup
    <A>S</A>, then this operation returns <K>true</K>.

    <Example>
gap> T:=InverseSemigroup(RandomPartialPerm(4));;
gap> IsInverseSubsemigroup(SymmetricInverseSemigroup(4), T);
true
gap> T:=Semigroup(Transformation( [ 1, 2, 4, 5, 6, 3, 7, 8 ] ),
> Transformation( [ 3, 3, 4, 5, 6, 2, 7, 8 ] ),
> Transformation([ 1, 2, 5, 3, 6, 8, 4, 4 ] ));;
gap> IsInverseSubsemigroup(FullTransformationSemigroup(8), T);
true</Example>
  </Description>
</ManSection>

</Section>