passagemath-gap-pkg-semigroups 10.6.30__cp311-cp311-macosx_13_0_arm64.whl

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1158 -0
  17. gap/pkg/semigroups/config.status +1131 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.cpython-311-darwin.so +0 -0
@@ -0,0 +1,40 @@
1
+ #############################################################################
2
+ ##
3
+ ## semigroups/semigraph.gd
4
+ ## Copyright (C) 2014-2022 Zak Mesyan and James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ DeclareOperation("GraphInverseSemigroup", [IsDigraph]);
12
+
13
+ DeclareCategory("IsGraphInverseSemigroupElement", IsAssociativeElement);
14
+ DeclareCategoryCollections("IsGraphInverseSemigroupElement");
15
+
16
+ DeclareSynonymAttr("IsGraphInverseSubsemigroup",
17
+ IsSemigroup and
18
+ IsGraphInverseSemigroupElementCollection);
19
+
20
+ DeclareSynonymAttr("IsGraphInverseSemigroup",
21
+ IsGraphInverseSubsemigroup and IsWholeFamily);
22
+
23
+ DeclareAttribute("GraphOfGraphInverseSemigroup", IsGraphInverseSemigroup);
24
+ DeclareAttribute("Range", IsGraphInverseSemigroupElement);
25
+ DeclareAttribute("Source", IsGraphInverseSemigroupElement);
26
+
27
+ DeclareOperation("IsVertex", [IsGraphInverseSemigroupElement]);
28
+
29
+ InstallTrueMethod(IsGeneratorsOfInverseSemigroup,
30
+ IsGraphInverseSemigroupElementCollection);
31
+
32
+ # The following are required because we use Zero in an unintended way (it's
33
+ # supposed to be an additive zero).
34
+ DeclareOperation("ZeroOp", [IsGraphInverseSemigroupElement]);
35
+ DeclareProperty("IsZero", IsGraphInverseSemigroupElement);
36
+
37
+ DeclareOperation("IndexOfVertexOfGraphInverseSemigroup",
38
+ [IsGraphInverseSemigroupElement]);
39
+ DeclareAttribute("VerticesOfGraphInverseSemigroup",
40
+ IsGraphInverseSemigroup);
@@ -0,0 +1,292 @@
1
+ #############################################################################
2
+ ##
3
+ ## semigroups/semigraph.gi
4
+ ## Copyright (C) 2014-2022 Zak Mesyan and James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ InstallMethod(AsMonoid, "for a graph inverse semigroup",
12
+ [IsGraphInverseSemigroup], ReturnFail);
13
+
14
+ InstallMethod(ViewString, "for a graph inverse semigroup",
15
+ [IsGraphInverseSemigroup],
16
+ RankFilter(IsGroupAsSemigroup), # to beat library method for groups as semigrps
17
+ function(S)
18
+ local D, finiteness;
19
+
20
+ D := GraphOfGraphInverseSemigroup(S);
21
+
22
+ if IsAcyclicDigraph(D) then
23
+ finiteness := "finite";
24
+ else
25
+ finiteness := "infinite";
26
+ fi;
27
+
28
+ return PRINT_STRINGIFY(
29
+ StringFormatted("<{} graph inverse semigroup with {}, {}>",
30
+ finiteness,
31
+ Pluralize(DigraphNrVertices(D), "vertex"),
32
+ Pluralize(DigraphNrEdges(D), "edge")));
33
+ end);
34
+
35
+ InstallMethod(AssignGeneratorVariables, "for an inverse semigroup",
36
+ [IsGraphInverseSemigroup],
37
+ function(S)
38
+ DoAssignGenVars(GeneratorsOfInverseSemigroup(S));
39
+ end);
40
+
41
+ InstallMethod(GraphInverseSemigroup, "for a digraph",
42
+ [IsDigraph],
43
+ function(graph)
44
+ local fam, S, gens, i;
45
+
46
+ fam := NewFamily("GraphInverseSemigroupElementsFamily",
47
+ IsGraphInverseSemigroupElement,
48
+ CanEasilySortElements,
49
+ CanEasilySortElements);
50
+
51
+ # create the semigroup
52
+ S := Objectify(NewType(CollectionsFamily(fam),
53
+ IsWholeFamily and IsGraphInverseSubsemigroup and
54
+ IsAttributeStoringRep),
55
+ rec());
56
+
57
+ if not IsAcyclicDigraph(graph) then
58
+ Info(InfoWarning, 1, "the graph defines an infinite semigroup!");
59
+ SetIsFinite(S, false);
60
+ else
61
+ SetIsFinite(S, true);
62
+ fi;
63
+
64
+ # store the type of the elements in the family
65
+ fam!.type := NewType(fam, IsGraphInverseSemigroupElement);
66
+ fam!.semigroup := S;
67
+
68
+ gens := [];
69
+ for i in [1 .. DigraphNrVertices(graph) + DigraphNrEdges(graph)] do
70
+ Add(gens, Objectify(fam!.type, [[i], graph]));
71
+ od;
72
+ SetGeneratorsOfSemigroup(S,
73
+ Concatenation(gens,
74
+ List([1 .. DigraphNrEdges(graph)],
75
+ x -> gens[x] ^ -1)));
76
+ SetGeneratorsOfInverseSemigroup(S, gens);
77
+ SetGraphOfGraphInverseSemigroup(S, graph);
78
+ return S;
79
+ end);
80
+
81
+ InstallMethod(IsVertex, "for a graph inverse semigroup element",
82
+ [IsGraphInverseSemigroupElement],
83
+ x -> Length(x![1]) = 1 and AbsInt(x![1][1]) > Length(DigraphSource(x![2])));
84
+
85
+ InstallMethod(MultiplicativeZero, "for a graph inverse semigroup",
86
+ [IsGraphInverseSemigroup],
87
+ function(S)
88
+ return Objectify(ElementsFamily(FamilyObj(S))!.type,
89
+ [[0], GraphOfGraphInverseSemigroup(S)]);
90
+ end);
91
+
92
+ InstallMethod(ZeroOp, "for a graph inverse semigroup element",
93
+ [IsGraphInverseSemigroupElement],
94
+ x -> Objectify(FamilyObj(x)!.type, [[0], x![2]]));
95
+
96
+ InstallMethod(IsZero, "for a graph inverse semigroup element",
97
+ [IsGraphInverseSemigroupElement],
98
+ x -> x![1][1] = 0);
99
+
100
+ InstallMethod(Source, "for a graph inverse semigroup element",
101
+ [IsGraphInverseSemigroupElement],
102
+ function(x)
103
+ if IsVertex(x) then
104
+ return x;
105
+ elif x![1][1] > 0 then
106
+ return Objectify(FamilyObj(x)!.type,
107
+ [[DigraphSource(x![2])[x![1][1]] + DigraphNrEdges(x![2])],
108
+ x![2]]);
109
+ elif x![1][1] < 0 then
110
+ return Objectify(FamilyObj(x)!.type,
111
+ [[DigraphRange(x![2])[-x![1][1]] + DigraphNrEdges(x![2])],
112
+ x![2]]);
113
+ fi;
114
+ ErrorNoReturn("the argument (a graph inverse semigroup element) ",
115
+ "must not be the zero element");
116
+ end);
117
+
118
+ InstallMethod(Range, "for a graph inverse semigroup element",
119
+ [IsGraphInverseSemigroupElement],
120
+ function(x)
121
+ if IsVertex(x) then
122
+ return x;
123
+ elif x![1][Length(x![1])] > 0 then
124
+ return Objectify(FamilyObj(x)!.type,
125
+ [[DigraphRange(x![2])[x![1][Length(x![1])]] +
126
+ DigraphNrEdges(x![2])],
127
+ x![2]]);
128
+ elif x![1][Length(x![1])] < 0 then
129
+ return Objectify(FamilyObj(x)!.type,
130
+ [[DigraphSource(x![2])[-x![1][Length(x![1])]] +
131
+ DigraphNrEdges(x![2])],
132
+ x![2]]);
133
+ fi;
134
+ ErrorNoReturn("the argument (a graph inverse semigroup element) ",
135
+ "must not be the zero element");
136
+ end);
137
+
138
+ InstallMethod(String, "for a graph inverse semigroup element",
139
+ [IsGraphInverseSemigroupElement],
140
+ function(x)
141
+ local str, gr, i;
142
+
143
+ if x![1] = [0] then
144
+ return String(0);
145
+ fi;
146
+
147
+ str := "";
148
+ gr := x![2];
149
+ for i in x![1] do
150
+ if i > Length(DigraphSource(gr)) then
151
+ Append(str, "v_");
152
+ Append(str, String(i - Length(DigraphSource(gr))));
153
+ elif i > 0 then
154
+ Append(str, "e_");
155
+ Append(str, String(i));
156
+ else
157
+ Append(str, "e_");
158
+ Append(str, String(-i));
159
+ Append(str, "^-1");
160
+ fi;
161
+ od;
162
+ return str;
163
+ end);
164
+
165
+ InstallMethod(PrintObj, "for a graph inverse semigroup",
166
+ [IsGraphInverseSemigroup],
167
+ function(S)
168
+ Print(String(S));
169
+ end);
170
+
171
+ InstallMethod(String, "for a graph inverse semigroup",
172
+ [IsGraphInverseSemigroup],
173
+ function(S)
174
+ local str;
175
+ str := "GraphInverseSemigroup( ";
176
+ Append(str, String(GraphOfGraphInverseSemigroup(S)));
177
+ Append(str, " )");
178
+ return str;
179
+ end);
180
+
181
+ InstallMethod(\^, "for a graph inverse semigroup element and neg. integer",
182
+ [IsGraphInverseSemigroupElement, IsNegInt],
183
+ function(x, n)
184
+ if IsZero(x) or IsVertex(x) then
185
+ return x;
186
+ fi;
187
+ return Objectify(FamilyObj(x)!.type, [Reversed(x![1]) * -1, x![2]]) ^ -n;
188
+ end);
189
+
190
+ InstallMethod(\<, "for elements of a graph inverse semigroup",
191
+ [IsGraphInverseSemigroupElement, IsGraphInverseSemigroupElement],
192
+ {x, y} -> x![1] < y![1]);
193
+
194
+ InstallMethod(\=, "for elements of a graph inverse semigroup",
195
+ [IsGraphInverseSemigroupElement, IsGraphInverseSemigroupElement],
196
+ {x, y} -> x![1] = y![1]);
197
+
198
+ # here
199
+
200
+ InstallMethod(\*, "for elements of a graph inverse semigroup",
201
+ [IsGraphInverseSemigroupElement, IsGraphInverseSemigroupElement],
202
+ function(x, y)
203
+ local type, graph, range, source, xobj, yobj, i, j;
204
+
205
+ type := FamilyObj(x)!.type;
206
+ graph := x![2];
207
+ range := DigraphRange(graph);
208
+ source := DigraphSource(graph);
209
+
210
+ if IsZero(x) or IsZero(y) then
211
+ return Zero(x);
212
+ elif IsVertex(x) then
213
+ if Source(y) = x then
214
+ return y;
215
+ fi;
216
+ return Zero(x);
217
+ elif IsVertex(y) then
218
+ if Range(x) = y then
219
+ return x;
220
+ fi;
221
+ return Zero(x);
222
+ fi;
223
+
224
+ xobj := x;
225
+ yobj := y;
226
+ x := x![1];
227
+ y := y![1];
228
+ i := 0;
229
+ j := Length(x) + 1;
230
+
231
+ while i < Length(y) and j > 1 do
232
+ i := i + 1;
233
+ j := j - 1;
234
+ if SignInt(x[j]) = SignInt(y[i]) then
235
+ if x[j] > 0 and range[x[j]] = source[y[i]] then
236
+ return Objectify(type, [Concatenation(x{[1 .. j]},
237
+ y{[i .. Length(y)]}),
238
+ graph]);
239
+ elif x[j] < 0 and source[-x[j]] = range[-y[i]] then
240
+ return Objectify(type, [Concatenation(x{[1 .. j]},
241
+ y{[i .. Length(y)]}),
242
+ graph]);
243
+ else
244
+ return Zero(xobj);
245
+ fi;
246
+ elif x[j] < 0 and y[i] > 0 then
247
+ if y[i] <> -x[j] then
248
+ return Zero(xobj);
249
+ fi;
250
+ else
251
+ if x[j] <> -y[i] and range[x[j]] <> range[-y[i]] then
252
+ return Zero(xobj);
253
+ else
254
+ return Objectify(type, [Concatenation(x{[1 .. j]},
255
+ y{[i .. Length(y)]}),
256
+ graph]);
257
+ fi;
258
+ fi;
259
+ od;
260
+ # x or y cancelled completely...
261
+ if i < Length(y) then
262
+ return Objectify(type, [y{[i + 1 .. Length(y)]}, graph]);
263
+ elif j > 1 then
264
+ return Objectify(type, [x{[1 .. j - 1]}, graph]);
265
+ else # x = y ^ -1
266
+ return Range(yobj);
267
+ fi;
268
+ end);
269
+
270
+ InstallMethod(VerticesOfGraphInverseSemigroup,
271
+ "for a graph inverse semigroup",
272
+ [IsGraphInverseSemigroup],
273
+ function(S)
274
+ local graph, m, result, i;
275
+ graph := GraphOfGraphInverseSemigroup(S);
276
+ m := DigraphNrEdges(graph);
277
+ result := [];
278
+ for i in [m + 1 .. DigraphNrVertices(graph) + m] do
279
+ Add(result, Objectify(ElementsFamily(FamilyObj(S))!.type, [[i], graph]));
280
+ od;
281
+ return result;
282
+ end);
283
+
284
+ InstallMethod(IndexOfVertexOfGraphInverseSemigroup,
285
+ "for a graph inverse semigroup element",
286
+ [IsGraphInverseSemigroupElement],
287
+ function(x)
288
+ if not IsVertex(x) then
289
+ ErrorNoReturn(x, " must be a vertex of a graph inverse semigroup");
290
+ fi;
291
+ return x![1][1] - DigraphNrEdges(x![2]);
292
+ end);
@@ -0,0 +1,165 @@
1
+ #############################################################################
2
+ ##
3
+ ## semigroups/semigrp.gd
4
+ ## Copyright (C) 2013-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 operations for creating semigroups, subsemigroups, and
12
+ # closures.
13
+
14
+ # The following true method is required since IsInverseSemigroup is a property
15
+ # of semigroups and so objectifying something using IsInverseSemigroup does not
16
+ # result in a semigroup.
17
+
18
+ InstallTrueMethod(IsSemigroup, IsInverseSemigroup);
19
+
20
+ # We use IsListOrCollection here because some collections of semigroup
21
+ # generators (such as elements/congruence classes in a quotient semigroup) do
22
+ # not satisfy IsMultiplicativeElementCollection (although the classes
23
+ # themselves do satisfy IsMultiplicativeElement).
24
+ DeclareOperation("SemigroupByGenerators",
25
+ [IsListOrCollection]);
26
+ DeclareOperation("SemigroupByGenerators",
27
+ [IsListOrCollection, IsRecord]);
28
+ DeclareOperation("MonoidByGenerators",
29
+ [IsListOrCollection]);
30
+ DeclareOperation("MonoidByGenerators",
31
+ [IsListOrCollection, IsRecord]);
32
+ DeclareOperation("InverseMonoidByGenerators",
33
+ [IsMultiplicativeElementWithOneCollection, IsRecord]);
34
+ DeclareOperation("InverseSemigroupByGenerators",
35
+ [IsMultiplicativeElementCollection, IsRecord]);
36
+
37
+ InstallTrueMethod(IsStarSemigroup,
38
+ IsAssociativeElementWithStarCollection and
39
+ IsInverseSemigroup and IsGeneratorsOfInverseSemigroup);
40
+
41
+ DeclareOperation("ClosureInverseSemigroup",
42
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
43
+ IsMultiplicativeElementCollection]);
44
+ DeclareOperation("ClosureInverseSemigroup",
45
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
46
+ IsMultiplicativeElementCollection,
47
+ IsRecord]);
48
+ DeclareOperation("ClosureInverseSemigroup",
49
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
50
+ IsListOrCollection and IsEmpty,
51
+ IsRecord]);
52
+ DeclareOperation("ClosureInverseSemigroup",
53
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
54
+ IsMultiplicativeElement]);
55
+ DeclareOperation("ClosureInverseSemigroup",
56
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
57
+ IsMultiplicativeElement, IsRecord]);
58
+
59
+ DeclareOperation("ClosureInverseMonoid",
60
+ [IsInverseMonoid and IsGeneratorsOfInverseSemigroup,
61
+ IsMultiplicativeElementCollection]);
62
+ DeclareOperation("ClosureInverseMonoid",
63
+ [IsInverseMonoid and IsGeneratorsOfInverseSemigroup,
64
+ IsMultiplicativeElementCollection,
65
+ IsRecord]);
66
+ DeclareOperation("ClosureInverseMonoid",
67
+ [IsInverseMonoid and IsGeneratorsOfInverseSemigroup,
68
+ IsListOrCollection and IsEmpty,
69
+ IsRecord]);
70
+ DeclareOperation("ClosureInverseMonoid",
71
+ [IsInverseMonoid and IsGeneratorsOfInverseSemigroup,
72
+ IsMultiplicativeElement]);
73
+ DeclareOperation("ClosureInverseMonoid",
74
+ [IsInverseMonoid and IsGeneratorsOfInverseSemigroup,
75
+ IsMultiplicativeElement, IsRecord]);
76
+
77
+ DeclareOperation("ClosureInverseSemigroupOrMonoidNC",
78
+ [IsFunction, IsSemigroup, IsList and IsFinite, IsRecord]);
79
+
80
+ # We use IsListOrCollection here because some collections of semigroup
81
+ # generators (such as elements/congruence classes in a quotient semigroup) do
82
+ # not satisfy IsMultiplicativeElementCollection (although the classes
83
+ # themselves do satisfy IsMultiplicativeElement).
84
+ DeclareOperation("ClosureSemigroup",
85
+ [IsSemigroup, IsListOrCollection, IsRecord]);
86
+ DeclareOperation("ClosureSemigroup",
87
+ [IsSemigroup, IsListOrCollection]);
88
+ DeclareOperation("ClosureSemigroup",
89
+ [IsSemigroup, IsListOrCollection and IsEmpty, IsRecord]);
90
+ DeclareOperation("ClosureSemigroup",
91
+ [IsSemigroup, IsMultiplicativeElement, IsRecord]);
92
+ DeclareOperation("ClosureSemigroup",
93
+ [IsSemigroup, IsMultiplicativeElement]);
94
+
95
+ DeclareOperation("ClosureMonoid",
96
+ [IsMonoid,
97
+ IsMultiplicativeElementWithOneCollection,
98
+ IsRecord]);
99
+ DeclareOperation("ClosureMonoid",
100
+ [IsMonoid, IsMultiplicativeElementWithOneCollection]);
101
+ DeclareOperation("ClosureMonoid",
102
+ [IsMonoid, IsListOrCollection and IsEmpty, IsRecord]);
103
+ DeclareOperation("ClosureMonoid",
104
+ [IsMonoid, IsMultiplicativeElementWithOne, IsRecord]);
105
+ DeclareOperation("ClosureMonoid",
106
+ [IsMonoid, IsMultiplicativeElementWithOne]);
107
+
108
+ DeclareOperation("ClosureSemigroupOrMonoidNC",
109
+ [IsFunction, IsSemigroup, IsList and IsFinite, IsRecord]);
110
+
111
+ DeclareOperation("AsSemigroup", [IsFunction, IsSemigroup]);
112
+ DeclareOperation("AsSemigroup", [IsFunction, IsRing, IsSemigroup]);
113
+ DeclareOperation("AsSemigroup", [IsFunction, IsPosInt, IsSemigroup]);
114
+ DeclareOperation("AsSemigroup", [IsFunction, IsPosInt, IsPosInt, IsSemigroup]);
115
+
116
+ DeclareConstructor("IsomorphismSemigroup",
117
+ [IsSemigroup, IsSemigroup]);
118
+ DeclareConstructor("IsomorphismSemigroup",
119
+ [IsSemigroup, IsRing, IsSemigroup]);
120
+ DeclareConstructor("IsomorphismSemigroup",
121
+ [IsSemigroup, IsPosInt, IsSemigroup]);
122
+ DeclareConstructor("IsomorphismSemigroup",
123
+ [IsSemigroup, IsPosInt, IsPosInt, IsSemigroup]);
124
+
125
+ DeclareOperation("AsMonoid", [IsFunction, IsSemigroup]);
126
+ DeclareOperation("AsMonoid", [IsFunction, IsRing, IsSemigroup]);
127
+ DeclareOperation("AsMonoid", [IsFunction, IsPosInt, IsSemigroup]);
128
+ DeclareOperation("AsMonoid", [IsFunction, IsPosInt, IsPosInt, IsSemigroup]);
129
+
130
+ DeclareConstructor("IsomorphismMonoid",
131
+ [IsSemigroup, IsSemigroup]);
132
+ DeclareConstructor("IsomorphismMonoid",
133
+ [IsSemigroup, IsRing, IsSemigroup]);
134
+ DeclareConstructor("IsomorphismMonoid",
135
+ [IsSemigroup, IsPosInt, IsSemigroup]);
136
+ DeclareConstructor("IsomorphismMonoid",
137
+ [IsSemigroup, IsPosInt, IsPosInt, IsSemigroup]);
138
+
139
+ DeclareAttribute("Generators", IsSemigroup);
140
+
141
+ DeclareGlobalFunction("RandomSemigroup");
142
+ DeclareConstructor("RandomSemigroupCons", [IsSemigroup, IsList]);
143
+ DeclareGlobalFunction("RandomMonoid");
144
+ DeclareConstructor("RandomMonoidCons", [IsMonoid, IsList]);
145
+ DeclareGlobalFunction("RandomInverseSemigroup");
146
+ DeclareConstructor("RandomInverseSemigroupCons", [IsSemigroup, IsList]);
147
+ DeclareGlobalFunction("RandomInverseMonoid");
148
+ DeclareConstructor("RandomInverseMonoidCons", [IsMonoid, IsList]);
149
+
150
+ DeclareConstructor("SEMIGROUPS_ProcessRandomArgsCons",
151
+ [IsSemigroup, IsList]);
152
+
153
+ DeclareOperation("SubsemigroupByProperty", [IsSemigroup, IsFunction]);
154
+ DeclareOperation("SubsemigroupByProperty",
155
+ [IsSemigroup, IsFunction, IsPosInt]);
156
+
157
+ DeclareOperation("InverseSubsemigroupByProperty",
158
+ [IsSemigroup, IsFunction]);
159
+ DeclareOperation("InverseSubsemigroupByProperty",
160
+ [IsInverseSemigroup and IsGeneratorsOfInverseSemigroup,
161
+ IsFunction,
162
+ IsPosInt]);
163
+
164
+ # undocumented
165
+ DeclareGlobalFunction("RegularSemigroup");