passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-unknown-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1016 -0
  17. gap/pkg/semigroups/config.status +1132 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libsemigroups-8ea3c4e7.so.2.0.0 +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,1173 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/semigroups/semicons.tst
4
+ #Y Copyright (C) 2015-2022 Wilf A. Wilson
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+
10
+ #@local D, H, L, S, S1, S2, c, c1, c2, c3, id, m1, m2, out, p, temp
11
+ gap> START_TEST("Semigroups package: standard/semigroups/semicons.tst");
12
+ gap> LoadPackage("semigroups", false);;
13
+
14
+ #
15
+ gap> SEMIGROUPS.StartTest();
16
+
17
+ # constructions: TrivialSemigroup: errors
18
+ gap> S := TrivialSemigroup(-1);
19
+ Error, the arguments must be a non-negative integer or a filter and a non-nega\
20
+ tive integer
21
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, -1);
22
+ Error, the arguments must be a non-negative integer or a filter and a non-nega\
23
+ tive integer
24
+ gap> S := TrivialSemigroup(0, 1);
25
+ Error, the arguments must be a non-negative integer or a filter and a non-nega\
26
+ tive integer
27
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 1, 1);
28
+ Error, the arguments must be a non-negative integer or a filter and a non-nega\
29
+ tive integer
30
+ gap> S := TrivialSemigroup(IsPermGroup, 1, 1);
31
+ Error, the arguments must be a non-negative integer or a filter and a non-nega\
32
+ tive integer
33
+ gap> S := TrivialSemigroup(IsFreeBand);
34
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
35
+ Error, no 1st choice method found for `TrivialSemigroupCons' on 2 arguments
36
+
37
+ # constructions: TrivialSemigroup: known properties and attributes
38
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 5);;
39
+ gap> HasIsTrivial(S);
40
+ true
41
+ gap> IsTrivial(S);
42
+ true
43
+ gap> S := Semigroup(S);;
44
+ gap> HasIsTrivial(S);
45
+ true
46
+ gap> IsTrivial(S);
47
+ true
48
+
49
+ # constructions: TrivialSemigroup: default
50
+ gap> S := TrivialSemigroup();
51
+ <trivial transformation group of degree 0 with 1 generator>
52
+ gap> S := TrivialSemigroup(0);
53
+ <trivial transformation group of degree 0 with 1 generator>
54
+ gap> S := TrivialSemigroup(1);
55
+ <trivial transformation group of degree 0 with 1 generator>
56
+ gap> S := TrivialSemigroup(5);
57
+ <trivial transformation group of degree 5 with 1 generator>
58
+ gap> S := TrivialSemigroup(10);
59
+ <trivial transformation group of degree 10 with 1 generator>
60
+
61
+ # constructions: TrivialSemigroup: transformation semigroup
62
+ gap> S := TrivialSemigroup(IsTransformationSemigroup);
63
+ <trivial transformation group of degree 0 with 1 generator>
64
+ gap> S := TrivialSemigroup(IsTransformationSemigroup, 0);
65
+ <trivial transformation group of degree 0 with 1 generator>
66
+ gap> S := TrivialSemigroup(IsTransformationSemigroup, 1);
67
+ <trivial transformation group of degree 0 with 1 generator>
68
+ gap> S := TrivialSemigroup(IsTransformationSemigroup, 5);
69
+ <trivial transformation group of degree 5 with 1 generator>
70
+ gap> S := TrivialSemigroup(IsTransformationSemigroup, 10);
71
+ <trivial transformation group of degree 10 with 1 generator>
72
+
73
+ # constructions: TrivialSemigroup: partial perm semigroup
74
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup);
75
+ <trivial partial perm group of rank 0 with 1 generator>
76
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 0);
77
+ <trivial partial perm group of rank 0 with 1 generator>
78
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 1);
79
+ <trivial partial perm group of rank 1 with 1 generator>
80
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 5);
81
+ <trivial partial perm group of rank 5 with 1 generator>
82
+ gap> S := TrivialSemigroup(IsPartialPermSemigroup, 10);
83
+ <trivial partial perm group of rank 10 with 1 generator>
84
+
85
+ # constructions: TrivialSemigroup: bipartition semigroup
86
+ gap> S := TrivialSemigroup(IsBipartitionSemigroup);
87
+ <trivial block bijection group of degree 1 with 1 generator>
88
+ gap> S := TrivialSemigroup(IsBipartitionSemigroup, 0);
89
+ <trivial block bijection group of degree 1 with 1 generator>
90
+ gap> S := TrivialSemigroup(IsBipartitionSemigroup, 1);
91
+ <trivial block bijection group of degree 1 with 1 generator>
92
+ gap> S := TrivialSemigroup(IsBipartitionSemigroup, 5);
93
+ <trivial block bijection group of degree 5 with 1 generator>
94
+ gap> S := TrivialSemigroup(IsBipartitionSemigroup, 10);
95
+ <trivial block bijection group of degree 10 with 1 generator>
96
+
97
+ # constructions: TrivialSemigroup: block bijection semigroup
98
+ gap> S := TrivialSemigroup(IsBlockBijectionSemigroup);
99
+ <trivial block bijection group of degree 1 with 1 generator>
100
+ gap> S := TrivialSemigroup(IsBlockBijectionSemigroup, 0);
101
+ <trivial block bijection group of degree 1 with 1 generator>
102
+ gap> S := TrivialSemigroup(IsBlockBijectionSemigroup, 1);
103
+ <trivial block bijection group of degree 1 with 1 generator>
104
+ gap> S := TrivialSemigroup(IsBlockBijectionSemigroup, 5);
105
+ <trivial block bijection group of degree 5 with 1 generator>
106
+ gap> S := TrivialSemigroup(IsBlockBijectionSemigroup, 10);
107
+ <trivial block bijection group of degree 10 with 1 generator>
108
+
109
+ # constructions: TrivialSemigroup: PBR semigroup
110
+ gap> S := TrivialSemigroup(IsPBRSemigroup);
111
+ <trivial pbr group of degree 1 with 1 generator>
112
+ gap> S := TrivialSemigroup(IsPBRSemigroup, 0);
113
+ <trivial pbr group of degree 1 with 1 generator>
114
+ gap> S := TrivialSemigroup(IsPBRSemigroup, 1);
115
+ <trivial pbr group of degree 1 with 1 generator>
116
+ gap> S := TrivialSemigroup(IsPBRSemigroup, 5);
117
+ <trivial pbr group of degree 5 with 1 generator>
118
+ gap> S := TrivialSemigroup(IsPBRSemigroup, 10);
119
+ <trivial pbr group of degree 10 with 1 generator>
120
+
121
+ # constructions: TrivialSemigroup: Boolean matrix semigroup
122
+ gap> S := TrivialSemigroup(IsBooleanMatSemigroup);
123
+ <trivial group of 1x1 boolean matrices with 1 generator>
124
+ gap> S := TrivialSemigroup(IsBooleanMatSemigroup, 0);
125
+ <trivial group of 1x1 boolean matrices with 1 generator>
126
+ gap> S := TrivialSemigroup(IsBooleanMatSemigroup, 1);
127
+ <trivial group of 1x1 boolean matrices with 1 generator>
128
+ gap> S := TrivialSemigroup(IsBooleanMatSemigroup, 5);
129
+ <trivial group of 5x5 boolean matrices with 1 generator>
130
+ gap> S := TrivialSemigroup(IsBooleanMatSemigroup, 10);
131
+ <trivial group of 10x10 boolean matrices with 1 generator>
132
+
133
+ # constructions: TrivialSemigroup: other constructors
134
+ gap> S := TrivialSemigroup(IsMaxPlusMatrixSemigroup);
135
+ <trivial group of 1x1 max-plus matrices with 1 generator>
136
+
137
+ # constructions: MonogenicSemigroup: errors
138
+ gap> S := MonogenicSemigroup(0);
139
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
140
+ integers
141
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 0);
142
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
143
+ integers
144
+ gap> S := MonogenicSemigroup(0, 1);
145
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
146
+ integers
147
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 0, 0);
148
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
149
+ integers
150
+ gap> S := MonogenicSemigroup(IsPermGroup, 1, 1, 1);
151
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
152
+ integers
153
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 2, true);
154
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
155
+ integers
156
+ gap> S := MonogenicSemigroup(IsMaxPlusMatrixSemigroup, 100, 100);
157
+ <commutative non-regular semigroup of size 199, 200x200 max-plus matrices
158
+ with 1 generator>
159
+
160
+ # constructions: MonogenicSemigroup: known properties and attributes, [4, 7]
161
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 4, 7);;
162
+ gap> IndexPeriodOfPartialPerm(GeneratorsOfSemigroup(S)[1]);
163
+ [ 4, 7 ]
164
+ gap> HasSize(S);
165
+ true
166
+ gap> Size(S) = 4 + 7 - 1;
167
+ true
168
+ gap> HasIsMonogenicSemigroup(S);
169
+ true
170
+ gap> IsMonogenicSemigroup(S);
171
+ true
172
+ gap> HasIsGroupAsSemigroup(S);
173
+ true
174
+ gap> IsGroupAsSemigroup(S);
175
+ false
176
+ gap> HasIsRegularSemigroup(S);
177
+ true
178
+ gap> IsRegularSemigroup(S);
179
+ false
180
+ gap> HasIsZeroSemigroup(S);
181
+ true
182
+ gap> IsZeroSemigroup(S);
183
+ false
184
+ gap> S := Semigroup(S);;
185
+ gap> IndexPeriodOfPartialPerm(GeneratorsOfSemigroup(S)[1]);
186
+ [ 4, 7 ]
187
+ gap> Size(S) = 4 + 7 - 1;
188
+ true
189
+ gap> IsMonogenicSemigroup(S);
190
+ true
191
+ gap> IsGroupAsSemigroup(S);
192
+ false
193
+ gap> IsRegularSemigroup(S);
194
+ false
195
+ gap> IsZeroSemigroup(S);
196
+ false
197
+
198
+ # constructions: MonogenicSemigroup: known properties and attributes, [2, 1]
199
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 2, 1);;
200
+ gap> HasIsZeroSemigroup(S);
201
+ true
202
+ gap> IsZeroSemigroup(S);
203
+ true
204
+ gap> S := Semigroup(S);;
205
+ gap> IsZeroSemigroup(S);
206
+ true
207
+
208
+ # constructions: MonogenicSemigroup: known properties and attributes, [1, 2]
209
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 1, 2);;
210
+ gap> HasIsGroupAsSemigroup(S);
211
+ true
212
+ gap> IsGroupAsSemigroup(S);
213
+ true
214
+ gap> S := Semigroup(S);;
215
+ gap> IsGroupAsSemigroup(S);
216
+ true
217
+
218
+ # constructions: MonogenicSemigroup: default
219
+ gap> S := MonogenicSemigroup(1, 1);
220
+ <trivial transformation group of degree 0 with 1 generator>
221
+ gap> S := MonogenicSemigroup(2, 1);
222
+ <commutative non-regular transformation semigroup of size 2, degree 3 with 1
223
+ generator>
224
+ gap> S := MonogenicSemigroup(1, 2);
225
+ <transformation group of size 2, degree 2 with 1 generator>
226
+ gap> S := MonogenicSemigroup(5, 5);
227
+ <commutative non-regular transformation semigroup of size 9, degree 10 with 1
228
+ generator>
229
+ gap> S := MonogenicSemigroup(10, 11);
230
+ <commutative non-regular transformation semigroup of size 20, degree 21 with
231
+ 1 generator>
232
+
233
+ # constructions: MonogenicSemigroup: transformation semigroup
234
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 1, 1);
235
+ <trivial transformation group of degree 0 with 1 generator>
236
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 2, 1);
237
+ <commutative non-regular transformation semigroup of size 2, degree 3 with 1
238
+ generator>
239
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 1, 2);
240
+ <transformation group of size 2, degree 2 with 1 generator>
241
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 5, 5);
242
+ <commutative non-regular transformation semigroup of size 9, degree 10 with 1
243
+ generator>
244
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 10, 11);
245
+ <commutative non-regular transformation semigroup of size 20, degree 21 with
246
+ 1 generator>
247
+
248
+ # constructions: MonogenicSemigroup: partial perm semigroup
249
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 1, 1);
250
+ <trivial partial perm group of rank 0 with 1 generator>
251
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 2, 1);
252
+ <commutative non-regular partial perm semigroup of size 2, rank 1 with 1
253
+ generator>
254
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 1, 2);
255
+ <partial perm group of size 2, rank 2 with 1 generator>
256
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 5, 5);
257
+ <commutative non-regular partial perm semigroup of size 9, rank 9 with 1
258
+ generator>
259
+ gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 10, 11);
260
+ <commutative non-regular partial perm semigroup of size 20, rank 20 with 1
261
+ generator>
262
+
263
+ # constructions: MonogenicSemigroup: bipartition semigroup
264
+ gap> S := MonogenicSemigroup(IsBipartitionSemigroup, 1, 1);
265
+ <trivial block bijection group of degree 1 with 1 generator>
266
+ gap> S := MonogenicSemigroup(IsBipartitionSemigroup, 2, 1);
267
+ <commutative non-regular block bijection semigroup of size 2, degree 3 with 1
268
+ generator>
269
+ gap> S := MonogenicSemigroup(IsBipartitionSemigroup, 1, 2);
270
+ <block bijection group of size 2, degree 2 with 1 generator>
271
+ gap> S := MonogenicSemigroup(IsBipartitionSemigroup, 5, 5);
272
+ <commutative non-regular block bijection semigroup of size 9, degree 11 with
273
+ 1 generator>
274
+ gap> S := MonogenicSemigroup(IsBipartitionSemigroup, 10, 11);
275
+ <commutative non-regular block bijection semigroup of size 20, degree 22 with
276
+ 1 generator>
277
+
278
+ # constructions: MonogenicSemigroup: block bijection semigroup
279
+ gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 1, 1);
280
+ <trivial block bijection group of degree 1 with 1 generator>
281
+ gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 2, 1);
282
+ <commutative non-regular block bijection semigroup of size 2, degree 3 with 1
283
+ generator>
284
+ gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 1, 2);
285
+ <block bijection group of size 2, degree 2 with 1 generator>
286
+ gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 5, 5);
287
+ <commutative non-regular block bijection semigroup of size 9, degree 11 with
288
+ 1 generator>
289
+ gap> S := MonogenicSemigroup(IsBlockBijectionSemigroup, 10, 11);
290
+ <commutative non-regular block bijection semigroup of size 20, degree 22 with
291
+ 1 generator>
292
+
293
+ # constructions: MonogenicSemigroup: PBR semigroup
294
+ gap> S := MonogenicSemigroup(IsPBRSemigroup, 1, 1);
295
+ <trivial pbr group of degree 1 with 1 generator>
296
+ gap> S := MonogenicSemigroup(IsPBRSemigroup, 2, 1);
297
+ <commutative non-regular pbr semigroup of size 2, degree 3 with 1 generator>
298
+ gap> S := MonogenicSemigroup(IsPBRSemigroup, 1, 2);
299
+ <pbr group of size 2, degree 2 with 1 generator>
300
+ gap> S := MonogenicSemigroup(IsPBRSemigroup, 5, 5);
301
+ <commutative non-regular pbr semigroup of size 9, degree 10 with 1 generator>
302
+ gap> S := MonogenicSemigroup(IsPBRSemigroup, 10, 11);
303
+ <commutative non-regular pbr semigroup of size 20, degree 21 with 1 generator>
304
+
305
+ # constructions: MonogenicSemigroup: Boolean matrix semigroup
306
+ gap> S := MonogenicSemigroup(IsBooleanMatSemigroup, 1, 1);
307
+ <trivial group of 1x1 boolean matrices with 1 generator>
308
+ gap> S := MonogenicSemigroup(IsBooleanMatSemigroup, 2, 1);
309
+ <commutative non-regular semigroup of size 2, 3x3 boolean matrices with 1
310
+ generator>
311
+ gap> S := MonogenicSemigroup(IsBooleanMatSemigroup, 1, 2);
312
+ <group of size 2, 2x2 boolean matrices with 1 generator>
313
+ gap> S := MonogenicSemigroup(IsBooleanMatSemigroup, 5, 5);
314
+ <commutative non-regular semigroup of size 9, 10x10 boolean matrices with 1
315
+ generator>
316
+ gap> S := MonogenicSemigroup(IsBooleanMatSemigroup, 10, 11);
317
+ <commutative non-regular semigroup of size 20, 21x21 boolean matrices with 1
318
+ generator>
319
+
320
+ # constructions: RectangularBand: errors
321
+ gap> S := RectangularBand(0);
322
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
323
+ integers
324
+ gap> S := RectangularBand(IsPartialPermSemigroup, 0);
325
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
326
+ integers
327
+ gap> S := RectangularBand(0, 1);
328
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
329
+ integers
330
+ gap> S := RectangularBand(IsPartialPermSemigroup, 0, 0);
331
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
332
+ integers
333
+ gap> S := RectangularBand(IsPermGroup, 1, 1, 1);
334
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
335
+ integers
336
+ gap> S := RectangularBand(IsPartialPermSemigroup, 2, true);
337
+ Error, the arguments must be 2 positive integers or a filter and a 2 positive \
338
+ integers
339
+ gap> S := RectangularBand(IsMaxPlusMatrixSemigroup, 100, 100);
340
+ <regular semigroup of size 10000, 21x21 max-plus matrices with 100 generators>
341
+
342
+ # constructions: RectangularBand: known properties and attributes, [3, 4]
343
+ gap> S := RectangularBand(3, 4);;
344
+ gap> HasSize(S);
345
+ true
346
+ gap> Size(S) = 3 * 4;
347
+ true
348
+ gap> HasIsRectangularBand(S);
349
+ true
350
+ gap> IsRectangularBand(S);
351
+ true
352
+ gap> HasIsGroupAsSemigroup(S);
353
+ true
354
+ gap> IsGroupAsSemigroup(S);
355
+ false
356
+ gap> HasIsTrivial(S);
357
+ true
358
+ gap> IsTrivial(S);
359
+ false
360
+ gap> HasIsRightZeroSemigroup(S);
361
+ true
362
+ gap> IsRightZeroSemigroup(S);
363
+ false
364
+ gap> HasIsLeftZeroSemigroup(S);
365
+ true
366
+ gap> IsLeftZeroSemigroup(S);
367
+ false
368
+ gap> S := Semigroup(S);;
369
+ gap> Size(S) = 3 * 4;
370
+ true
371
+ gap> IsRectangularBand(S);
372
+ true
373
+ gap> IsGroupAsSemigroup(S);
374
+ false
375
+ gap> IsTrivial(S);
376
+ false
377
+ gap> IsRightZeroSemigroup(S);
378
+ false
379
+ gap> IsLeftZeroSemigroup(S);
380
+ false
381
+ gap> S := RectangularBand(5, 2);
382
+ <regular transformation semigroup of size 10, degree 7 with 5 generators>
383
+
384
+ # constructions: RectangularBand: known properties and attributes, [1, 1]
385
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 1, 1);;
386
+ gap> HasIsTrivial(S);
387
+ true
388
+ gap> IsTrivial(S);
389
+ true
390
+ gap> S := Semigroup(S);;
391
+ gap> IsTrivial(S);
392
+ true
393
+
394
+ # constructions: RectangularBand: known properties and attributes, [2, 1]
395
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 2, 1);;
396
+ gap> HasIsLeftZeroSemigroup(S);
397
+ true
398
+ gap> IsLeftZeroSemigroup(S);
399
+ true
400
+ gap> S := Semigroup(S);;
401
+ gap> IsLeftZeroSemigroup(S);
402
+ true
403
+
404
+ # constructions: RectangularBand: known properties and attributes, [1, 2]
405
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 1, 2);;
406
+ gap> HasIsRightZeroSemigroup(S);
407
+ true
408
+ gap> IsRightZeroSemigroup(S);
409
+ true
410
+ gap> S := Semigroup(S);;
411
+ gap> IsRightZeroSemigroup(S);
412
+ true
413
+
414
+ # constructions: RectangularBand: default
415
+ gap> S := RectangularBand(1, 1);
416
+ <trivial transformation group of degree 0 with 1 generator>
417
+ gap> S := RectangularBand(2, 1);
418
+ <regular transformation semigroup of size 2, degree 3 with 2 generators>
419
+ gap> S := RectangularBand(1, 2);
420
+ <regular transformation semigroup of size 2, degree 2 with 2 generators>
421
+ gap> S := RectangularBand(5, 5);
422
+ <regular transformation semigroup of size 25, degree 10 with 5 generators>
423
+ gap> S := RectangularBand(10, 11);
424
+ <regular transformation semigroup of size 110, degree 13 with 11 generators>
425
+
426
+ # constructions: RectangularBand: transformation semigroup
427
+ gap> S := RectangularBand(IsTransformationSemigroup, 1, 1);
428
+ <trivial transformation group of degree 0 with 1 generator>
429
+ gap> S := RectangularBand(IsTransformationSemigroup, 2, 1);
430
+ <regular transformation semigroup of size 2, degree 3 with 2 generators>
431
+ gap> S := RectangularBand(IsTransformationSemigroup, 1, 2);
432
+ <regular transformation semigroup of size 2, degree 2 with 2 generators>
433
+ gap> S := RectangularBand(IsTransformationSemigroup, 5, 5);
434
+ <regular transformation semigroup of size 25, degree 10 with 5 generators>
435
+ gap> S := RectangularBand(IsTransformationSemigroup, 10, 11);
436
+ <regular transformation semigroup of size 110, degree 13 with 11 generators>
437
+
438
+ # constructions: RectangularBand: partial perm semigroup
439
+ gap> S := RectangularBand(IsPartialPermSemigroup, 1, 1);
440
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
441
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
442
+ gap> S := RectangularBand(IsPartialPermSemigroup, 2, 2);
443
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
444
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
445
+
446
+ # constructions: RectangularBand: bipartition semigroup
447
+ gap> S := RectangularBand(IsBipartitionSemigroup, 1, 1);
448
+ <trivial bipartition group of degree 1 with 1 generator>
449
+ gap> S := RectangularBand(IsBipartitionSemigroup, 2, 1);
450
+ <regular bipartition semigroup of size 2, degree 2 with 2 generators>
451
+ gap> S := RectangularBand(IsBipartitionSemigroup, 1, 2);
452
+ <regular bipartition semigroup of size 2, degree 2 with 2 generators>
453
+ gap> S := RectangularBand(IsBipartitionSemigroup, 5, 5);
454
+ <regular bipartition semigroup of size 25, degree 3 with 5 generators>
455
+ gap> S := RectangularBand(IsBipartitionSemigroup, 10, 11);
456
+ <regular bipartition semigroup of size 110, degree 4 with 11 generators>
457
+
458
+ # constructions: RectangularBand: block bijection semigroup
459
+ gap> S := RectangularBand(IsBlockBijectionSemigroup, 1, 1);
460
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
461
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
462
+ gap> S := RectangularBand(IsBlockBijectionSemigroup, 2, 2);
463
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
464
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
465
+
466
+ # constructions: RectangularBand: PBR semigroup
467
+ gap> S := RectangularBand(IsPBRSemigroup, 1, 1);
468
+ <trivial pbr group of degree 1 with 1 generator>
469
+ gap> S := RectangularBand(IsPBRSemigroup, 2, 1);
470
+ <regular pbr semigroup of size 2, degree 2 with 2 generators>
471
+ gap> S := RectangularBand(IsPBRSemigroup, 1, 2);
472
+ <regular pbr semigroup of size 2, degree 2 with 2 generators>
473
+ gap> S := RectangularBand(IsPBRSemigroup, 5, 5);
474
+ <regular pbr semigroup of size 25, degree 3 with 5 generators>
475
+ gap> S := RectangularBand(IsPBRSemigroup, 10, 11);
476
+ <regular pbr semigroup of size 110, degree 4 with 11 generators>
477
+
478
+ # constructions: RectangularBand: Boolean matrix semigroup
479
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 1, 1);
480
+ <trivial group of 1x1 boolean matrices with 1 generator>
481
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 2, 1);
482
+ <regular semigroup of size 2, 3x3 boolean matrices with 2 generators>
483
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 1, 2);
484
+ <regular semigroup of size 2, 2x2 boolean matrices with 2 generators>
485
+ gap> S := RectangularBand(IsBooleanMatSemigroup, 5, 5);
486
+ <regular semigroup of size 25, 10x10 boolean matrices with 5 generators>
487
+
488
+ # constructions: RectangularBand: Rees matrix semigroup
489
+ gap> S := RectangularBand(IsReesMatrixSemigroup, 1, 1);
490
+ <Rees matrix semigroup 1x1 over Group(())>
491
+ gap> S := RectangularBand(IsReesMatrixSemigroup, 2, 1);
492
+ <Rees matrix semigroup 2x1 over Group(())>
493
+ gap> S := RectangularBand(IsReesMatrixSemigroup, 1, 2);
494
+ <Rees matrix semigroup 1x2 over Group(())>
495
+ gap> S := RectangularBand(IsReesMatrixSemigroup, 5, 5);
496
+ <Rees matrix semigroup 5x5 over Group(())>
497
+ gap> S := RectangularBand(IsReesMatrixSemigroup, 10, 11);
498
+ <Rees matrix semigroup 10x11 over Group(())>
499
+
500
+ # constructions: FreeSemilattice: errors
501
+ gap> S := FreeSemilattice(0);
502
+ Error, the arguments must be a positive integer or a filter and a positive int\
503
+ eger
504
+ gap> S := FreeSemilattice(IsPartialPermSemigroup, 0);
505
+ Error, the arguments must be a positive integer or a filter and a positive int\
506
+ eger
507
+ gap> S := FreeSemilattice(IsPermGroup, 1, 1);
508
+ Error, expected 2 arguments found 3
509
+ gap> S := FreeSemilattice(IsPartialPermSemigroup, true);
510
+ Error, the arguments must be a positive integer or a filter and a positive int\
511
+ eger
512
+
513
+ # constructions: FreeSemilattice: known properties and attributes, 17
514
+ gap> S := FreeSemilattice(17);;
515
+ gap> HasSize(S);
516
+ true
517
+ gap> Size(S) = 2 ^ 17 - 1;
518
+ true
519
+
520
+ # constructions: FreeSemilattice: default
521
+ gap> S := FreeSemilattice(1);
522
+ <trivial transformation group of degree 2 with 1 generator>
523
+ gap> S := FreeSemilattice(2);
524
+ <inverse transformation semigroup of size 3, degree 3 with 2 generators>
525
+ gap> S := FreeSemilattice(5);
526
+ <inverse transformation semigroup of size 31, degree 6 with 5 generators>
527
+ gap> S := FreeSemilattice(21);
528
+ <inverse transformation semigroup of size 2097151, degree 22 with 21
529
+ generators>
530
+
531
+ # constructions: FreeSemilattice: transformation semigroup
532
+ gap> S := FreeSemilattice(IsTransformationSemigroup, 1);
533
+ <trivial transformation group of degree 2 with 1 generator>
534
+ gap> S := FreeSemilattice(IsTransformationSemigroup, 2);
535
+ <inverse transformation semigroup of size 3, degree 3 with 2 generators>
536
+ gap> S := FreeSemilattice(IsTransformationSemigroup, 5);
537
+ <inverse transformation semigroup of size 31, degree 6 with 5 generators>
538
+ gap> S := FreeSemilattice(IsTransformationSemigroup, 11);
539
+ <inverse transformation semigroup of size 2047, degree 12 with 11 generators>
540
+
541
+ # constructions: ZeroSemigroup: errors
542
+ gap> S := ZeroSemigroup(0);
543
+ Error, the arguments must be a positive integer or a filter and a positive int\
544
+ eger
545
+ gap> S := ZeroSemigroup(IsPartialPermSemigroup, 0);
546
+ Error, the arguments must be a positive integer or a filter and a positive int\
547
+ eger
548
+ gap> S := ZeroSemigroup(0, 1);
549
+ Error, the arguments must be a positive integer or a filter and a positive int\
550
+ eger
551
+ gap> S := ZeroSemigroup(0, 0);
552
+ Error, the arguments must be a positive integer or a filter and a positive int\
553
+ eger
554
+ gap> S := ZeroSemigroup(IsPermGroup, 1);
555
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
556
+ Error, no 1st choice method found for `ZeroSemigroupCons' on 2 arguments
557
+ gap> S := ZeroSemigroup(IsPartialPermSemigroup, 2, true);
558
+ Error, the arguments must be a positive integer or a filter and a positive int\
559
+ eger
560
+ gap> S := ZeroSemigroup(IsMaxPlusMatrixSemigroup, 10);
561
+ <commutative non-regular semigroup of size 10, 6x6 max-plus matrices with 9
562
+ generators>
563
+
564
+ # constructions: ZeroSemigroup: known properties and attributes, n = 1
565
+ gap> S := ZeroSemigroup(1);;
566
+ gap> HasSize(S);
567
+ true
568
+ gap> Size(S);
569
+ 1
570
+ gap> HasIsZeroSemigroup(S);
571
+ true
572
+ gap> IsZeroSemigroup(S);
573
+ true
574
+ gap> HasMultiplicativeZero(S);
575
+ true
576
+ gap> MultiplicativeZero(S);
577
+ IdentityTransformation
578
+ gap> HasAsList(S);
579
+ false
580
+ gap> AsList(S);
581
+ [ IdentityTransformation ]
582
+ gap> IsGroup(S);
583
+ false
584
+ gap> S := Semigroup(S);;
585
+ gap> HasSize(S);
586
+ false
587
+ gap> Size(S);
588
+ 1
589
+ gap> HasIsZeroSemigroup(S);
590
+ true
591
+ gap> IsZeroSemigroup(S);
592
+ true
593
+ gap> HasMultiplicativeZero(S);
594
+ false
595
+ gap> MultiplicativeZero(S);
596
+ IdentityTransformation
597
+ gap> HasAsList(S);
598
+ false
599
+ gap> AsList(S);
600
+ [ IdentityTransformation ]
601
+ gap> IsGroup(S);
602
+ false
603
+
604
+ # constructions: ZeroSemigroup: known properties and attributes, n = 2
605
+ gap> S := ZeroSemigroup(2);;
606
+ gap> HasIsMonogenicSemigroup(S);
607
+ true
608
+ gap> IsMonogenicSemigroup(S);
609
+ true
610
+ gap> S := Semigroup(S);;
611
+ gap> HasIsMonogenicSemigroup(S);
612
+ true
613
+ gap> IsMonogenicSemigroup(S);
614
+ true
615
+
616
+ # constructions: ZeroSemigroup: known properties and attributes, n = 5
617
+ gap> S := ZeroSemigroup(5);;
618
+ gap> HasSize(S);
619
+ true
620
+ gap> Size(S);
621
+ 5
622
+ gap> HasIsZeroSemigroup(S);
623
+ true
624
+ gap> IsZeroSemigroup(S);
625
+ true
626
+ gap> HasMultiplicativeZero(S);
627
+ true
628
+ gap> MultiplicativeZero(S);
629
+ Transformation( [ 1, 1, 1, 1, 1 ] )
630
+ gap> HasAsList(S);
631
+ false
632
+ gap> AsList(S);
633
+ [ Transformation( [ 1, 1, 1, 1, 2 ] ), Transformation( [ 1, 1, 1, 1, 3 ] ),
634
+ Transformation( [ 1, 1, 1, 2, 1 ] ), Transformation( [ 1, 1, 1, 2, 2 ] ),
635
+ Transformation( [ 1, 1, 1, 1, 1 ] ) ]
636
+ gap> HasIsGroupAsSemigroup(S);
637
+ true
638
+ gap> IsGroupAsSemigroup(S);
639
+ false
640
+ gap> HasIsRegularSemigroup(S);
641
+ true
642
+ gap> IsRegularSemigroup(S);
643
+ false
644
+ gap> HasIsMonogenicSemigroup(S);
645
+ true
646
+ gap> IsMonogenicSemigroup(S);
647
+ false
648
+ gap> S := Semigroup(S);;
649
+ gap> HasSize(S);
650
+ false
651
+ gap> Size(S);
652
+ 5
653
+ gap> HasIsZeroSemigroup(S);
654
+ false
655
+ gap> IsZeroSemigroup(S);
656
+ true
657
+ gap> HasMultiplicativeZero(S);
658
+ true
659
+ gap> MultiplicativeZero(S);
660
+ Transformation( [ 1, 1, 1, 1, 1 ] )
661
+ gap> HasAsList(S);
662
+ false
663
+ gap> AsList(S);
664
+ [ Transformation( [ 1, 1, 1, 1, 2 ] ), Transformation( [ 1, 1, 1, 1, 3 ] ),
665
+ Transformation( [ 1, 1, 1, 2, 1 ] ), Transformation( [ 1, 1, 1, 2, 2 ] ),
666
+ Transformation( [ 1, 1, 1, 1, 1 ] ) ]
667
+ gap> HasIsGroupAsSemigroup(S);
668
+ false
669
+ gap> IsGroupAsSemigroup(S);
670
+ false
671
+ gap> HasIsRegularSemigroup(S);
672
+ false
673
+ gap> IsRegularSemigroup(S);
674
+ false
675
+ gap> HasIsMonogenicSemigroup(S);
676
+ false
677
+ gap> IsMonogenicSemigroup(S);
678
+ false
679
+
680
+ # constructions: ZeroSemigroup: default
681
+ gap> S := ZeroSemigroup(1);
682
+ <trivial transformation group of degree 0 with 1 generator>
683
+ gap> S := ZeroSemigroup(2);
684
+ <commutative non-regular transformation semigroup of size 2, degree 3 with 1
685
+ generator>
686
+ gap> S := ZeroSemigroup(3);
687
+ <commutative non-regular transformation semigroup of size 3, degree 4 with 2
688
+ generators>
689
+ gap> IsZeroSemigroup(Semigroup(S));
690
+ true
691
+
692
+ # constructions: ZeroSemigroup: transformation semigroup
693
+ gap> S := ZeroSemigroup(IsTransformationSemigroup, 1);
694
+ <trivial transformation group of degree 0 with 1 generator>
695
+ gap> S := ZeroSemigroup(IsTransformationSemigroup, 5);
696
+ <commutative non-regular transformation semigroup of size 5, degree 5 with 4
697
+ generators>
698
+ gap> S := ZeroSemigroup(IsTransformationSemigroup, 10);
699
+ <commutative non-regular transformation semigroup of size 10, degree 6 with 9
700
+ generators>
701
+ gap> IsZeroSemigroup(Semigroup(S));
702
+ true
703
+
704
+ # constructions: ZeroSemigroup: partial perm semigroup
705
+ gap> S := ZeroSemigroup(IsPartialPermSemigroup, 1);
706
+ <trivial partial perm group of rank 0 with 1 generator>
707
+ gap> S := ZeroSemigroup(IsPartialPermSemigroup, 5);
708
+ <commutative non-regular partial perm semigroup of size 5, rank 4 with 4
709
+ generators>
710
+ gap> S := ZeroSemigroup(IsPartialPermSemigroup, 10);
711
+ <commutative non-regular partial perm semigroup of size 10, rank 9 with 9
712
+ generators>
713
+ gap> IsZeroSemigroup(Semigroup(S));
714
+ true
715
+
716
+ # constructions: ZeroSemigroup: bipartition semigroup
717
+ gap> S := ZeroSemigroup(IsBipartitionSemigroup, 1);
718
+ <trivial block bijection group of degree 1 with 1 generator>
719
+ gap> S := ZeroSemigroup(IsBipartitionSemigroup, 2);
720
+ <commutative non-regular bipartition semigroup of size 2, degree 2 with 1
721
+ generator>
722
+ gap> S := ZeroSemigroup(IsBipartitionSemigroup, 5);
723
+ <commutative non-regular bipartition semigroup of size 5, degree 5 with 4
724
+ generators>
725
+ gap> S := ZeroSemigroup(IsBipartitionSemigroup, 10);
726
+ <commutative non-regular bipartition semigroup of size 10, degree 6 with 9
727
+ generators>
728
+ gap> IsZeroSemigroup(Semigroup(S));
729
+ true
730
+
731
+ # constructions: ZeroSemigroup: block bijection semigroup
732
+ gap> S := ZeroSemigroup(IsBlockBijectionSemigroup, 1);
733
+ <trivial block bijection group of degree 1 with 1 generator>
734
+ gap> S := ZeroSemigroup(IsBlockBijectionSemigroup, 2);
735
+ <commutative non-regular block bijection semigroup of size 2, degree 3 with 1
736
+ generator>
737
+ gap> S := ZeroSemigroup(IsBlockBijectionSemigroup, 5);
738
+ <commutative non-regular block bijection semigroup of size 5, degree 8 with 4
739
+ generators>
740
+ gap> S := ZeroSemigroup(IsBlockBijectionSemigroup, 10);
741
+ <commutative non-regular block bijection semigroup of size 10, degree 18 with
742
+ 9 generators>
743
+ gap> IsZeroSemigroup(Semigroup(S));
744
+ true
745
+
746
+ # constructions: ZeroSemigroup: PBR semigroup
747
+ gap> S := ZeroSemigroup(IsPBRSemigroup, 1);
748
+ <trivial pbr group of degree 1 with 1 generator>
749
+ gap> S := ZeroSemigroup(IsPBRSemigroup, 5);
750
+ <commutative non-regular pbr semigroup of size 5, degree 5 with 4 generators>
751
+ gap> S := ZeroSemigroup(IsPBRSemigroup, 10);
752
+ <commutative non-regular pbr semigroup of size 10, degree 6 with 9 generators>
753
+ gap> IsZeroSemigroup(Semigroup(S));
754
+ true
755
+
756
+ # constructions: ZeroSemigroup: Boolean matrix semigroup
757
+ gap> S := ZeroSemigroup(IsBooleanMatSemigroup, 1);
758
+ <trivial group of 1x1 boolean matrices with 1 generator>
759
+ gap> S := ZeroSemigroup(IsBooleanMatSemigroup, 5);
760
+ <commutative non-regular semigroup of size 5, 5x5 boolean matrices with 4
761
+ generators>
762
+ gap> S := ZeroSemigroup(IsBooleanMatSemigroup, 10);
763
+ <commutative non-regular semigroup of size 10, 6x6 boolean matrices with 9
764
+ generators>
765
+ gap> IsZeroSemigroup(Semigroup(S));
766
+ true
767
+
768
+ # constructions: ZeroSemigroup: Rees 0-matrix semigroup, error
769
+ gap> S := ZeroSemigroup(IsReesZeroMatrixSemigroup, 1);
770
+ Error, there is no Rees 0-matrix semigroup of order 1
771
+
772
+ # constructions: ZeroSemigroup: Rees 0-matrix semigroup, 2
773
+ gap> S := ZeroSemigroup(IsReesZeroMatrixSemigroup, 2);
774
+ <Rees 0-matrix semigroup 1x1 over Group(())>
775
+ gap> S := ZeroSemigroup(IsReesZeroMatrixSemigroup, 5);
776
+ <Rees 0-matrix semigroup 4x1 over Group(())>
777
+ gap> S := ZeroSemigroup(IsReesZeroMatrixSemigroup, 10);
778
+ <Rees 0-matrix semigroup 9x1 over Group(())>
779
+ gap> IsZeroSemigroup(Semigroup(S));
780
+ true
781
+
782
+ # constructions: LeftZeroSemigroup, error
783
+ gap> S := LeftZeroSemigroup();
784
+ Error, the arguments must be a positive integer or a filter and a positive int\
785
+ eger
786
+ gap> S := LeftZeroSemigroup(0);
787
+ Error, the arguments must be a positive integer or a filter and a positive int\
788
+ eger
789
+ gap> S := LeftZeroSemigroup(0, 1);
790
+ Error, the arguments must be a positive integer or a filter and a positive int\
791
+ eger
792
+ gap> S := LeftZeroSemigroup(IsTransformationSemigroup, 0);
793
+ Error, the arguments must be a positive integer or a filter and a positive int\
794
+ eger
795
+ gap> S := LeftZeroSemigroup(1, 2, 3);
796
+ Error, the arguments must be a positive integer or a filter and a positive int\
797
+ eger
798
+ gap> S := LeftZeroSemigroup(IsMaxPlusMatrixSemigroup, 4);
799
+ <regular semigroup of size 4, 4x4 max-plus matrices with 4 generators>
800
+ gap> S := LeftZeroSemigroup(IsGroup, 4);
801
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
802
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
803
+
804
+ # constructions: LeftZeroSemigroup
805
+ gap> S := LeftZeroSemigroup(1);
806
+ <trivial transformation group of degree 0 with 1 generator>
807
+ gap> S := LeftZeroSemigroup(IsBipartitionSemigroup, 10);
808
+ <regular bipartition semigroup of size 10, degree 4 with 10 generators>
809
+ gap> IsLeftZeroSemigroup(Semigroup(S));
810
+ true
811
+ gap> Size(S);
812
+ 10
813
+
814
+ # constructions: RightZeroSemigroup, error
815
+ gap> S := RightZeroSemigroup();
816
+ Error, the arguments must be a positive integer or a filter and a positive int\
817
+ eger
818
+ gap> S := RightZeroSemigroup(0);
819
+ Error, the arguments must be a positive integer or a filter and a positive int\
820
+ eger
821
+ gap> S := RightZeroSemigroup(0, 1);
822
+ Error, the arguments must be a positive integer or a filter and a positive int\
823
+ eger
824
+ gap> S := RightZeroSemigroup(IsTransformationSemigroup, 0);
825
+ Error, the arguments must be a positive integer or a filter and a positive int\
826
+ eger
827
+ gap> S := RightZeroSemigroup(1, 2, 3);
828
+ Error, the arguments must be a positive integer or a filter and a positive int\
829
+ eger
830
+ gap> S := RightZeroSemigroup(IsMaxPlusMatrixSemigroup, 4);
831
+ <regular semigroup of size 4, 4x4 max-plus matrices with 4 generators>
832
+ gap> S := RightZeroSemigroup(IsGroup, 4);
833
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
834
+ Error, no 1st choice method found for `RectangularBandCons' on 3 arguments
835
+
836
+ # constructions: RightZeroSemigroup
837
+ gap> S := RightZeroSemigroup(1);
838
+ <trivial transformation group of degree 0 with 1 generator>
839
+ gap> S := RightZeroSemigroup(IsBipartitionSemigroup, 10);
840
+ <regular bipartition semigroup of size 10, degree 4 with 10 generators>
841
+ gap> IsRightZeroSemigroup(Semigroup(S));
842
+ true
843
+ gap> Size(S);
844
+ 10
845
+
846
+ # constructions: RightZeroSemigroup, deg = 0 mod 3
847
+ gap> S := RightZeroSemigroup(9);
848
+ <transformation semigroup of degree 6 with 9 generators>
849
+
850
+ # constructions: Brandt semigroups, partial perm semigroups, default
851
+ gap> S := BrandtSemigroup(Group((1, 2)), 1);
852
+ <0-simple inverse partial perm semigroup of rank 2 with 2 generators>
853
+ gap> MultiplicativeZero(S);
854
+ <empty partial perm>
855
+ gap> Size(S);
856
+ 3
857
+ gap> IsBrandtSemigroup(S);
858
+ true
859
+ gap> S := BrandtSemigroup(Group((1, 2)), 2);
860
+ <0-simple inverse partial perm semigroup of rank 4 with 2 generators>
861
+ gap> MultiplicativeZero(S);
862
+ <empty partial perm>
863
+ gap> Size(S);
864
+ 9
865
+ gap> IsBrandtSemigroup(S);
866
+ true
867
+ gap> S := BrandtSemigroup(IsPartialPermSemigroup, Group((1, 2)), 5);
868
+ <0-simple inverse partial perm semigroup of rank 10 with 5 generators>
869
+ gap> Size(S);
870
+ 51
871
+ gap> S := BrandtSemigroup(10);
872
+ <0-simple inverse partial perm semigroup of rank 10 with 9 generators>
873
+ gap> Size(S);
874
+ 101
875
+ gap> S := BrandtSemigroup(1);
876
+ <0-simple inverse partial perm monoid of rank 1 with 2 generators>
877
+ gap> Size(S);
878
+ 2
879
+ gap> S := BrandtSemigroup(TrivialGroup(IsPermGroup), 1);
880
+ <0-simple inverse partial perm monoid of rank 1 with 2 generators>
881
+ gap> Size(S);
882
+ 2
883
+
884
+ # constructions: Brandt semigroups, Rees 0-matrix semigroup
885
+ gap> S := BrandtSemigroup(IsReesZeroMatrixSemigroup, 4);
886
+ <Rees 0-matrix semigroup 4x4 over Group(())>
887
+ gap> S := BrandtSemigroup(IsReesZeroMatrixSemigroup, DihedralGroup(4), 4);
888
+ <Rees 0-matrix semigroup 4x4 over <pc group of size 4 with 2 generators>>
889
+ gap> IsInverseSemigroup(last);
890
+ true
891
+ gap> S := BrandtSemigroup(IsReesZeroMatrixSemigroup, DihedralGroup(4));
892
+ Error, the arguments must be a positive integer or a filter and a positive int\
893
+ eger, or a perm group and positive integer, or a filter, perm group, and posi\
894
+ tive integer
895
+
896
+ # constructions: Brandt semigroups, other semigroups
897
+ gap> S := BrandtSemigroup(IsTransformationSemigroup, 3);
898
+ <0-simple transformation semigroup of degree 4 with 4 generators>
899
+ gap> S := BrandtSemigroup(IsTransformationSemigroup, Group((1, 2)), 3);
900
+ <0-simple transformation semigroup of degree 7 with 5 generators>
901
+ gap> S := BrandtSemigroup(IsTransformationSemigroup, DihedralGroup(4), 3);
902
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
903
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
904
+ gap> S := BrandtSemigroup(IsBipartitionSemigroup, 3);
905
+ <0-simple inverse bipartition semigroup of degree 3 with 2 generators>
906
+ gap> S := BrandtSemigroup(IsBipartitionSemigroup, Group((1, 2)), 3);
907
+ <0-simple inverse bipartition semigroup of degree 6 with 3 generators>
908
+ gap> S := BrandtSemigroup(IsBipartitionSemigroup, DihedralGroup(4), 3);
909
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
910
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
911
+ gap> S := BrandtSemigroup(IsPBRSemigroup, 3);
912
+ <0-simple pbr semigroup of degree 4 with 4 generators>
913
+ gap> S := BrandtSemigroup(IsPBRSemigroup, Group((1, 2)), 3);
914
+ <0-simple pbr semigroup of degree 7 with 5 generators>
915
+ gap> S := BrandtSemigroup(IsPBRSemigroup, DihedralGroup(4), 3);
916
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
917
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
918
+ gap> S := BrandtSemigroup(IsBooleanMatSemigroup, 3);
919
+ <0-simple semigroup of 4x4 boolean matrices with 4 generators>
920
+ gap> S := BrandtSemigroup(IsBooleanMatSemigroup, Group((1, 2)), 3);
921
+ <0-simple semigroup of 7x7 boolean matrices with 5 generators>
922
+ gap> S := BrandtSemigroup(IsBooleanMatSemigroup, DihedralGroup(4), 3);
923
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
924
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
925
+ gap> S := BrandtSemigroup(IsNTPMatrixSemigroup, 3);
926
+ <0-simple semigroup of 4x4 ntp matrices with 4 generators>
927
+ gap> S := BrandtSemigroup(IsNTPMatrixSemigroup, Group((1, 2)), 3);
928
+ <0-simple semigroup of 7x7 ntp matrices with 5 generators>
929
+ gap> S := BrandtSemigroup(IsNTPMatrixSemigroup, DihedralGroup(4), 3);
930
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
931
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
932
+ gap> S := BrandtSemigroup(IsMaxPlusMatrixSemigroup, 3);
933
+ <0-simple semigroup of 4x4 max-plus matrices with 4 generators>
934
+ gap> S := BrandtSemigroup(IsMaxPlusMatrixSemigroup, Group((1, 2)), 3);
935
+ <0-simple semigroup of 7x7 max-plus matrices with 5 generators>
936
+ gap> S := BrandtSemigroup(IsMaxPlusMatrixSemigroup, DihedralGroup(4), 3);
937
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
938
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
939
+ gap> S := BrandtSemigroup(IsMinPlusMatrixSemigroup, 3);
940
+ <0-simple semigroup of 4x4 min-plus matrices with 4 generators>
941
+ gap> S := BrandtSemigroup(IsMinPlusMatrixSemigroup, Group((1, 2)), 3);
942
+ <0-simple semigroup of 7x7 min-plus matrices with 5 generators>
943
+ gap> S := BrandtSemigroup(IsMinPlusMatrixSemigroup, DihedralGroup(4), 3);
944
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
945
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
946
+ gap> S := BrandtSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3);
947
+ <0-simple semigroup of 4x4 tropical max-plus matrices with 4 generators>
948
+ gap> S := BrandtSemigroup(IsTropicalMaxPlusMatrixSemigroup, Group((1, 2)), 3);
949
+ <0-simple semigroup of 7x7 tropical max-plus matrices with 5 generators>
950
+ gap> S := BrandtSemigroup(IsTropicalMaxPlusMatrixSemigroup, DihedralGroup(4), 3);
951
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
952
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
953
+ gap> S := BrandtSemigroup(IsTropicalMinPlusMatrixSemigroup, 3);
954
+ <0-simple semigroup of 4x4 tropical min-plus matrices with 4 generators>
955
+ gap> S := BrandtSemigroup(IsTropicalMinPlusMatrixSemigroup, Group((1, 2)), 3);
956
+ <0-simple semigroup of 7x7 tropical min-plus matrices with 5 generators>
957
+ gap> S := BrandtSemigroup(IsTropicalMinPlusMatrixSemigroup, DihedralGroup(4), 3);
958
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
959
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
960
+ gap> S := BrandtSemigroup(IsProjectiveMaxPlusMatrixSemigroup, 3);
961
+ <0-simple semigroup of 4x4 projective max-plus matrices with 4 generators>
962
+ gap> S := BrandtSemigroup(IsProjectiveMaxPlusMatrixSemigroup, Group((1, 2)), 3);
963
+ <0-simple semigroup of 7x7 projective max-plus matrices with 5 generators>
964
+ gap> S := BrandtSemigroup(IsProjectiveMaxPlusMatrixSemigroup, DihedralGroup(4), 3);
965
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
966
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
967
+ gap> S := BrandtSemigroup(IsIntegerMatrixSemigroup, 3);
968
+ <0-simple semigroup of 4x4 integer matrices with 4 generators>
969
+ gap> S := BrandtSemigroup(IsIntegerMatrixSemigroup, Group((1, 2)), 3);
970
+ <0-simple semigroup of 7x7 integer matrices with 5 generators>
971
+ gap> S := BrandtSemigroup(IsIntegerMatrixSemigroup, DihedralGroup(4), 3);
972
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
973
+ Error, no 1st choice method found for `BrandtSemigroupCons' on 3 arguments
974
+
975
+ # constructions: strong semilattices of semigroups: trivial argument checks
976
+ gap> D := CompleteDigraph(2);;
977
+ gap> S1 := TrivialSemigroup();;
978
+ gap> id := IdentityMapping(S1);;
979
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S1], [[id, id], [id, id]]);
980
+ Error, the reflexive transitive closure of the 1st argument (a digraph) must b\
981
+ e a meet semilattice
982
+ gap> D := Digraph([[2], []]);;
983
+ gap> StrongSemilatticeOfSemigroups(D, [S1, 1], [[id], []]);
984
+ Error, the 2nd argument (a list) must consist of semigroups, but found integer\
985
+ in position 2
986
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S1, S1], [[id], []]);
987
+ Error, the 2nd argument (a list) must have length 2, the number of vertices of\
988
+ the 1st argument (a digraph), but found length 3
989
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S1], [[id], [], []]);
990
+ Error, the 3rd argument (a list) must have length 2, the number of vertices of\
991
+ the 1st argument (a digraph), but found length 3
992
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S1], [1, []]);
993
+ Error, the 3rd argument (a list) must consist of lists, but found integer in p\
994
+ osition 1
995
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S1], [[id, id], []]);
996
+ Error, the 3rd argument (a list) must have the same shape as the out-neighbour\
997
+ s of the 1st argument (a digraph), expected shape [ 1, 0 ] but found [ 2, 0 ]
998
+ gap> S2 := FullTransformationMonoid(2);;
999
+ gap> m1 := SemigroupHomomorphismByFunction(S2, S2, x -> Transformation([2, 1]));;
1000
+ gap> StrongSemilatticeOfSemigroups(D, [S2, S2], [[m1], []]);
1001
+ Error, the 3rd argument (a list) must consist of lists of homomorphisms, but p\
1002
+ osition [1, 1] is not a homomorphism
1003
+ gap> StrongSemilatticeOfSemigroups(D, [S1, S2], [[id], []]);
1004
+ Error, expected the homomorphism in position [ 1, 1 ] of the 3rd argument to h\
1005
+ ave source equal to position 2 in the 2nd argument
1006
+ gap> id := SemigroupHomomorphismByFunction(S1, S2, IdFunc);;
1007
+ gap> StrongSemilatticeOfSemigroups(D, [S2, S1], [[id], []]);
1008
+ <strong semilattice of 2 semigroups>
1009
+
1010
+ # constructions: strong semilattices of semigroups: homomorphism checks
1011
+ gap> D := Digraph([[2, 3], [4], [4], []]);;
1012
+ gap> S1 := FullTransformationMonoid(2);;
1013
+ gap> id := IdentityMapping(S1);;
1014
+ gap> m1 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([1, 1]));;
1015
+ gap> m2 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([2, 2]));;
1016
+ gap> L := [S1, S1, S1, S1];;
1017
+ gap> H := [[m1, m2], [id], [id], []];;
1018
+ gap> StrongSemilatticeOfSemigroups(D, L, H);
1019
+ Error, Composing homomorphisms along different paths from 1 to
1020
+ 4 does not produce the same result. The homomorphisms must commute
1021
+ gap> D := Digraph([[2, 3], [4], [4], [4]]);;
1022
+ gap> H := [[id, id], [id], [id], [m1]];;
1023
+ gap> StrongSemilatticeOfSemigroups(D, L, H);
1024
+ Error, Expected homomorphism from 4 to 4 to be the identity
1025
+
1026
+ # constructions: strong semilattices of semigroups: valid example
1027
+ gap> D := Digraph([[2, 3], [2], []]);;
1028
+ gap> S1 := FullTransformationMonoid(2);;
1029
+ gap> id := IdentityMapping(S1);;
1030
+ gap> m1 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([1, 1]));
1031
+ <full transformation monoid of degree 2> ->
1032
+ <full transformation monoid of degree 2>
1033
+ gap> m2 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([2, 2]));
1034
+ <full transformation monoid of degree 2> ->
1035
+ <full transformation monoid of degree 2>
1036
+ gap> L := [S1, S1, S1];;
1037
+ gap> H := [[m1, m2], [id], []];;
1038
+ gap> StrongSemilatticeOfSemigroups(D, L, H);
1039
+ <strong semilattice of 3 semigroups>
1040
+ gap> Size(last);
1041
+ 12
1042
+
1043
+ # constructions: strong semilattices of semigroups: SSSEs
1044
+ gap> D := Digraph([[2, 3], [2], []]);;
1045
+ gap> S1 := FullTransformationMonoid(2);;
1046
+ gap> id := IdentityMapping(S1);;
1047
+ gap> m1 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([1, 1]));
1048
+ <full transformation monoid of degree 2> ->
1049
+ <full transformation monoid of degree 2>
1050
+ gap> m2 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([2, 2]));
1051
+ <full transformation monoid of degree 2> ->
1052
+ <full transformation monoid of degree 2>
1053
+ gap> L := [S1, S1, S1];;
1054
+ gap> H := [[m1, m2], [id], []];;
1055
+ gap> S := StrongSemilatticeOfSemigroups(D, L, H);;
1056
+ gap> SSSE(S, 10, IdentityTransformation);
1057
+ Error, expected 2nd argument to be an integer between 1 and the size of the se\
1058
+ milattice, i.e. 3
1059
+ gap> SSSE(S, 1, Transformation([3, 2, 1]));
1060
+ Error, where S, n and x are the 1st, 2nd and 3rd arguments respectively, expec\
1061
+ ted x to be an element of SemigroupsOfStrongSemilatticeOfSemigroups(S)[n]
1062
+ gap> SSSE(S, 2, Transformation([2, 1])) < SSSE(S, 3, Transformation([1, 1]));
1063
+ true
1064
+ gap> SSSE(S, 2, Transformation([2, 1])) = SSSE(S, 3, Transformation([1, 1]));
1065
+ false
1066
+ gap> SSSE(S, 2, Transformation([2, 1])) * SSSE(S, 3, Transformation([1, 1]))
1067
+ > = SSSE(S, 1, Transformation([2, 2]));
1068
+ true
1069
+ gap> S = UnderlyingSemilatticeOfSemigroups(SSSE(S, 2, Transformation([2, 1])));
1070
+ true
1071
+ gap> ViewString(SSSE(S, 1, Transformation([2, 2])));
1072
+ "SSSE(1, \>Transformation( [ \>2\<,\> 2\< ] )\<)"
1073
+
1074
+ # constructions: strong semilattices of semigroups: full worked example (SLOW!)
1075
+ #
1076
+ # 5 4
1077
+ # / \ /
1078
+ # / \ /
1079
+ # 2 3
1080
+ # \ /
1081
+ # \ /
1082
+ # 1
1083
+ #
1084
+ gap> L := [];;
1085
+ gap> H := [[], [], [], [], []];;
1086
+ gap> Add(L, Semigroup(Transformation([1, 1, 1]),
1087
+ > Transformation([1, 2, 3]),
1088
+ > Transformation([1, 3, 2])));
1089
+ gap> Add(L, MagmaWithZeroAdjoined(SymmetricGroup(3)));
1090
+ gap> Add(L, FullTransformationMonoid(4));
1091
+ gap> Add(L, RightZeroSemigroup(4));
1092
+ gap> Add(L, FullTransformationMonoid(3));
1093
+ gap> m1 := function(trans)
1094
+ > local temp, out;
1095
+ > # A clever way of embedding T3 in T4, fixing the point 1 rather than 4.
1096
+ > temp := ShallowCopy(ListTransformation(trans)) + 1;
1097
+ > out := [1];
1098
+ > Append(out, temp);
1099
+ > return Transformation(out);
1100
+ > end;;
1101
+ gap> H[3][2] := SemigroupHomomorphismByFunction(L[5], L[3], m1);;
1102
+ gap> c := SemigroupCongruence(L[3], [[Transformation([1, 2, 4, 3]),
1103
+ > Transformation([1, 3, 2, 4])]]);;
1104
+ gap> # this congruence separates T_4 into three sets:
1105
+ gap> # A_4;
1106
+ gap> # S_4 \ A_4;
1107
+ gap> # all transformations with size of image < 4.
1108
+ gap> c1 := EquivalenceClassOfElement(c,
1109
+ > Transformation([1, 2, 3, 1]));;
1110
+ gap> c2 := EquivalenceClassOfElement(c,
1111
+ > IdentityTransformation);;
1112
+ gap> c3 := EquivalenceClassOfElement(c,
1113
+ > Transformation([2, 3, 4, 1]));;
1114
+ gap> m1 := function(trans)
1115
+ > if trans in c1 then
1116
+ > return Transformation([1, 1, 1]);
1117
+ > elif trans in c2 then
1118
+ > return Transformation([1, 2, 3]);
1119
+ > elif trans in c3 then
1120
+ > return Transformation([1, 3, 2]);
1121
+ > else
1122
+ > return fail;
1123
+ > fi;
1124
+ > end;;
1125
+ gap> H[1][2] := SemigroupHomomorphismByFunction(L[3], L[1], m1);;
1126
+ gap> m1 := function(trans)
1127
+ > if Length(ImageSetOfTransformation(trans, 3)) < 3 then
1128
+ > return MultiplicativeZero(L[2]);
1129
+ > else
1130
+ > return PermutationOfImage(trans) ^ UnderlyingInjectionZeroMagma(L[2]);
1131
+ > fi;
1132
+ > end;;
1133
+ gap> H[2][1] := SemigroupHomomorphismByFunction(L[5], L[2], m1);;
1134
+ gap> m1 := function(magelem)
1135
+ > local p;
1136
+ > p := magelem ^ InverseGeneralMapping(UnderlyingInjectionZeroMagma(L[2]));
1137
+ > if p = fail then
1138
+ > return Transformation([1, 1, 1]);
1139
+ > elif p in AlternatingGroup(3) then
1140
+ > return Transformation([1, 2, 3]);
1141
+ > else
1142
+ > return Transformation([1, 3, 2]);
1143
+ > fi;
1144
+ > end;;
1145
+ gap> H[1][1] := SemigroupHomomorphismByFunction(L[2], L[1], m1);;
1146
+ gap> H[3][1] := SemigroupHomomorphismByFunction(L[4], L[3], IdFunc);
1147
+ <transformation semigroup of size 4, degree 4 with 4 generators> ->
1148
+ <full transformation monoid of degree 4>
1149
+ gap> D := Digraph([[2, 3], [5], [4, 5], [], []]);;
1150
+ gap> S := StrongSemilatticeOfSemigroups(D, L, H);
1151
+ <strong semilattice of 5 semigroups>
1152
+ gap> IsStrongSemilatticeOfSemigroups(S);
1153
+ true
1154
+ gap> Size(S);
1155
+ 297
1156
+ gap> Length(GreensDClasses(S));
1157
+ 12
1158
+ gap> SSSE(S, 2, (1, 2) ^ UnderlyingInjectionZeroMagma(L[2]))
1159
+ > * SSSE(S, 3, Transformation([1, 4, 3, 2]))
1160
+ > = SSSE(S, 1, IdentityTransformation);
1161
+ true
1162
+ gap> SSSE(S, 4, Transformation([4, 4, 4, 4]))
1163
+ > * SSSE(S, 5, Transformation([3, 3, 2]))
1164
+ > = SSSE(S, 3, Transformation([3, 3, 3, 3]));
1165
+ true
1166
+ gap> MultiplicativeZero(S) = SSSE(S, 1, Transformation([1, 1, 1]));
1167
+ true
1168
+ gap> MultiplicativeNeutralElement(S);
1169
+ fail
1170
+
1171
+ #
1172
+ gap> SEMIGROUPS.StopTest();
1173
+ gap> STOP_TEST("Semigroups package: standard/semigroups/semicons.tst");