passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-macosx_13_0_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-apple-darwin22-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1082 -0
  17. gap/pkg/semigroups/config.status +1134 -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.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.abi3.so +0 -0
@@ -0,0 +1,796 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/translat.tst
4
+ #Y Copyright (C) 2016-17 Finn Smith
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local C, D, G, H, HS, I, L, LS, Lht, Ll, Lr, M, R, RS, RT, Rht, Rl, Rr, S, T
12
+ #@local a, b, bruteforcetranshull, d, dclasses, f, flag, g, h, ht, i, iso, j, l
13
+ #@local l2, lclasses, lgpfunc, linkedpairs, lt, mat, r, r2, rclasses, reps
14
+ #@local rgpfunc, rt, s, t, x
15
+ gap> START_TEST("Semigroups package: standard/translat.tst");
16
+ gap> LoadPackage("semigroups", false);;
17
+ gap> SEMIGROUPS.StartTest();
18
+
19
+ # Creation of translations semigroups
20
+ gap> S := RectangularBand(3, 4);;
21
+ gap> L := LeftTranslations(S);
22
+ <the semigroup of left translations of <regular transformation semigroup
23
+ of size 12, degree 8 with 4 generators>>
24
+ gap> R := RightTranslations(S);
25
+ <the semigroup of right translations of <regular transformation semigroup
26
+ of size 12, degree 8 with 4 generators>>
27
+ gap> TranslationalHull(S);
28
+ <translational hull over <regular transformation semigroup of size 12,
29
+ degree 8 with 4 generators>>
30
+ gap> Size(L);
31
+ 27
32
+ gap> Size(R);
33
+ 256
34
+
35
+ # Creation of translations semigroups we can't calculate
36
+ gap> S := InverseSemigroup([
37
+ > PartialPerm([1, 2, 3, 4, 5, 6, 7, 10, 11, 13], [4, 6, 7, 3, 8, 2, 9, 5, 1, 12]),
38
+ > PartialPerm([1, 2, 4, 8, 11, 12], [3, 5, 1, 10, 11, 7]),
39
+ > PartialPerm([1, 2, 7, 9, 12], [5, 6, 4, 3, 10])]);;
40
+ gap> T := IdempotentGeneratedSubsemigroup(S);;
41
+ gap> M := MunnSemigroup(T);;
42
+ gap> LeftTranslations(M);;
43
+ gap> RightTranslations(M);;
44
+ gap> TranslationalHull(M);;
45
+
46
+ # With calculation - rectangular bands
47
+ gap> S := RectangularBand(3, 3);
48
+ <regular transformation semigroup of size 9, degree 7 with 3 generators>
49
+ gap> L := LeftTranslations(S);
50
+ <the semigroup of left translations of <regular transformation semigroup
51
+ of size 9, degree 7 with 3 generators>>
52
+ gap> R := RightTranslations(S);
53
+ <the semigroup of right translations of <regular transformation semigroup
54
+ of size 9, degree 7 with 3 generators>>
55
+ gap> H := TranslationalHull(S);
56
+ <translational hull over <regular transformation semigroup of size 9,
57
+ degree 7 with 3 generators>>
58
+ gap> Size(L);
59
+ 27
60
+ gap> Size(R);
61
+ 27
62
+ gap> Size(H);
63
+ 729
64
+ gap> Size(GeneratorsOfSemigroup(L));
65
+ 3
66
+ gap> Size(GeneratorsOfSemigroup(R));
67
+ 3
68
+ gap> Size(GeneratorsOfSemigroup(H));
69
+ 9
70
+
71
+ # Monogenic semigroups
72
+ gap> S := MonogenicSemigroup(6, 3);
73
+ <commutative non-regular transformation semigroup of size 8, degree 9 with 1
74
+ generator>
75
+ gap> L := LeftTranslations(S);
76
+ <the semigroup of left translations of <commutative non-regular
77
+ transformation semigroup of size 8, degree 9 with 1 generator>>
78
+ gap> Size(L);
79
+ 8
80
+ gap> GeneratorsOfSemigroup(L);
81
+ [ <left translation on <commutative non-regular transformation semigroup
82
+ of size 8, degree 9 with 1 generator>>,
83
+ <left translation on <commutative non-regular transformation semigroup
84
+ of size 8, degree 9 with 1 generator>> ]
85
+ gap> R := RightTranslations(S);;
86
+ gap> GeneratorsOfSemigroup(R);
87
+ [ <right translation on <commutative non-regular transformation semigroup
88
+ of size 8, degree 9 with 1 generator>>,
89
+ <right translation on <commutative non-regular transformation semigroup
90
+ of size 8, degree 9 with 1 generator>> ]
91
+ gap> Size(R);
92
+ 8
93
+ gap> H := TranslationalHull(S);;
94
+ gap> Size(H);
95
+ 8
96
+ gap> GeneratorsOfSemigroup(H);
97
+ [ <bitranslation on <commutative non-regular transformation semigroup
98
+ of size 8, degree 9 with 1 generator>>,
99
+ <bitranslation on <commutative non-regular transformation semigroup
100
+ of size 8, degree 9 with 1 generator>> ]
101
+ gap> AsList(TranslationalHull(S));
102
+ [ <bitranslation on <commutative non-regular transformation semigroup
103
+ of size 8, degree 9 with 1 generator>>,
104
+ <bitranslation on <commutative non-regular transformation semigroup
105
+ of size 8, degree 9 with 1 generator>>,
106
+ <bitranslation on <commutative non-regular transformation semigroup
107
+ of size 8, degree 9 with 1 generator>>,
108
+ <bitranslation on <commutative non-regular transformation semigroup
109
+ of size 8, degree 9 with 1 generator>>,
110
+ <bitranslation on <commutative non-regular transformation semigroup
111
+ of size 8, degree 9 with 1 generator>>,
112
+ <bitranslation on <commutative non-regular transformation semigroup
113
+ of size 8, degree 9 with 1 generator>>,
114
+ <bitranslation on <commutative non-regular transformation semigroup
115
+ of size 8, degree 9 with 1 generator>>,
116
+ <bitranslation on <commutative non-regular transformation semigroup
117
+ of size 8, degree 9 with 1 generator>> ]
118
+
119
+ # small RZMS
120
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(4, 2)));;
121
+ gap> H := AsList(G);;
122
+ gap> mat := [[H[1], 0],
123
+ > [H[2], H[2]]];;
124
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
125
+ gap> L := LeftTranslations(S);
126
+ <the semigroup of left translations of <regular semigroup with 4 generators>>
127
+ gap> Size(L);
128
+ 81
129
+ gap> R := RightTranslations(S);
130
+ <the semigroup of right translations of <0-simple regular semigroup with 4
131
+ generators>>
132
+ gap> Size(R);
133
+ 81
134
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
135
+ gap> L := LeftTranslations(S);
136
+ <the semigroup of left translations of <regular semigroup with 4 generators>>
137
+ gap> R := RightTranslations(S);
138
+ <the semigroup of right translations of <regular semigroup with 4 generators>>
139
+ gap> H := TranslationalHull(S);
140
+ <translational hull over <regular semigroup with 4 generators>>
141
+ gap> Size(H);
142
+ 21
143
+ gap> Size(L);
144
+ 81
145
+ gap> Size(R);
146
+ 81
147
+ gap> GeneratorsOfSemigroup(L);
148
+ [ <left translation on <0-simple regular semigroup with 4 generators>>,
149
+ <left translation on <0-simple regular semigroup with 4 generators>>,
150
+ <left translation on <0-simple regular semigroup with 4 generators>>,
151
+ <left translation on <0-simple regular semigroup with 4 generators>>,
152
+ <left translation on <0-simple regular semigroup with 4 generators>>,
153
+ <left translation on <0-simple regular semigroup with 4 generators>> ]
154
+ gap> GeneratorsOfSemigroup(R);
155
+ [ <right translation on <0-simple regular semigroup with 4 generators>>,
156
+ <right translation on <0-simple regular semigroup with 4 generators>>,
157
+ <right translation on <0-simple regular semigroup with 4 generators>>,
158
+ <right translation on <0-simple regular semigroup with 4 generators>>,
159
+ <right translation on <0-simple regular semigroup with 4 generators>>,
160
+ <right translation on <0-simple regular semigroup with 4 generators>> ]
161
+
162
+ # Further test translations generation
163
+ gap> S := Semigroup([Transformation([2, 4, 4, 1]), Transformation([2, 3, 2, 1]),
164
+ > Transformation([3, 3, 3])]);;
165
+ gap> L := LeftTranslations(S);
166
+ <the semigroup of left translations of <transformation semigroup of degree 4
167
+ with 3 generators>>
168
+ gap> Size(L);
169
+ 123
170
+ gap> R := RightTranslations(S);
171
+ <the semigroup of right translations of <transformation semigroup of size 49,
172
+ degree 4 with 3 generators>>
173
+ gap> Size(R);
174
+ 55
175
+
176
+ # Zero semigroups
177
+ gap> for i in [1 .. 4] do
178
+ > L := LeftZeroSemigroup(i);
179
+ > R := RightZeroSemigroup(i);
180
+ > Ll := LeftTranslations(L);;
181
+ > Lr := LeftTranslations(R);;
182
+ > Rl := RightTranslations(L);;
183
+ > Rr := RightTranslations(R);;
184
+ > if Size(Ll) <> i ^ i or Size(Rr) <> i ^ i
185
+ > or Size(Lr) <> 1 or Size(Rl) <> 1 then
186
+ > Error();
187
+ > fi;
188
+ > od;
189
+
190
+ # Small monoid
191
+ gap> S := FullTransformationMonoid(3);;
192
+ gap> L := LeftTranslations(S);;
193
+ gap> R := RightTranslations(S);;
194
+ gap> H := TranslationalHull(S);;
195
+ gap> Size(L) = Size(R) and Size(R) = Size(H) and Size(H) = Size(S);
196
+ true
197
+ gap> Size(Semigroup(GeneratorsOfSemigroup(L))) = Size(L);
198
+ true
199
+ gap> Size(Semigroup(GeneratorsOfSemigroup(R))) = Size(R);
200
+ true
201
+ gap> Size(Semigroup(GeneratorsOfSemigroup(H))) = Size(H);
202
+ true
203
+
204
+ # Translations and translational hulls of monoids that couldn't be calculated
205
+ gap> S := BrauerMonoid(5);;
206
+ gap> L := LeftTranslations(S);
207
+ <the semigroup of left translations of <regular bipartition *-monoid of
208
+ degree 5 with 3 generators>>
209
+ gap> Size(L);
210
+ 945
211
+ gap> R := RightTranslations(S);
212
+ <the semigroup of right translations of <regular bipartition *-monoid
213
+ of size 945, degree 5 with 3 generators>>
214
+ gap> Size(R);
215
+ 945
216
+ gap> H := TranslationalHull(S);
217
+ <translational hull over <regular bipartition *-monoid of size 945, degree 5
218
+ with 3 generators>>
219
+ gap> Size(H);
220
+ 945
221
+ gap> S := FullTransformationMonoid(5);;
222
+ gap> L := LeftTranslations(S);
223
+ <the semigroup of left translations of <full transformation monoid of degree 5\
224
+ >>
225
+ gap> Size(L);
226
+ 3125
227
+ gap> R := RightTranslations(S);
228
+ <the semigroup of right translations of <full transformation monoid of degree \
229
+ 5>>
230
+ gap> Size(R);
231
+ 3125
232
+ gap> H := TranslationalHull(S);
233
+ <translational hull over <full transformation monoid of degree 5>>
234
+ gap> Size(H);
235
+ 3125
236
+ gap> GeneratorsOfSemigroup(H);
237
+ [ <bitranslation on <full transformation monoid of degree 5>>,
238
+ <bitranslation on <full transformation monoid of degree 5>>,
239
+ <bitranslation on <full transformation monoid of degree 5>>,
240
+ <bitranslation on <full transformation monoid of degree 5>> ]
241
+ gap> GeneratorsOfSemigroup(L);
242
+ [ <left translation on <full transformation monoid of degree 5>>,
243
+ <left translation on <full transformation monoid of degree 5>>,
244
+ <left translation on <full transformation monoid of degree 5>>,
245
+ <left translation on <full transformation monoid of degree 5>> ]
246
+ gap> GeneratorsOfSemigroup(R);
247
+ [ <right translation on <full transformation monoid of degree 5>>,
248
+ <right translation on <full transformation monoid of degree 5>>,
249
+ <right translation on <full transformation monoid of degree 5>>,
250
+ <right translation on <full transformation monoid of degree 5>> ]
251
+
252
+ # A tiny bit of brute force checking
253
+ gap> SEMIGROUPS.bruteforcetranshull := function(S)
254
+ > local a, d, L, R, H, linkedpairs, dclasses, rclasses, lclasses, reps, i, j,
255
+ > l, r, flag;
256
+ > L := LeftTranslations(S);
257
+ > R := RightTranslations(S);
258
+ > H := TranslationalHull(S);
259
+ > linkedpairs := [];
260
+ > dclasses := DClasses(S);
261
+ > reps := [];
262
+ > for d in dclasses do
263
+ > lclasses := ShallowCopy(LClasses(d));
264
+ > rclasses := ShallowCopy(RClasses(d));
265
+ > for i in [1 .. Minimum(Size(lclasses), Size(rclasses)) - 1] do
266
+ > r := Representative(Intersection(lclasses[1], rclasses[1]));
267
+ > Add(reps, r);
268
+ > Remove(lclasses, 1);
269
+ > Remove(rclasses, 1);
270
+ > od;
271
+ > if Size(lclasses) > Size(rclasses) then
272
+ > # Size(rclasses) = 1
273
+ > for j in [1 .. Size(lclasses)] do
274
+ > r := Representative(Intersection(lclasses[1], rclasses[1]));
275
+ > Add(reps, r);
276
+ > Remove(lclasses, 1);
277
+ > od;
278
+ > else
279
+ > # Size(lclasses) = 1
280
+ > for j in [1 .. Size(rclasses)] do
281
+ > r := Representative(Intersection(lclasses[1], rclasses[1]));
282
+ > Add(reps, r);
283
+ > Remove(rclasses, 1);
284
+ > od;
285
+ > fi;
286
+ > od;
287
+ > for l in L do
288
+ > for r in R do
289
+ > flag := true;
290
+ > for a in Cartesian(reps, reps) do
291
+ > if not a[1] * (a[2] ^ l) = (a[1] ^ r) * a[2] then
292
+ > flag := false;
293
+ > break;
294
+ > fi;
295
+ > od;
296
+ > if flag then
297
+ > Add(linkedpairs, Bitranslation(H, l, r));
298
+ > fi;
299
+ > od;
300
+ > od;
301
+ > return linkedpairs;
302
+ > end;;
303
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(4, 1)));;
304
+ gap> H := ShallowCopy(AsList(G));;
305
+ gap> mat := [[0, H[4]], [H[4], 0]];;
306
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
307
+ gap> H := TranslationalHull(S);;
308
+ gap> Size(H) = Size(SEMIGROUPS.bruteforcetranshull(S));
309
+ true
310
+ gap> Size(Semigroup(GeneratorsOfSemigroup(H))) = Size(TranslationalHull(S));
311
+ true
312
+ gap> S := RectangularBand(2, 3);;
313
+ gap> Size(Semigroup(GeneratorsOfSemigroup(TranslationalHull(S))))
314
+ > = Size(SEMIGROUPS.bruteforcetranshull(S));
315
+ true
316
+
317
+ # Test translational hull method for arbitrary semigroups
318
+ gap> S := ZeroSemigroup(4);;
319
+ gap> Size(TranslationalHull(S));
320
+ 4096
321
+ gap> S := Semigroup([Transformation([1, 1, 2]), Transformation([3, 1, 3])]);;
322
+ gap> H := TranslationalHull(S);;
323
+ gap> H = Semigroup(H);
324
+ true
325
+ gap> Size(H);
326
+ 13
327
+ gap> I := InnerTranslationalHull(S);;
328
+ gap> IsWholeFamily(I);
329
+ false
330
+ gap> for h in H do
331
+ > if h <> Bitranslation(H,
332
+ > LeftPartOfBitranslation(h),
333
+ > RightPartOfBitranslation(h)) then
334
+ > Print("failure!");
335
+ > fi;
336
+ > od;
337
+
338
+ # Test inner translations
339
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(6, 1)));;
340
+ gap> a := G.1;; b := G.2;;
341
+ gap> mat := [[a, 0],
342
+ > [b, a]];;
343
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
344
+ gap> Size(InnerLeftTranslations(S)) = Size(S);
345
+ true
346
+ gap> Size(InnerRightTranslations(S)) = Size(S);
347
+ true
348
+ gap> Size(InnerTranslationalHull(S)) = Size(S);
349
+ true
350
+ gap> C := List(InnerLeftTranslations(S), l -> List(S, x -> x ^ l));;
351
+ gap> D := List(S, s -> List(S, x -> s * x));;
352
+ gap> SortedList(C) = SortedList(D);
353
+ true
354
+ gap> C := List(InnerRightTranslations(S), r -> List(S, x -> x ^ r));;
355
+ gap> D := List(S, s -> List(S, x -> x * s));;
356
+ gap> SortedList(C) = SortedList(D);
357
+ true
358
+
359
+ # One for translations semigroups elements and translational hull elements
360
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(6, 1)));;
361
+ gap> a := G.1;; b := G.2;;
362
+ gap> mat := [[a, 0],
363
+ > [b, a]];;
364
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
365
+ gap> IsSemigroup(S) and IsFinite(S) and IsZeroSimpleSemigroup(S);
366
+ true
367
+ gap> L := LeftTranslations(S);;
368
+ gap> R := RightTranslations(S);;
369
+ gap> H := TranslationalHull(S);;
370
+ gap> One(L) = LeftTranslation(L, MappingByFunction(S, S, x -> x));
371
+ true
372
+ gap> One(R) = RightTranslation(R, MappingByFunction(S, S, x -> x));
373
+ true
374
+ gap> OneOp(Representative(H)) = Bitranslation(H, One(L), One(R));
375
+ true
376
+ gap> Semigroup(AsList(H)) = H;
377
+ true
378
+
379
+ # Methods for non-normalised RMS
380
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(8, 2)));;
381
+ gap> mat := [[G.1, G.2], [G.2, G.2 * G.2]];;
382
+ gap> S := ReesMatrixSemigroup(G, mat);;
383
+ gap> L := LeftTranslations(S);;
384
+ gap> R := RightTranslations(S);;
385
+ gap> Size(L) = Size(Semigroup(GeneratorsOfSemigroup(L)));
386
+ true
387
+ gap> Size(R) = Size(Semigroup(GeneratorsOfSemigroup(R)));
388
+ true
389
+
390
+ # Special methods for normalised RMS
391
+ gap> G := Range(RegularActionHomomorphism(SmallGroup(12, 1)));;
392
+ gap> mat := [[G.1, G.2], [G.1, G.1], [G.2, G.3], [G.1 * G.2, G.1 * G.3]];;
393
+ gap> S := ReesMatrixSemigroup(G, mat);;
394
+ gap> T := Range(RMSNormalization(S));;
395
+ gap> LS := LeftTranslations(S);;
396
+ gap> RS := RightTranslations(S);;
397
+ gap> HS := TranslationalHull(S);;
398
+ gap> L := LeftTranslations(T);;
399
+ gap> R := RightTranslations(T);;
400
+ gap> H := TranslationalHull(T);;
401
+ gap> Size(LS) = Size(L);
402
+ true
403
+ gap> Size(RS) = Size(R);
404
+ true
405
+ gap> Size(HS) = Size(H);
406
+ true
407
+ gap> Size(H);
408
+ 444
409
+ gap> AsSSortedList(SEMIGROUPS.BitranslationsBacktrack(H)) = AsSSortedList(H);
410
+ true
411
+ gap> GeneratorsOfSemigroup(L);
412
+ [ <left translation on <simple semigroup of size 96, with 6 generators>>,
413
+ <left translation on <simple semigroup of size 96, with 6 generators>>,
414
+ <left translation on <simple semigroup of size 96, with 6 generators>>,
415
+ <left translation on <simple semigroup of size 96, with 6 generators>>,
416
+ <left translation on <simple semigroup of size 96, with 6 generators>> ]
417
+ gap> GeneratorsOfSemigroup(R);
418
+ [ <right translation on <simple semigroup of size 96, with 6 generators>>,
419
+ <right translation on <simple semigroup of size 96, with 6 generators>>,
420
+ <right translation on <simple semigroup of size 96, with 6 generators>>,
421
+ <right translation on <simple semigroup of size 96, with 6 generators>>,
422
+ <right translation on <simple semigroup of size 96, with 6 generators>>,
423
+ <right translation on <simple semigroup of size 96, with 6 generators>> ]
424
+ gap> Size(L) = Size(Semigroup(GeneratorsOfSemigroup(L)));
425
+ true
426
+ gap> x := Representative(H);
427
+ <bitranslation on <simple semigroup of size 96, with 6 generators>>
428
+ gap> l := LeftTranslation(L, MappingByFunction(T, T, x -> x));;
429
+ gap> r := RightTranslation(R, MappingByFunction(T, T, x -> x));;
430
+ gap> Bitranslation(H, l, r) = One(x);
431
+ true
432
+ gap> for x in GeneratorsOfSemigroup(T) do
433
+ > l := LeftTranslation(L, MappingByFunction(T, T, y -> x * y));;
434
+ > r := RightTranslation(R, MappingByFunction(T, T, y -> y * x));;
435
+ > if not Bitranslation(H, l, r) in H then
436
+ > Print("failure!");
437
+ > fi;
438
+ > od;
439
+ gap> l := LeftTranslation(L,
440
+ > [(1, 6, 3, 9)(2, 7, 5, 4)(8, 10, 11, 12),
441
+ > (1, 6, 3, 9)(2, 7, 5, 4)(8, 10, 11, 12)],
442
+ > Transformation([2, 2]));
443
+ <left translation on <simple semigroup of size 96, with 6 generators>>
444
+ gap> r := RightTranslation(R,
445
+ > [(1, 2, 3, 5)(4, 10, 7, 12)(6, 11, 9, 8), (), (), ()],
446
+ > Transformation([2, 3, 4, 1]));
447
+ <right translation on <simple semigroup of size 96, with 6 generators>>
448
+ gap> AsListCanonical(T);;
449
+ gap> l2 := LeftTranslation(L, [50, 50]);;
450
+ gap> r2 := RightTranslation(R, [9, 5, 6, 12]);;
451
+ gap> l = l2 and r = r2;
452
+ true
453
+
454
+ # More normal RMS testing
455
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(12, 1)));;
456
+ gap> mat := TransposedMat([[G.1, G.2], [G.1, G.1], [G.2, G.3],
457
+ > [G.1 * G.2, G.1 * G.3]]);;
458
+ gap> T := Range(RMSNormalization(ReesMatrixSemigroup(G, mat)));;
459
+ gap> R := RightTranslations(T);;
460
+ gap> Size(R) = Size(Semigroup(GeneratorsOfSemigroup(R)));
461
+ true
462
+ gap> Size(TranslationalHull(T));
463
+ 100
464
+ gap> G := SmallGroup(16, 2);;
465
+ gap> iso := IsomorphismPermGroup(G);;
466
+ gap> mat := [[G.1 ^ iso, G.2 ^ iso, (G.2 * G.1) ^ iso],
467
+ > [(G.2 * G.2) ^ iso, G.2 ^ iso, (G.2 * G.2) ^ iso],
468
+ > [(G.2 * G.1 * G.2) ^ iso, G.3 ^ iso, (G.1 * G.3) ^ iso]];;
469
+ gap> S := ReesMatrixSemigroup(Range(iso), mat);;
470
+ gap> T := Range(RMSNormalization(S));;
471
+ gap> Size(TranslationalHull(T));
472
+ 160
473
+ gap> for h in TranslationalHull(T) do
474
+ > l := h![1];
475
+ > r := h![2];
476
+ > for s in GeneratorsOfSemigroup(T) do
477
+ > for t in GeneratorsOfSemigroup(T) do
478
+ > if not s * (t ^ l) = (s ^ r) * t then
479
+ > Print(s, t, h);
480
+ > fi;
481
+ > od;
482
+ > od;
483
+ > od;
484
+ gap> Bitranslation(TranslationalHull(T), (1, 4, 3, 2)(5, 7)(6, 8),
485
+ > Transformation([1, 1, 1]), Transformation([1, 1, 1]));
486
+ <bitranslation on <simple semigroup of size 144, with 4 generators>>
487
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(6, 1)));;
488
+ gap> mat := [[G.1, G.2], [G.1 * G.2, G.1], [G.2, G.2]];;
489
+ gap> S := ReesMatrixSemigroup(G, mat);;
490
+ gap> T := Range(RMSNormalization(S));;
491
+ gap> Size(TranslationalHull(T));
492
+ 40
493
+ gap> Size(Semigroup(TranslationalHull(T)));
494
+ 40
495
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(24, 3)));;
496
+ gap> mat := [[G.1, G.2, G.2 * G.3]];;
497
+ gap> S := ReesMatrixSemigroup(G, mat);;
498
+ gap> T := Range(RMSNormalization(S));;
499
+ gap> LS := LeftTranslations(S);;
500
+ gap> RS := RightTranslations(S);;
501
+ gap> HS := TranslationalHull(S);;
502
+ gap> L := LeftTranslations(T);;
503
+ gap> R := RightTranslations(T);;
504
+ gap> H := TranslationalHull(T);;
505
+ gap> Size(LS) = Size(L);
506
+ true
507
+ gap> Size(RS) = Size(R);
508
+ true
509
+ gap> Size(HS) = Size(H);
510
+ true
511
+
512
+ # IsWholeFamily for translations semigroups
513
+ gap> S := Semigroup([Transformation([1, 1, 2, 4]), Transformation([3, 1, 3])]);;
514
+ gap> L := LeftTranslations(S);;
515
+ gap> R := RightTranslations(S);;
516
+ gap> Ll := ShallowCopy(AsList(L));;
517
+ gap> Rl := ShallowCopy(AsList(R));;
518
+ gap> Sort(Ll);
519
+ gap> Sort(Rl);
520
+ gap> l := Ll[1];;
521
+ gap> r := Rl[1];;
522
+ gap> IsWholeFamily(Semigroup(l));
523
+ false
524
+ gap> IsWholeFamily(Semigroup(r));
525
+ false
526
+
527
+ # Subsemigroups of translations
528
+ gap> S := Semigroup([Transformation([2, 4, 4, 1]), Transformation([2, 3, 2, 1]),
529
+ > Transformation([3, 3, 3])]);;
530
+ gap> L := LeftTranslations(S);;
531
+ gap> R := RightTranslations(S);;
532
+ gap> T := Semigroup(Generators(L){[1 .. 20]});
533
+ <left translations semigroup over <transformation semigroup of size 49,
534
+ degree 4 with 3 generators>>
535
+ gap> Size(T);
536
+ 89
537
+ gap> ImageSetOfTranslation(AsList(T)[4]);
538
+ [ Transformation( [ 1, 1, 1, 1 ] ), Transformation( [ 1, 1, 1, 2 ] ),
539
+ Transformation( [ 1, 1, 1, 3 ] ), Transformation( [ 1, 1, 1 ] ),
540
+ Transformation( [ 1, 2, 2, 1 ] ), Transformation( [ 1, 2, 2, 2 ] ),
541
+ Transformation( [ 1, 2, 2, 3 ] ), Transformation( [ 1, 2, 2 ] ),
542
+ Transformation( [ 1, 3, 3, 1 ] ), Transformation( [ 1, 3, 3, 3 ] ),
543
+ Transformation( [ 1, 4, 4, 1 ] ), Transformation( [ 1, 4, 4, 4 ] ),
544
+ Transformation( [ 2, 1, 1, 1 ] ), Transformation( [ 2, 1, 1, 2 ] ),
545
+ Transformation( [ 2, 2, 2, 1 ] ), Transformation( [ 2, 2, 2, 2 ] ),
546
+ Transformation( [ 2, 2, 2, 3 ] ), Transformation( [ 2, 2, 2 ] ),
547
+ Transformation( [ 2, 3, 3, 1 ] ), Transformation( [ 2, 3, 3, 2 ] ),
548
+ Transformation( [ 2, 3, 3, 3 ] ), Transformation( [ 2, 4, 4, 1 ] ),
549
+ Transformation( [ 2, 4, 4, 2 ] ), Transformation( [ 2, 4, 4, 4 ] ),
550
+ Transformation( [ 3, 1, 1, 1 ] ), Transformation( [ 3, 1, 1, 2 ] ),
551
+ Transformation( [ 3, 1, 1, 3 ] ), Transformation( [ 3, 2, 2, 2 ] ),
552
+ Transformation( [ 3, 2, 2, 3 ] ), Transformation( [ 3, 3, 3, 1 ] ),
553
+ Transformation( [ 3, 3, 3, 2 ] ), Transformation( [ 3, 3, 3, 3 ] ),
554
+ Transformation( [ 3, 3, 3 ] ), Transformation( [ 3, 4, 4, 3 ] ),
555
+ Transformation( [ 3, 4, 4, 4 ] ), Transformation( [ 4, 1, 1, 1 ] ),
556
+ Transformation( [ 4, 1, 1, 2 ] ), Transformation( [ 4, 1, 1, 4 ] ),
557
+ Transformation( [ 4, 2, 2, 2 ] ), Transformation( [ 4, 2, 2, 4 ] ),
558
+ Transformation( [ 4, 3, 3, 3 ] ), Transformation( [ 4, 3, 3, 4 ] ),
559
+ Transformation( [ 4, 4, 4, 1 ] ), Transformation( [ 4, 4, 4, 2 ] ),
560
+ Transformation( [ 4, 4, 4, 3 ] ), Transformation( [ 4, 4, 4, 4 ] ) ]
561
+ gap> T := Semigroup(Generators(R){[1 .. 20]});
562
+ <right translations semigroup over <transformation semigroup of size 49,
563
+ degree 4 with 3 generators>>
564
+ gap> Size(T);
565
+ 51
566
+ gap> ImageSetOfTranslation(AsList(T)[4]);
567
+ [ Transformation( [ 1, 1, 1, 1 ] ), Transformation( [ 1, 1, 1, 2 ] ),
568
+ Transformation( [ 1, 1, 1 ] ), Transformation( [ 1, 2, 2, 1 ] ),
569
+ Transformation( [ 1, 2, 2, 2 ] ), Transformation( [ 1, 2, 2 ] ),
570
+ Transformation( [ 1, 4, 4, 1 ] ), Transformation( [ 1, 4, 4, 4 ] ),
571
+ Transformation( [ 2, 1, 1, 1 ] ), Transformation( [ 2, 1, 1, 2 ] ),
572
+ Transformation( [ 2, 2, 2, 1 ] ), Transformation( [ 2, 2, 2, 2 ] ),
573
+ Transformation( [ 2, 2, 2 ] ), Transformation( [ 2, 4, 4, 1 ] ),
574
+ Transformation( [ 2, 4, 4, 2 ] ), Transformation( [ 2, 4, 4, 4 ] ),
575
+ Transformation( [ 4, 1, 1, 1 ] ), Transformation( [ 4, 1, 1, 2 ] ),
576
+ Transformation( [ 4, 1, 1, 4 ] ), Transformation( [ 4, 2, 2, 2 ] ),
577
+ Transformation( [ 4, 2, 2, 4 ] ), Transformation( [ 4, 4, 4, 1 ] ),
578
+ Transformation( [ 4, 4, 4, 2 ] ), Transformation( [ 4, 4, 4, 4 ] ) ]
579
+
580
+ # Subsemigroups of bitranslations
581
+ gap> S := Semigroup([Transformation([2, 4, 4, 1]), Transformation([2, 3, 2, 1]),
582
+ > Transformation([3, 3, 3])]);;
583
+ gap> H := TranslationalHull(S);;
584
+ gap> T := Semigroup(Generators(H){[1 .. 5]});
585
+ <semigroup of bitranslations over <transformation semigroup of size 49,
586
+ degree 4 with 3 generators>>
587
+ gap> Size(T);
588
+ 44
589
+
590
+ # NrTranslations
591
+ gap> S := Semigroup([Transformation([1, 4, 3, 3, 5, 2]),
592
+ > Transformation([3, 4, 1, 1, 4, 2])]);;
593
+ gap> NrLeftTranslations(S);
594
+ 208
595
+ gap> NrRightTranslations(S);
596
+ 128
597
+ gap> NrBitranslations(S);
598
+ 78
599
+ gap> L := LeftTranslations(S);;
600
+ gap> R := RightTranslations(S);;
601
+ gap> H := TranslationalHull(S);;
602
+ gap> HasSize(L) and HasSize(R) and HasSize(H);
603
+ true
604
+ gap> not (HasAsList(L) or HasAsList(R) or HasAsList(H));
605
+ true
606
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(12, 1)));;
607
+ gap> mat := [[G.1, G.2], [G.1, G.1], [G.2, G.3]];;
608
+ gap> S := ReesMatrixSemigroup(G, mat);;
609
+ gap> T := Range(RMSNormalization(S));;
610
+ gap> NrLeftTranslations(S) = NrLeftTranslations(T);
611
+ true
612
+ gap> NrRightTranslations(S) = NrRightTranslations(T);
613
+ true
614
+ gap> NrBitranslations(S) = NrBitranslations(T);
615
+ true
616
+
617
+ # Error Testing - Left Translations
618
+ gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
619
+ > Transformation([3, 4, 1, 1, 4, 2])]);;
620
+ gap> T := Semigroup([Transformation([5, 2, 3, 2, 1]),
621
+ > Transformation([2, 3, 1, 1, 2])]);;
622
+ gap> L := LeftTranslations(S);;
623
+ gap> R := RightTranslations(S);;
624
+ gap> f := MappingByFunction(S, S, x -> S.1);;
625
+ gap> g := MappingByFunction(S, T, x -> T.1);;
626
+ gap> LeftTranslation(L, f);
627
+ Error, the mapping given must define a left translation
628
+ gap> LeftTranslation(L, g);
629
+ Error, the domain and range of the second argument must be the underlying semi\
630
+ group of the first
631
+ gap> x := [1, Size(S) + 1];;
632
+ gap> LeftTranslation(L, x);
633
+ Error, the second argument must map indices of representatives to indices of e\
634
+ lements of the semigroup of the first argument
635
+ gap> l := LeftTranslation(L, [4, 6]);
636
+ Error, the transformation given must define a left translation
637
+ gap> l := LeftTranslation(L, [4]);
638
+ Error, the second argument must map indices of representatives to indices of e\
639
+ lements of the semigroup of the first argument
640
+ gap> l := LeftTranslation(L, MappingByFunction(S, S, x -> S.1 * x));;
641
+ gap> T.1 ^ l;
642
+ Error, the first argument must be an element of the domain of the second
643
+
644
+ # Error Testing - Right Translations
645
+ gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
646
+ > Transformation([3, 4, 1, 1, 4, 2])]);;
647
+ gap> T := Semigroup([Transformation([5, 2, 3, 2, 1]),
648
+ > Transformation([2, 3, 1, 1, 2])]);;
649
+ gap> L := LeftTranslations(S);;
650
+ gap> R := RightTranslations(S);;
651
+ gap> f := MappingByFunction(S, S, x -> S.1);;
652
+ gap> g := MappingByFunction(S, T, x -> T.1);;
653
+ gap> RightTranslation(R, f);
654
+ Error, the mapping given must define a right translation
655
+ gap> RightTranslation(R, g);
656
+ Error, the domain and range of the second argument must be the underlying semi\
657
+ group of the first
658
+ gap> x := [1, Size(S) + 1];;
659
+ gap> RightTranslation(R, x);
660
+ Error, the second argument must map indices of representatives to indices of e\
661
+ lements of the semigroup of the first argument
662
+ gap> r := RightTranslation(R, [6, 3, 2]);
663
+ Error, the second argument must map indices of representatives to indices of e\
664
+ lements of the semigroup of the first argument
665
+ gap> r := RightTranslation(R, [6, 3]);
666
+ Error, the transformation given must define a right translation
667
+ gap> r := RightTranslation(R, MappingByFunction(S, S, x -> x * S.1));;
668
+ gap> T.1 ^ r;
669
+ Error, the first argument must be an element of the domain of the second
670
+
671
+ # Error Testing - Translational Hull Elements
672
+ gap> S := Semigroup([Transformation([1, 4, 3, 3]), Transformation([3, 4, 1, 1])]);;
673
+ gap> T := RectangularBand(3, 4);;
674
+ gap> L := LeftTranslations(S);;
675
+ gap> R := RightTranslations(S);;
676
+ gap> RT := RightTranslations(T);;
677
+ gap> H := TranslationalHull(S);;
678
+ gap> l := Representative(L);;
679
+ gap> r := Representative(R);;
680
+ gap> l := LeftTranslation(L, MappingByFunction(S, S, x -> S.1 * x));;
681
+ gap> r := RightTranslation(R, MappingByFunction(S, S, x -> x * S.2));;
682
+ gap> Bitranslation(H, l, r);
683
+ Error, the translations given must satisfy the linking condition
684
+ gap> r := Representative(RT);;
685
+ gap> Bitranslation(H, l, r);
686
+ Error, each argument must have the same underlying semigroup
687
+
688
+ # Error Testing - left translations over normalised RMS
689
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(12, 1)));;
690
+ gap> mat := [[G.1, G.2], [G.1, G.1], [G.2, G.3], [G.1 * G.2, G.1 * G.3]];;
691
+ gap> S := ReesMatrixSemigroup(G, mat);;
692
+ gap> T := Range(RMSNormalization(S));;
693
+ gap> L := LeftTranslations(T);;
694
+ gap> LS := LeftTranslations(S);;
695
+ gap> lgpfunc := [G.1 * G.3 * G.3, G.2];;
696
+ gap> LeftTranslation(L, [G.1, G.1, G.2], IdentityTransformation);
697
+ Error, the second argument must be a list of group elements of length equal to\
698
+ the number of rows of the underlying semigroup of the first argument
699
+ gap> LeftTranslation(L, lgpfunc, Transformation([1, 3, 2]));
700
+ Error, the third argument must be a transformation on the number of rows of th\
701
+ e underlying semigroup of the first argument
702
+ gap> LeftTranslation(L, [G.1, G.1, G.2], IdentityTransformation);
703
+ Error, the second argument must be a list of group elements of length equal to\
704
+ the number of rows of the underlying semigroup of the first argument
705
+ gap> LeftTranslation(L, lgpfunc, Transformation([1, 3, 2]));
706
+ Error, the third argument must be a transformation on the number of rows of th\
707
+ e underlying semigroup of the first argument
708
+
709
+ # Error Testing - right translations over normalised RMS
710
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(12, 1)));;
711
+ gap> mat := [[G.1, G.2], [G.1, G.1], [G.2, G.3], [G.1 * G.2, G.1 * G.3]];;
712
+ gap> S := ReesMatrixSemigroup(G, mat);;
713
+ gap> T := Range(RMSNormalization(S));;
714
+ gap> R := RightTranslations(T);;
715
+ gap> RS := RightTranslations(S);;
716
+ gap> rgpfunc := [G.1 * G.3 * G.3, G.3 * G.3, G.2, G.1];;
717
+ gap> RightTranslation(R, [G.1, G.2], IdentityTransformation);
718
+ Error, the second argument must be a list of group elements of length equal to\
719
+ the number of rows of the underlying semigroup of the first argument
720
+ gap> RightTranslation(R, rgpfunc, Transformation([1, 3, 2, 5, 4]));
721
+ Error, the third argument must be a transformation on the number of columns of\
722
+ the underlying semigroup of the first argument
723
+ gap> RightTranslation(R, [G.1, G.2], IdentityTransformation);
724
+ Error, the second argument must be a list of group elements of length equal to\
725
+ the number of rows of the underlying semigroup of the first argument
726
+ gap> RightTranslation(R, rgpfunc, Transformation([1, 3, 2, 5, 4]));
727
+ Error, the third argument must be a transformation on the number of columns of\
728
+ the underlying semigroup of the first argument
729
+
730
+ # Error testing - bitranslations over normalised RMS
731
+ gap> G := Range(RegularActionHomomorphism(SmallGroup(12, 1)));;
732
+ gap> mat := [[G.1, G.2], [G.1, G.1], [G.2, G.3]];;
733
+ gap> S := ReesMatrixSemigroup(G, mat);;
734
+ gap> T := Range(RMSNormalization(S));;
735
+ gap> G := UnderlyingSemigroup(T);;
736
+ gap> L := LeftTranslations(T);;
737
+ gap> R := RightTranslations(T);;
738
+ gap> H := TranslationalHull(T);;
739
+ gap> HS := TranslationalHull(S);;
740
+ gap> lgpfunc := [G.1 * G.3 * G.3, G.2];;
741
+ gap> rgpfunc := [G.1 * G.3 * G.3, G.3 * G.3, G.2];;
742
+ gap> lt := Transformation([2, 2]);;
743
+ gap> rt := Transformation([3, 3, 3]);;
744
+ gap> l := LeftTranslation(L, lgpfunc, lt);;
745
+ gap> r := RightTranslation(R, rgpfunc, rt);;
746
+ gap> h := Bitranslation(H, l, r);
747
+ <bitranslation on <semigroup>>
748
+ gap> h := Bitranslation(HS, l, r);
749
+ Error, each argument must have the same underlying semigroup
750
+ gap> l := LeftTranslation(L, lgpfunc, IdentityTransformation);;
751
+ gap> h := Bitranslation(H, l, r);
752
+ Error, the translations given must satisfy the linking condition
753
+ gap> Bitranslation(H, (1, 2, 3, 5)(4, 10, 7, 12)(6, 11, 9, 8),
754
+ > Transformation([2, 2]), Transformation([2, 3, 2]));
755
+ Error, the arguments given do not define a bitranslation
756
+
757
+ # Hashing translations
758
+ gap> S := Semigroup([Transformation([1, 4, 3, 3]), Transformation([3, 4, 1, 1])]);;
759
+ gap> L := LeftTranslations(S);;
760
+ gap> R := RightTranslations(S);;
761
+ gap> l := Representative(L);;
762
+ gap> r := Representative(R);;
763
+ gap> Lht := HTCreate(l);;
764
+ gap> Rht := HTCreate(r);;
765
+ gap> for l in L do
766
+ > HTAdd(Lht, l, true);
767
+ > od;
768
+ gap> for r in R do
769
+ > HTAdd(Rht, r, true);
770
+ > od;
771
+
772
+ # Hashing translational hull elements
773
+ gap> S := Semigroup([Transformation([1, 4, 3, 3]), Transformation([3, 4, 1, 1])]);;
774
+ gap> H := TranslationalHull(S);;
775
+ gap> ht := HTCreate(Representative(H));;
776
+ gap> for h in H do
777
+ > HTAdd(ht, h, true);
778
+ > od;
779
+
780
+ # Translational Hull of RZMS which is not completely 0-simple
781
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(16, 2)));;
782
+ gap> mat := [[G.1, 0, 0], [G.1 * G.2, 0, G.2]];;
783
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
784
+ gap> Size(TranslationalHull(S));
785
+ 14977
786
+
787
+ # Translational Hull of RZMS which is not completely 0-simple
788
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(16, 2)));;
789
+ gap> mat := [[G.1, 0, 0], [G.1 * G.2, 0, G.2]];;
790
+ gap> S := ReesZeroMatrixSemigroup(G, mat);;
791
+ gap> NrBitranslations(S);
792
+ 14977
793
+
794
+ #
795
+ gap> SEMIGROUPS.StopTest();
796
+ gap> STOP_TEST("Semigroups package: standard/translat.tst");