passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/x86_64-pc-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1069 -0
  17. gap/pkg/semigroups/config.status +1133 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libsemigroups-6be12ad2.so.2.0.0 +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,654 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/semigroups/semimaxplus.tst
4
+ #Y Copyright (C) 2015-2022 James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local BruteForceInverseCheck, BruteForceIsoCheck, F, S, T, i, inv, map, mat
12
+ #@local rels, x, y
13
+ gap> START_TEST("Semigroups package: standard/semigroups/semimaxplus.tst");
14
+ gap> LoadPackage("semigroups", false);;
15
+
16
+ #
17
+ gap> SEMIGROUPS.StartTest();
18
+
19
+ # semimaxplus: C++ code working, for max-plus matrix semigroup
20
+ gap> S := Semigroup(Matrix(IsMaxPlusMatrix, [[0, -4], [-4, -1]]),
21
+ > Matrix(IsMaxPlusMatrix, [[0, -3], [-3, -1]]));
22
+ <semigroup of 2x2 max-plus matrices with 2 generators>
23
+ gap> Size(S);
24
+ 26
25
+ gap> NrDClasses(S);
26
+ 23
27
+ gap> NrRClasses(S);
28
+ 24
29
+ gap> NrLClasses(S);
30
+ 24
31
+ gap> NrHClasses(S);
32
+ 26
33
+ gap> NrIdempotents(S);
34
+ 4
35
+ gap> MultiplicativeZero(S);
36
+ fail
37
+ gap> AsSemigroup(IsMaxPlusMatrixSemigroup, S) = S;
38
+ true
39
+
40
+ # semimaxplus: C++ code working, for natural matrix semigroup
41
+ gap> S := Monoid(Matrix(IsNTPMatrix, [[0, 1, 0], [1, 1, 0], [0, 1, 0]], 1, 2),
42
+ > Matrix(IsNTPMatrix, [[1, 0, 0], [1, 0, 1], [1, 0, 0]], 1, 2));
43
+ <monoid of 3x3 ntp matrices with 2 generators>
44
+ gap> Size(S);
45
+ 37
46
+ gap> Length(RelationsOfFpMonoid(Range(IsomorphismFpMonoid(S))));
47
+ 12
48
+ gap> NrDClasses(S);
49
+ 8
50
+ gap> NrRClasses(S);
51
+ 14
52
+ gap> NrLClasses(S);
53
+ 17
54
+ gap> NrHClasses(S);
55
+ 35
56
+ gap> NrIdempotents(S);
57
+ 20
58
+ gap> MultiplicativeZero(S);
59
+ fail
60
+
61
+ # helper functions
62
+ gap> BruteForceIsoCheck := function(iso)
63
+ > local x, y;
64
+ > if not IsInjective(iso) or not IsSurjective(iso) then
65
+ > return false;
66
+ > fi;
67
+ > for x in Generators(Source(iso)) do
68
+ > for y in Generators(Source(iso)) do
69
+ > if x ^ iso * y ^ iso <> (x * y) ^ iso then
70
+ > return false;
71
+ > fi;
72
+ > od;
73
+ > od;
74
+ > return true;
75
+ > end;;
76
+ gap> BruteForceInverseCheck := function(map)
77
+ > local inv;
78
+ > inv := InverseGeneralMapping(map);
79
+ > return ForAll(Source(map), x -> x = (x ^ map) ^ inv)
80
+ > and ForAll(Range(map), x -> x = (x ^ inv) ^ map);
81
+ > end;;
82
+
83
+ # IsomorphismSemigroup: for semigroup of same type
84
+ gap> S := Semigroup(Matrix(IsTropicalMaxPlusMatrix, [[0, 4], [4, 1]], 10));
85
+ <commutative semigroup of 2x2 tropical max-plus matrices with 1 generator>
86
+ gap> AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, 10, S) = S;
87
+ true
88
+ gap> map := IsomorphismSemigroup(IsTropicalMaxPlusMatrixSemigroup, 11, S);;
89
+ gap> T := Range(map);;
90
+ gap> T = S;
91
+ false
92
+ gap> Size(S) = Size(T);
93
+ true
94
+ gap> NrDClasses(S) = NrDClasses(T);
95
+ true
96
+ gap> NrRClasses(S) = NrRClasses(T);
97
+ true
98
+ gap> NrLClasses(S) = NrLClasses(T);
99
+ true
100
+ gap> NrIdempotents(S) = NrIdempotents(T);
101
+ true
102
+ gap> BruteForceIsoCheck(map);
103
+ true
104
+ gap> BruteForceInverseCheck(map);
105
+ true
106
+ gap> S := Semigroup(Matrix(IsNTPMatrix, [[0, 0], [1, 3]], 2, 2));
107
+ <commutative semigroup of 2x2 ntp matrices with 1 generator>
108
+ gap> AsSemigroup(IsNTPMatrixSemigroup, 2, 2, S) = S;
109
+ true
110
+ gap> map := IsomorphismSemigroup(IsNTPMatrixSemigroup, 3, 3, S);;
111
+ gap> T := Range(map);;
112
+ gap> T = S;
113
+ false
114
+ gap> Size(S) = Size(T);
115
+ true
116
+ gap> NrDClasses(S) = NrDClasses(T);
117
+ true
118
+ gap> NrRClasses(S) = NrRClasses(T);
119
+ true
120
+ gap> NrLClasses(S) = NrLClasses(T);
121
+ true
122
+ gap> NrIdempotents(S) = NrIdempotents(T);
123
+ true
124
+ gap> BruteForceIsoCheck(map);
125
+ true
126
+ gap> BruteForceInverseCheck(map);
127
+ true
128
+ gap> S := FreeBand(2);
129
+ <free band on the generators [ x1, x2 ]>
130
+ gap> IsomorphismSemigroup(IsTropicalMaxPlusMatrixSemigroup, S);
131
+ <free band on the generators [ x1, x2 ]> ->
132
+ <semigroup of size 6, 7x7 tropical max-plus matrices with 2 generators>
133
+ gap> IsomorphismSemigroup(IsNTPMatrixSemigroup, S);
134
+ <free band on the generators [ x1, x2 ]> ->
135
+ <semigroup of size 6, 7x7 ntp matrices with 2 generators>
136
+
137
+ # AsSemigroup:
138
+ # convert from IsPBRSemigroup to IsMaxPlusMatrixSemigroup
139
+ gap> S := Semigroup([
140
+ > PBR([[-2], [-3], [-4], [-5], [-6], [-7], [-8], [-8], [-1]],
141
+ > [[9], [1], [2], [3], [4], [5], [6], [7, 8], []])]);
142
+ <commutative pbr semigroup of degree 9 with 1 generator>
143
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
144
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
145
+ gap> Size(S) = Size(T);
146
+ true
147
+ gap> NrDClasses(S) = NrDClasses(T);
148
+ true
149
+ gap> NrRClasses(S) = NrRClasses(T);
150
+ true
151
+ gap> NrLClasses(S) = NrLClasses(T);
152
+ true
153
+ gap> NrIdempotents(S) = NrIdempotents(T);
154
+ true
155
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
156
+ gap> BruteForceIsoCheck(map);
157
+ true
158
+ gap> BruteForceInverseCheck(map);
159
+ true
160
+
161
+ # AsSemigroup:
162
+ # convert from IsFpSemigroup to IsMaxPlusMatrixSemigroup
163
+ gap> F := FreeSemigroup(1);; AssignGeneratorVariables(F);;
164
+ gap> rels := [[s1 ^ 9, s1 ^ 8]];;
165
+ gap> S := F / rels;
166
+ <fp semigroup with 1 generator and 1 relation of length 18>
167
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
168
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
169
+ gap> Size(S) = Size(T);
170
+ true
171
+ gap> NrDClasses(S) = NrDClasses(T);
172
+ true
173
+ gap> NrRClasses(S) = NrRClasses(T);
174
+ true
175
+ gap> NrLClasses(S) = NrLClasses(T);
176
+ true
177
+ gap> NrIdempotents(S) = NrIdempotents(T);
178
+ true
179
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
180
+ gap> BruteForceIsoCheck(map);
181
+ true
182
+ gap> BruteForceInverseCheck(map);
183
+ true
184
+
185
+ # AsSemigroup:
186
+ # convert from IsBipartitionSemigroup to IsMaxPlusMatrixSemigroup
187
+ gap> S := Semigroup([
188
+ > Bipartition([[1, -2], [2, -3], [3, -4], [4, -5], [5, -6], [6, -7],
189
+ > [7, 8, -8], [9, -1], [-9]])]);
190
+ <commutative bipartition semigroup of degree 9 with 1 generator>
191
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
192
+ <commutative semigroup of 9x9 max-plus matrices with 1 generator>
193
+ gap> Size(S) = Size(T);
194
+ true
195
+ gap> NrDClasses(S) = NrDClasses(T);
196
+ true
197
+ gap> NrRClasses(S) = NrRClasses(T);
198
+ true
199
+ gap> NrLClasses(S) = NrLClasses(T);
200
+ true
201
+ gap> NrIdempotents(S) = NrIdempotents(T);
202
+ true
203
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
204
+ gap> BruteForceIsoCheck(map);
205
+ true
206
+ gap> BruteForceInverseCheck(map);
207
+ true
208
+
209
+ # AsSemigroup:
210
+ # convert from IsTransformationSemigroup to IsMaxPlusMatrixSemigroup
211
+ gap> S := Semigroup([Transformation([2, 3, 4, 5, 6, 7, 8, 8, 1])]);
212
+ <commutative transformation semigroup of degree 9 with 1 generator>
213
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
214
+ <commutative semigroup of 9x9 max-plus matrices with 1 generator>
215
+ gap> Size(S) = Size(T);
216
+ true
217
+ gap> NrDClasses(S) = NrDClasses(T);
218
+ true
219
+ gap> NrRClasses(S) = NrRClasses(T);
220
+ true
221
+ gap> NrLClasses(S) = NrLClasses(T);
222
+ true
223
+ gap> NrIdempotents(S) = NrIdempotents(T);
224
+ true
225
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
226
+ gap> BruteForceIsoCheck(map);
227
+ true
228
+ gap> BruteForceInverseCheck(map);
229
+ true
230
+
231
+ # AsSemigroup:
232
+ # convert from IsBooleanMatSemigroup to IsMaxPlusMatrixSemigroup
233
+ gap> S := Semigroup([
234
+ > Matrix(IsBooleanMat,
235
+ > [[false, true, false, false, false, false, false, false, false],
236
+ > [false, false, true, false, false, false, false, false, false],
237
+ > [false, false, false, true, false, false, false, false, false],
238
+ > [false, false, false, false, true, false, false, false, false],
239
+ > [false, false, false, false, false, true, false, false, false],
240
+ > [false, false, false, false, false, false, true, false, false],
241
+ > [false, false, false, false, false, false, false, true, false],
242
+ > [false, false, false, false, false, false, false, true, false],
243
+ > [true, false, false, false, false, false, false, false, false]])]);
244
+ <commutative semigroup of 9x9 boolean matrices with 1 generator>
245
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
246
+ <commutative semigroup of 9x9 max-plus matrices with 1 generator>
247
+ gap> Size(S) = Size(T);
248
+ true
249
+ gap> NrDClasses(S) = NrDClasses(T);
250
+ true
251
+ gap> NrRClasses(S) = NrRClasses(T);
252
+ true
253
+ gap> NrLClasses(S) = NrLClasses(T);
254
+ true
255
+ gap> NrIdempotents(S) = NrIdempotents(T);
256
+ true
257
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
258
+ gap> BruteForceIsoCheck(map);
259
+ true
260
+ gap> BruteForceInverseCheck(map);
261
+ true
262
+
263
+ # AsSemigroup:
264
+ # convert from IsMaxPlusMatrixSemigroup to IsMaxPlusMatrixSemigroup
265
+ gap> mat := ListWithIdenticalEntries(9, -infinity);;
266
+ gap> mat := List([1 .. 9], x -> ShallowCopy(mat));;
267
+ gap> for i in [1 .. 7] do mat[i][i + 1] := 0; od;
268
+ gap> mat[8][8] := 0;;
269
+ gap> mat[9][1] := 0;;
270
+ gap> S := Semigroup(Matrix(IsMaxPlusMatrix, mat));
271
+ <commutative semigroup of 9x9 max-plus matrices with 1 generator>
272
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
273
+ <commutative semigroup of 9x9 max-plus matrices with 1 generator>
274
+ gap> Size(S) = Size(T);
275
+ true
276
+ gap> NrDClasses(S) = NrDClasses(T);
277
+ true
278
+ gap> NrRClasses(S) = NrRClasses(T);
279
+ true
280
+ gap> NrLClasses(S) = NrLClasses(T);
281
+ true
282
+ gap> NrIdempotents(S) = NrIdempotents(T);
283
+ true
284
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
285
+ gap> BruteForceIsoCheck(map);
286
+ true
287
+ gap> BruteForceInverseCheck(map);
288
+ true
289
+
290
+ # AsSemigroup:
291
+ # convert from IsMinPlusMatrixSemigroup to IsMaxPlusMatrixSemigroup
292
+ gap> mat := ListWithIdenticalEntries(9, infinity);;
293
+ gap> mat := List([1 .. 9], x -> ShallowCopy(mat));;
294
+ gap> for i in [1 .. 7] do mat[i][i + 1] := 0; od;
295
+ gap> mat[8][8] := 0;;
296
+ gap> mat[9][1] := 0;;
297
+ gap> S := Semigroup(Matrix(IsMinPlusMatrix, mat));
298
+ <commutative semigroup of 9x9 min-plus matrices with 1 generator>
299
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
300
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
301
+ gap> Size(S) = Size(T);
302
+ true
303
+ gap> NrDClasses(S) = NrDClasses(T);
304
+ true
305
+ gap> NrRClasses(S) = NrRClasses(T);
306
+ true
307
+ gap> NrLClasses(S) = NrLClasses(T);
308
+ true
309
+ gap> NrIdempotents(S) = NrIdempotents(T);
310
+ true
311
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
312
+ gap> BruteForceIsoCheck(map);
313
+ true
314
+ gap> BruteForceInverseCheck(map);
315
+ true
316
+
317
+ # AsSemigroup:
318
+ # convert from IsProjectiveMaxPlusMatrixSemigroup to IsMaxPlusMatrixSemigroup
319
+ gap> mat := ListWithIdenticalEntries(9, -infinity);;
320
+ gap> mat := List([1 .. 9], x -> ShallowCopy(mat));;
321
+ gap> for i in [1 .. 7] do mat[i][i + 1] := 0; od;
322
+ gap> mat[8][8] := 0;;
323
+ gap> mat[9][1] := 0;;
324
+ gap> S := Semigroup(Matrix(IsProjectiveMaxPlusMatrix, mat));
325
+ <commutative semigroup of 9x9 projective max-plus matrices with 1 generator>
326
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
327
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
328
+ gap> Size(S) = Size(T);
329
+ true
330
+ gap> NrDClasses(S) = NrDClasses(T);
331
+ true
332
+ gap> NrRClasses(S) = NrRClasses(T);
333
+ true
334
+ gap> NrLClasses(S) = NrLClasses(T);
335
+ true
336
+ gap> NrIdempotents(S) = NrIdempotents(T);
337
+ true
338
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
339
+ gap> BruteForceIsoCheck(map);
340
+ true
341
+ gap> BruteForceInverseCheck(map);
342
+ true
343
+
344
+ # AsSemigroup:
345
+ # convert from IsIntegerMatrixSemigroup to IsMaxPlusMatrixSemigroup
346
+ gap> S := Semigroup([
347
+ > Matrix(Integers,
348
+ > [[0, 1, 0, 0, 0, 0, 0, 0, 0],
349
+ > [0, 0, 1, 0, 0, 0, 0, 0, 0],
350
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0],
351
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0],
352
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0],
353
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0],
354
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0],
355
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0],
356
+ > [1, 0, 0, 0, 0, 0, 0, 0, 0]])]);
357
+ <commutative semigroup of 9x9 integer matrices with 1 generator>
358
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
359
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
360
+ gap> Size(S) = Size(T);
361
+ true
362
+ gap> NrDClasses(S) = NrDClasses(T);
363
+ true
364
+ gap> NrRClasses(S) = NrRClasses(T);
365
+ true
366
+ gap> NrLClasses(S) = NrLClasses(T);
367
+ true
368
+ gap> NrIdempotents(S) = NrIdempotents(T);
369
+ true
370
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
371
+ gap> BruteForceIsoCheck(map);
372
+ true
373
+ gap> BruteForceInverseCheck(map);
374
+ true
375
+
376
+ # AsSemigroup:
377
+ # convert from IsTropicalMaxPlusMatrixSemigroup to IsMaxPlusMatrixSemigroup
378
+ gap> mat := ListWithIdenticalEntries(9, -infinity);;
379
+ gap> mat := List([1 .. 9], x -> ShallowCopy(mat));;
380
+ gap> for i in [1 .. 7] do mat[i][i + 1] := 0; od;
381
+ gap> mat[8][8] := 0;;
382
+ gap> mat[9][1] := 0;;
383
+ gap> S := Semigroup(Matrix(IsTropicalMaxPlusMatrix, mat, 2));
384
+ <commutative semigroup of 9x9 tropical max-plus matrices with 1 generator>
385
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
386
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
387
+ gap> Size(S) = Size(T);
388
+ true
389
+ gap> NrDClasses(S) = NrDClasses(T);
390
+ true
391
+ gap> NrRClasses(S) = NrRClasses(T);
392
+ true
393
+ gap> NrLClasses(S) = NrLClasses(T);
394
+ true
395
+ gap> NrIdempotents(S) = NrIdempotents(T);
396
+ true
397
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
398
+ gap> BruteForceIsoCheck(map);
399
+ true
400
+ gap> BruteForceInverseCheck(map);
401
+ true
402
+
403
+ # AsSemigroup:
404
+ # convert from IsTropicalMinPlusMatrixSemigroup to IsMaxPlusMatrixSemigroup
405
+ gap> mat := ListWithIdenticalEntries(9, infinity);;
406
+ gap> mat := List([1 .. 9], x -> ShallowCopy(mat));;
407
+ gap> for i in [1 .. 7] do mat[i][i + 1] := 0; od;
408
+ gap> mat[8][8] := 0;;
409
+ gap> mat[9][1] := 0;;
410
+ gap> S := Semigroup(Matrix(IsTropicalMinPlusMatrix, mat, 4));
411
+ <commutative semigroup of 9x9 tropical min-plus matrices with 1 generator>
412
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
413
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
414
+ gap> Size(S) = Size(T);
415
+ true
416
+ gap> NrDClasses(S) = NrDClasses(T);
417
+ true
418
+ gap> NrRClasses(S) = NrRClasses(T);
419
+ true
420
+ gap> NrLClasses(S) = NrLClasses(T);
421
+ true
422
+ gap> NrIdempotents(S) = NrIdempotents(T);
423
+ true
424
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
425
+ gap> BruteForceIsoCheck(map);
426
+ true
427
+ gap> BruteForceInverseCheck(map);
428
+ true
429
+
430
+ # AsSemigroup:
431
+ # convert from IsNTPMatrixSemigroup to IsMaxPlusMatrixSemigroup
432
+ gap> S := Semigroup([
433
+ > Matrix(IsNTPMatrix,
434
+ > [[0, 1, 0, 0, 0, 0, 0, 0, 0],
435
+ > [0, 0, 1, 0, 0, 0, 0, 0, 0],
436
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0],
437
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0],
438
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0],
439
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0],
440
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0],
441
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0],
442
+ > [1, 0, 0, 0, 0, 0, 0, 0, 0]], 3, 4)]);
443
+ <commutative semigroup of 9x9 ntp matrices with 1 generator>
444
+ gap> T := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
445
+ <commutative semigroup of size 8, 9x9 max-plus matrices with 1 generator>
446
+ gap> Size(S) = Size(T);
447
+ true
448
+ gap> NrDClasses(S) = NrDClasses(T);
449
+ true
450
+ gap> NrRClasses(S) = NrRClasses(T);
451
+ true
452
+ gap> NrLClasses(S) = NrLClasses(T);
453
+ true
454
+ gap> NrIdempotents(S) = NrIdempotents(T);
455
+ true
456
+ gap> map := IsomorphismSemigroup(IsMaxPlusMatrixSemigroup, S);;
457
+ gap> BruteForceIsoCheck(map);
458
+ true
459
+ gap> BruteForceInverseCheck(map);
460
+ true
461
+
462
+ # Test RandomSemigroup
463
+ gap> RandomSemigroup(IsMaxPlusMatrixSemigroup);;
464
+ gap> RandomSemigroup(IsMaxPlusMatrixSemigroup, 2);;
465
+ gap> RandomSemigroup(IsMaxPlusMatrixSemigroup, 2, 5);;
466
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup);;
467
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2);;
468
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2, 5);;
469
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2, 2, 2);;
470
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, "a");
471
+ Error, the 2nd argument (number of generators) must be a pos int
472
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2, "a");;
473
+ Error, the 3rd argument (matrix dimension) must be a pos int
474
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2, 2, "a");;
475
+ Error, the 4th argument (semiring threshold) must be a pos int
476
+ gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 2, 2, 2, 2);;
477
+ Error, there must be at most four arguments
478
+ gap> RandomMonoid(IsMaxPlusMatrixMonoid);;
479
+ gap> RandomMonoid(IsMaxPlusMatrixMonoid, 2);;
480
+ gap> RandomMonoid(IsMaxPlusMatrixMonoid, 2, 5);;
481
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid);;
482
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2);;
483
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2, 5);;
484
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2, 2, 2);;
485
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, "a");
486
+ Error, the 2nd argument (number of generators) must be a pos int
487
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2, "a");;
488
+ Error, the 3rd argument (matrix dimension) must be a pos int
489
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2, 2, "a");;
490
+ Error, the 4th argument (semiring threshold) must be a pos int
491
+ gap> RandomMonoid(IsTropicalMaxPlusMatrixMonoid, 2, 2, 2, 2);;
492
+ Error, there must be at most four arguments
493
+ gap> RandomSemigroup(IsNTPMatrixSemigroup);;
494
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2);;
495
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 5);;
496
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 2, 2);;
497
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 2, 2, 2);;
498
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, "a");
499
+ Error, the 2nd argument (number of generators) must be a pos int
500
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, "a");;
501
+ Error, the 3rd argument (matrix dimension) must be a pos int
502
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 2, "a");;
503
+ Error, the 4th argument (semiring threshold) must be a pos int
504
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 2, 2, "a");;
505
+ Error, the 5th argument (semiring period) must be a pos int
506
+ gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 2, 2, 2, 2);;
507
+ Error, there must be at most 5 arguments
508
+ gap> RandomMonoid(IsNTPMatrixMonoid);;
509
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2);;
510
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 5);;
511
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 2, 2);;
512
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 2, 2, 2);;
513
+ gap> RandomMonoid(IsNTPMatrixMonoid, "a");
514
+ Error, the 2nd argument (number of generators) must be a pos int
515
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, "a");;
516
+ Error, the 3rd argument (matrix dimension) must be a pos int
517
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 2, "a");;
518
+ Error, the 4th argument (semiring threshold) must be a pos int
519
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 2, 2, "a");;
520
+ Error, the 5th argument (semiring period) must be a pos int
521
+ gap> RandomMonoid(IsNTPMatrixMonoid, 2, 2, 2, 2, 2);;
522
+ Error, there must be at most 5 arguments
523
+
524
+ # IsFinite, IsTorsion, NormalizeSemigroup
525
+ gap> IsFinite(Semigroup(Matrix(IsMaxPlusMatrix, [[0, -3], [-2, -10]])));
526
+ true
527
+ gap> IsFinite(Semigroup(Matrix(IsMaxPlusMatrix, [[-infinity, 1, -infinity],
528
+ > [-infinity, -infinity, -infinity], [-infinity, 1, -infinity]])));
529
+ true
530
+ gap> IsFinite(Semigroup(Matrix(IsMaxPlusMatrix,
531
+ > [[1, -infinity, 2], [-2, 4, -infinity], [1, 0, 3]])));
532
+ false
533
+ gap> IsFinite(Semigroup([
534
+ > Matrix(IsMaxPlusMatrix,
535
+ > [[0, -infinity, -1], [0, -infinity, -4], [-infinity, 0, -infinity]]),
536
+ > Matrix(IsMaxPlusMatrix,
537
+ > [[-2, -2, 0], [0, -infinity, -3], [-5, 0, -infinity]]),
538
+ > Matrix(IsMaxPlusMatrix,
539
+ > [[-infinity, -infinity, -infinity],
540
+ > [0, 0, -infinity],
541
+ > [-5, 0, -infinity]])]));
542
+ false
543
+ gap> IsFinite(Semigroup(Matrix(IsMinPlusMatrix, [[infinity, 0], [5, 4]])));
544
+ false
545
+ gap> IsFinite(Semigroup(Matrix(IsMinPlusMatrix, [[1, 0], [0, infinity]])));
546
+ true
547
+ gap> IsFinite(Semigroup(Matrix(IsMinPlusMatrix, [[infinity, -2], [2, 1]])));
548
+ true
549
+ gap> NormalizeSemigroup(Semigroup([
550
+ > Matrix(IsMaxPlusMatrix, [[0, -3], [-2, -10]])]));
551
+ <commutative semigroup of 2x2 max-plus matrices with 1 generator>
552
+ gap> IsTorsion(Semigroup(Matrix(IsMaxPlusMatrix, [[0, -3], [-2, -10]])));
553
+ true
554
+ gap> IsTorsion(Semigroup(Matrix(IsMaxPlusMatrix,
555
+ > [[1, -infinity, 2], [-2, 4, -infinity], [1, 0, 3]])));
556
+ false
557
+
558
+ # AsMonoid
559
+ gap> S := AsSemigroup(IsMaxPlusMatrixSemigroup,
560
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));
561
+ <commutative semigroup of 5x5 max-plus matrices with 1 generator>
562
+ gap> AsMonoid(S);
563
+ <trivial group of 1x1 max-plus matrices with 1 generator>
564
+ gap> S := AsSemigroup(IsMaxPlusMatrixSemigroup,
565
+ > Semigroup(Transformation([1, 1]), Transformation([2, 2])));
566
+ <semigroup of 2x2 max-plus matrices with 2 generators>
567
+ gap> AsMonoid(S);
568
+ fail
569
+ gap> S := AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3,
570
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));
571
+ <commutative semigroup of 5x5 tropical max-plus matrices with 1 generator>
572
+ gap> AsMonoid(S);
573
+ <trivial group of 1x1 tropical max-plus matrices with 1 generator>
574
+ gap> S := AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3,
575
+ > Semigroup(Transformation([1, 1]), Transformation([2, 2])));
576
+ <semigroup of 2x2 tropical max-plus matrices with 2 generators>
577
+ gap> AsMonoid(S);
578
+ fail
579
+ gap> S := AsSemigroup(IsNTPMatrixSemigroup, 3, 4,
580
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));
581
+ <commutative semigroup of 5x5 ntp matrices with 1 generator>
582
+ gap> AsMonoid(S);
583
+ <trivial group of 1x1 ntp matrices with 1 generator>
584
+ gap> S := AsSemigroup(IsNTPMatrixSemigroup, 3, 4,
585
+ > Semigroup(Transformation([1, 1]), Transformation([2, 2])));
586
+ <semigroup of 2x2 ntp matrices with 2 generators>
587
+ gap> AsMonoid(S);
588
+ fail
589
+
590
+ # IsomorphismMonoid
591
+ gap> map := IsomorphismMonoid(IsMaxPlusMatrixMonoid,
592
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));;
593
+ gap> Range(map);
594
+ <trivial group of 1x1 max-plus matrices with 1 generator>
595
+ gap> map := IsomorphismMonoid(IsTropicalMaxPlusMatrixMonoid, 3,
596
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));;
597
+ gap> Range(map);
598
+ <trivial group of 1x1 tropical max-plus matrices with 1 generator>
599
+ gap> map := IsomorphismMonoid(IsNTPMatrixMonoid, 3, 4,
600
+ > Semigroup(Transformation([1, 2, 3, 3, 3])));;
601
+ gap> Range(map);
602
+ <trivial group of 1x1 ntp matrices with 1 generator>
603
+ gap> S := Semigroup(Transformation([1, 2, 2, 2]));
604
+ <commutative transformation semigroup of degree 4 with 1 generator>
605
+ gap> S := AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, S);
606
+ <commutative semigroup of 4x4 tropical max-plus matrices with 1 generator>
607
+ gap> map := IsomorphismMonoid(IsTropicalMaxPlusMatrixMonoid, S);
608
+ <trivial group of 4x4 tropical max-plus matrices with 1 generator> ->
609
+ <trivial group of 1x1 tropical max-plus matrices with 1 generator>
610
+ gap> map := IsomorphismMonoid(IsTropicalMaxPlusMatrixMonoid,
611
+ > Semigroup(Transformation([1, 2, 2, 2])));;
612
+ gap> map := IsomorphismMonoid(IsNTPMatrixMonoid, FreeBand(1));
613
+ <free band on the generators [ x1 ]> ->
614
+ <trivial group of 1x1 ntp matrices with 1 generator>
615
+
616
+ # FullTropicalMaxPlusMonoid
617
+ gap> FullTropicalMaxPlusMonoid(3, 1);
618
+ Error, the 1st argument (dimension) must be 2
619
+ gap> S := FullTropicalMaxPlusMonoid(2, 1);
620
+ <monoid of 2x2 tropical max-plus matrices with 6 generators>
621
+ gap> Size(S);
622
+ 81
623
+ gap> S := FullTropicalMaxPlusMonoid(2, 2);
624
+ <monoid of 2x2 tropical max-plus matrices with 9 generators>
625
+ gap> Size(S);
626
+ 256
627
+ gap> S := FullTropicalMaxPlusMonoid(2, 3);
628
+ <monoid of 2x2 tropical max-plus matrices with 13 generators>
629
+ gap> Size(S);
630
+ 625
631
+
632
+ # FullTropicalMinPlusMonoid
633
+ gap> S := FullTropicalMinPlusMonoid(2, 1);
634
+ <monoid of 2x2 tropical min-plus matrices with 5 generators>
635
+ gap> Size(S);
636
+ 81
637
+ gap> S := FullTropicalMinPlusMonoid(2, 2);
638
+ <monoid of 2x2 tropical min-plus matrices with 6 generators>
639
+ gap> Size(S);
640
+ 256
641
+ gap> S := FullTropicalMinPlusMonoid(2, 3);
642
+ <monoid of 2x2 tropical min-plus matrices with 7 generators>
643
+ gap> Size(S);
644
+ 625
645
+ gap> S := FullTropicalMinPlusMonoid(3, 1);
646
+ <monoid of 3x3 tropical min-plus matrices with 11 generators>
647
+ gap> Size(S);
648
+ 19683
649
+ gap> S := FullTropicalMinPlusMonoid(4, 3);
650
+ Error, the 1st argument (dimension) must be 2 or 3
651
+
652
+ #
653
+ gap> SEMIGROUPS.StopTest();
654
+ gap> STOP_TEST("Semigroups package: standard/semigroups/semimaxplus.tst");