passagemath-gap-pkg-semigroups 10.6.30__cp310-cp310-macosx_13_0_arm64.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-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1158 -0
  17. gap/pkg/semigroups/config.status +1131 -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.30.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +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.cpython-310-darwin.so +0 -0
@@ -0,0 +1,1436 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/greens/generic.tst
4
+ #Y Copyright (C) 2016-2022 James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local D, DD, DDD, H, J, L, L3, LL, R, RR, RRR, S, S1, T, acting, an, gens, id
12
+ #@local iter, m1, m2, x, y
13
+ gap> START_TEST("Semigroups package: standard/greens/generic.tst");
14
+ gap> LoadPackage("semigroups", false);;
15
+
16
+ #
17
+ gap> SEMIGROUPS.StartTest();
18
+
19
+ # Test IsXTrivial (for Green's classes)
20
+ gap> S := Semigroup(
21
+ > [Matrix(GF(5), [[0 * Z(5), Z(5) ^ 3], [Z(5) ^ 2, Z(5) ^ 0]]),
22
+ > Matrix(GF(5), [[Z(5) ^ 0, Z(5)], [Z(5), Z(5) ^ 3]]),
23
+ > Matrix(GF(5), [[Z(5) ^ 0, Z(5) ^ 3], [0 * Z(5), 0 * Z(5)]]),
24
+ > Matrix(GF(5), [[Z(5), Z(5) ^ 0], [0 * Z(5), Z(5) ^ 3]]),
25
+ > Matrix(GF(5), [[Z(5), Z(5) ^ 0], [Z(5) ^ 0, Z(5)]]),
26
+ > Matrix(GF(5), [[Z(5) ^ 2, 0 * Z(5)], [Z(5), 0 * Z(5)]]),
27
+ > Matrix(GF(5), [[Z(5) ^ 2, Z(5)], [0 * Z(5), 0 * Z(5)]])]);;
28
+ gap> D := GreensDClassOfElement(S,
29
+ > Matrix(GF(5), [[Z(5) ^ 3, Z(5) ^ 2], [Z(5) ^ 3, Z(5)]]));
30
+ <Green's D-class: <matrix object of dimensions 2x2 over GF(5)>>
31
+ gap> IsHTrivial(D);
32
+ false
33
+ gap> IsLTrivial(D);
34
+ false
35
+ gap> IsRTrivial(D);
36
+ false
37
+
38
+ # Test \= (for Green's relations)
39
+ gap> S := FullBooleanMatMonoid(3);;
40
+ gap> T := FullBooleanMatMonoid(2);;
41
+ gap> GreensRRelation(S) = GreensRRelation(T);
42
+ false
43
+ gap> GreensRRelation(S) = GreensLRelation(S);
44
+ false
45
+ gap> GreensLRelation(S) = GreensRRelation(S);
46
+ false
47
+ gap> GreensHRelation(S) = GreensRRelation(S);
48
+ false
49
+ gap> GreensDRelation(S) = GreensRRelation(S);
50
+ false
51
+ gap> GreensJRelation(S) = GreensRRelation(S);
52
+ false
53
+ gap> S := FreeInverseSemigroup(3);;
54
+ gap> GreensJRelation(S) = GreensRRelation(S);
55
+ false
56
+
57
+ # Test AsSSortedList, 1/1
58
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
59
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
60
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
61
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
62
+ gap> L := LClass(S, PartialPerm([1, 7], [3, 5]));;
63
+ gap> AsSet(L);
64
+ [ [1,3][2,5], [1,5][2,3], [2,3,5], [2,5](3), [1,3,5], [1,5](3),
65
+ <identity partial perm on [ 3, 5 ]>, (3,5), [2,3](5), [2,5,3], [1,3](5),
66
+ [1,5,3], [7,5](3), [7,3,5], [1,3][7,5], [1,5][7,3] ]
67
+
68
+ # Test \< and \=, 1/1
69
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
70
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
71
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
72
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
73
+ gap> L := LClass(S, PartialPerm([1, 7], [3, 5]));;
74
+ gap> LL := LClass(S, S.1);;
75
+ gap> LL = L;
76
+ false
77
+ gap> L < L;
78
+ false
79
+ gap> L < LL;
80
+ true
81
+ gap> LL < L;
82
+ false
83
+ gap> D := DClass(L);;
84
+ gap> L = D;
85
+ false
86
+ gap> L < D;
87
+ false
88
+
89
+ # Test \< for H-classes Issue #198
90
+ gap> S := FullTropicalMinPlusMonoid(2, 2);
91
+ <monoid of 2x2 tropical min-plus matrices with 6 generators>
92
+ gap> H := Set(GeneratorsOfSemigroup(S), x -> HClass(S, x));
93
+ [ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[0, infinity],
94
+ [infinity, 0]], 2)>,
95
+ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[infinity, 0], [0, 0]], 2
96
+ )>,
97
+ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[infinity, 0], [0, 1]], 2
98
+ )>,
99
+ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[infinity, 0], [0, 2]], 2
100
+ )>,
101
+ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[infinity, 0],
102
+ [1, infinity]], 2)>,
103
+ <Green's H-class: Matrix(IsTropicalMinPlusMatrix, [[infinity, 0],
104
+ [infinity, infinity]], 2)> ]
105
+
106
+ # Test \< for H-classes Issue #198
107
+ gap> gens := [
108
+ > Transformation([1, 3, 4, 1, 5, 5, 5]),
109
+ > Transformation([1, 4, 1, 3, 5, 5, 5]),
110
+ > Transformation([3, 3, 1, 2, 5, 5, 5]),
111
+ > Transformation([4, 4, 2, 3, 5, 5, 5]),
112
+ > Transformation([1, 1, 3, 4, 5, 5, 6]),
113
+ > Transformation([1, 2, 2]),
114
+ > Transformation([1, 4, 3, 4]),
115
+ > Transformation([1, 2, 4, 4])];;
116
+ gap> S := Semigroup(gens);
117
+ <transformation semigroup of degree 7 with 8 generators>
118
+ gap> D := DClass(S, gens[1]);;
119
+ gap> ForAll(gens{[1 .. 4]}, x -> x in D);
120
+ true
121
+ gap> NrRClasses(D);
122
+ 6
123
+ gap> R := List(gens{[1 .. 3]}, x -> RClass(S, x));;
124
+ gap> IsDuplicateFreeList(R);
125
+ true
126
+ gap> x := Difference(RClasses(D), R);;
127
+ gap> Length(x);
128
+ 3
129
+
130
+ # Test MultiplicativeNeutralElement, One, for an H-class, 1
131
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
132
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
133
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
134
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
135
+ gap> H := HClass(S, S.4);;
136
+ gap> MultiplicativeNeutralElement(H);
137
+ fail
138
+ gap> OneImmutable(H);
139
+ <identity partial perm on [ 1, 2, 3, 4, 5, 6, 7 ]>
140
+ gap> H := HClass(S, PartialPerm([3, 5], [3, 5]));;
141
+ gap> MultiplicativeNeutralElement(H);
142
+ <identity partial perm on [ 3, 5 ]>
143
+ gap> OneImmutable(H);
144
+ <identity partial perm on [ 3, 5 ]>
145
+
146
+ # Test MultiplicativeNeutralElement, One, for an H-class, 2
147
+ gap> S := Semigroup([
148
+ > Transformation([1, 1, 3, 2, 4]),
149
+ > Transformation([1, 5, 5, 2, 5]),
150
+ > Transformation([4, 1, 3, 5, 5])]);;
151
+ gap> H := HClass(S, S.1);;
152
+ gap> MultiplicativeNeutralElement(H);
153
+ fail
154
+ gap> OneImmutable(H);
155
+ IdentityTransformation
156
+ gap> H := HClass(S, Transformation([1, 1]));;
157
+ gap> MultiplicativeNeutralElement(H);
158
+ Transformation( [ 1, 1 ] )
159
+ gap> OneImmutable(H);
160
+ Transformation( [ 1, 1 ] )
161
+
162
+ # Test StructureDescription, for an H-class, 1/1
163
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
164
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
165
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
166
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
167
+ gap> H := HClass(S, PartialPerm([3, 5], [3, 5]));;
168
+ gap> StructureDescription(H);
169
+ "C2"
170
+ gap> H := HClass(S, S.4);;
171
+ gap> StructureDescription(H);
172
+ fail
173
+
174
+ # Test DClassOfLClass, 1/1
175
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
176
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
177
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
178
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
179
+ gap> L := LClass(S, PartialPerm([1, 7], [3, 5]));;
180
+ gap> Size(L);
181
+ 16
182
+ gap> D := DClass(L);;
183
+ gap> Size(D);
184
+ 128
185
+ gap> DD := DClassOfLClass(L);;
186
+ gap> DD = D;
187
+ true
188
+ gap> DDD := DClass(S, Representative(L));;
189
+ gap> DDD = DD;
190
+ true
191
+
192
+ # Test DClassOfRClass, 1/1
193
+ gap> S := Semigroup([Transformation([2, 2, 1, 2, 4, 4]),
194
+ > Transformation([2, 6, 6, 5, 1, 4]), Transformation([3, 2, 5, 5, 6, 4]),
195
+ > Transformation([3, 5, 3, 4, 1]), Transformation([4, 2, 3, 1, 4, 2]),
196
+ > Transformation([4, 4, 2, 6, 6, 3]), Transformation([5, 5, 5, 6, 5, 4]),
197
+ > Transformation([6, 3, 1, 3, 1, 6])]);;
198
+ gap> R := RClass(S, Transformation([4, 4, 5, 4, 4, 4]));;
199
+ gap> Size(R);
200
+ 30
201
+ gap> D := DClass(R);;
202
+ gap> Size(D);
203
+ 930
204
+ gap> DD := DClassOfRClass(R);;
205
+ gap> DD = D;
206
+ true
207
+ gap> DDD := DClass(S, Representative(R));;
208
+ gap> DDD = DD;
209
+ true
210
+
211
+ # Test DClassOfHClass, 1/1
212
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
213
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
214
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
215
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
216
+ gap> H := HClass(S, S.4);;
217
+ gap> Size(H);
218
+ 1
219
+ gap> D := DClass(H);;
220
+ gap> Size(D);
221
+ 1
222
+ gap> DD := DClassOfHClass(H);;
223
+ gap> DD = D;
224
+ true
225
+ gap> DDD := DClass(S, Representative(H));;
226
+ gap> DDD = DD;
227
+ true
228
+
229
+ # Test LClassOfHClass, 1/1
230
+ gap> S := Monoid(
231
+ > [Bipartition([[1, 2, 3, 4, 5, -1], [6, -5], [-2, -3, -4], [-6]]),
232
+ > Bipartition([[1, 2, 3, 5, -3, -4, -5], [4, 6, -2], [-1, -6]]),
233
+ > Bipartition([[1, 2, -5, -6], [3, 5, 6, -1, -4], [4, -2, -3]]),
234
+ > Bipartition([[1, 3, -3], [2, 5, 6, -2], [4, -1, -4, -5], [-6]]),
235
+ > Bipartition([[1, 3, -1, -6], [2, 6, -2], [4, -3, -5], [5], [-4]]),
236
+ > Bipartition([[1, -3], [2, 3, 4, 5, -1, -4], [6, -2, -6], [-5]]),
237
+ > Bipartition([[1, 5, -5, -6], [2, 3, -1, -2, -4], [4, 6, -3]]),
238
+ > Bipartition([[1, 4, 6, -1, -2, -4], [2, 5, -5, -6], [3], [-3]]),
239
+ > Bipartition([[1, 5, -1, -3], [2, 4, 6], [3, -2, -6], [-4, -5]]),
240
+ > Bipartition([[1, 5, -2], [2, -1, -5], [3, 4, -6], [6, -3], [-4]])]);;
241
+ gap> H := HClass(S, S.1 * S.5 * S.8);;
242
+ gap> Size(H);
243
+ 1
244
+ gap> L := LClass(H);;
245
+ gap> Size(L);
246
+ 26
247
+ gap> LL := LClassOfHClass(H);;
248
+ gap> LL = L;
249
+ true
250
+ gap> L3 := LClass(S, Representative(H));;
251
+ gap> L3 = LL;
252
+ true
253
+
254
+ # Test RClassOfHClass, 1/1
255
+ gap> S := ReesZeroMatrixSemigroup(SymmetricGroup(3), [
256
+ > [(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
257
+ > [0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
258
+ > [0, 0, (), 0, (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
259
+ > [0, 0, 0, (), (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
260
+ > [0, 0, (1, 3), (2, 3), (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
261
+ > 0],
262
+ > [0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
263
+ > [0, 0, 0, 0, 0, 0, (), (2, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
264
+ > [0, 0, 0, 0, 0, 0, (1, 3, 2), (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
265
+ > 0],
266
+ > [0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
267
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
268
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
269
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, (1, 2), 0, 0, 0, 0, 0, 0, 0, 0, 0],
270
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
271
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (1, 3), (), (), 0, 0, 0, 0, 0, 0, 0, 0, 0],
272
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 2), 0, 0, 0, 0, 0, 0, 0],
273
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0],
274
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0],
275
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 2, 3), (1, 3, 2),
276
+ > 0, 0, 0],
277
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0],
278
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0],
279
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 3), 0],
280
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0],
281
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ()]]);;
282
+ gap> S := Semigroup(S);
283
+ <subsemigroup of 23x23 Rees 0-matrix semigroup with 46 generators>
284
+ gap> Size(S);
285
+ 3175
286
+ gap> H := HClass(S, S.1);;
287
+ gap> Size(H);
288
+ 6
289
+ gap> R := RClass(H);;
290
+ gap> Size(R);
291
+ 138
292
+ gap> RR := RClassOfHClass(H);;
293
+ gap> RR = R;
294
+ true
295
+ gap> RRR := RClass(S, Representative(H));;
296
+ gap> RRR = RR;
297
+ true
298
+
299
+ # Test GreensDClassOfElement, fail, 1/1
300
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
301
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
302
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
303
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])], rec(acting := false));;
304
+ gap> GreensDClassOfElement(S, PartialPerm([19]));
305
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
306
+ t argument (a Green's relation)
307
+
308
+ # Test GreensDClassOfElementNC, 1/1
309
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
310
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
311
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
312
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])], rec(acting := false));;
313
+ gap> D := GreensDClassOfElementNC(S, PartialPerm([19]));;
314
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
315
+ t argument (a Green's relation)
316
+
317
+ # Test GreensJClassOfElement, 1/1
318
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
319
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
320
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
321
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])], rec(acting := false));;
322
+ gap> J := GreensJClassOfElement(S, S.2);
323
+ <Green's D-class: [6,4,7,1,2,5](3)>
324
+
325
+ # Test GreensL/RClassOfElement, fail, 1/1
326
+ gap> S := Semigroup([Transformation([2, 2, 1, 2, 4, 4]),
327
+ > Transformation([2, 6, 6, 5, 1, 4]), Transformation([3, 2, 5, 5, 6, 4]),
328
+ > Transformation([3, 5, 3, 4, 1]), Transformation([4, 2, 3, 1, 4, 2]),
329
+ > Transformation([4, 4, 2, 6, 6, 3]), Transformation([5, 5, 5, 6, 5, 4]),
330
+ > Transformation([6, 3, 1, 3, 1, 6])], rec(acting := false));;
331
+ gap> RClass(S, ConstantTransformation(7, 7));
332
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
333
+ t argument (a Green's relation)
334
+ gap> LClass(S, ConstantTransformation(7, 7));
335
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
336
+ t argument (a Green's relation)
337
+ gap> HClass(S, ConstantTransformation(7, 7));
338
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
339
+ t argument (a Green's relation)
340
+
341
+ # Test GreensL/RClassOfElementNC, 1/1
342
+ gap> S := Semigroup([Transformation([2, 2, 1, 2, 4, 4]),
343
+ > Transformation([2, 6, 6, 5, 1, 4]), Transformation([3, 2, 5, 5, 6, 4]),
344
+ > Transformation([3, 5, 3, 4, 1]), Transformation([4, 2, 3, 1, 4, 2]),
345
+ > Transformation([4, 4, 2, 6, 6, 3]), Transformation([5, 5, 5, 6, 5, 4]),
346
+ > Transformation([6, 3, 1, 3, 1, 6])], rec(acting := false));;
347
+ gap> R := RClassNC(S, S.1);
348
+ <Green's R-class: Transformation( [ 2, 2, 1, 2, 4, 4 ] )>
349
+ gap> Size(R);
350
+ 120
351
+ gap> L := LClassNC(S, S.1);
352
+ <Green's L-class: Transformation( [ 2, 2, 1, 2, 4, 4 ] )>
353
+ gap> Size(L);
354
+ 396
355
+ gap> H := HClassNC(S, S.1);
356
+ <Green's H-class: Transformation( [ 2, 2, 1, 2, 4, 4 ] )>
357
+ gap> Size(H);
358
+ 6
359
+
360
+ # Test GreensL/RClassOfElement, for a D-class, 1/1
361
+ gap> S := Monoid(
362
+ > [Bipartition([[1, 2, 3, 4, 5, -1], [6, -5], [-2, -3, -4], [-6]]),
363
+ > Bipartition([[1, 2, 3, 5, -3, -4, -5], [4, 6, -2], [-1, -6]]),
364
+ > Bipartition([[1, 2, -5, -6], [3, 5, 6, -1, -4], [4, -2, -3]]),
365
+ > Bipartition([[1, 3, -3], [2, 5, 6, -2], [4, -1, -4, -5], [-6]]),
366
+ > Bipartition([[1, 3, -1, -6], [2, 6, -2], [4, -3, -5], [5], [-4]]),
367
+ > Bipartition([[1, -3], [2, 3, 4, 5, -1, -4], [6, -2, -6], [-5]]),
368
+ > Bipartition([[1, 5, -5, -6], [2, 3, -1, -2, -4], [4, 6, -3]]),
369
+ > Bipartition([[1, 4, 6, -1, -2, -4], [2, 5, -5, -6], [3], [-3]]),
370
+ > Bipartition([[1, 5, -1, -3], [2, 4, 6], [3, -2, -6], [-4, -5]]),
371
+ > Bipartition([[1, 5, -2], [2, -1, -5], [3, 4, -6], [6, -3], [-4]])],
372
+ > rec(acting := false));;
373
+ gap> D := DClass(S, S.4 * S.5);;
374
+ gap> Size(D);
375
+ 12
376
+ gap> x := Bipartition([[1, 3, 4, -2], [2, 5, 6, -1, -6],
377
+ > [-3, -5], [-4]]);;
378
+ gap> R := RClass(D, x);;
379
+ gap> Size(R);
380
+ 12
381
+ gap> L := LClass(D, x);;
382
+ gap> Size(L);
383
+ 1
384
+ gap> LClass(D, IdentityBipartition(8));
385
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
386
+ t argument (a Green's relation)
387
+ gap> RClass(D, IdentityBipartition(8));
388
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
389
+ t argument (a Green's relation)
390
+ gap> x := Bipartition([[1, 4, -1, -2, -6], [2, 3, 5, -4],
391
+ > [6, -3], [-5]]);;
392
+ gap> LClassNC(D, x);
393
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
394
+ t argument (a Green's relation)
395
+ gap> RClassNC(D, x);
396
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
397
+ t argument (a Green's relation)
398
+
399
+ # Test GreensHClassOfElement, 1/1
400
+ gap> S := ReesZeroMatrixSemigroup(SymmetricGroup(3), [
401
+ > [(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
402
+ > [0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
403
+ > [0, 0, (), 0, (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
404
+ > [0, 0, 0, (), (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
405
+ > [0, 0, (1, 3), (2, 3), (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
406
+ > 0],
407
+ > [0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
408
+ > [0, 0, 0, 0, 0, 0, (), (2, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
409
+ > [0, 0, 0, 0, 0, 0, (1, 3, 2), (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410
+ > 0],
411
+ > [0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
412
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 3), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
413
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
414
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, (1, 2), 0, 0, 0, 0, 0, 0, 0, 0, 0],
415
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
416
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (1, 3), (), (), 0, 0, 0, 0, 0, 0, 0, 0, 0],
417
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 2), 0, 0, 0, 0, 0, 0, 0],
418
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0, 0],
419
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0, 0, 0],
420
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 2, 3), (1, 3, 2),
421
+ > 0, 0, 0],
422
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0, 0],
423
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0, 0, 0],
424
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), (1, 3), 0],
425
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (), 0],
426
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ()]]);;
427
+ gap> S := Semigroup(S, rec(acting := false));;
428
+ gap> D := DClass(S, S.4 * S.5);;
429
+ gap> H := HClass(D, MultiplicativeZero(S));
430
+ <Green's H-class: 0>
431
+ gap> H := HClassNC(D, MultiplicativeZero(S));
432
+ <Green's H-class: 0>
433
+ gap> H := HClass(D, IdentityTransformation);
434
+ Error, the 2nd argument (a mult. elt.) does not belong to the source of the 1s\
435
+ t argument (a Green's relation)
436
+
437
+ # Test GreensHClassOfElement(L/R-class, x), 1/1
438
+ gap> S := Semigroup([Transformation([2, 2, 1, 2, 4, 4]),
439
+ > Transformation([2, 6, 6, 5, 1, 4]), Transformation([3, 2, 5, 5, 6, 4]),
440
+ > Transformation([3, 5, 3, 4, 1]), Transformation([4, 2, 3, 1, 4, 2]),
441
+ > Transformation([4, 4, 2, 6, 6, 3]), Transformation([5, 5, 5, 6, 5, 4]),
442
+ > Transformation([6, 3, 1, 3, 1, 6])], rec(acting := false));;
443
+ gap> R := RClass(S, S.3 * S.1 * S.8);;
444
+ gap> Size(R);
445
+ 30
446
+ gap> Size(HClass(R, S.3 * S.1 * S.8));
447
+ 2
448
+ gap> L := LClass(S, S.3 * S.1 * S.8);;
449
+ gap> Size(L);
450
+ 62
451
+ gap> Size(HClass(L, S.3 * S.1 * S.8));
452
+ 2
453
+
454
+ # Test \in, for D-class, 1/4
455
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
456
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
457
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
458
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
459
+ gap> D := DClass(S, S.1);;
460
+ gap> ForAll(D, x -> x in D);
461
+ true
462
+ gap> Size(D);
463
+ 1
464
+ gap> Number(S, x -> x in D);
465
+ 1
466
+
467
+ # Test \in, for D-class, 2/4
468
+ gap> S := OrderEndomorphisms(5);;
469
+ gap> x := Transformation([1, 2, 2, 4, 5]);;
470
+ gap> D := DClass(S, x);;
471
+ gap> x in D;
472
+ true
473
+ gap> Transformation([1, 2, 1, 4, 5]) in D;
474
+ false
475
+
476
+ # Test \in, for D-class, 3/4
477
+ gap> S := ReesZeroMatrixSemigroup(Group([(1, 2)]), [[0, 0, 0, ()], [
478
+ > (), 0, 0, 0], [(), (), 0, 0], [0, (), (), 0], [0, 0, (), ()]]);;
479
+ gap> S := Semigroup(S);;
480
+ gap> D := DClass(S, S.1);;
481
+ gap> Size(S);
482
+ 41
483
+ gap> Size(D) = Size(S) - 1;
484
+ true
485
+ gap> ForAll(D, x -> x in D);
486
+ true
487
+
488
+ # Test \in, for D-class, 4/4
489
+ gap> x := Transformation([2, 3, 4, 1, 5, 5]);;
490
+ gap> S := Semigroup(x);
491
+ <commutative transformation semigroup of degree 6 with 1 generator>
492
+ gap> y := Transformation([2, 1, 3, 4, 5, 5]);;
493
+ gap> D := DClass(S, x);;
494
+ gap> y in D;
495
+ false
496
+
497
+ # Test \in, for L-class, 1/5
498
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
499
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
500
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
501
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
502
+ gap> L := LClass(S, S.1);;
503
+ gap> ForAll(L, x -> x in L);
504
+ true
505
+ gap> Size(L);
506
+ 1
507
+ gap> Number(S, x -> x in L);
508
+ 1
509
+
510
+ # Test \in, for L-class, 2/5
511
+ gap> S := OrderEndomorphisms(5);;
512
+ gap> x := Transformation([1, 2, 2, 4, 5]);;
513
+ gap> L := LClass(S, x);;
514
+ gap> x in L;
515
+ true
516
+ gap> Transformation([1, 2, 1, 4, 5]) in L;
517
+ false
518
+
519
+ # Test \in, for L-class, 3/5
520
+ gap> S := ReesZeroMatrixSemigroup(Group([(1, 2)]),
521
+ > [[0, 0, 0, ()],
522
+ > [(), 0, 0, 0],
523
+ > [(), (), 0, 0],
524
+ > [0, (), (), 0],
525
+ > [0, 0, (), ()]]);;
526
+ gap> S := Semigroup(S);;
527
+ gap> L := LClass(S, S.1);;
528
+ gap> Size(S);
529
+ 41
530
+ gap> ForAll(L, x -> x in L);
531
+ true
532
+
533
+ # Test \in, for L-class, 4/5
534
+ gap> x := Transformation([2, 3, 4, 1, 5, 5]);;
535
+ gap> S := Semigroup(x);
536
+ <commutative transformation semigroup of degree 6 with 1 generator>
537
+ gap> y := Transformation([2, 1, 3, 4, 5, 5]);;
538
+ gap> L := LClass(S, x);;
539
+ gap> y in L;
540
+ false
541
+
542
+ # Test \in, for L-class, 5/5
543
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
544
+ gap> S := Semigroup(x);;
545
+ gap> y := Transformation([1, 1, 4, 3, 5, 5]);;
546
+ gap> L := LClass(S, x);;
547
+ gap> y in L;
548
+ false
549
+
550
+ # Test \in, for R-class, 1/6
551
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
552
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
553
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
554
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
555
+ gap> R := LClass(S, S.1);;
556
+ gap> ForAll(R, x -> x in R);
557
+ true
558
+ gap> Size(R);
559
+ 1
560
+ gap> Number(S, x -> x in R);
561
+ 1
562
+
563
+ # Test \in, for R-class, 2/6
564
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
565
+ gap> S := Semigroup(x);;
566
+ gap> y := Transformation([1, 1, 4, 3, 5, 5]);;
567
+ gap> R := RClass(S, x);;
568
+ gap> y in R;
569
+ false
570
+
571
+ # Test \in, for R-class, 3/6
572
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
573
+ gap> S := Semigroup(x);;
574
+ gap> y := Transformation([1, 1, 3, 3, 5, 5]);;
575
+ gap> R := RClass(S, x);;
576
+ gap> y in R;
577
+ false
578
+
579
+ # Test \in, for R-class, 4/6
580
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
581
+ gap> S := Semigroup(x);;
582
+ gap> y := Transformation([1, 1, 2, 3, 5, 5]);;
583
+ gap> R := RClass(S, x);;
584
+ gap> y in R;
585
+ false
586
+
587
+ # Test \in, for R-class, 5/6
588
+ gap> S := OrderEndomorphisms(5);;
589
+ gap> x := Transformation([1, 2, 2, 4, 5]);;
590
+ gap> R := RClass(S, x);;
591
+ gap> x in R;
592
+ true
593
+ gap> Transformation([1, 2, 1, 4, 5]) in R;
594
+ false
595
+
596
+ # Test \in, for R-class, 6/6
597
+ gap> x := Transformation([2, 3, 4, 1, 5, 5]);;
598
+ gap> S := Semigroup(x);
599
+ <commutative transformation semigroup of degree 6 with 1 generator>
600
+ gap> y := Transformation([2, 1, 3, 4, 5, 5]);;
601
+ gap> R := RClass(S, x);;
602
+ gap> y in R;
603
+ false
604
+
605
+ # Test \in, for H-class, 1/3
606
+ gap> x := Transformation([2, 3, 4, 1, 5, 5]);;
607
+ gap> S := Semigroup(x);
608
+ <commutative transformation semigroup of degree 6 with 1 generator>
609
+ gap> y := Transformation([2, 1, 3, 4, 5, 5]);;
610
+ gap> H := HClass(S, x);;
611
+ gap> y in H;
612
+ false
613
+
614
+ # Test \in, for H-class, 2/3
615
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
616
+ gap> S := Semigroup(x);;
617
+ gap> y := Transformation([1, 1, 2, 3, 5, 5]);;
618
+ gap> H := HClass(S, x);;
619
+ gap> y in H;
620
+ false
621
+
622
+ # Test \in, for H-class, 3/3
623
+ gap> x := Transformation([1, 1, 3, 4, 5, 5]);;
624
+ gap> S := Semigroup(x);;
625
+ gap> H := HClass(S, x);;
626
+ gap> ForAll(H, x -> x in H);
627
+ true
628
+
629
+ # Test R-classes/reps, 1/1
630
+ gap> S := OrderEndomorphisms(5);;
631
+ gap> S := Semigroup(S, rec(acting := false));
632
+ <transformation monoid of degree 5 with 5 generators>
633
+ gap> RClasses(S);
634
+ [ <Green's R-class: Transformation( [ 1, 1, 1, 1, 1 ] )>,
635
+ <Green's R-class: Transformation( [ 1, 1, 1, 1, 2 ] )>,
636
+ <Green's R-class: Transformation( [ 1, 1, 1, 3, 3 ] )>,
637
+ <Green's R-class: Transformation( [ 1, 1, 1, 2, 3 ] )>,
638
+ <Green's R-class: Transformation( [ 1, 1, 3, 3, 3 ] )>,
639
+ <Green's R-class: Transformation( [ 1, 1, 3, 3, 4 ] )>,
640
+ <Green's R-class: Transformation( [ 1, 1, 2, 4, 4 ] )>,
641
+ <Green's R-class: Transformation( [ 1, 1, 2, 3, 4 ] )>,
642
+ <Green's R-class: Transformation( [ 1, 3, 3, 3, 3 ] )>,
643
+ <Green's R-class: Transformation( [ 1, 3, 3, 3, 4 ] )>,
644
+ <Green's R-class: Transformation( [ 1, 2, 2, 4, 4 ] )>,
645
+ <Green's R-class: Transformation( [ 1, 3, 3 ] )>,
646
+ <Green's R-class: Transformation( [ 1, 2, 4, 4, 4 ] )>,
647
+ <Green's R-class: Transformation( [ 1, 2, 4, 4 ] )>,
648
+ <Green's R-class: Transformation( [ 1, 2, 3, 5, 5 ] )>,
649
+ <Green's R-class: IdentityTransformation> ]
650
+ gap> RClassReps(S);
651
+ [ Transformation( [ 1, 1, 1, 1, 1 ] ), Transformation( [ 1, 1, 1, 1, 2 ] ),
652
+ Transformation( [ 1, 1, 1, 3, 3 ] ), Transformation( [ 1, 1, 1, 2, 3 ] ),
653
+ Transformation( [ 1, 1, 3, 3, 3 ] ), Transformation( [ 1, 1, 3, 3, 4 ] ),
654
+ Transformation( [ 1, 1, 2, 4, 4 ] ), Transformation( [ 1, 1, 2, 3, 4 ] ),
655
+ Transformation( [ 1, 3, 3, 3, 3 ] ), Transformation( [ 1, 3, 3, 3, 4 ] ),
656
+ Transformation( [ 1, 2, 2, 4, 4 ] ), Transformation( [ 1, 3, 3 ] ),
657
+ Transformation( [ 1, 2, 4, 4, 4 ] ), Transformation( [ 1, 2, 4, 4 ] ),
658
+ Transformation( [ 1, 2, 3, 5, 5 ] ), IdentityTransformation ]
659
+
660
+ # Test R-reps, 1/1
661
+ gap> S := OrderEndomorphisms(5);;
662
+ gap> S := Semigroup(S, rec(acting := false));;
663
+ gap> D := DClass(S, S.2 * S.1);
664
+ <Green's D-class: Transformation( [ 1, 1, 2, 3, 4 ] )>
665
+ gap> RClassReps(D);
666
+ [ Transformation( [ 1, 1, 2, 3, 4 ] ), Transformation( [ 1, 2, 2, 3, 4 ] ),
667
+ Transformation( [ 1, 2, 3, 3, 4 ] ), Transformation( [ 1, 2, 3, 4, 4 ] ) ]
668
+ gap> LClassReps(D);
669
+ [ Transformation( [ 1, 1, 2, 3, 4 ] ), Transformation( [ 1, 2, 3, 5, 5 ] ),
670
+ Transformation( [ 1, 2, 4, 4 ] ), Transformation( [ 1, 3, 3 ] ),
671
+ Transformation( [ 2, 2 ] ) ]
672
+
673
+ # Test H-classes/reps, 1/3
674
+ gap> S := Monoid(
675
+ > [Transformation([2, 2, 2, 2, 2, 2, 2, 2, 2, 4]),
676
+ > Transformation([2, 2, 2, 2, 2, 2, 2, 4, 2, 4]),
677
+ > Transformation([2, 2, 2, 2, 2, 2, 2, 4, 4, 2]),
678
+ > Transformation([2, 2, 2, 2, 2, 2, 2, 4, 4, 4]),
679
+ > Transformation([2, 2, 2, 2, 2, 2, 4, 4, 2, 2]),
680
+ > Transformation([2, 2, 2, 2, 2, 2, 4, 4, 4, 2]),
681
+ > Transformation([2, 2, 2, 2, 2, 4, 2, 2, 2, 4]),
682
+ > Transformation([2, 2, 2, 2, 2, 4, 2, 2, 4, 4]),
683
+ > Transformation([2, 2, 2, 2, 2, 4, 4, 2, 4, 2]),
684
+ > Transformation([2, 2, 2, 4, 2, 2, 2, 4, 2, 2]),
685
+ > Transformation([2, 2, 2, 4, 2, 2, 7, 4, 2, 4]),
686
+ > Transformation([2, 2, 3, 4, 2, 4, 7, 2, 9, 4]),
687
+ > Transformation([2, 2, 3, 4, 2, 6, 2, 2, 9, 2]),
688
+ > Transformation([2, 2, 3, 4, 2, 6, 7, 2, 2, 4]),
689
+ > Transformation([2, 2, 3, 4, 2, 6, 7, 2, 9, 4]),
690
+ > Transformation([2, 2, 4, 2, 2, 2, 2, 2, 2, 4]),
691
+ > Transformation([2, 2, 4, 2, 2, 2, 2, 4, 2, 2]),
692
+ > Transformation([2, 2, 4, 2, 2, 2, 2, 4, 2, 4]),
693
+ > Transformation([2, 2, 4, 2, 2, 2, 4, 4, 2, 2]),
694
+ > Transformation([2, 2, 9, 4, 2, 4, 7, 2, 2, 4]),
695
+ > Transformation([3, 2, 2, 2, 2, 2, 2, 9, 4, 2]),
696
+ > Transformation([3, 2, 2, 2, 2, 2, 2, 9, 4, 4]),
697
+ > Transformation([3, 2, 2, 2, 2, 2, 4, 9, 4, 2]),
698
+ > Transformation([4, 2, 2, 2, 2, 2, 2, 3, 2, 2]),
699
+ > Transformation([4, 2, 2, 2, 2, 2, 2, 3, 2, 4]),
700
+ > Transformation([4, 2, 2, 2, 2, 2, 4, 3, 2, 2]),
701
+ > Transformation([4, 2, 4, 2, 2, 2, 2, 3, 2, 2]),
702
+ > Transformation([4, 2, 4, 2, 2, 2, 2, 3, 2, 4]),
703
+ > Transformation([4, 2, 4, 2, 2, 2, 4, 3, 2, 2]),
704
+ > Transformation([5, 5, 5, 5, 5, 5, 5, 5, 5, 5])],
705
+ > rec(acting := false));;
706
+ gap> HClassReps(S);
707
+ [ Transformation( [ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ] ),
708
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] ),
709
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] ),
710
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 2, 4 ] ),
711
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 4, 2 ] ),
712
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 4, 4 ] ),
713
+ Transformation( [ 2, 2, 2, 2, 2, 2, 4, 4, 2, 2 ] ),
714
+ Transformation( [ 2, 2, 2, 2, 2, 2, 4, 4, 4, 2 ] ),
715
+ Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 2, 4 ] ),
716
+ Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 4, 4 ] ),
717
+ Transformation( [ 2, 2, 2, 2, 2, 4, 4, 2, 4, 2 ] ),
718
+ Transformation( [ 2, 2, 2, 4, 2, 2, 2, 4, 2, 2 ] ),
719
+ Transformation( [ 2, 2, 2, 2, 2, 2, 4, 2, 2, 2 ] ),
720
+ Transformation( [ 2, 2, 2, 4, 2, 2, 2, 4, 2, 4 ] ),
721
+ Transformation( [ 2, 2, 2, 4, 2, 2, 7, 4, 2, 4 ] ),
722
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] ),
723
+ Transformation( [ 2, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] ),
724
+ Transformation( [ 2, 2, 2, 4, 2, 4, 2, 2, 2, 4 ] ),
725
+ Transformation( [ 2, 2, 2, 4, 2, 4, 7, 2, 2, 4 ] ),
726
+ Transformation( [ 2, 2, 4, 2, 2, 2, 2, 2, 2, 2 ] ),
727
+ Transformation( [ 2, 2, 9, 4, 2, 4, 2, 2, 2, 4 ] ),
728
+ Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 2, 4 ] ),
729
+ Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 9, 4 ] ),
730
+ Transformation( [ 2, 2, 4, 2, 2, 2, 4, 2, 2, 2 ] ),
731
+ Transformation( [ 2, 2, 9, 4, 2, 4, 7, 2, 2, 4 ] ),
732
+ Transformation( [ 2, 2, 3, 4, 2, 4, 7, 2, 2, 4 ] ),
733
+ Transformation( [ 2, 2, 3, 4, 2, 4, 7, 2, 9, 4 ] ),
734
+ Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 2, 2 ] ),
735
+ Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 4, 2 ] ),
736
+ Transformation( [ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2 ] ),
737
+ Transformation( [ 2, 2, 2, 4, 2, 4, 2, 2, 2, 2 ] ),
738
+ Transformation( [ 2, 2, 9, 4, 2, 4, 2, 2, 2, 2 ] ),
739
+ Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 2, 2 ] ),
740
+ Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 9, 2 ] ),
741
+ Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 2, 2 ] ),
742
+ Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 9, 2 ] ),
743
+ Transformation( [ 2, 2, 2, 2, 2, 4, 4, 2, 2, 2 ] ),
744
+ Transformation( [ 2, 2, 2, 4, 2, 2, 2, 2, 2, 4 ] ),
745
+ Transformation( [ 2, 2, 2, 4, 2, 2, 7, 2, 2, 4 ] ),
746
+ Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 2, 4 ] ),
747
+ Transformation( [ 2, 2, 3, 4, 2, 6, 7, 2, 2, 4 ] ),
748
+ Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 9, 4 ] ),
749
+ Transformation( [ 2, 2, 3, 4, 2, 6, 7, 2, 9, 4 ] ),
750
+ Transformation( [ 2, 2, 4, 2, 2, 2, 2, 2, 2, 4 ] ),
751
+ Transformation( [ 2, 2, 4, 2, 2, 2, 2, 4, 2, 2 ] ),
752
+ Transformation( [ 2, 2, 4, 2, 2, 2, 2, 4, 2, 4 ] ),
753
+ Transformation( [ 2, 2, 4, 2, 2, 2, 4, 4, 2, 2 ] ),
754
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 2, 2 ] ),
755
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] ),
756
+ Transformation( [ 9, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] ),
757
+ Transformation( [ 3, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] ),
758
+ Transformation( [ 3, 2, 2, 2, 2, 2, 2, 9, 4, 2 ] ),
759
+ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] ),
760
+ Transformation( [ 9, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] ),
761
+ Transformation( [ 3, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] ),
762
+ Transformation( [ 3, 2, 2, 2, 2, 2, 2, 9, 4, 4 ] ),
763
+ Transformation( [ 9, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] ),
764
+ Transformation( [ 3, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] ),
765
+ Transformation( [ 3, 2, 2, 2, 2, 2, 4, 9, 4, 2 ] ),
766
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 9, 2, 2 ] ),
767
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 3, 2, 2 ] ),
768
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] ),
769
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 9, 2, 4 ] ),
770
+ Transformation( [ 4, 2, 2, 2, 2, 2, 2, 3, 2, 4 ] ),
771
+ Transformation( [ 4, 2, 2, 2, 2, 2, 4, 2, 2, 2 ] ),
772
+ Transformation( [ 4, 2, 2, 2, 2, 2, 4, 9, 2, 2 ] ),
773
+ Transformation( [ 4, 2, 2, 2, 2, 2, 4, 3, 2, 2 ] ),
774
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 2, 2, 2 ] ),
775
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 9, 2, 2 ] ),
776
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 3, 2, 2 ] ),
777
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 2, 2, 4 ] ),
778
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 9, 2, 4 ] ),
779
+ Transformation( [ 4, 2, 4, 2, 2, 2, 2, 3, 2, 4 ] ),
780
+ Transformation( [ 4, 2, 4, 2, 2, 2, 4, 2, 2, 2 ] ),
781
+ Transformation( [ 4, 2, 4, 2, 2, 2, 4, 9, 2, 2 ] ),
782
+ Transformation( [ 4, 2, 4, 2, 2, 2, 4, 3, 2, 2 ] ), IdentityTransformation ]
783
+ gap> HClasses(S);
784
+ [ <Green's H-class: Transformation( [ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ] )>,
785
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] )>,
786
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] )>,
787
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 2, 4 ] )>,
788
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 4, 2 ] )>,
789
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 4, 4 ] )>,
790
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 4, 4, 2, 2 ] )>,
791
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 4, 4, 4, 2 ] )>,
792
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 2, 4 ] )>,
793
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 4, 4 ] )>,
794
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 4, 2, 4, 2 ] )>,
795
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 2, 4, 2, 2 ] )>,
796
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 4, 2, 2, 2 ] )>,
797
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 2, 4, 2, 4 ] )>,
798
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 7, 4, 2, 4 ] )>,
799
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] )>,
800
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] )>,
801
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 4, 2, 2, 2, 4 ] )>,
802
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 4, 7, 2, 2, 4 ] )>,
803
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 2, 2, 2, 2 ] )>,
804
+ <Green's H-class: Transformation( [ 2, 2, 9, 4, 2, 4, 2, 2, 2, 4 ] )>,
805
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 2, 4 ] )>,
806
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 9, 4 ] )>,
807
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 4, 2, 2, 2 ] )>,
808
+ <Green's H-class: Transformation( [ 2, 2, 9, 4, 2, 4, 7, 2, 2, 4 ] )>,
809
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 7, 2, 2, 4 ] )>,
810
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 7, 2, 9, 4 ] )>,
811
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 2, 2 ] )>,
812
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 2, 2, 4, 2 ] )>,
813
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2 ] )>,
814
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 4, 2, 2, 2, 2 ] )>,
815
+ <Green's H-class: Transformation( [ 2, 2, 9, 4, 2, 4, 2, 2, 2, 2 ] )>,
816
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 2, 2 ] )>,
817
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 4, 2, 2, 9, 2 ] )>,
818
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 2, 2 ] )>,
819
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 9, 2 ] )>,
820
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 4, 4, 2, 2, 2 ] )>,
821
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 2, 2, 2, 4 ] )>,
822
+ <Green's H-class: Transformation( [ 2, 2, 2, 4, 2, 2, 7, 2, 2, 4 ] )>,
823
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 2, 4 ] )>,
824
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 7, 2, 2, 4 ] )>,
825
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 2, 2, 9, 4 ] )>,
826
+ <Green's H-class: Transformation( [ 2, 2, 3, 4, 2, 6, 7, 2, 9, 4 ] )>,
827
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 2, 2, 2, 4 ] )>,
828
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 2, 4, 2, 2 ] )>,
829
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 2, 4, 2, 4 ] )>,
830
+ <Green's H-class: Transformation( [ 2, 2, 4, 2, 2, 2, 4, 4, 2, 2 ] )>,
831
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 4, 2, 2 ] )>,
832
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] )>,
833
+ <Green's H-class: Transformation( [ 9, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] )>,
834
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 2, 2, 4, 2 ] )>,
835
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 2, 9, 4, 2 ] )>,
836
+ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] )>,
837
+ <Green's H-class: Transformation( [ 9, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] )>,
838
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 2, 2, 4, 4 ] )>,
839
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 2, 9, 4, 4 ] )>,
840
+ <Green's H-class: Transformation( [ 9, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] )>,
841
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 4, 2, 4, 2 ] )>,
842
+ <Green's H-class: Transformation( [ 3, 2, 2, 2, 2, 2, 4, 9, 4, 2 ] )>,
843
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 9, 2, 2 ] )>,
844
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 3, 2, 2 ] )>,
845
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] )>,
846
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 9, 2, 4 ] )>,
847
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 2, 3, 2, 4 ] )>,
848
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 4, 2, 2, 2 ] )>,
849
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 4, 9, 2, 2 ] )>,
850
+ <Green's H-class: Transformation( [ 4, 2, 2, 2, 2, 2, 4, 3, 2, 2 ] )>,
851
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 2, 2, 2 ] )>,
852
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 9, 2, 2 ] )>,
853
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 3, 2, 2 ] )>,
854
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 2, 2, 4 ] )>,
855
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 9, 2, 4 ] )>,
856
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 2, 3, 2, 4 ] )>,
857
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 4, 2, 2, 2 ] )>,
858
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 4, 9, 2, 2 ] )>,
859
+ <Green's H-class: Transformation( [ 4, 2, 4, 2, 2, 2, 4, 3, 2, 2 ] )>,
860
+ <Green's H-class: IdentityTransformation> ]
861
+ gap> D := DClass(S, S.1);;
862
+ gap> HClassReps(D);
863
+ [ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] ) ]
864
+ gap> HClasses(D);
865
+ [ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] )> ]
866
+ gap> L := LClass(S, S.1);;
867
+ gap> HClassReps(L);
868
+ [ Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] ) ]
869
+ gap> HClasses(L);
870
+ [ <Green's H-class: Transformation( [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ] )> ]
871
+
872
+ # Test H-classes/reps, 2/3
873
+ gap> S := Semigroup(FullTransformationMonoid(5), rec(acting := false));;
874
+ gap> x := Transformation([1, 1, 2, 3, 4]);;
875
+ gap> L := LClass(S, x);;
876
+ gap> GreensHClasses(L);
877
+ [ <Green's H-class: Transformation( [ 2, 1, 3, 4, 2 ] )>,
878
+ <Green's H-class: Transformation( [ 1, 3, 4, 2, 2 ] )>,
879
+ <Green's H-class: Transformation( [ 3, 4, 2, 2, 1 ] )>,
880
+ <Green's H-class: Transformation( [ 4, 2, 2, 1, 3 ] )>,
881
+ <Green's H-class: Transformation( [ 2, 2, 1, 3, 4 ] )>,
882
+ <Green's H-class: Transformation( [ 2, 4, 2, 1, 3 ] )>,
883
+ <Green's H-class: Transformation( [ 4, 2, 1, 3, 2 ] )>,
884
+ <Green's H-class: Transformation( [ 2, 1, 3, 2, 4 ] )>,
885
+ <Green's H-class: Transformation( [ 1, 3, 2, 4, 2 ] )>,
886
+ <Green's H-class: Transformation( [ 3, 2, 4, 2, 1 ] )> ]
887
+
888
+ # Test NrXClasses, 1/1
889
+ gap> S := Semigroup(SymmetricInverseMonoid(5));;
890
+ gap> NrRClasses(S);
891
+ 32
892
+ gap> NrDClasses(S);
893
+ 6
894
+ gap> NrLClasses(S);
895
+ 32
896
+ gap> NrHClasses(S);
897
+ 252
898
+
899
+ # Test NrXClasses for a D-class, 1/1
900
+ gap> S := Semigroup(SymmetricInverseMonoid(5));;
901
+ gap> D := DClass(S, S.2);;
902
+ gap> NrRClasses(D);
903
+ 1
904
+ gap> NrLClasses(D);
905
+ 1
906
+ gap> R := RClass(S, S.2);;
907
+ gap> NrHClasses(R);
908
+ 1
909
+ gap> L := LClass(S, S.2);;
910
+ gap> NrHClasses(L);
911
+ 1
912
+
913
+ # Test GreensXClasses, for an infinite semigroup, 1/1
914
+ gap> S := FreeSemigroup(2);;
915
+ gap> GreensLClasses(S);
916
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
917
+ Error, no 2nd choice method found for `CayleyGraphDualSemigroup' on 1 argument\
918
+ s
919
+ gap> GreensRClasses(S);
920
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
921
+ Error, no 2nd choice method found for `CayleyGraphSemigroup' on 1 arguments
922
+ gap> GreensHClasses(S);
923
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
924
+ Error, no 2nd choice method found for `CayleyGraphDualSemigroup' on 1 argument\
925
+ s
926
+ gap> GreensDClasses(S);
927
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
928
+ Error, no 2nd choice method found for `CayleyGraphDualSemigroup' on 1 argument\
929
+ s
930
+
931
+ # Test GreensHClasses, fail, 1/1
932
+ gap> S := Semigroup(SymmetricInverseMonoid(3));;
933
+ gap> H := HClass(S, S.2);;
934
+ gap> GreensHClasses(H);
935
+ Error, the argument is not a Green's R-, L-, or D-class
936
+
937
+ # Test PartialOrderOfDClasses, 1/2
938
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullBooleanMatMonoid(3));;
939
+ gap> S := Semigroup(S, rec(acting := false));;
940
+ gap> PartialOrderOfDClasses(S);
941
+ <immutable digraph with 11 vertices, 25 edges>
942
+
943
+ # Test Idempotents, 1/?
944
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullPBRMonoid(1));;
945
+ gap> S := Semigroup(S, rec(acting := false));;
946
+ gap> Idempotents(S);
947
+ [ Transformation( [ 1, 8, 6, 1, 1, 6, 1, 8, 13, 8, 6, 6, 13, 8, 13, 13 ] ),
948
+ Transformation( [ 1, 2, 3, 2, 10, 6, 7, 8, 9, 10 ] ),
949
+ Transformation( [ 6, 9, 3, 3, 3, 6, 6, 13, 9, 9, 3, 6, 13, 13, 9, 13 ] ),
950
+ IdentityTransformation, Transformation( [ 7, 10, 11, 5, 5, 12, 7, 14, 15,
951
+ 10, 11, 12, 16, 14, 15, 16 ] ),
952
+ Transformation( [ 6, 13, 6, 6, 6, 6, 6, 13, 13, 13, 6, 6, 13, 13, 13, 13 ] )
953
+ , Transformation( [ 7, 14, 12, 7, 7, 12, 7, 14, 16, 14, 12, 12, 16, 14,
954
+ 16, 16 ] ), Transformation( [ 1, 8, 6, 8, 8, 6, 1, 8, 13, 8, 6, 6, 13,
955
+ 8, 13, 13 ] ), Transformation( [ 6, 9, 3, 9, 9, 6, 6, 13, 9, 9, 3, 6,
956
+ 13, 13, 9, 13 ] ), Transformation( [ 7, 10, 11, 10, 10, 12, 7, 14, 15,
957
+ 10, 11, 12, 16, 14, 15, 16 ] ),
958
+ Transformation( [ 12, 15, 11, 11, 11, 12, 12, 16, 15, 15, 11, 12, 16, 16,
959
+ 15, 16 ] ), Transformation( [ 12, 16, 12, 12, 12, 12, 12, 16, 16, 16,
960
+ 12, 12, 16, 16, 16, 16 ] ),
961
+ Transformation( [ 6, 13, 6, 13, 13, 6, 6, 13, 13, 13, 6, 6, 13, 13, 13,
962
+ 13 ] ), Transformation( [ 7, 14, 12, 14, 14, 12, 7, 14, 16, 14, 12, 12,
963
+ 16, 14, 16, 16 ] ), Transformation( [ 12, 15, 11, 15, 15, 12, 12, 16,
964
+ 15, 15, 11, 12, 16, 16, 15, 16 ] ),
965
+ Transformation( [ 12, 16, 12, 16, 16, 12, 12, 16, 16, 16, 12, 12, 16, 16,
966
+ 16, 16 ] ) ]
967
+
968
+ # Test Idempotents, 2/2
969
+ gap> S := Semigroup(FullTransformationMonoid(3),
970
+ > rec(acting := false));;
971
+ gap> RClasses(S);;
972
+ gap> Idempotents(S);
973
+ [ IdentityTransformation, Transformation( [ 1, 2, 1 ] ),
974
+ Transformation( [ 1, 2, 2 ] ), Transformation( [ 3, 2, 3 ] ),
975
+ Transformation( [ 2, 2 ] ), Transformation( [ 1, 3, 3 ] ),
976
+ Transformation( [ 1, 1, 1 ] ), Transformation( [ 1, 1 ] ),
977
+ Transformation( [ 2, 2, 2 ] ), Transformation( [ 3, 3, 3 ] ) ]
978
+
979
+ # Test Idempotents, for a D-class, 1/2
980
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 1, 5, 6, 7, 8])]);;
981
+ gap> D := DClass(S, S.1);
982
+ <Green's D-class: Transformation( [ 2, 3, 4, 5, 1, 5, 6, 7, 8 ] )>
983
+ gap> IsRegularDClass(D);
984
+ false
985
+ gap> Idempotents(D);
986
+ [ ]
987
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 1, 5, 6, 7, 8])]);;
988
+ gap> D := DClass(S, S.1);
989
+ <Green's D-class: Transformation( [ 2, 3, 4, 5, 1, 5, 6, 7, 8 ] )>
990
+ gap> Idempotents(S);;
991
+ gap> Idempotents(D);
992
+ [ ]
993
+
994
+ # Test Idempotents, for a D-class, 2/2
995
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 1, 5, 6, 7, 8])]);;
996
+ gap> D := DClass(S, S.1);
997
+ <Green's D-class: Transformation( [ 2, 3, 4, 5, 1, 5, 6, 7, 8 ] )>
998
+ gap> Idempotents(D);
999
+ [ ]
1000
+
1001
+ # Test Idempotents, for a L-class, 1/3
1002
+ gap> S := Semigroup(FullTransformationMonoid(5), rec(acting := false));;
1003
+ gap> x := Transformation([1, 1, 2, 3, 4]);;
1004
+ gap> L := LClass(S, x);;
1005
+ gap> Idempotents(L);
1006
+ [ Transformation( [ 1, 2, 3, 4, 2 ] ), Transformation( [ 1, 2, 3, 4, 1 ] ),
1007
+ Transformation( [ 1, 2, 3, 4, 4 ] ), Transformation( [ 1, 2, 3, 4, 3 ] ) ]
1008
+
1009
+ # Test Idempotents, for a L-class, 2/3
1010
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullBooleanMatMonoid(3));
1011
+ <transformation monoid of degree 8 with 5 generators>
1012
+ gap> L := LClass(S, Transformation([1, 1, 1, 2, 1, 3, 5]));;
1013
+ gap> IsRegularGreensClass(L);
1014
+ false
1015
+ gap> Idempotents(L);
1016
+ [ ]
1017
+
1018
+ # Test Idempotents, for a L-class, 3/3
1019
+ gap> S := PartitionMonoid(3);;
1020
+ gap> L := LClass(S, One(S));;
1021
+ gap> Idempotents(L);
1022
+ [ <block bijection: [ 1, -1 ], [ 2, -2 ], [ 3, -3 ]> ]
1023
+
1024
+ # Test Idempotents, for a H-class, 1/2
1025
+ gap> S := SingularTransformationSemigroup(4);;
1026
+ gap> H := HClass(S, S.1);
1027
+ <Green's H-class: Transformation( [ 1, 2, 3, 3 ] )>
1028
+ gap> Idempotents(H);
1029
+ [ Transformation( [ 1, 2, 3, 3 ] ) ]
1030
+
1031
+ # Test Idempotents, for a H-class, 1/2
1032
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullBooleanMatMonoid(3));
1033
+ <transformation monoid of degree 8 with 5 generators>
1034
+ gap> H := HClass(S, Transformation([1, 1, 1, 2, 1, 3, 5]));;
1035
+ gap> IsGroupHClass(H);
1036
+ false
1037
+ gap> Idempotents(H);
1038
+ [ ]
1039
+
1040
+ # Test NrIdempotents, for a semigroup, 1/2
1041
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
1042
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
1043
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
1044
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
1045
+ gap> NrIdempotents(S);
1046
+ 24
1047
+
1048
+ # Test NrIdempotents, for a semigroup, 2/2
1049
+ gap> S := Semigroup([PartialPerm([1, 3, 4, 5, 6], [3, 1, 5, 7, 6]),
1050
+ > PartialPerm([1, 2, 3, 4, 6, 7], [2, 5, 3, 7, 4, 1]),
1051
+ > PartialPerm([1, 2, 4, 5, 6, 7], [3, 5, 7, 1, 6, 2]),
1052
+ > PartialPerm([1, 2, 4, 7], [3, 7, 6, 5])]);;
1053
+ gap> Idempotents(S);;
1054
+ gap> NrIdempotents(S);
1055
+ 24
1056
+
1057
+ # Test NrIdempotents, for a D-class, 1/2
1058
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 1, 5, 6, 7, 8])]);;
1059
+ gap> D := DClass(S, S.1);
1060
+ <Green's D-class: Transformation( [ 2, 3, 4, 5, 1, 5, 6, 7, 8 ] )>
1061
+ gap> IsRegularDClass(D);
1062
+ false
1063
+ gap> NrIdempotents(D);
1064
+ 0
1065
+
1066
+ # Test NrIdempotents, for a D-class, 2/2
1067
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 1, 5, 6, 7, 8])]);;
1068
+ gap> D := DClass(S, S.1);
1069
+ <Green's D-class: Transformation( [ 2, 3, 4, 5, 1, 5, 6, 7, 8 ] )>
1070
+ gap> NrIdempotents(D);
1071
+ 0
1072
+
1073
+ # Test NrIdempotents, for a L-class, 1/3
1074
+ gap> S := Semigroup(FullTransformationMonoid(5), rec(acting := false));;
1075
+ gap> x := Transformation([1, 1, 2, 3, 4]);;
1076
+ gap> L := LClass(S, x);;
1077
+ gap> NrIdempotents(L);
1078
+ 4
1079
+
1080
+ # Test NrIdempotents, for a L-class, 2/3
1081
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullBooleanMatMonoid(3));
1082
+ <transformation monoid of degree 8 with 5 generators>
1083
+ gap> L := LClass(S, Transformation([1, 1, 1, 2, 1, 3, 5]));;
1084
+ gap> IsRegularGreensClass(L);
1085
+ false
1086
+ gap> NrIdempotents(L);
1087
+ 0
1088
+
1089
+ # Test NrIdempotents, for a L-class, 3/3
1090
+ gap> S := PartitionMonoid(3);;
1091
+ gap> L := LClass(S, One(S));;
1092
+ gap> NrIdempotents(L);
1093
+ 1
1094
+
1095
+ # Test NrIdempotents, for a H-class, 1/2
1096
+ gap> S := SingularTransformationSemigroup(4);;
1097
+ gap> H := HClass(S, S.1);
1098
+ <Green's H-class: Transformation( [ 1, 2, 3, 3 ] )>
1099
+ gap> NrIdempotents(H);
1100
+ 1
1101
+
1102
+ # Test NrIdempotents, for a H-class, 1/2
1103
+ gap> S := AsSemigroup(IsTransformationSemigroup, FullBooleanMatMonoid(3));
1104
+ <transformation monoid of degree 8 with 5 generators>
1105
+ gap> H := HClass(S, Transformation([1, 1, 1, 2, 1, 3, 5]));;
1106
+ gap> IsGroupHClass(H);
1107
+ false
1108
+ gap> NrIdempotents(H);
1109
+ 0
1110
+
1111
+ # Test NrIdempotents, for an R-class, 1/2
1112
+ gap> S := Semigroup(Transformation([2, 6, 7, 2, 6, 9, 9, 1, 1, 5]),
1113
+ > Transformation([3, 8, 1, 9, 9, 4, 10, 5, 10, 6]));;
1114
+ gap> R := First(RClasses(S),
1115
+ > x -> Transformation([9, 10, 4, 9, 10, 4, 4, 3, 3, 6]) in x);;
1116
+ gap> NrIdempotents(R);
1117
+ 0
1118
+ gap> IsRegularGreensClass(R);
1119
+ false
1120
+
1121
+ # Test NrIdempotents, for an R-class, 3/3
1122
+ gap> S := Semigroup(Transformation([2, 6, 7, 2, 6, 9, 9, 1, 1, 5]),
1123
+ > Transformation([3, 8, 1, 9, 9, 4, 10, 5, 10, 6]));;
1124
+ gap> R := RClass(S, Transformation([6, 9, 9, 6, 9, 1, 1, 2, 2, 6]));;
1125
+ gap> IsRegularGreensClass(R);
1126
+ true
1127
+ gap> NrIdempotents(R);
1128
+ 7
1129
+
1130
+ # Test IsRegularGreensClass, for an R-class, 1/1
1131
+ gap> S := Semigroup(Transformation([2, 6, 7, 2, 6, 9, 9, 1, 1, 5]),
1132
+ > Transformation([3, 8, 1, 9, 9, 4, 10, 5, 10, 6]));;
1133
+ gap> R := First(RClasses(S),
1134
+ > x -> Transformation([9, 10, 4, 9, 10, 4, 4, 3, 3, 6]) in x);;
1135
+ gap> IsRegularGreensClass(R);
1136
+ false
1137
+
1138
+ # Test IsRegularGreensClass, for an R-class in group of units, 1/1
1139
+ gap> S := Monoid(Transformation([2, 6, 7, 2, 6, 9, 9, 1, 1, 5]),
1140
+ > Transformation([3, 8, 1, 9, 9, 4, 10, 5, 10, 6]));;
1141
+ gap> S := AsSemigroup(IsBipartitionSemigroup, S);;
1142
+ gap> R := RClass(S, IdentityBipartition(10));;
1143
+ gap> IsRegularGreensClass(R);
1144
+ true
1145
+
1146
+ # Test NrRegularDClasses, 1/1
1147
+ gap> S := Semigroup([Transformation([2, 2, 1, 2, 4, 4]),
1148
+ > Transformation([2, 6, 6, 5, 1, 4]), Transformation([3, 2, 5, 5, 6, 4]),
1149
+ > Transformation([3, 5, 3, 4, 1]), Transformation([4, 2, 3, 1, 4, 2]),
1150
+ > Transformation([4, 4, 2, 6, 6, 3]), Transformation([5, 5, 5, 6, 5, 4]),
1151
+ > Transformation([6, 3, 1, 3, 1, 6])], rec(acting := false));;
1152
+ gap> NrRegularDClasses(S);
1153
+ 6
1154
+
1155
+ # Test ViewString, PrintString, for Green's relations, 1/1
1156
+ gap> S := FullTransformationMonoid(3);
1157
+ <full transformation monoid of degree 3>
1158
+ gap> GreensRRelation(S);
1159
+ <Green's R-relation of <full transformation monoid of degree 3>>
1160
+ gap> GreensLRelation(S);
1161
+ <Green's L-relation of <full transformation monoid of degree 3>>
1162
+ gap> GreensHRelation(S);
1163
+ <Green's H-relation of <full transformation monoid of degree 3>>
1164
+ gap> GreensDRelation(S);
1165
+ <Green's D-relation of <full transformation monoid of degree 3>>
1166
+ gap> GreensJRelation(S);
1167
+ <Green's D-relation of <full transformation monoid of degree 3>>
1168
+ gap> PrintString((GreensRRelation(S)));
1169
+ "\>\>\>GreensRRelation\<(\>\nMonoid( \>[ Transformation( [ 2, 3, 1 ] ), Transf\
1170
+ ormation( [ 2, 1 ] ), Transformation( [ 1, 2, 1 ] ) ]\<\> )\<\<)\<\<"
1171
+ gap> PrintString((GreensLRelation(S)));
1172
+ "\>\>\>GreensLRelation\<(\>\nMonoid( \>[ Transformation( [ 2, 3, 1 ] ), Transf\
1173
+ ormation( [ 2, 1 ] ), Transformation( [ 1, 2, 1 ] ) ]\<\> )\<\<)\<\<"
1174
+ gap> PrintString((GreensHRelation(S)));
1175
+ "\>\>\>GreensHRelation\<(\>\nMonoid( \>[ Transformation( [ 2, 3, 1 ] ), Transf\
1176
+ ormation( [ 2, 1 ] ), Transformation( [ 1, 2, 1 ] ) ]\<\> )\<\<)\<\<"
1177
+ gap> PrintString((GreensDRelation(S)));
1178
+ "\>\>\>GreensDRelation\<(\>\nMonoid( \>[ Transformation( [ 2, 3, 1 ] ), Transf\
1179
+ ormation( [ 2, 1 ] ), Transformation( [ 1, 2, 1 ] ) ]\<\> )\<\<)\<\<"
1180
+ gap> PrintObj(GreensDRelation(S)); "This string allows us to test PrintObj";
1181
+ GreensDRelation(
1182
+ Monoid(
1183
+ [ Transformation( [ 2, 3, 1 ] ), Transformation( [ 2, 1 ] ), Transformation\
1184
+ ( [ 1, 2, 1 ] ) ] ))"This string allows us to test PrintObj"
1185
+
1186
+ # Test ViewString, PrintString, for Green's classes, 1/1
1187
+ gap> S := FullBooleanMatMonoid(3);;
1188
+ gap> PrintString(RClass(S, S.2));
1189
+ "\>\>\>GreensRClassOfElement\<(\>Monoid( \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\
1190
+ \>\>[0, 1, 0]\<, \<\>\>[1, 0, 0]\<, \<\>\>[0, 0, 1]\<\<]\<)\<\>\>\>Matrix(\<\>\
1191
+ IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<, \<\>\>[1, 0, 0]\<\<]\<)\
1192
+ \<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\>[0, 1, 0]\<, \
1193
+ \<\>\>[1, 0, 1]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\
1194
+ \<, \<\>\>[0, 1, 0]\<, \<\>\>[0, 0, 0]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBoolean\
1195
+ Mat\<, \>[\>\>[1, 1, 0]\<, \<\>\>[1, 0, 1]\<, \<\>\>[0, 1, 1]\<\<]\<)\<\<\<\> \
1196
+ )\<,\< \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<,\
1197
+ \<\>\>[1, 0, 0]\<\<]\<)\<\<)\<\<"
1198
+ gap> PrintString(LClass(S, S.2));
1199
+ "\>\>\>GreensLClassOfElement\<(\>Monoid( \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\
1200
+ \>\>[0, 1, 0]\<, \<\>\>[1, 0, 0]\<, \<\>\>[0, 0, 1]\<\<]\<)\<\>\>\>Matrix(\<\>\
1201
+ IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<, \<\>\>[1, 0, 0]\<\<]\<)\
1202
+ \<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\>[0, 1, 0]\<, \
1203
+ \<\>\>[1, 0, 1]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\
1204
+ \<, \<\>\>[0, 1, 0]\<, \<\>\>[0, 0, 0]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBoolean\
1205
+ Mat\<, \>[\>\>[1, 1, 0]\<, \<\>\>[1, 0, 1]\<, \<\>\>[0, 1, 1]\<\<]\<)\<\<\<\> \
1206
+ )\<,\< \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<,\
1207
+ \<\>\>[1, 0, 0]\<\<]\<)\<\<)\<\<"
1208
+ gap> PrintString(HClass(S, S.2));
1209
+ "\>\>\>GreensHClassOfElement\<(\>Monoid( \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\
1210
+ \>\>[0, 1, 0]\<, \<\>\>[1, 0, 0]\<, \<\>\>[0, 0, 1]\<\<]\<)\<\>\>\>Matrix(\<\>\
1211
+ IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<, \<\>\>[1, 0, 0]\<\<]\<)\
1212
+ \<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\>[0, 1, 0]\<, \
1213
+ \<\>\>[1, 0, 1]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\
1214
+ \<, \<\>\>[0, 1, 0]\<, \<\>\>[0, 0, 0]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBoolean\
1215
+ Mat\<, \>[\>\>[1, 1, 0]\<, \<\>\>[1, 0, 1]\<, \<\>\>[0, 1, 1]\<\<]\<)\<\<\<\> \
1216
+ )\<,\< \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<,\
1217
+ \<\>\>[1, 0, 0]\<\<]\<)\<\<)\<\<"
1218
+ gap> PrintString(DClass(S, S.2));
1219
+ "\>\>\>GreensDClassOfElement\<(\>Monoid( \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\
1220
+ \>\>[0, 1, 0]\<, \<\>\>[1, 0, 0]\<, \<\>\>[0, 0, 1]\<\<]\<)\<\>\>\>Matrix(\<\>\
1221
+ IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<, \<\>\>[1, 0, 0]\<\<]\<)\
1222
+ \<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\>[0, 1, 0]\<, \
1223
+ \<\>\>[1, 0, 1]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\
1224
+ \<, \<\>\>[0, 1, 0]\<, \<\>\>[0, 0, 0]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBoolean\
1225
+ Mat\<, \>[\>\>[1, 1, 0]\<, \<\>\>[1, 0, 1]\<, \<\>\>[0, 1, 1]\<\<]\<)\<\<\<\> \
1226
+ )\<,\< \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<,\
1227
+ \<\>\>[1, 0, 0]\<\<]\<)\<\<)\<\<"
1228
+ gap> PrintObj(DClass(S, S.2)); "This string allows us to test PrintObj";
1229
+ GreensDClassOfElement(
1230
+ Monoid( Matrix(IsBooleanMat, [[0, 1, 0], [1, 0, 0], [0, 0, 1]])
1231
+ Matrix(IsBooleanMat, [[0, 1, 0], [0, 0, 1], [1, 0, 0]]),
1232
+ Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 0], [1, 0, 1]]),
1233
+ Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 0], [0, 0, 0]]),
1234
+ Matrix(IsBooleanMat, [[1, 1, 0], [1, 0, 1], [0, 1, 1]]) ),
1235
+ Matrix(IsBooleanMat, [[0, 1, 0], [0, 0, 1], [1, 0, 0]]))
1236
+ "This string allows us to test PrintObj"
1237
+
1238
+ # Test IsomorphismPermGroup (for an H-class)
1239
+ gap> S := RegularBooleanMatMonoid(3);
1240
+ <monoid of 3x3 boolean matrices with 4 generators>
1241
+ gap> S := AsSemigroup(IsIntegerMatrixSemigroup, S);
1242
+ <semigroup of 8x8 integer matrices with 5 generators>
1243
+ gap> D := DClass(S, S.2);;
1244
+ gap> IsRegularDClass(D);
1245
+ true
1246
+ gap> H := GroupHClass(D);;
1247
+ gap> x := IsomorphismPermGroup(H);;
1248
+ gap> Source(x) = H;
1249
+ true
1250
+ gap> Range(x);
1251
+ Group([ (1,2)(3,5)(4,6), (1,3,6)(2,4,5) ])
1252
+ gap> Representative(H) ^ x;
1253
+ ()
1254
+ gap> y := InverseGeneralMapping(x);;
1255
+ gap> () ^ y;
1256
+ <immutable 8x8-matrix over Integers>
1257
+ gap> () ^ y = Representative(H);
1258
+ true
1259
+ gap> Matrix(Integers, [[0, 0, -1, -1, 3, 3, 1, -1],
1260
+ > [1, -1, 0, 2, 7, 5, 0, -1],
1261
+ > [-3, 4, 0, 2, 0, -1, 0, 0],
1262
+ > [4, 0, 0, 0, 1, 2, 2, 0],
1263
+ > [-2, 2, 0, -1, 0, 0, 0, 3],
1264
+ > [0, 2, 0, -1, -2, -2, 1, 2],
1265
+ > [0, 0, 0, -2, -3, 0, 0, -1],
1266
+ > [0, 0, 2, 0, 0, 0, 1, 2]]) ^ x;
1267
+ Error, the argument does not belong to the domain of the function
1268
+ gap> (1, 10) ^ y;
1269
+ Error, the argument does not belong to the domain of the function
1270
+ gap> H := HClass(S, Matrix(Integers,
1271
+ > [[1, 0, 0, 0, 0, 0, 0, 0],
1272
+ > [1, 0, 0, 0, 0, 0, 0, 0],
1273
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1274
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1275
+ > [1, 0, 0, 0, 0, 0, 0, 0],
1276
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1277
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1278
+ > [0, 0, 0, 0, 0, 0, 0, 1]]));;
1279
+ gap> IsomorphismPermGroup(H);
1280
+ Error, the argument (a Green's H-class) is not a group
1281
+
1282
+ # Test GreensRClassOfElement for infinite semigroup
1283
+ gap> S := FreeInverseSemigroup(2);;
1284
+ gap> GreensRClassOfElement(S, S.1);
1285
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
1286
+ Error, no 2nd choice method found for `GreensRClassOfElement' on 2 arguments
1287
+ gap> GreensLClassOfElement(S, S.1);
1288
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
1289
+ Error, no 2nd choice method found for `GreensLClassOfElement' on 2 arguments
1290
+ gap> GreensHClassOfElement(S, S.1);
1291
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
1292
+ Error, no 2nd choice method found for `GreensHClassOfElement' on 2 arguments
1293
+ gap> GreensDClassOfElement(S, S.1);
1294
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
1295
+ Error, no 2nd choice method found for `GreensDClassOfElement' on 2 arguments
1296
+
1297
+ # Test NrL/RClasses for a D-class
1298
+ gap> S := Semigroup(FullTransformationMonoid(4), rec(acting := false));;
1299
+ gap> D := DClass(S, S.3);;
1300
+ gap> NrLClasses(D);
1301
+ 4
1302
+ gap> NrRClasses(D);
1303
+ 6
1304
+
1305
+ # Test NrXClasses for a non-CanUseFroidurePin semigroup
1306
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1307
+ gap> CanUseFroidurePin(S);
1308
+ false
1309
+ gap> NrDClasses(S);
1310
+ 1
1311
+ gap> NrLClasses(S);
1312
+ 1
1313
+ gap> NrRClasses(S);
1314
+ 1
1315
+ gap> NrHClasses(S);
1316
+ 1
1317
+
1318
+ # Test NrXClassReps for a non-CanUseFroidurePin semigroup
1319
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1320
+ gap> CanUseFroidurePin(S);
1321
+ false
1322
+ gap> DClassReps(S);
1323
+ [ <universal fake one> ]
1324
+ gap> RClassReps(S);
1325
+ [ <universal fake one> ]
1326
+ gap> LClassReps(S);
1327
+ [ <universal fake one> ]
1328
+ gap> HClassReps(S);
1329
+ [ <universal fake one> ]
1330
+
1331
+ # Test NrXClassReps for a D-class of a non-CanUseFroidurePin semigroup
1332
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1333
+ gap> CanUseFroidurePin(S);
1334
+ false
1335
+ gap> D := DClasses(S)[1];;
1336
+ gap> RClassReps(D);
1337
+ [ <universal fake one> ]
1338
+ gap> LClassReps(D);
1339
+ [ <universal fake one> ]
1340
+ gap> HClassReps(D);
1341
+ [ <universal fake one> ]
1342
+ gap> NrIdempotents(D);
1343
+ 1
1344
+ gap> Idempotents(D);
1345
+ [ <universal fake one> ]
1346
+
1347
+ # Test IteratorOfXClasses for a non-CanUseFroidurePin semigroup
1348
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1349
+ gap> CanUseFroidurePin(S);
1350
+ false
1351
+ gap> IsFinite(S);
1352
+ true
1353
+ gap> iter := IteratorOfDClasses(S);
1354
+ <iterator>
1355
+ gap> IsDoneIterator(iter);
1356
+ false
1357
+ gap> NextIterator(iter);
1358
+ <Green's D-class: <object>>
1359
+ gap> IsDoneIterator(iter);
1360
+ true
1361
+ gap> iter := IteratorOfRClasses(S);
1362
+ <iterator>
1363
+ gap> IsDoneIterator(iter);
1364
+ false
1365
+ gap> NextIterator(iter);
1366
+ <Green's R-class: <object>>
1367
+ gap> IsDoneIterator(iter);
1368
+ true
1369
+
1370
+ # Test GreensXClassOfElementNC for a non-CanUseFroidurePin semigroup
1371
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1372
+ gap> IsFinite(S);
1373
+ true
1374
+ gap> CanUseFroidurePin(S);
1375
+ false
1376
+ gap> GreensRClassOfElementNC(S, S.1);
1377
+ <Green's R-class: <object>>
1378
+ gap> GreensLClassOfElementNC(S, S.1);
1379
+ <Green's L-class: <object>>
1380
+ gap> GreensDClassOfElementNC(S, S.1);
1381
+ <Green's D-class: <object>>
1382
+ gap> GreensHClassOfElementNC(S, S.1);
1383
+ <Green's H-class: <object>>
1384
+
1385
+ # Test XClassOfYClass for a non-CanUseFroidurePin semigroup
1386
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
1387
+ gap> IsFinite(S);
1388
+ true
1389
+ gap> DClassOfRClass(GreensRClassOfElementNC(S, S.1));
1390
+ <Green's D-class: <object>>
1391
+ gap> DClassOfLClass(GreensLClassOfElementNC(S, S.1));
1392
+ <Green's D-class: <object>>
1393
+ gap> DClassOfHClass(GreensHClassOfElementNC(S, S.1));
1394
+ <Green's D-class: <object>>
1395
+ gap> RClassOfHClass(GreensHClassOfElementNC(S, S.1));
1396
+ <Green's R-class: <object>>
1397
+ gap> LClassOfHClass(GreensHClassOfElementNC(S, S.1));
1398
+ <Green's L-class: <object>>
1399
+
1400
+ # Test PartialOrderOfDClasses for a finite non-CanUseFroidurePin,
1401
+ # non-acting semigroup
1402
+ gap> S := SemigroupByMultiplicationTable([[1, 1, 1, 1, 1],
1403
+ > [1, 1, 1, 1, 1],
1404
+ > [1, 1, 1, 1, 2],
1405
+ > [1, 1, 2, 1, 1],
1406
+ > [1, 1, 1, 2, 1]]);;
1407
+ gap> IsActingSemigroup(S);
1408
+ false
1409
+ gap> CanUseFroidurePin(S);
1410
+ true
1411
+ gap> PartialOrderOfDClasses(S);
1412
+ <immutable digraph with 5 vertices, 7 edges>
1413
+
1414
+ # Test PartialOrderOfDClasses for a finite non-CanUseFroidurePin,
1415
+ # non-acting semigroup
1416
+ gap> D := Digraph([[2, 3], [2], []]);;
1417
+ gap> S1 := FullTransformationMonoid(2);;
1418
+ gap> id := IdentityMapping(S1);;
1419
+ gap> m1 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([1, 1]));;
1420
+ gap> m2 := SemigroupHomomorphismByFunction(S1, S1, x -> Transformation([2, 2]));;
1421
+ gap> L := [S1, S1, S1];;
1422
+ gap> H := [[m1, m2], [id], []];;
1423
+ gap> S := StrongSemilatticeOfSemigroups(D, L, H);
1424
+ <strong semilattice of 3 semigroups>
1425
+ gap> IsFinite(S);
1426
+ true
1427
+ gap> IsActingSemigroup(S);
1428
+ false
1429
+ gap> CanUseFroidurePin(S);
1430
+ false
1431
+ gap> PartialOrderOfDClasses(S);
1432
+ <immutable digraph with 6 vertices, 7 edges>
1433
+
1434
+ #
1435
+ gap> SEMIGROUPS.StopTest();
1436
+ gap> STOP_TEST("Semigroups package: standard/greens/generic.tst");