passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.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/x86_64-pc-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1069 -0
  17. gap/pkg/semigroups/config.status +1133 -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-6be12ad2.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,853 @@
1
+ ############################################################################
2
+ ##
3
+ #W standard/attributes/maximal.tst
4
+ #Y Copyright (C) 2015-2022 James D. Mitchell
5
+ ## Wilf A. Wilson
6
+ ##
7
+ ## Licensing information can be found in the README file of this package.
8
+ ##
9
+ #############################################################################
10
+ ##
11
+
12
+ #@local D, G, M, R, S, T, U, an, contain, correct, gens, mat, max, number
13
+ #@local types, x, zero
14
+ gap> START_TEST("Semigroups package: standard/attributes/maximal.tst");
15
+ gap> LoadPackage("semigroups", false);;
16
+
17
+ #
18
+ gap> SEMIGROUPS.StartTest();;
19
+
20
+ # maximal: IsMaximalSubsemigroup, 1
21
+ gap> S := Semigroup([
22
+ > Transformation([1, 2, 4, 4]),
23
+ > Transformation([4, 4, 1, 4]),
24
+ > Transformation([2, 1, 4, 2])]);
25
+ <transformation semigroup of degree 4 with 3 generators>
26
+ gap> T := Semigroup([
27
+ > Transformation([2, 1, 4, 2]),
28
+ > Transformation([2, 1, 2, 2]),
29
+ > Transformation([4, 4, 1, 4])]);
30
+ <transformation semigroup of degree 4 with 3 generators>
31
+ gap> IsMaximalSubsemigroup(S, T); # maximal
32
+ true
33
+ gap> U := Semigroup([
34
+ > Transformation([2, 2, 1, 1]),
35
+ > Transformation([2, 2, 3, 4]),
36
+ > Transformation([3, 4, 2, 4])]);
37
+ <transformation semigroup of degree 4 with 3 generators>
38
+ gap> IsSubsemigroup(S, U);
39
+ false
40
+ gap> IsMaximalSubsemigroup(S, U); # not a subsemigroup
41
+ false
42
+ gap> IsSubsemigroup(U, S);
43
+ false
44
+ gap> IsMaximalSubsemigroup(U, S); # not a subsemigroup
45
+ false
46
+ gap> IsSubsemigroup(S, S);
47
+ true
48
+ gap> S <> S;
49
+ false
50
+ gap> IsMaximalSubsemigroup(S, S); # equal semigroups
51
+ false
52
+ gap> IsMaximalSubsemigroup(S,
53
+ > Semigroup(RepresentativeOfMinimalIdeal(S))); # non-maximal
54
+ false
55
+ gap> IsMaximalSubsemigroup(FreeSemigroup(1), FreeSemigroup(1));
56
+ false
57
+ gap> IsMaximalSubsemigroup(FreeSemigroup(1),
58
+ > Subsemigroup(FreeSemigroup(1), []));
59
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
60
+ Error, no 2nd choice method found for `IsMaximalSubsemigroup' on 2 arguments
61
+
62
+ # maximal: MaximalSubsemigroups, error checking, 1
63
+ gap> S := FreeSemigroup(1);;
64
+ gap> MaximalSubsemigroups(S);
65
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
66
+ Error, no 2nd choice method found for `MaximalSubsemigroupsNC' on 2 arguments
67
+ gap> MaximalSubsemigroups(S, rec());
68
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
69
+ Error, no 2nd choice method found for `MaximalSubsemigroups' on 2 arguments
70
+ gap> S := TrivialSemigroup(IsTransformationSemigroup);;
71
+ gap> T := FullTransformationMonoid(2);;
72
+ gap> x := S.1;
73
+ IdentityTransformation
74
+ gap> MaximalSubsemigroups(S, rec(number := 1));
75
+ Error, the record component <number> of the optional 2nd argument <r> should b\
76
+ e true or false
77
+ gap> MaximalSubsemigroups(S, rec(number := false));
78
+ [ ]
79
+ gap> MaximalSubsemigroups(S, rec(contain := 1));
80
+ Error, the record component <contain> of the optional 2nd argument <r> should \
81
+ be a duplicate-free list of elements of the semigroup in the 1st argument, <S>
82
+ gap> MaximalSubsemigroups(S, rec(contain := [0, Group(())]));
83
+ Error, the record component <contain> of the optional 2nd argument <r> should \
84
+ be a duplicate-free list of elements of the semigroup in the 1st argument, <S>
85
+ gap> MaximalSubsemigroups(S, rec(contain := [0, 0]));
86
+ Error, the record component <contain> of the optional 2nd argument <r> should \
87
+ be a duplicate-free list of elements of the semigroup in the 1st argument, <S>
88
+ gap> MaximalSubsemigroups(S, rec(contain := [0]));
89
+ Error, the record component <contain> of the optional 2nd argument <r> should \
90
+ be a duplicate-free list of elements of the semigroup in the 1st argument, <S>
91
+ gap> MaximalSubsemigroups(S, rec(contain := [Transformation([2, 1])]));
92
+ Error, the record component <contain> of the optional 2nd argument <r> should \
93
+ be a duplicate-free list of elements of the semigroup in the 1st argument, <S>
94
+ gap> MaximalSubsemigroups(S, rec(contain := [x]));
95
+ [ ]
96
+ gap> MaximalSubsemigroups(S, rec(D := 0));
97
+ Error, the record component <D> of the optional 2nd argument <r> should be a D\
98
+ -class of the semigroup in the 1st argument, <S>
99
+ gap> MaximalSubsemigroups(S, rec(D := HClass(S, x)));
100
+ Error, the record component <D> of the optional 2nd argument <r> should be a D\
101
+ -class of the semigroup in the 1st argument, <S>
102
+ gap> MaximalSubsemigroups(S, rec(D := DClass(T, x)));
103
+ Error, the record component <D> of the optional 2nd argument <r> should be a D\
104
+ -class of the semigroup in the 1st argument, <S>
105
+ gap> MaximalSubsemigroups(S, rec(D := DClass(S, x)));
106
+ [ ]
107
+ gap> MaximalSubsemigroups(S, rec(gens := 0));
108
+ Error, the record component <gens> of the optional 2nd argument <r> should be \
109
+ true or false
110
+ gap> MaximalSubsemigroups(S, rec(gens := true));
111
+ [ ]
112
+ gap> MaximalSubsemigroups(S, rec(types := 0));
113
+ [ ]
114
+ gap> R := ReesMatrixSemigroup(FullTransformationMonoid(2), [[x]]);;
115
+ gap> MaximalSubsemigroups(R, rec(types := 0));
116
+ [ <subsemigroup of 1x1 Rees matrix semigroup with 2 generators>,
117
+ <subsemigroup of 1x1 Rees matrix semigroup with 3 generators> ]
118
+ gap> R := ReesZeroMatrixSemigroup(S, [[x, 0]]);;
119
+ gap> MaximalSubsemigroups(R, rec(types := 0));
120
+ [ <Rees 0-matrix semigroup ideal with 2 generators>,
121
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 2 generators> ]
122
+ gap> R := ReesMatrixSemigroup(S, [[x]]);;
123
+ gap> MaximalSubsemigroups(R, rec(types := 0));
124
+ Error, the record component <types> of the optional 2nd argument <r> should be\
125
+ a subset of [ 1 .. 6 ]
126
+ gap> MaximalSubsemigroups(R, rec(types := [0, Group(())]));
127
+ Error, the record component <types> of the optional 2nd argument <r> should be\
128
+ a subset of [ 1 .. 6 ]
129
+ gap> MaximalSubsemigroups(R, rec(types := [0, 0]));
130
+ Error, the record component <types> of the optional 2nd argument <r> should be\
131
+ a subset of [ 1 .. 6 ]
132
+ gap> MaximalSubsemigroups(R, rec(types := [0]));
133
+ Error, the record component <types> of the optional 2nd argument <r> should be\
134
+ a subset of [ 1 .. 6 ]
135
+ gap> MaximalSubsemigroups(R, rec(types := [1]));
136
+ [ ]
137
+ gap> MaximalSubsemigroups(R, rec(types := [3, 4, 6]));
138
+ [ ]
139
+
140
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 1
141
+
142
+ # Easy example, 2x1
143
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(3), [[(), ()]]);
144
+ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 3 ] )>
145
+ gap> MaximalSubsemigroups(R);
146
+ [ <Rees matrix semigroup 1x1 over Sym( [ 1 .. 3 ] )>,
147
+ <Rees matrix semigroup 1x1 over Sym( [ 1 .. 3 ] )>,
148
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators>,
149
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators>,
150
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators>,
151
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators> ]
152
+
153
+ # Example example, 1x2
154
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(3), [[()], [()]]);
155
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 3 ] )>
156
+ gap> MaximalSubsemigroups(R);
157
+ [ <Rees matrix semigroup 1x1 over Sym( [ 1 .. 3 ] )>,
158
+ <Rees matrix semigroup 1x1 over Sym( [ 1 .. 3 ] )>,
159
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
160
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
161
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
162
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators> ]
163
+
164
+ # Easy example, 2x2
165
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(3), [[(), ()], [(), ()]]);
166
+ <Rees matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>
167
+ gap> MaximalSubsemigroups(R);
168
+ [ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 3 ] )>,
169
+ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 3 ] )>,
170
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 3 ] )>,
171
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 3 ] )>,
172
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators>,
173
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators>,
174
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators>,
175
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators> ]
176
+
177
+ # Easy example, 1x1
178
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(2), [[()]]);
179
+ <Rees matrix semigroup 1x1 over Sym( [ 1 .. 2 ] )>
180
+ gap> MaximalSubsemigroups(R);
181
+ [ <subsemigroup of 1x1 Rees matrix semigroup with 1 generator> ]
182
+
183
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 2
184
+ gap> S := FreeSemigroup(1);;
185
+ gap> R := ReesMatrixSemigroup(S, [[S.1]]); # not finite
186
+ <Rees matrix semigroup 1x1 over <free semigroup on the generators [ s1 ]>>
187
+ gap> MaximalSubsemigroups(R);
188
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
189
+ Error, no 3rd choice method found for `MaximalSubsemigroupsNC' on 2 arguments
190
+ gap> S := FullTransformationMonoid(2);; # not over a group
191
+ gap> R := ReesMatrixSemigroup(S, [[One(S)]]);
192
+ <Rees matrix semigroup 1x1 over <full transformation monoid of degree 2>>
193
+ gap> MaximalSubsemigroups(R);
194
+ [ <subsemigroup of 1x1 Rees matrix semigroup with 2 generators>,
195
+ <subsemigroup of 1x1 Rees matrix semigroup with 3 generators> ]
196
+
197
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 3
198
+
199
+ # no options specified - default options chosen
200
+ gap> R := ReesMatrixSemigroup(Group(()), [[()]]);
201
+ <Rees matrix semigroup 1x1 over Group(())>
202
+ gap> MaximalSubsemigroupsNC(R, rec());
203
+ [ ]
204
+
205
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 4
206
+
207
+ # over a non-IsGroup group
208
+ gap> S := GroupOfUnits(FullTransformationMonoid(3));
209
+ <transformation group of degree 3 with 2 generators>
210
+ gap> R := ReesMatrixSemigroup(S, [[One(S)], [One(S)]]);;
211
+ gap> MaximalSubsemigroups(R, rec(types := [6]));
212
+ [ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
213
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
214
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators>,
215
+ <subsemigroup of 1x2 Rees matrix semigroup with 2 generators> ]
216
+
217
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 5
218
+
219
+ # Specifying various options
220
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(2), [[(), (1, 2)], [(), (1, 2)]]);
221
+ <Rees matrix semigroup 2x2 over Sym( [ 1 .. 2 ] )>
222
+ gap> MaximalSubsemigroups(R, rec(D := DClasses(R)[1])); # <opts.D> is specified
223
+ [ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 2 ] )>,
224
+ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 2 ] )>,
225
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 2 ] )>,
226
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 2 ] )>,
227
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators> ]
228
+ gap> MaximalSubsemigroups(R, rec(types := [6])); # <opts.types> is specified
229
+ [ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators> ]
230
+ gap> x := [RMSElement(R, 1, (), 1),
231
+ > RMSElement(R, 1, (1, 2), 1)];
232
+ [ (1,(),1), (1,(1,2),1) ]
233
+ gap> MaximalSubsemigroups(R, rec(contain := x)); # <opts.contain> is specified
234
+ [ <Rees matrix semigroup 2x1 over Sym( [ 1 .. 2 ] )>,
235
+ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 2 ] )> ]
236
+ gap> Add(x, RMSElement(R, 1, (), 2));
237
+ gap> MaximalSubsemigroups(R, rec(contain := x));
238
+ [ <Rees matrix semigroup 1x2 over Sym( [ 1 .. 2 ] )> ]
239
+ gap> Add(x, RMSElement(R, 2, (), 1));
240
+ gap> MaximalSubsemigroups(R, rec(contain := x));
241
+ [ ]
242
+ gap> MaximalSubsemigroups(R, rec(contain := x, number := true)); # <opts.number>
243
+ 0
244
+
245
+ # maximal: MaximalSubsemigroups, for a Rees matrix semigroup, 6
246
+ gap> R := ReesMatrixSemigroup(Group([(1, 2), (3, 4)]), [[(), ()], [(), ()]]);
247
+ <Rees matrix semigroup 2x2 over Group([ (1,2), (3,4) ])>
248
+ gap> NrMaximalSubsemigroups(R);
249
+ 7
250
+ gap> Length(MaximalSubsemigroupsNC(R, rec()));
251
+ 7
252
+ gap> MaximalSubsemigroups(R, rec(contain := [RMSElement(R, 1, (1, 2), 1)]));
253
+ [ <Rees matrix semigroup 2x1 over Group([ (1,2), (3,4) ])>,
254
+ <Rees matrix semigroup 1x2 over Group([ (1,2), (3,4) ])>,
255
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators> ]
256
+ gap> MaximalSubsemigroups(R, rec(contain := [RMSElement(R, 1, (1, 2), 1)],
257
+ > gens := true));
258
+ [ [ (1,(1,2),1), (1,(3,4),1), (2,(),1) ],
259
+ [ (1,(1,2),1), (1,(3,4),1), (1,(),2) ], [ (1,(1,2),1), (2,(),2) ] ]
260
+
261
+ # maximal: MaximalSubsemigroups, for a Rees matrix subsemigroup, 1
262
+
263
+ # IsReesMatrixSemigroup
264
+ gap> R := ReesMatrixSemigroup(SymmetricGroup(3), [[(), (1, 2)]]);;
265
+ gap> U := Semigroup(RMSElement(R, 1, (2, 3), 1),
266
+ > RMSElement(R, 1, (1, 3, 2), 1));
267
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators>
268
+ gap> IsReesMatrixSemigroup(U);
269
+ true
270
+ gap> MaximalSubsemigroups(U);
271
+ [ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator>,
272
+ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator>,
273
+ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator>,
274
+ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator> ]
275
+
276
+ # maximal: MaximalSubsemigroups, for a Rees matrix subsemigroup, 2
277
+
278
+ # not IsReesMatrixSemigroup
279
+ gap> U := Semigroup(RMSElement(R, 1, (), 1), RMSElement(R, 2, (1, 2), 1));
280
+ <subsemigroup of 2x1 Rees matrix semigroup with 2 generators>
281
+ gap> IsReesMatrixSemigroup(U);
282
+ false
283
+ gap> MaximalSubsemigroups(U); # not IsReesMatrixSemigroup
284
+ [ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator>,
285
+ <subsemigroup of 2x1 Rees matrix semigroup with 1 generator> ]
286
+
287
+ # maximal: MaximalSubsemigroups, for a Rees matrix subsemigroup, 3
288
+
289
+ # IsReesMatrixSemigroup, but different rows and columns
290
+ gap> R := ReesMatrixSemigroup(Group((1, 2)),
291
+ > [[(), (), ()],
292
+ > [(), (), ()],
293
+ > [(), (), ()],
294
+ > [(), (), ()]]);;
295
+ gap> U := ReesMatrixSubsemigroup(R, [2, 3], Group((1, 2)), [2 .. 4]);
296
+ <Rees matrix semigroup 2x3 over Group([ (1,2) ])>
297
+ gap> MaximalSubsemigroups(U);
298
+ [ <Rees matrix semigroup 2x2 over Group([ (1,2) ])>,
299
+ <Rees matrix semigroup 2x2 over Group([ (1,2) ])>,
300
+ <Rees matrix semigroup 2x2 over Group([ (1,2) ])>,
301
+ <Rees matrix semigroup 1x3 over Group([ (1,2) ])>,
302
+ <Rees matrix semigroup 1x3 over Group([ (1,2) ])>,
303
+ <subsemigroup of 3x4 Rees matrix semigroup with 3 generators> ]
304
+
305
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 1
306
+
307
+ # Easy example, 2x1
308
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3), [[(), ()]]);
309
+ <Rees 0-matrix semigroup 2x1 over Sym( [ 1 .. 3 ] )>
310
+ gap> MaximalSubsemigroups(R);
311
+ [ <subsemigroup of 2x1 Rees 0-matrix semigroup with 3 generators>,
312
+ <Rees 0-matrix semigroup 1x1 over Group([ (2,3), (1,2) ])>,
313
+ <Rees 0-matrix semigroup 1x1 over Group([ (2,3), (1,2) ])>,
314
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 4 generators>,
315
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 4 generators>,
316
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 4 generators>,
317
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 4 generators> ]
318
+
319
+ # Example example, 1x2
320
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3), [[()], [()]]);
321
+ <Rees 0-matrix semigroup 1x2 over Sym( [ 1 .. 3 ] )>
322
+ gap> MaximalSubsemigroups(R);
323
+ [ <subsemigroup of 1x2 Rees 0-matrix semigroup with 3 generators>,
324
+ <Rees 0-matrix semigroup 1x1 over Group([ (2,3), (1,2) ])>,
325
+ <Rees 0-matrix semigroup 1x1 over Group([ (2,3), (1,2) ])>,
326
+ <subsemigroup of 1x2 Rees 0-matrix semigroup with 4 generators>,
327
+ <subsemigroup of 1x2 Rees 0-matrix semigroup with 4 generators>,
328
+ <subsemigroup of 1x2 Rees 0-matrix semigroup with 4 generators>,
329
+ <subsemigroup of 1x2 Rees 0-matrix semigroup with 4 generators> ]
330
+
331
+ # Easy example, 2x2
332
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3), [[(), ()], [(), ()]]);
333
+ <Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>
334
+ gap> MaximalSubsemigroups(R);
335
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators>,
336
+ <Rees 0-matrix semigroup 2x1 over Group([ (2,3), (1,2) ])>,
337
+ <Rees 0-matrix semigroup 2x1 over Group([ (2,3), (1,2) ])>,
338
+ <Rees 0-matrix semigroup 1x2 over Group([ (2,3), (1,2) ])>,
339
+ <Rees 0-matrix semigroup 1x2 over Group([ (2,3), (1,2) ])>,
340
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators>,
341
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators>,
342
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators>,
343
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators> ]
344
+
345
+ # Easy example, 1x1
346
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(2), [[()]]);
347
+ <Rees 0-matrix semigroup 1x1 over Sym( [ 1 .. 2 ] )>
348
+ gap> MaximalSubsemigroups(R);
349
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator>,
350
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 2 generators> ]
351
+
352
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 2
353
+
354
+ # 2-element semilattice
355
+ gap> R := ReesZeroMatrixSemigroup(Group(()), [[()]]);;
356
+ gap> MaximalSubsemigroupsNC(R, rec());
357
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator>,
358
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator> ]
359
+ gap> MaximalSubsemigroups(R, rec(types := [3 .. 5]));
360
+ [ ]
361
+ gap> MaximalSubsemigroups(R, rec(types := [1, 2]));
362
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator>,
363
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator> ]
364
+ gap> MaximalSubsemigroups(R, rec(types := [1, 2], gens := true));
365
+ [ [ 0 ], [ (1,(),1) ] ]
366
+ gap> MaximalSubsemigroupsNC(R, rec(gens := true, zero := false));
367
+ [ [ ], [ (1,(),1) ] ]
368
+ gap> MaximalSubsemigroups(R, rec(number := true, D := DClass(R, R.1)));
369
+ 1
370
+ gap> MaximalSubsemigroups(R, rec(number := true, D := DClass(R, R.2)));
371
+ 1
372
+
373
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 3
374
+
375
+ # for an infinite Rees 0-matrix semigroup
376
+ gap> S := FreeGroup(1);;
377
+ gap> R := ReesZeroMatrixSemigroup(S, [[S.1]]); # not finite
378
+ <Rees 0-matrix semigroup 1x1 over <free group on the generators [ f1 ]>>
379
+ gap> MaximalSubsemigroups(R);
380
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
381
+ Error, no 3rd choice method found for `MaximalSubsemigroupsNC' on 2 arguments
382
+
383
+ # for a Rees 0-matrix semigroup over a non-group
384
+ gap> S := MonogenicSemigroup(IsTransformationSemigroup, 2, 1);;
385
+ gap> R := ReesZeroMatrixSemigroup(S, [[S.1]]);;
386
+ gap> MaximalSubsemigroups(R);
387
+ [ <Rees 0-matrix semigroup ideal with 3 generators>,
388
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 2 generators> ]
389
+
390
+ # for a non-regular Rees 0-matrix semigroup
391
+ gap> R := ReesZeroMatrixSemigroup(Group(()), [[0]]);; # not regular
392
+ gap> MaximalSubsemigroups(R, rec(number := true));
393
+ 1
394
+
395
+ # maximal: MaximalSubsemigroups, for Rees 0-matrix semigroup, 4
396
+ gap> R := ReesZeroMatrixSemigroup(Group((1, 2)), [[(), ()]]);
397
+ <Rees 0-matrix semigroup 2x1 over Group([ (1,2) ])>
398
+ gap> MaximalSubsemigroups(R);
399
+ [ <subsemigroup of 2x1 Rees 0-matrix semigroup with 2 generators>,
400
+ <Rees 0-matrix semigroup 1x1 over Group([ (1,2) ])>,
401
+ <Rees 0-matrix semigroup 1x1 over Group([ (1,2) ])>,
402
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 3 generators> ]
403
+
404
+ # maximal: MaximalSubsemigroups, for Rees 0-matrix semigroup, 5
405
+ gap> R := ReesZeroMatrixSemigroup(Group(()), [[()], [()]]);
406
+ <Rees 0-matrix semigroup 1x2 over Group(())>
407
+ gap> MaximalSubsemigroups(R);
408
+ [ <subsemigroup of 1x2 Rees 0-matrix semigroup with 2 generators>,
409
+ <Rees 0-matrix semigroup 1x1 over Group(())>,
410
+ <Rees 0-matrix semigroup 1x1 over Group(())> ]
411
+
412
+ # maximal: MaximalSubsemigroups, for Rees 0-matrix semigroup, 6
413
+ gap> R := ReesZeroMatrixSemigroup(Group((1, 2)),
414
+ > [[(), 0], [0, (1, 2)]]);
415
+ <Rees 0-matrix semigroup 2x2 over Group([ (1,2) ])>
416
+ gap> MaximalSubsemigroups(R);
417
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 3 generators>,
418
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 3 generators>,
419
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators>,
420
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators> ]
421
+
422
+ # maximal: MaximalSubsemigroups, for Rees 0-matrix semigroup, 7
423
+ gap> R := ReesZeroMatrixSemigroup(Group([()]),
424
+ > [[(), (), 0, 0], [(), (), (), 0],
425
+ > [0, (), (), ()]]);
426
+ <Rees 0-matrix semigroup 4x3 over Group(())>
427
+ gap> MaximalSubsemigroups(R);
428
+ [ <Rees 0-matrix semigroup 4x2 over Group(())>,
429
+ <Rees 0-matrix semigroup 4x2 over Group(())>,
430
+ <Rees 0-matrix semigroup 3x3 over Group(())>,
431
+ <Rees 0-matrix semigroup 3x3 over Group(())>,
432
+ <Rees 0-matrix semigroup 3x3 over Group(())>,
433
+ <Rees 0-matrix semigroup 3x3 over Group(())>,
434
+ <subsemigroup of 4x3 Rees 0-matrix semigroup with 5 generators>,
435
+ <subsemigroup of 4x3 Rees 0-matrix semigroup with 5 generators>,
436
+ <subsemigroup of 4x3 Rees 0-matrix semigroup with 5 generators> ]
437
+
438
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 8
439
+ gap> R := ReesZeroMatrixSemigroup(Group([()]),
440
+ > [[(), (), 0], [0, 0, ()]]);;
441
+ gap> MaximalSubsemigroups(R, rec(types := [5]));
442
+ [ <subsemigroup of 3x2 Rees 0-matrix semigroup with 5 generators>,
443
+ <subsemigroup of 3x2 Rees 0-matrix semigroup with 4 generators> ]
444
+ gap> R := ReesZeroMatrixSemigroup(Group([()]),
445
+ > [[(), 0], [(), 0], [0, ()]]);;
446
+ gap> MaximalSubsemigroups(R, rec(types := [5]));
447
+ [ <subsemigroup of 2x3 Rees 0-matrix semigroup with 4 generators>,
448
+ <subsemigroup of 2x3 Rees 0-matrix semigroup with 5 generators> ]
449
+
450
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 9
451
+ gap> S := Semigroup([Transformation([2, 1])]);;
452
+ gap> R := ReesZeroMatrixSemigroup(S, [[S.1]]);;
453
+ gap> MaximalSubsemigroups(R);
454
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 2 generators>,
455
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 2 generators> ]
456
+ gap> R := ReesZeroMatrixSemigroup(S, [[S.1, S.1], [0, S.1]]);;
457
+ gap> MaximalSubsemigroups(R, rec(types := [5]));
458
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 2 generators> ]
459
+
460
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 10
461
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3), [[()]]);
462
+ <Rees 0-matrix semigroup 1x1 over Sym( [ 1 .. 3 ] )>
463
+ gap> MaximalSubsemigroups(R, rec(types := [6],
464
+ > contain := [RMSElement(R, 1, (), 1),
465
+ > RMSElement(R, 1, (1, 2, 3), 1),
466
+ > RMSElement(R, 1, (1, 3, 2), 1)]));
467
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 3 generators> ]
468
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3), [[(), 0], [0, ()]]);
469
+ <Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>
470
+ gap> MaximalSubsemigroups(R, rec(types := [6],
471
+ > contain := [RMSElement(R, 2, (), 1), RMSElement(R, 1, (1, 2, 3), 2)]));
472
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators> ]
473
+
474
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 11
475
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3),
476
+ > [[(), (), (), 0, 0, 0, 0, 0],
477
+ > [(), 0, 0, 0, 0, 0, 0, 0],
478
+ > [0, 0, 0, (1, 2, 3), (), (), 0, 0],
479
+ > [0, 0, 0, (), 0, 0, 0, 0],
480
+ > [0, 0, 0, 0, 0, 0, (), ()],
481
+ > [0, 0, 0, 0, 0, 0, (), (1, 2)]]);;
482
+ gap> MaximalSubsemigroups(R, rec(
483
+ > number := true,
484
+ > types := [6],
485
+ > contain := [RMSElement(R, 1, (), 6), RMSElement(R, 8, (), 4)]));
486
+ 1
487
+ gap> MaximalSubsemigroups(R, rec(
488
+ > number := true,
489
+ > types := [6],
490
+ > contain := [RMSElement(R, 1, (), 6),
491
+ > RMSElement(R, 1, (1, 2, 3), 4),
492
+ > RMSElement(R, 8, (), 4)]));
493
+ 0
494
+
495
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 12
496
+ gap> R := ReesZeroMatrixSemigroup(Group(()), [[()]]);
497
+ <Rees 0-matrix semigroup 1x1 over Group(())>
498
+ gap> MaximalSubsemigroups(R, rec(gens := true));
499
+ [ [ 0 ], [ (1,(),1) ] ]
500
+ gap> MaximalSubsemigroupsNC(R, rec());
501
+ [ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator>,
502
+ <subsemigroup of 1x1 Rees 0-matrix semigroup with 1 generator> ]
503
+ gap> R := ReesZeroMatrixSemigroup(Group([(1, 2), (3, 4)]),
504
+ > [[(), ()], [(), ()]]);
505
+ <Rees 0-matrix semigroup 2x2 over Group([ (1,2), (3,4) ])>
506
+ gap> x := RMSElement(R, 1, (1, 2), 1);;
507
+ gap> NrMaximalSubsemigroups(R);
508
+ 8
509
+ gap> MaximalSubsemigroups(R, rec(contain := [x]));
510
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators>,
511
+ <Rees 0-matrix semigroup 2x1 over Group([ (3,4), (1,2) ])>,
512
+ <Rees 0-matrix semigroup 1x2 over Group([ (3,4), (1,2) ])>,
513
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 5 generators> ]
514
+ gap> MaximalSubsemigroups(R, rec(D := DClass(R, x), number := true));
515
+ 7
516
+ gap> MaximalSubsemigroups(R, rec(D := DClass(R, MultiplicativeZero(R)),
517
+ > number := true));
518
+ 1
519
+ gap> MaximalSubsemigroups(R, rec(D := DClass(R, x),
520
+ > number := true,
521
+ > types := [2]));
522
+ 0
523
+ gap> MaximalSubsemigroups(R, rec(D := DClass(R, MultiplicativeZero(R)),
524
+ > number := true,
525
+ > types := [1, 3, 4, 5, 6]));
526
+ 0
527
+ gap> MaximalSubsemigroups(R, rec(types := [3], gens := true));
528
+ [ [ (1,(1,2),2), (1,(3,4),2), (2,(),2), 0 ],
529
+ [ (1,(1,2),1), (1,(3,4),1), (2,(),1), 0 ] ]
530
+ gap> MaximalSubsemigroups(R, rec(types := [4], gens := true));
531
+ [ [ (2,(1,2),1), (2,(3,4),1), (2,(),2), 0 ],
532
+ [ (1,(1,2),1), (1,(3,4),1), (1,(),2), 0 ] ]
533
+ gap> R := ReesZeroMatrixSemigroup(Group(()), [[(), 0], [(), ()]]);
534
+ <Rees 0-matrix semigroup 2x2 over Group(())>
535
+ gap> MaximalSubsemigroups(R, rec(types := [5], gens := false));
536
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 2 generators> ]
537
+ gap> MaximalSubsemigroups(R, rec(types := [5], gens := true));
538
+ [ [ (2,(),2), (1,(),1) ] ]
539
+ gap> R := ReesZeroMatrixSemigroup(Group((1, 2)), [[(), 0], [0, ()]]);
540
+ <Rees 0-matrix semigroup 2x2 over Group([ (1,2) ])>
541
+ gap> MaximalSubsemigroups(R, rec(types := [5, 6],
542
+ > contain := [MultiplicativeZero(R),
543
+ > RMSElement(R, 2, (), 1)]));
544
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 3 generators>,
545
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators> ]
546
+
547
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix semigroup, 13
548
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(2), [[(), 0], [0, ()]]);
549
+ <Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 2 ] )>
550
+ gap> SetIdempotentGeneratedSubsemigroup(R, Semigroup(Idempotents(R)));
551
+ gap> MaximalSubsemigroups(R, rec(types := [6]));
552
+ [ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators>,
553
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 4 generators> ]
554
+
555
+ # maximal: MaximalSubsemigroups, for Rees 0-matrix subsemigroup, 1
556
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(2), [[0, 0]]);
557
+ <Rees 0-matrix semigroup 2x1 over Sym( [ 1 .. 2 ] )>
558
+ gap> U := Semigroup([
559
+ > RMSElement(R, 1, (), 1),
560
+ > RMSElement(R, 1, (1, 2), 1),
561
+ > RMSElement(R, 2, (), 1)]);
562
+ <subsemigroup of 2x1 Rees 0-matrix semigroup with 3 generators>
563
+ gap> IsReesZeroMatrixSemigroup(U);
564
+ false
565
+ gap> MaximalSubsemigroups(U);
566
+ [ <Rees 0-matrix semigroup ideal with 3 generators>,
567
+ <Rees 0-matrix semigroup ideal with 3 generators>,
568
+ <Rees 0-matrix semigroup ideal with 3 generators> ]
569
+
570
+ # maximal: MaximalSubsemigroups, for a Rees 0-matrix subsemigroup, 2
571
+ gap> R := ReesZeroMatrixSemigroup(SymmetricGroup(3),
572
+ > [[(), 0, ()],
573
+ > [(), (), (1, 2)],
574
+ > [0, (1, 3), ()],
575
+ > [0, 0, ()]]);
576
+ <Rees 0-matrix semigroup 3x4 over Sym( [ 1 .. 3 ] )>
577
+ gap> U := ReesZeroMatrixSubsemigroup(R, [2, 3], SymmetricGroup(3), [2 .. 4]);
578
+ <Rees 0-matrix semigroup 2x3 over Sym( [ 1 .. 3 ] )>
579
+ gap> IsReesZeroMatrixSemigroup(U);
580
+ true
581
+ gap> MaximalSubsemigroups(U);
582
+ [ <Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>,
583
+ <Rees 0-matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>,
584
+ <Rees 0-matrix semigroup 2x2 over Group([ (2,3), (1,2) ])>,
585
+ <Rees 0-matrix semigroup 1x3 over Group([ (2,3), (1,2) ])>,
586
+ <subsemigroup of 3x4 Rees 0-matrix semigroup with 5 generators>,
587
+ <subsemigroup of 3x4 Rees 0-matrix semigroup with 5 generators> ]
588
+
589
+ # maximal: MaximalSubsemigroups, for a permutation group, 1
590
+ gap> List(MaximalSubsemigroups(SymmetricGroup(3)), IsGroupAsSemigroup);
591
+ [ true, true, true, true ]
592
+
593
+ # maximal: MaximalSubsemigroups, for a transformation group, 1
594
+ gap> MaximalSubsemigroups(Semigroup(Transformation([2, 3, 1])))
595
+ > = [TrivialSemigroup()];
596
+ true
597
+
598
+ # maximal: MaximalSubsemigroups, for a transformation semigroup, 1
599
+ gap> S := Semigroup([
600
+ > Transformation([1, 1, 2]),
601
+ > Transformation([1, 1, 1]),
602
+ > Transformation([2, 2, 2])]);;
603
+ gap> MaximalSubsemigroups(S, rec(
604
+ > number := true,
605
+ > contain := [Transformation([1, 1, 2]), Transformation([2, 2, 2])]));
606
+ 0
607
+
608
+ # maximal: MaximalSubsemigroups, for a transformation semigroup, 2
609
+ gap> S := Semigroup([
610
+ > Transformation([2, 4, 5, 4, 4, 2]),
611
+ > Transformation([4, 1, 4, 4, 3, 3]),
612
+ > Transformation([6, 3, 6, 2, 4, 1])]);;
613
+ gap> Length(MaximalSubsemigroups(S,
614
+ > rec(D := DClass(S, Transformation([2, 4, 5, 4, 4, 2])))));
615
+ 6
616
+
617
+ # maximal: MaximalSubsemigroups, for a transformation semigroup, 3
618
+ gap> S := Semigroup([
619
+ > Transformation([1, 4, 3, 4, 4, 1]),
620
+ > Transformation([2, 4, 5, 4, 4, 2]),
621
+ > Transformation([4, 3, 5, 5, 1])]);;
622
+ gap> Length(MaximalSubsemigroups(S,
623
+ > rec(D := DClass(S, Transformation([1, 4, 3, 4, 4, 1])))));
624
+ 3
625
+
626
+ # maximal: MaximalSubsemigroups, for a transformation semigroup, 4
627
+ gap> S := Semigroup([
628
+ > Transformation([2, 4, 5, 4, 4, 2]),
629
+ > Transformation([4, 1, 4, 4, 3, 3]),
630
+ > Transformation([5, 1, 6, 1, 6, 3])]);;
631
+ gap> Length(MaximalSubsemigroups(S,
632
+ > rec(D := DClass(S, Transformation([2, 4, 5, 4, 4, 2])))));
633
+ 6
634
+
635
+ # maximal: MaximalSubsemigroups, for a transformation semigroup, 5
636
+ gap> S := Semigroup([
637
+ > Transformation([1, 5, 6, 5, 2, 6]),
638
+ > Transformation([4, 6, 5, 4, 4, 3]),
639
+ > Transformation([5, 3, 2, 2, 3, 5]),
640
+ > Transformation([6, 4, 2, 1, 3, 6]),
641
+ > Transformation([6, 5, 1, 5, 2, 1])]);;
642
+ gap> D := DClass(S, Transformation([4, 6, 5, 4, 4, 3]));
643
+ <Green's D-class: Transformation( [ 4, 6, 5, 4, 4, 3 ] )>
644
+ gap> max := MaximalSubsemigroups(S, rec(D := D));;
645
+ gap> List(max, Size);
646
+ [ 2382, 2380 ]
647
+
648
+ # maximal: MaximalSubsemigroups, for a transformation monoid, 1
649
+
650
+ # Trivial semigroup
651
+ gap> MaximalSubsemigroups(TrivialSemigroup());
652
+ [ ]
653
+ gap> MaximalSubsemigroupsNC(TrivialSemigroup(), rec());
654
+ [ ]
655
+
656
+ # maximal: MaximalSubsemigroups, for a transformation monoid, 2
657
+ gap> S := Monoid([
658
+ > Transformation([1, 2, 3, 4, 3]),
659
+ > Transformation([1, 2, 3, 4, 1]),
660
+ > Transformation([1, 1, 1, 1, 1]),
661
+ > Transformation([2, 2, 2, 2, 2])]);;
662
+ gap> max := MaximalSubsemigroups(S);;
663
+ gap> NrMaximalSubsemigroups(S);
664
+ 5
665
+ gap> correct := [
666
+ > Semigroup([
667
+ > Transformation([1, 1, 1, 1, 1]),
668
+ > Transformation([1, 2, 3, 4, 1]),
669
+ > Transformation([1, 2, 3, 4, 3]),
670
+ > Transformation([2, 2, 2, 2, 2])]),
671
+ > Monoid([
672
+ > Transformation([1, 1, 1, 1, 1]),
673
+ > Transformation([1, 2, 3, 4, 1]),
674
+ > Transformation([2, 2, 2, 2, 2])]),
675
+ > Monoid([
676
+ > Transformation([1, 1, 1, 1, 1]),
677
+ > Transformation([1, 2, 3, 4, 3]),
678
+ > Transformation([2, 2, 2, 2, 2])]),
679
+ > Monoid([
680
+ > Transformation([1, 2, 3, 4, 1]),
681
+ > Transformation([1, 2, 3, 4, 3]),
682
+ > Transformation([2, 2, 2, 2, 2])]),
683
+ > Monoid([
684
+ > Transformation([1, 1, 1, 1, 1]),
685
+ > Transformation([1, 2, 3, 4, 1]),
686
+ > Transformation([1, 2, 3, 4, 3])])];;
687
+ gap> max = correct;
688
+ true
689
+
690
+ # maximal: MaximalSubsemigroups, for a transformation monoid, 3
691
+ gap> S := Monoid([Transformation([1, 1, 2])]);
692
+ <commutative transformation monoid of degree 3 with 1 generator>
693
+ gap> MaximalSubsemigroups(S, rec(
694
+ > number := true,
695
+ > contain := [Transformation([1, 1, 2])]));
696
+ 1
697
+ gap> MaximalSubsemigroups(S, rec(
698
+ > number := true,
699
+ > contain := [One(S)]));
700
+ 1
701
+
702
+ # maximal: MaximalSubsemigroups, for a transformation monoid, 4
703
+ gap> S := Monoid([Transformation([1, 1, 2]), Transformation([2, 1])]);;
704
+ gap> MaximalSubsemigroups(S, rec(
705
+ > number := true,
706
+ > D := DClass(S, Transformation([1, 1, 2])),
707
+ > contain := [Transformation([1, 1, 2])]));
708
+ 0
709
+
710
+ # maximal: MaximalSubsemigroups, for a transformation monoid, 5
711
+ gap> S := Monoid([
712
+ > Transformation([1, 1, 6, 4, 5, 6, 4, 6, 5, 6, 1]),
713
+ > Transformation([2, 2, 6, 7, 9, 6, 7, 6, 9, 6, 2]),
714
+ > Transformation([3, 3, 6, 8, 10, 6, 8, 6, 10, 6, 3]),
715
+ > Transformation([1, 1, 6, 4, 5, 6, 4, 6, 5, 6, 4]),
716
+ > Transformation([6, 6, 1, 6, 6, 6, 6, 4, 6, 5, 5])]);;
717
+ gap> MaximalSubsemigroups(S,
718
+ > rec(D := DClass(S, Transformation([1, 1, 6, 4, 5, 6, 4, 6, 5, 6, 1]))));
719
+ [ <transformation monoid of degree 11 with 7 generators>,
720
+ <transformation monoid of degree 11 with 7 generators>,
721
+ <transformation monoid of degree 11 with 5 generators>,
722
+ <transformation monoid of degree 11 with 5 generators>,
723
+ <transformation monoid of degree 11 with 5 generators>,
724
+ <transformation monoid of degree 11 with 5 generators> ]
725
+
726
+ # maximal: NrMaximalSubsemigroups, for a transformation semigroup, 1
727
+ gap> S := Semigroup([
728
+ > Transformation([1, 1, 2, 1, 4, 4]),
729
+ > Transformation([1, 3, 1, 5, 1, 3])]);
730
+ <transformation semigroup of degree 6 with 2 generators>
731
+ gap> NrMaximalSubsemigroups(S);
732
+ 2
733
+
734
+ # maximal: NrMaximalSubsemigroups, for a transformation semigroup, 2
735
+ gap> S := Semigroup([
736
+ > Transformation([2, 2, 2, 1]), Transformation([2, 3, 4, 3])]);
737
+ <transformation semigroup of degree 4 with 2 generators>
738
+ gap> NrMaximalSubsemigroups(S);
739
+ 3
740
+
741
+ # maximal: NrMaximalSubsemigroups, for a transformation semigroup, 3
742
+ gap> S := Semigroup([
743
+ > Transformation([1, 2, 1, 2, 6, 6]),
744
+ > Transformation([1, 3, 1, 3]),
745
+ > Transformation([2, 1]),
746
+ > Transformation([3, 4, 1, 2])]);
747
+ <transformation semigroup of degree 6 with 4 generators>
748
+ gap> NrMaximalSubsemigroups(S);
749
+ 5
750
+
751
+ # maximal: NrMaximalSubsemigroups, for a transformation semigroup, 4
752
+ gap> S := Semigroup([
753
+ > Transformation([2, 1, 5, 2, 4]),
754
+ > Transformation([2, 3, 4, 3, 1]),
755
+ > Transformation([3, 4, 1, 4, 3]),
756
+ > Transformation([3, 4, 2, 2, 2]),
757
+ > Transformation([5, 1, 1, 2, 3])]);
758
+ <transformation semigroup of degree 5 with 5 generators>
759
+ gap> NrMaximalSubsemigroups(S);
760
+ 8
761
+
762
+ # maximal: NrMaximalSubsemigroups, for a transformation monoid, 1
763
+ gap> S := Monoid([
764
+ > Transformation([1, 1, 2, 1, 4, 4]),
765
+ > Transformation([1, 3, 1, 5, 1, 3])]);
766
+ <transformation monoid of degree 6 with 2 generators>
767
+ gap> NrMaximalSubsemigroups(S);
768
+ 3
769
+
770
+ # maximal: NrMaximalSubsemigroups, for a transformation monoid, 2
771
+ gap> S := Monoid(Transformation([1, 1, 2]));
772
+ <commutative transformation monoid of degree 3 with 1 generator>
773
+ gap> NrMaximalSubsemigroups(S);
774
+ 2
775
+
776
+ # maximal: NrMaximalSubsemigroups, for a transformation monoid, 3
777
+ gap> S := Monoid([
778
+ > Transformation([1, 1, 1, 1, 1, 1]),
779
+ > Transformation([1, 2, 3, 4, 5, 4]),
780
+ > Transformation([1, 3, 2, 5, 4, 3])]);
781
+ <transformation monoid of degree 6 with 3 generators>
782
+ gap> NrMaximalSubsemigroups(S);
783
+ 5
784
+
785
+ # maximal: NrMaximalSubsemigroups, for a transformation monoid, 4
786
+ gap> S := Monoid([
787
+ > Transformation([1, 1, 2, 1, 4, 1, 6, 1, 8, 6]),
788
+ > Transformation([1, 3, 1, 5, 1, 7, 1, 9, 1, 3]),
789
+ > Transformation([1, 4, 1, 2, 1, 8, 1, 6, 1, 4])]);
790
+ <transformation monoid of degree 10 with 3 generators>
791
+ gap> NrMaximalSubsemigroups(S);
792
+ 5
793
+
794
+ # Fix for Issue #230
795
+ # MaximalSubsemigroups subsemigroups for a Rees 0-matrix semigroup was failing
796
+ # to find certain maximal subsemigroups of type 6 (intersect every H-class) when
797
+ # the option 'contain' was being used.
798
+ gap> G := Group([(1, 5, 4, 3, 2), (1, 5)(2, 4)]);;
799
+ gap> mat := [
800
+ > [(), 0, 0, 0, 0, 0],
801
+ > [0, (), 0, 0, 0, 0],
802
+ > [0, 0, (), 0, 0, 0],
803
+ > [0, 0, 0, (), 0, 0],
804
+ > [0, 0, 0, 0, (), 0],
805
+ > [0, 0, 0, 0, 0, ()]];;
806
+ gap> R := ReesZeroMatrixSemigroup(G, mat);
807
+ <Rees 0-matrix semigroup 6x6 over Group([ (1,5,4,3,2), (1,5)(2,4) ])>
808
+ gap> gens := [
809
+ > RMSElement(R, 1, (), 6),
810
+ > RMSElement(R, 1, (1, 5, 4, 3, 2), 2),
811
+ > RMSElement(R, 1, (1, 5, 4, 3, 2), 3),
812
+ > RMSElement(R, 1, (1, 5, 4, 3, 2), 4),
813
+ > RMSElement(R, 1, (1, 5, 4, 3, 2), 5),
814
+ > RMSElement(R, 1, (1, 5)(2, 4), 1),
815
+ > RMSElement(R, 2, (1, 2, 3, 4, 5), 1),
816
+ > RMSElement(R, 3, (1, 2, 3, 4, 5), 1),
817
+ > RMSElement(R, 4, (1, 2, 3, 4, 5), 1),
818
+ > RMSElement(R, 5, (1, 2, 3, 4, 5), 1),
819
+ > RMSElement(R, 6, (), 1)];;
820
+ gap> M := Semigroup(gens);
821
+ <subsemigroup of 6x6 Rees 0-matrix semigroup with 11 generators>
822
+ gap> contain := [
823
+ > RMSElement(R, 1, (1, 5)(2, 4), 6),
824
+ > RMSElement(R, 1, (), 6),
825
+ > RMSElement(R, 2, (1, 2, 3, 4, 5), 1),
826
+ > RMSElement(R, 2, (), 5),
827
+ > RMSElement(R, 3, (), 2),
828
+ > RMSElement(R, 3, (1, 3)(4, 5), 4),
829
+ > RMSElement(R, 4, (), 3),
830
+ > RMSElement(R, 4, (1, 3)(4, 5), 3),
831
+ > RMSElement(R, 5, (1, 3)(4, 5), 4),
832
+ > RMSElement(R, 5, (), 2),
833
+ > RMSElement(R, 6, (1, 5, 4, 3, 2), 5),
834
+ > RMSElement(R, 6, (), 1)];;
835
+ gap> IsSubset(M, contain);
836
+ true
837
+ gap> max := MaximalSubsemigroups(R, rec(types := [6], contain := contain));
838
+ [ <subsemigroup of 6x6 Rees 0-matrix semigroup with 17 generators> ]
839
+ gap> M in max;
840
+ true
841
+
842
+ # maximal: maximal subsemigroups that contain all of a non-trivial non-maximal
843
+ # regular D-class
844
+ gap> S := Monoid([Transformation([1, 1]), Transformation([2, 2])]);;
845
+ gap> max := MaximalSubsemigroups(S, rec(contain := GeneratorsOfMonoid(S)));;
846
+ gap> Length(max) = 1;
847
+ true
848
+ gap> max[1] = Semigroup(GeneratorsOfMonoid(S));
849
+ true
850
+
851
+ #
852
+ gap> SEMIGROUPS.StopTest();
853
+ gap> STOP_TEST("Semigroups package: standard/attributes/maximal.tst");