passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-macosx_14_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 +1157 -0
  17. gap/pkg/semigroups/config.status +1132 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.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,392 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/main/froidure-pin.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
+ # This file contains tests for main/froidure-pin.g* which use the
12
+ # implementation of the Froidure-Pin algorithm in the Semigroups package kernel
13
+ # module and not the version in libsemigroups.
14
+
15
+ #@local F, G, ListIterator, LoopIterator, N, R, S, T, TestEnumerator
16
+ #@local TestIterator, acting, an, cong, copy, elts, final, first, found, gens
17
+ #@local genslookup, genstoapply, ht, i, left, len, lenindex, list, mat, nr
18
+ #@local nrrules, one, out, parent, pos, prefix, reduced, right, rules, stopper
19
+ #@local suffix, valid, words, x
20
+ gap> START_TEST("Semigroups package: standard/main/froidure-pin.tst");
21
+ gap> LoadPackage("semigroups", false);;
22
+
23
+ #
24
+ gap> SEMIGROUPS.StartTest();
25
+ gap> ListIterator := function(it)
26
+ > local out, i, x;
27
+ > out := [];
28
+ > i := 0;
29
+ > for x in it do
30
+ > i := i + 1;
31
+ > out[i] := x;
32
+ > od;
33
+ > return out;
34
+ > end;;
35
+ gap> TestEnumerator := function(en)
36
+ > return ForAll(en, x -> en[Position(en, x)] = x)
37
+ > and ForAll([1 .. Length(en)], i -> Position(en, en[i]) = i)
38
+ > and ForAll(en, x -> x in en)
39
+ > and ForAll([1 .. Length(en)], i -> IsBound(en[i]))
40
+ > and ForAll([Length(en) + 1 .. Length(en) + 10], i -> not IsBound(en[i]));
41
+ > end;;
42
+ gap> TestIterator := function(S, it)
43
+ > local LoopIterator;
44
+ > LoopIterator := function(it)
45
+ > local valid, len, x;
46
+ > valid := true;;
47
+ > len := 0;
48
+ > for x in it do
49
+ > len := len + 1;
50
+ > if not x in S then
51
+ > valid := false;
52
+ > break;
53
+ > fi;
54
+ > od;
55
+ > return valid and IsDoneIterator(it) and len = Size(S);
56
+ > end;
57
+ > return LoopIterator(it) and LoopIterator(ShallowCopy(it));
58
+ > end;;
59
+
60
+ # CanUseGapFroidurePin for RZMS
61
+ gap> S := ReesZeroMatrixSemigroup(Group([()]), [[(), (), ()], [0, (), 0],
62
+ > [(), 0, ()]]);;
63
+ gap> CanUseGapFroidurePin(S);
64
+ true
65
+
66
+ # CanUseGapFroidurePin for a quotient semigroup
67
+ gap> S := FullTransformationMonoid(4);;
68
+ gap> cong := SemigroupCongruence(S, [S.2, S.3]);;
69
+ gap> CanUseLibsemigroupsFroidurePin(S / cong);
70
+ true
71
+ gap> S := Semigroup(SEMIGROUPS.UniversalFakeOne);;
72
+ gap> cong := SemigroupCongruence(S, [[S.1, S.1]]);;
73
+ gap> CanUseLibsemigroupsFroidurePin(S / cong);
74
+ false
75
+
76
+ # CanUseGapFroidurePin for a free band
77
+ gap> CanUseGapFroidurePin(FreeBand(4));
78
+ true
79
+ gap> CanUseGapFroidurePin(FreeBand(5));
80
+ true
81
+
82
+ # Test GapFroidurePin
83
+ gap> S := FreeBand(5);;
84
+ gap> GapFroidurePin(S);
85
+ rec( elts := [ x1, x2, x3, x4, x5 ], final := [ 1, 2, 3, 4, 5 ],
86
+ first := [ 1, 2, 3, 4, 5 ], found := false, gens := [ x1, x2, x3, x4, x5 ],
87
+ genslookup := [ 1, 2, 3, 4, 5 ], genstoapply := [ 1 .. 5 ],
88
+ ht := <tree hash table len=12517 used=5 colls=0 accs=10>,
89
+ left := [ [ ], [ ], [ ], [ ], [ ] ], len := 1, lenindex := [ 1 ],
90
+ nr := 5, nrrules := 0, one := false, parent := <free band on the generators
91
+ [ x1, x2, x3, x4, x5 ]>, pos := 1, prefix := [ 0, 0, 0, 0, 0 ],
92
+ reduced := [ [ false, false, false, false, false ],
93
+ [ false, false, false, false, false ],
94
+ [ false, false, false, false, false ],
95
+ [ false, false, false, false, false ],
96
+ [ false, false, false, false, false ] ],
97
+ right := [ [ ], [ ], [ ], [ ], [ ] ], rules := [ ], stopper := false,
98
+ suffix := [ 0, 0, 0, 0, 0 ], words := [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ] ]
99
+ )
100
+ gap> S := RegularBooleanMatMonoid(3);;
101
+ gap> GapFroidurePin(S);
102
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
103
+ Error, no 2nd choice method found for `GapFroidurePin' on 1 arguments
104
+ gap> Size(S);
105
+ 506
106
+ gap> GapFroidurePin(S);
107
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
108
+ Error, no 2nd choice method found for `GapFroidurePin' on 1 arguments
109
+ gap> S := Semigroup(Generators(S), Generators(S));;
110
+ gap> GapFroidurePin(S);
111
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
112
+ Error, no 2nd choice method found for `GapFroidurePin' on 1 arguments
113
+
114
+ # EnumeratorSorted
115
+ gap> EnumeratorSorted(FreeBand(2));
116
+ [ x1, x2x1x2, x2x1, x2, x1x2, x1x2x1 ]
117
+ gap> TestEnumerator(EnumeratorSorted(FreeBand(2)));
118
+ true
119
+
120
+ # EnumeratorCanonical for CanUseGapFroidurePin without generators
121
+ gap> G := Range(IsomorphismPermGroup(SmallGroup(6, 1)));;
122
+ gap> mat := [[G.1, G.2], [G.1 * G.2, G.1], [G.2, G.2]];;
123
+ gap> S := ReesMatrixSemigroup(G, mat);;
124
+ gap> CanUseGapFroidurePin(S);
125
+ true
126
+ gap> HasGeneratorsOfSemigroup(S);
127
+ false
128
+ gap> TestEnumerator(EnumeratorCanonical(S));;
129
+
130
+ # MultiplicationTable
131
+ gap> S := ReesMatrixSemigroup(Group([(1, 2)]), [[(), (1, 2)], [(), ()]]);;
132
+ gap> GeneratorsOfSemigroup(S);
133
+ [ (1,(1,2),1), (2,(),2) ]
134
+ gap> S := Semigroup(S.1, S.2 ^ 2);
135
+ <subsemigroup of 2x2 Rees matrix semigroup with 2 generators>
136
+ gap> CanUseGapFroidurePin(S);
137
+ true
138
+ gap> MultiplicationTable(S);
139
+ [ [ 1, 2, 3, 4, 3, 4, 1, 2 ], [ 1, 2, 3, 4, 1, 2, 3, 4 ],
140
+ [ 3, 4, 1, 2, 1, 2, 3, 4 ], [ 3, 4, 1, 2, 3, 4, 1, 2 ],
141
+ [ 5, 6, 7, 8, 7, 8, 5, 6 ], [ 5, 6, 7, 8, 5, 6, 7, 8 ],
142
+ [ 7, 8, 5, 6, 5, 6, 7, 8 ], [ 7, 8, 5, 6, 7, 8, 5, 6 ] ]
143
+ gap> S := ReesZeroMatrixSemigroup(Group([(1, 2)]), [[(), (1, 2)], [(), 0]]);;
144
+ gap> GeneratorsOfSemigroup(S);
145
+ [ (1,(1,2),1), (1,(),2), (2,(),1) ]
146
+ gap> S := Semigroup(S.1, S.2 ^ 2);
147
+ <subsemigroup of 2x2 Rees 0-matrix semigroup with 2 generators>
148
+ gap> CanUseGapFroidurePin(S);
149
+ true
150
+ gap> MultiplicationTable(S);
151
+ [ [ 1, 2, 3, 4 ], [ 1, 2, 3, 4 ], [ 3, 4, 1, 2 ], [ 3, 4, 1, 2 ] ]
152
+
153
+ # PositionCanonical (for a group)
154
+ gap> G := Group((1, 2, 3), (1, 2));;
155
+ gap> CanUseGapFroidurePin(G);
156
+ true
157
+
158
+ # CanUseGapFroidurePin for a dual semigroup
159
+ gap> S := Semigroup([Transformation([1, 3, 2]), Transformation([1, 4, 4, 2])]);
160
+ <transformation semigroup of degree 4 with 2 generators>
161
+ gap> T := DualSemigroup(S);
162
+ <dual semigroup of <transformation semigroup of degree 4 with 2 generators>>
163
+ gap> CanUseGapFroidurePin(T);
164
+ true
165
+
166
+ # GapFroidurePin, for a semigroup with identity in generators, and duplicate
167
+ # generators
168
+ gap> S := Group((1, 2, 3), (), ());
169
+ Group([ (1,2,3), (), () ])
170
+ gap> GapFroidurePin(S);
171
+ rec( elts := [ (1,2,3), () ], final := [ 1, 2 ], first := [ 1, 2 ],
172
+ found := false, gens := [ (1,2,3), (), () ], genslookup := [ 1, 2, 2 ],
173
+ genstoapply := [ 1 .. 3 ], ht := <tree hash table len=12517 used=2 colls=
174
+ 0 accs=5>, left := [ [ ], [ ] ], len := 1, lenindex := [ 1 ], nr := 2,
175
+ nrrules := 1, one := 2, parent := Group([ (1,2,3), (), () ]), pos := 1,
176
+ prefix := [ 0, 0 ],
177
+ reduced := [ [ false, false, false ], [ false, false, false ] ],
178
+ right := [ [ ], [ ] ], rules := [ [ [ 3 ], [ 2 ] ] ], stopper := false,
179
+ suffix := [ 0, 0 ], words := [ [ 1 ], [ 2 ] ] )
180
+
181
+ # AsListCanonical
182
+ gap> S := FreeBand(2);
183
+ <free band on the generators [ x1, x2 ]>
184
+ gap> TestEnumerator(EnumeratorCanonical(S));
185
+ true
186
+ gap> EnumeratorCanonical(S)[10];
187
+ fail
188
+ gap> AsListCanonical(S);
189
+ [ x1, x2, x1x2, x2x1, x1x2x1, x2x1x2 ]
190
+ gap> S := ReesMatrixSemigroup(Group([(1, 2)]), [[(), (1, 2)], [(), ()]]);;
191
+ gap> AsListCanonical(S);
192
+ [ (1,(1,2),1), (2,(),2), (1,(),1), (1,(),2), (2,(1,2),1), (1,(1,2),2),
193
+ (2,(),1), (2,(1,2),2) ]
194
+ gap> EnumeratorCanonical(S);
195
+ [ (1,(1,2),1), (2,(),2), (1,(),1), (1,(),2), (2,(1,2),1), (1,(1,2),2),
196
+ (2,(),1), (2,(1,2),2) ]
197
+ gap> Enumerator(S);
198
+ <enumerator of Rees matrix semigroup>
199
+
200
+ # AsListCanonical/AsSet for an infinite semigroup
201
+ gap> S := GraphInverseSemigroup(CycleDigraph(2));
202
+ <infinite graph inverse semigroup with 2 vertices, 2 edges>
203
+ gap> AsSet(S);
204
+ Error, the argument (a semigroup) is not finite
205
+ gap> AsListCanonical(S);
206
+ Error, the argument (a semigroup) is not finite
207
+ gap> EnumeratorSorted(S);
208
+ Error, the argument (a semigroup) is not finite
209
+ gap> N := EnumeratorCanonical(S);
210
+ <enumerator of <infinite graph inverse semigroup with 2 vertices, 2 edges>>
211
+ gap> N[1];
212
+ e_1
213
+
214
+ # Iterators
215
+ gap> S := FreeBand(2);
216
+ <free band on the generators [ x1, x2 ]>
217
+ gap> TestIterator(S, IteratorCanonical(S));
218
+ true
219
+ gap> TestIterator(S, Iterator(S));
220
+ true
221
+ gap> TestIterator(S, IteratorSorted(S));
222
+ true
223
+ gap> F := FreeSemigroup(2);;
224
+ gap> R := [[F.1 * F.2, F.2 * F.1]];;
225
+ gap> S := F / R;
226
+ <fp semigroup with 2 generators and 1 relation of length 6>
227
+ gap> NextIterator(Iterator(S));
228
+ s1
229
+ gap> IteratorSorted(S);
230
+ Error, the argument (a semigroup) is not finite
231
+ gap> NextIterator(IteratorCanonical(S));
232
+ s1
233
+
234
+ # Size
235
+ gap> S := Semigroup(FreeBand(2));
236
+ <semigroup with 2 generators>
237
+ gap> Size(S);
238
+ 6
239
+ gap> F := FreeSemigroup(2);;
240
+ gap> R := [[F.1 * F.2, F.2 * F.1]];;
241
+ gap> S := F / R;
242
+ <fp semigroup with 2 generators and 1 relation of length 6>
243
+ gap> Size(S);
244
+ infinity
245
+
246
+ # \in
247
+ gap> S := Semigroup(FreeBand(2));
248
+ <semigroup with 2 generators>
249
+ gap> ForAll(AsList(S), x -> x in S);
250
+ true
251
+
252
+ # Nr/Idempotents
253
+ gap> S := Semigroup(FreeBand(2));
254
+ <semigroup with 2 generators>
255
+ gap> Idempotents(S);
256
+ [ x1, x2, x1x2, x2x1, x1x2x1, x2x1x2 ]
257
+ gap> NrIdempotents(S);
258
+ 6
259
+ gap> S := GraphInverseSemigroup(CycleDigraph(2));
260
+ <infinite graph inverse semigroup with 2 vertices, 2 edges>
261
+ gap> Idempotents(S);
262
+ Error, the argument (a semigroup) is not finite
263
+ gap> NrIdempotents(S);
264
+ Error, the argument (a semigroup) is not finite
265
+
266
+ # PositionCanonical
267
+ gap> S := Semigroup(FreeBand(2));
268
+ <semigroup with 2 generators>
269
+ gap> PositionCanonical(S, 1);
270
+ fail
271
+ gap> S := Semigroup(FreeBand(5));
272
+ <semigroup with 5 generators>
273
+ gap> PositionCanonical(S, S.1 * S.2 * S.3 * S.2 * S.1);
274
+ 422
275
+ gap> x := Matrix(GF(2 ^ 2),
276
+ > [[Z(2 ^ 2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2)],
277
+ > [Z(2 ^ 2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2)],
278
+ > [0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2)],
279
+ > [0 * Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2)],
280
+ > [0 * Z(2), 0 * Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2)],
281
+ > [0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2)]]);;
282
+ gap> S := Monoid(x, rec(acting := false));
283
+ <commutative monoid of 6x6 matrices over GF(2^2) with 1 generator>
284
+ gap> CanUseGapFroidurePin(S);
285
+ true
286
+ gap> PositionCanonical(S, Matrix(GF(2), [[Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2),
287
+ > 0 * Z(2), 0 * Z(2)], [0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2)],
288
+ > [0 * Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2)], [0 * Z(2), 0 *
289
+ > Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2)],
290
+ > [0 * Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2)], [0 * Z(2), 0 *
291
+ > Z(2), 0 * Z(2), 0 * Z(2), 0 * Z(2), Z(2) ^ 0]]));
292
+ fail
293
+
294
+ # Position
295
+ gap> S := Semigroup(FreeBand(2));
296
+ <semigroup with 2 generators>
297
+ gap> Position(S, S.1);
298
+ 1
299
+ gap> Position(S, S.2);
300
+ 2
301
+ gap> Position(S, S.1 * S.2);
302
+ fail
303
+ gap> Position(S, 1);
304
+ fail
305
+
306
+ # PositionSorted
307
+ gap> S := Semigroup(FreeBand(2));;
308
+ gap> list := AsListCanonical(S);;
309
+ gap> copy := ShallowCopy(list);;
310
+ gap> Sort(copy, {x, y} -> PositionSorted(S, x) < PositionSorted(S, y));
311
+ gap> SortedList(list) = copy;
312
+ true
313
+ gap> PositionSorted(S, 1);
314
+ fail
315
+ gap> S := GraphInverseSemigroup(CycleDigraph(2));
316
+ <infinite graph inverse semigroup with 2 vertices, 2 edges>
317
+ gap> PositionSorted(S, S.1);
318
+ Error, the 1st argument (a semigroup) is not finite
319
+
320
+ # IsEnumerated
321
+ gap> S := Semigroup(FreeBand(2));;
322
+ gap> IsEnumerated(S);
323
+ false
324
+ gap> Size(S);
325
+ 6
326
+ gap> IsEnumerated(S);
327
+ true
328
+
329
+ # Enumerate
330
+ gap> S := Semigroup(FreeBand(2));;
331
+ gap> Enumerate(S, 10);
332
+ <semigroup with 2 generators>
333
+ gap> Enumerate(S);
334
+ <semigroup with 2 generators>
335
+
336
+ # Left/RightCayleyGraphSemigroup
337
+ gap> S := Semigroup(FreeBand(2));;
338
+ gap> LeftCayleyGraphSemigroup(S);
339
+ [ [ 1, 4 ], [ 3, 2 ], [ 3, 6 ], [ 5, 4 ], [ 5, 4 ], [ 3, 6 ] ]
340
+ gap> RightCayleyGraphSemigroup(S);
341
+ [ [ 1, 3 ], [ 4, 2 ], [ 5, 3 ], [ 4, 6 ], [ 5, 3 ], [ 4, 6 ] ]
342
+ gap> LeftCayleyDigraph(S);
343
+ <immutable digraph with 6 vertices, 12 edges>
344
+ gap> RightCayleyDigraph(S);
345
+ <immutable digraph with 6 vertices, 12 edges>
346
+ gap> S := GraphInverseSemigroup(CycleDigraph(2));
347
+ <infinite graph inverse semigroup with 2 vertices, 2 edges>
348
+ gap> LeftCayleyGraphSemigroup(S);
349
+ Error, the argument (a semigroup) is not finite
350
+ gap> RightCayleyGraphSemigroup(S);
351
+ Error, the argument (a semigroup) is not finite
352
+ gap> LeftCayleyDigraph(S);
353
+ Error, the argument (a semigroup) is not finite
354
+ gap> RightCayleyDigraph(S);
355
+ Error, the argument (a semigroup) is not finite
356
+
357
+ # Minimal/Factorization
358
+ gap> S := FreeBand(2);
359
+ <free band on the generators [ x1, x2 ]>
360
+ gap> T := Semigroup(S.1);;
361
+ gap> Factorization(T, 10);
362
+ Error, the 2nd argument (a positive integer) is greater than the size of the 1\
363
+ st argument (a semigroup)
364
+ gap> Factorization(T, 1);
365
+ [ 1 ]
366
+ gap> Factorization(T, T.1 ^ 10);
367
+ [ 1 ]
368
+ gap> MinimalFactorization(T, 1);
369
+ [ 1 ]
370
+ gap> MinimalFactorization(T, T.1 ^ 10);
371
+ [ 1 ]
372
+ gap> MinimalFactorization(T, S.2);
373
+ Error, the 2nd argument (a mult. elt.) is not an element of the 1st argument (\
374
+ a semigroup)
375
+ gap> Factorization(T, S.2);
376
+ Error, the 2nd argument (a mult. elt.) is not an element of the 1st argument (\
377
+ a semigroup)
378
+
379
+ # RulesOfSemigroup
380
+ gap> S := FreeBand(2);
381
+ <free band on the generators [ x1, x2 ]>
382
+ gap> RulesOfSemigroup(S);
383
+ [ [ [ 1, 1 ], [ 1 ] ], [ [ 2, 2 ], [ 2 ] ], [ [ 1, 2, 1, 2 ], [ 1, 2 ] ],
384
+ [ [ 2, 1, 2, 1 ], [ 2, 1 ] ] ]
385
+ gap> S := GraphInverseSemigroup(CycleDigraph(2));
386
+ <infinite graph inverse semigroup with 2 vertices, 2 edges>
387
+ gap> RulesOfSemigroup(S);
388
+ Error, the argument (a semigroup) is not finite
389
+
390
+ #
391
+ gap> SEMIGROUPS.StopTest();
392
+ gap> STOP_TEST("Semigroups package: standard/main/froidure-pin.tst");
@@ -0,0 +1,203 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/main/semiact.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 I, S, T, acting, an, regular, x
12
+ gap> START_TEST("Semigroups package: standard/main/semiact.tst");
13
+ gap> LoadPackage("semigroups", false);;
14
+
15
+ #
16
+ gap> SEMIGROUPS.StartTest();
17
+
18
+ # ClosureSemigroup, for an acting semigroup
19
+ gap> S := Semigroup(IdentityTransformation);;
20
+ gap> Size(S);
21
+ 1
22
+ gap> S := ClosureSemigroup(S, AsSet(FullTransformationMonoid(3)));;
23
+ gap> Size(S);
24
+ 27
25
+ gap> S := Semigroup(Transformation([2, 1, 2]));;
26
+ gap> Size(S);
27
+ 2
28
+ gap> S := ClosureSemigroup(S, AsSet(OrderEndomorphisms(5)));;
29
+ gap> Size(S);
30
+ 576
31
+ gap> S := ClosureSemigroup(S, AsSet(OrderAntiEndomorphisms(5)));;
32
+ gap> Size(S);
33
+ 1927
34
+ gap> S := Semigroup(IdentityTransformation);;
35
+ gap> S := ClosureSemigroup(S, Transformation([2, 1]));;
36
+ gap> S := AsSemigroup(IsTransformationSemigroup,
37
+ > Semigroup(Matrix(IsBooleanMat, [[0, 0], [0, 0]])));;
38
+ gap> S := ClosureSemigroup(S, AsSemigroup(IsTransformationSemigroup,
39
+ > RegularBooleanMatMonoid(3)));;
40
+ gap> # The next result is correct, since different embeddings are used
41
+ gap> # in the previous two lines.
42
+ gap> Size(S);
43
+ 27874
44
+ gap> S := ClosureSemigroup(S, AsSemigroup(IsTransformationSemigroup,
45
+ > FullBooleanMatMonoid(3)));;
46
+ gap> Size(S);
47
+ 27880
48
+ gap> S := InverseSemigroup(PartialPerm([1 .. 3]));;
49
+ gap> Size(S);
50
+ 1
51
+ gap> S := ClosureInverseSemigroup(S, AsSet(SymmetricInverseMonoid(6)));;
52
+ gap> Size(S);
53
+ 13327
54
+ gap> S := InverseSemigroup(PartialPerm([1, 2, 3, 4, 5, 6],
55
+ > [1, 3, 4, 5, 2, 6]));;
56
+ gap> Size(S);
57
+ 4
58
+ gap> S := ClosureInverseSemigroup(S, AsSet(POPI(6)));;
59
+ gap> Size(S);
60
+ 13327
61
+ gap> S := InverseSemigroup(PartialPerm([1 .. 3]));;
62
+ gap> S := ClosureInverseSemigroup(S, PartialPerm([2, 1]));;
63
+ gap> I := SemigroupIdeal(S, S.1);;
64
+ gap> ClosureInverseSemigroup(I, PartialPerm([1 .. 7]));;
65
+
66
+ # Random, for an acting semigroup
67
+ gap> S := Semigroup(FullTransformationMonoid(4), rec(acting := true));;
68
+ gap> IsActingSemigroup(S);
69
+ true
70
+ gap> Random(S);;
71
+ gap> Size(S);;
72
+ gap> Random(S);;
73
+ gap> IsRegularSemigroup(S);
74
+ true
75
+ gap> I := SemigroupIdeal(S, S.1);;
76
+ gap> Random(I);;
77
+
78
+ # Random, for an regular acting semigroup rep
79
+ gap> S := OrderEndomorphisms(5);;
80
+ gap> IsRegularActingSemigroupRep(S);
81
+ true
82
+ gap> Random(S);;
83
+ gap> NrRClasses(S);;
84
+ gap> Random(S);;
85
+ gap> NrLClasses(S);;
86
+ gap> Random(S);;
87
+ gap> I := SemigroupIdeal(S, S.1);;
88
+ gap> Random(I);;
89
+
90
+ # Random, for an inverse acting semigroup rep
91
+ gap> S := POPI(5);;
92
+ gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
93
+ true
94
+ gap> Random(S);;
95
+ gap> NrRClasses(S);;
96
+ gap> Random(S);;
97
+ gap> NrLClasses(S);;
98
+ gap> Random(S);;
99
+ gap> I := SemigroupIdeal(S, S.1);;
100
+ gap> Random(I);;
101
+
102
+ # \in, for an regular acting semigroup rep
103
+ gap> S := Semigroup(OrderEndomorphisms(5), rec(regular := true));;
104
+ gap> IsRegularActingSemigroupRep(S);
105
+ true
106
+ gap> Size(S);
107
+ 126
108
+ gap> ConstantTransformation(6, 1) in S;
109
+ false
110
+ gap> PartialPerm([1]) in S;
111
+ false
112
+ gap> Enumerate(S);;
113
+ gap> S.1 in S;
114
+ true
115
+ gap> Transformation([2, 1]) in S;
116
+ false
117
+ gap> S := RegularSemigroup(Transformation([1, 1, 1]));;
118
+ gap> x := Transformation([1, 2, 2]);;
119
+ gap> x in S;
120
+ false
121
+ gap> S := RegularSemigroup(x);;
122
+ gap> MinimalIdeal(S);;
123
+ gap> Transformation([1, 1, 1]) in S;
124
+ false
125
+ gap> S := RegularSemigroup(x);;
126
+ gap> AsSet(S);;
127
+ gap> Transformation([1, 1, 1]) in S;
128
+ false
129
+ gap> S := RegularSemigroup(x);;
130
+ gap> Transformation([2, 3, 3]) in S;
131
+ false
132
+ gap> Transformation([1, 1, 2]) in S;
133
+ false
134
+ gap> x in S;
135
+ true
136
+ gap> Size(S);
137
+ 1
138
+ gap> S := AsSemigroup(IsTransformationSemigroup, AlternatingGroup(3));;
139
+ gap> S := DirectProduct(S, Semigroup(Transformation([1, 1, 1])));;
140
+ gap> S := Semigroup(S, Transformation([1, 1, 2]), rec(acting := true,
141
+ > regular := true));
142
+ <regular transformation semigroup of degree 6 with 3 generators>
143
+ gap> Number(FullTransformationMonoid(3), x -> x in S);
144
+ 2
145
+ gap> S := AsSemigroup(IsTransformationSemigroup, AlternatingGroup(3));;
146
+ gap> S := Semigroup(S, Transformation([1, 1, 2]), rec(acting := true,
147
+ > regular := true));
148
+ <regular transformation semigroup of degree 3 with 2 generators>
149
+ gap> Number(FullTransformationMonoid(3), x -> x in S);
150
+ 24
151
+ gap> S := PartitionMonoid(3);;
152
+ gap> T := Bipartition([[1, -2], [2], [3, -3], [-1]]);;
153
+ gap> I := SemigroupIdeal(S, T);
154
+ <regular bipartition *-semigroup ideal of degree 3 with 1 generator>
155
+ gap> S := OrderEndomorphisms(7);;
156
+ gap> Transformation([2, 4, 4, 4, 7, 7, 7]) in S;
157
+ true
158
+
159
+ # \in, for an inverse acting semigroup rep
160
+ gap> S := InverseSemigroup(POPI(5));;
161
+ gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
162
+ true
163
+ gap> ConstantTransformation(6, 1) in S;
164
+ false
165
+ gap> PartialPerm([1]) in S;
166
+ true
167
+ gap> AsSSortedList(S);;
168
+ gap> Enumerate(S);;
169
+ gap> S.1 in S;
170
+ true
171
+ gap> PartialPerm([3, 5]) in S;
172
+ true
173
+ gap> PartialPerm([5, 3]) in S;
174
+ true
175
+ gap> PartialPerm([1 .. 6]) in S;
176
+ false
177
+ gap> PartialPerm([5, 4, 3, 2, 1]) in S;
178
+ false
179
+ gap> S := InverseSemigroup(PartialPerm([5], [5]));;
180
+ gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
181
+ true
182
+ gap> PartialPerm([2, 1]) in S;
183
+ false
184
+ gap> S := InverseSemigroup(PartialPerm([0, 3, 2]));;
185
+ gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
186
+ true
187
+ gap> MinimalIdeal(S);;
188
+ gap> PartialPerm([]) in S;
189
+ false
190
+ gap> PartialPerm([2, 0, 3]) in S;
191
+ false
192
+ gap> S := InverseSemigroup([
193
+ > PartialPerm([2], [3]), PartialPerm([2, 3], [1, 4]),
194
+ > PartialPerm([2, 3], [2, 1]), PartialPerm([2, 4], [2, 3]),
195
+ > PartialPerm([2, 3], [3, 4]), PartialPerm([1, 3], [2, 3])]);;
196
+ gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
197
+ true
198
+ gap> Number(SymmetricInverseMonoid(4), x -> x in S) = Size(S);
199
+ true
200
+
201
+ #
202
+ gap> SEMIGROUPS.StopTest();
203
+ gap> STOP_TEST("Semigroups package: standard/main/semiact.tst");