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,2635 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/semigroups/semibipart.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 A, B, BruteForceInverseCheck, BruteForceIsoCheck, C, F, R, S, T, an
12
+ #@local gr1, gr2, inv, map, o1, o2, rels, x, y
13
+ gap> START_TEST("Semigroups package: standard/semigroups/semibipart.tst");
14
+ gap> LoadPackage("semigroups", false);;
15
+
16
+ #
17
+ gap> SEMIGROUPS.StartTest();
18
+
19
+ # BruteForceIsoCheck helper functions
20
+ gap> BruteForceIsoCheck := function(iso)
21
+ > local x, y;
22
+ > if not IsInjective(iso) or not IsSurjective(iso) then
23
+ > return false;
24
+ > fi;
25
+ > for x in Generators(Source(iso)) do
26
+ > for y in Generators(Source(iso)) do
27
+ > if x ^ iso * y ^ iso <> (x * y) ^ iso then
28
+ > return false;
29
+ > fi;
30
+ > od;
31
+ > od;
32
+ > return true;
33
+ > end;;
34
+ gap> BruteForceInverseCheck := function(map)
35
+ > local inv;
36
+ > inv := InverseGeneralMapping(map);
37
+ > return ForAll(Source(map), x -> x = (x ^ map) ^ inv)
38
+ > and ForAll(Range(map), x -> x = (x ^ inv) ^ map);
39
+ > end;;
40
+
41
+ # IsomorphismSemigroup for IsBlockBijection checks if the semigroup is inverse
42
+ # inside the method and not in the filter to enter the method.
43
+ gap> S := ReesMatrixSemigroup(Group([(1, 2)]), [[()]]);
44
+ <Rees matrix semigroup 1x1 over Group([ (1,2) ])>
45
+ gap> S := AsSemigroup(IsBlockBijectionSemigroup, S);
46
+ <block bijection group of size 2, degree 3 with 1 generator>
47
+ gap> IsomorphismSemigroup(IsBlockBijectionSemigroup,
48
+ > FullTransformationMonoid(2));
49
+ Error, the 2nd argument must be an inverse semigroup
50
+
51
+ # AsSemigroup:
52
+ # convert from IsPBRSemigroup to IsBipartitionSemigroup
53
+ gap> S := Semigroup([
54
+ > PBR([[-2, 1, 2], [-2, 1, 2]], [[-1], [-2, 1, 2]]),
55
+ > PBR([[-1, 1, 2], [-1, 1, 2]], [[-1, 1, 2], [-2]])]);
56
+ <pbr semigroup of degree 2 with 2 generators>
57
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
58
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
59
+ gap> Size(S) = Size(T);
60
+ true
61
+ gap> NrDClasses(S) = NrDClasses(T);
62
+ true
63
+ gap> NrRClasses(S) = NrRClasses(T);
64
+ true
65
+ gap> NrLClasses(S) = NrLClasses(T);
66
+ true
67
+ gap> NrIdempotents(S) = NrIdempotents(T);
68
+ true
69
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
70
+ gap> BruteForceIsoCheck(map);
71
+ true
72
+ gap> BruteForceInverseCheck(map);
73
+ true
74
+
75
+ # AsSemigroup:
76
+ # convert from IsFpSemigroup to IsBipartitionSemigroup
77
+ gap> F := FreeSemigroup(2);; AssignGeneratorVariables(F);;
78
+ gap> rels := [[s1 ^ 2, s1], [s1 * s2, s2], [s2 * s1, s1], [s2 ^ 2, s2]];;
79
+ gap> S := F / rels;
80
+ <fp semigroup with 2 generators and 4 relations of length 14>
81
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
82
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
83
+ gap> Size(S) = Size(T);
84
+ true
85
+ gap> NrDClasses(S) = NrDClasses(T);
86
+ true
87
+ gap> NrRClasses(S) = NrRClasses(T);
88
+ true
89
+ gap> NrLClasses(S) = NrLClasses(T);
90
+ true
91
+ gap> NrIdempotents(S) = NrIdempotents(T);
92
+ true
93
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
94
+ gap> BruteForceIsoCheck(map);
95
+ true
96
+ gap> BruteForceInverseCheck(map);
97
+ true
98
+
99
+ # AsSemigroup:
100
+ # convert from IsBipartitionSemigroup to IsBipartitionSemigroup
101
+ gap> S := Semigroup([
102
+ > Bipartition([[1, 2, -2], [-1]]),
103
+ > Bipartition([[1, 2, -1], [-2]])]);
104
+ <bipartition semigroup of degree 2 with 2 generators>
105
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
106
+ <bipartition semigroup of degree 2 with 2 generators>
107
+ gap> Size(S) = Size(T);
108
+ true
109
+ gap> NrDClasses(S) = NrDClasses(T);
110
+ true
111
+ gap> NrRClasses(S) = NrRClasses(T);
112
+ true
113
+ gap> NrLClasses(S) = NrLClasses(T);
114
+ true
115
+ gap> NrIdempotents(S) = NrIdempotents(T);
116
+ true
117
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
118
+ gap> BruteForceIsoCheck(map);
119
+ true
120
+ gap> BruteForceInverseCheck(map);
121
+ true
122
+
123
+ # AsSemigroup:
124
+ # convert from IsTransformationSemigroup to IsBipartitionSemigroup
125
+ gap> S := Semigroup([
126
+ > Transformation([2, 2]), Transformation([1, 1])]);
127
+ <transformation semigroup of degree 2 with 2 generators>
128
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
129
+ <bipartition semigroup of degree 2 with 2 generators>
130
+ gap> Size(S) = Size(T);
131
+ true
132
+ gap> NrDClasses(S) = NrDClasses(T);
133
+ true
134
+ gap> NrRClasses(S) = NrRClasses(T);
135
+ true
136
+ gap> NrLClasses(S) = NrLClasses(T);
137
+ true
138
+ gap> NrIdempotents(S) = NrIdempotents(T);
139
+ true
140
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
141
+ gap> BruteForceIsoCheck(map);
142
+ true
143
+ gap> BruteForceInverseCheck(map);
144
+ true
145
+
146
+ # AsSemigroup:
147
+ # convert from IsBooleanMatSemigroup to IsBipartitionSemigroup
148
+ gap> S := Semigroup([
149
+ > Matrix(IsBooleanMat,
150
+ > [[false, true], [false, true]]),
151
+ > Matrix(IsBooleanMat,
152
+ > [[true, false], [true, false]])]);
153
+ <semigroup of 2x2 boolean matrices with 2 generators>
154
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
155
+ <bipartition semigroup of degree 2 with 2 generators>
156
+ gap> Size(S) = Size(T);
157
+ true
158
+ gap> NrDClasses(S) = NrDClasses(T);
159
+ true
160
+ gap> NrRClasses(S) = NrRClasses(T);
161
+ true
162
+ gap> NrLClasses(S) = NrLClasses(T);
163
+ true
164
+ gap> NrIdempotents(S) = NrIdempotents(T);
165
+ true
166
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
167
+ gap> BruteForceIsoCheck(map);
168
+ true
169
+ gap> BruteForceInverseCheck(map);
170
+ true
171
+
172
+ # AsSemigroup:
173
+ # convert from IsMaxPlusMatrixSemigroup to IsBipartitionSemigroup
174
+ gap> S := Semigroup([
175
+ > Matrix(IsMaxPlusMatrix,
176
+ > [[-infinity, 0], [-infinity, 0]]),
177
+ > Matrix(IsMaxPlusMatrix,
178
+ > [[0, -infinity], [0, -infinity]])]);
179
+ <semigroup of 2x2 max-plus matrices with 2 generators>
180
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
181
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
182
+ gap> Size(S) = Size(T);
183
+ true
184
+ gap> NrDClasses(S) = NrDClasses(T);
185
+ true
186
+ gap> NrRClasses(S) = NrRClasses(T);
187
+ true
188
+ gap> NrLClasses(S) = NrLClasses(T);
189
+ true
190
+ gap> NrIdempotents(S) = NrIdempotents(T);
191
+ true
192
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
193
+ gap> BruteForceIsoCheck(map);
194
+ true
195
+ gap> BruteForceInverseCheck(map);
196
+ true
197
+
198
+ # AsSemigroup:
199
+ # convert from IsMinPlusMatrixSemigroup to IsBipartitionSemigroup
200
+ gap> S := Semigroup([
201
+ > Matrix(IsMinPlusMatrix,
202
+ > [[infinity, 0], [infinity, 0]]),
203
+ > Matrix(IsMinPlusMatrix,
204
+ > [[0, infinity], [0, infinity]])]);
205
+ <semigroup of 2x2 min-plus matrices with 2 generators>
206
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
207
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
208
+ gap> Size(S) = Size(T);
209
+ true
210
+ gap> NrDClasses(S) = NrDClasses(T);
211
+ true
212
+ gap> NrRClasses(S) = NrRClasses(T);
213
+ true
214
+ gap> NrLClasses(S) = NrLClasses(T);
215
+ true
216
+ gap> NrIdempotents(S) = NrIdempotents(T);
217
+ true
218
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
219
+ gap> BruteForceIsoCheck(map);
220
+ true
221
+ gap> BruteForceInverseCheck(map);
222
+ true
223
+
224
+ # AsSemigroup:
225
+ # convert from IsProjectiveMaxPlusMatrixSemigroup to IsBipartitionSemigroup
226
+ gap> S := Semigroup([
227
+ > Matrix(IsProjectiveMaxPlusMatrix,
228
+ > [[-infinity, 0], [-infinity, 0]]),
229
+ > Matrix(IsProjectiveMaxPlusMatrix,
230
+ > [[0, -infinity], [0, -infinity]])]);
231
+ <semigroup of 2x2 projective max-plus matrices with 2 generators>
232
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
233
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
234
+ gap> Size(S) = Size(T);
235
+ true
236
+ gap> NrDClasses(S) = NrDClasses(T);
237
+ true
238
+ gap> NrRClasses(S) = NrRClasses(T);
239
+ true
240
+ gap> NrLClasses(S) = NrLClasses(T);
241
+ true
242
+ gap> NrIdempotents(S) = NrIdempotents(T);
243
+ true
244
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
245
+ gap> BruteForceIsoCheck(map);
246
+ true
247
+ gap> BruteForceInverseCheck(map);
248
+ true
249
+
250
+ # AsSemigroup:
251
+ # convert from IsIntegerMatrixSemigroup to IsBipartitionSemigroup
252
+ gap> S := Semigroup([
253
+ > Matrix(Integers,
254
+ > [[0, 1], [0, 1]]),
255
+ > Matrix(Integers,
256
+ > [[1, 0], [1, 0]])]);
257
+ <semigroup of 2x2 integer matrices with 2 generators>
258
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
259
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
260
+ gap> Size(S) = Size(T);
261
+ true
262
+ gap> NrDClasses(S) = NrDClasses(T);
263
+ true
264
+ gap> NrRClasses(S) = NrRClasses(T);
265
+ true
266
+ gap> NrLClasses(S) = NrLClasses(T);
267
+ true
268
+ gap> NrIdempotents(S) = NrIdempotents(T);
269
+ true
270
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
271
+ gap> BruteForceIsoCheck(map);
272
+ true
273
+ gap> BruteForceInverseCheck(map);
274
+ true
275
+
276
+ # AsSemigroup:
277
+ # convert from IsTropicalMaxPlusMatrixSemigroup to IsBipartitionSemigroup
278
+ gap> S := Semigroup([
279
+ > Matrix(IsTropicalMaxPlusMatrix,
280
+ > [[-infinity, 0], [-infinity, 0]], 5),
281
+ > Matrix(IsTropicalMaxPlusMatrix,
282
+ > [[0, -infinity], [0, -infinity]], 5)]);
283
+ <semigroup of 2x2 tropical max-plus matrices with 2 generators>
284
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
285
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
286
+ gap> Size(S) = Size(T);
287
+ true
288
+ gap> NrDClasses(S) = NrDClasses(T);
289
+ true
290
+ gap> NrRClasses(S) = NrRClasses(T);
291
+ true
292
+ gap> NrLClasses(S) = NrLClasses(T);
293
+ true
294
+ gap> NrIdempotents(S) = NrIdempotents(T);
295
+ true
296
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
297
+ gap> BruteForceIsoCheck(map);
298
+ true
299
+ gap> BruteForceInverseCheck(map);
300
+ true
301
+
302
+ # AsSemigroup:
303
+ # convert from IsTropicalMinPlusMatrixSemigroup to IsBipartitionSemigroup
304
+ gap> S := Semigroup([
305
+ > Matrix(IsTropicalMinPlusMatrix,
306
+ > [[infinity, 0], [infinity, 0]], 5),
307
+ > Matrix(IsTropicalMinPlusMatrix,
308
+ > [[0, infinity], [0, infinity]], 5)]);
309
+ <semigroup of 2x2 tropical min-plus matrices with 2 generators>
310
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
311
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
312
+ gap> Size(S) = Size(T);
313
+ true
314
+ gap> NrDClasses(S) = NrDClasses(T);
315
+ true
316
+ gap> NrRClasses(S) = NrRClasses(T);
317
+ true
318
+ gap> NrLClasses(S) = NrLClasses(T);
319
+ true
320
+ gap> NrIdempotents(S) = NrIdempotents(T);
321
+ true
322
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
323
+ gap> BruteForceIsoCheck(map);
324
+ true
325
+ gap> BruteForceInverseCheck(map);
326
+ true
327
+
328
+ # AsSemigroup:
329
+ # convert from IsNTPMatrixSemigroup to IsBipartitionSemigroup
330
+ gap> S := Semigroup([
331
+ > Matrix(IsNTPMatrix,
332
+ > [[0, 1], [0, 1]], 1, 4),
333
+ > Matrix(IsNTPMatrix,
334
+ > [[1, 0], [1, 0]], 1, 4)]);
335
+ <semigroup of 2x2 ntp matrices with 2 generators>
336
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
337
+ <bipartition semigroup of size 2, degree 3 with 2 generators>
338
+ gap> Size(S) = Size(T);
339
+ true
340
+ gap> NrDClasses(S) = NrDClasses(T);
341
+ true
342
+ gap> NrRClasses(S) = NrRClasses(T);
343
+ true
344
+ gap> NrLClasses(S) = NrLClasses(T);
345
+ true
346
+ gap> NrIdempotents(S) = NrIdempotents(T);
347
+ true
348
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
349
+ gap> BruteForceIsoCheck(map);
350
+ true
351
+ gap> BruteForceInverseCheck(map);
352
+ true
353
+
354
+ # AsSemigroup:
355
+ # convert from IsPBRMonoid to IsBipartitionSemigroup
356
+ gap> S := Monoid([
357
+ > PBR([[-1, 1], [-2, 2], [-3, 3]], [[-1, 1], [-2, 2], [-3, 3]]),
358
+ > PBR([[-3, -2, 1, 2, 3], [-3, -2, 1, 2, 3], [-3, -2, 1, 2, 3]],
359
+ > [[-1], [-3, -2, 1, 2, 3], [-3, -2, 1, 2, 3]]),
360
+ > PBR([[-3, 1, 2, 3], [-3, 1, 2, 3], [-3, 1, 2, 3]],
361
+ > [[-2, -1], [-2, -1], [-3, 1, 2, 3]])]);
362
+ <pbr monoid of degree 3 with 3 generators>
363
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
364
+ <bipartition monoid of size 4, degree 4 with 3 generators>
365
+ gap> Size(S) = Size(T);
366
+ true
367
+ gap> NrDClasses(S) = NrDClasses(T);
368
+ true
369
+ gap> NrRClasses(S) = NrRClasses(T);
370
+ true
371
+ gap> NrLClasses(S) = NrLClasses(T);
372
+ true
373
+ gap> NrIdempotents(S) = NrIdempotents(T);
374
+ true
375
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
376
+ gap> BruteForceIsoCheck(map);
377
+ true
378
+ gap> BruteForceInverseCheck(map);
379
+ true
380
+
381
+ # AsSemigroup:
382
+ # convert from IsFpMonoid to IsBipartitionSemigroup
383
+ gap> F := FreeMonoid(3);; AssignGeneratorVariables(F);;
384
+ gap> rels := [[m1 ^ 2, m1], [m1 * m2, m2], [m1 * m3, m3], [m2 * m1, m2],
385
+ > [m2 ^ 2, m2], [m2 * m3, m3], [m3 * m1, m3], [m3 * m2, m2], [m3 ^ 2, m3]];;
386
+ gap> S := F / rels;
387
+ <fp monoid with 3 generators and 9 relations of length 30>
388
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
389
+ <bipartition monoid of size 4, degree 4 with 3 generators>
390
+ gap> Size(S) = Size(T);
391
+ true
392
+ gap> NrDClasses(S) = NrDClasses(T);
393
+ true
394
+ gap> NrRClasses(S) = NrRClasses(T);
395
+ true
396
+ gap> NrLClasses(S) = NrLClasses(T);
397
+ true
398
+ gap> NrIdempotents(S) = NrIdempotents(T);
399
+ true
400
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
401
+ gap> BruteForceIsoCheck(map);
402
+ true
403
+ gap> BruteForceInverseCheck(map);
404
+ true
405
+
406
+ # AsSemigroup:
407
+ # convert from IsBipartitionMonoid to IsBipartitionSemigroup
408
+ gap> S := Monoid([
409
+ > Bipartition([[1, 2, 3, -2, -3], [-1]]),
410
+ > Bipartition([[1, 2, 3, -3], [-1, -2]])]);
411
+ <bipartition monoid of degree 3 with 2 generators>
412
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
413
+ <bipartition monoid of degree 3 with 2 generators>
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(IsBipartitionSemigroup, S);;
425
+ gap> BruteForceIsoCheck(map);
426
+ true
427
+ gap> BruteForceInverseCheck(map);
428
+ true
429
+
430
+ # AsSemigroup:
431
+ # convert from IsTransformationMonoid to IsBipartitionSemigroup
432
+ gap> S := Monoid([
433
+ > Transformation([2, 2, 2]), Transformation([3, 3, 3])]);
434
+ <transformation monoid of degree 3 with 2 generators>
435
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
436
+ <bipartition monoid of degree 3 with 2 generators>
437
+ gap> Size(S) = Size(T);
438
+ true
439
+ gap> NrDClasses(S) = NrDClasses(T);
440
+ true
441
+ gap> NrRClasses(S) = NrRClasses(T);
442
+ true
443
+ gap> NrLClasses(S) = NrLClasses(T);
444
+ true
445
+ gap> NrIdempotents(S) = NrIdempotents(T);
446
+ true
447
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
448
+ gap> BruteForceIsoCheck(map);
449
+ true
450
+ gap> BruteForceInverseCheck(map);
451
+ true
452
+
453
+ # AsSemigroup:
454
+ # convert from IsBooleanMatMonoid to IsBipartitionSemigroup
455
+ gap> S := Monoid([
456
+ > Matrix(IsBooleanMat,
457
+ > [[false, true, false], [false, true, false], [false, true, false]]),
458
+ > Matrix(IsBooleanMat,
459
+ > [[false, false, true], [false, false, true], [false, false, true]])]);
460
+ <monoid of 3x3 boolean matrices with 2 generators>
461
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
462
+ <bipartition monoid of degree 3 with 2 generators>
463
+ gap> Size(S) = Size(T);
464
+ true
465
+ gap> NrDClasses(S) = NrDClasses(T);
466
+ true
467
+ gap> NrRClasses(S) = NrRClasses(T);
468
+ true
469
+ gap> NrLClasses(S) = NrLClasses(T);
470
+ true
471
+ gap> NrIdempotents(S) = NrIdempotents(T);
472
+ true
473
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
474
+ gap> BruteForceIsoCheck(map);
475
+ true
476
+ gap> BruteForceInverseCheck(map);
477
+ true
478
+
479
+ # AsSemigroup:
480
+ # convert from IsMaxPlusMatrixMonoid to IsBipartitionSemigroup
481
+ gap> x := -infinity;;
482
+ gap> S := Monoid([
483
+ > Matrix(IsMaxPlusMatrix,
484
+ > [[x, 0, x],
485
+ > [x, 0, x],
486
+ > [x, 0, x]]),
487
+ > Matrix(IsMaxPlusMatrix,
488
+ > [[x, x, 0],
489
+ > [x, x, 0],
490
+ > [x, x, 0]])]);
491
+ <monoid of 3x3 max-plus matrices with 2 generators>
492
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
493
+ <bipartition monoid of size 3, degree 3 with 2 generators>
494
+ gap> Size(S) = Size(T);
495
+ true
496
+ gap> NrDClasses(S) = NrDClasses(T);
497
+ true
498
+ gap> NrRClasses(S) = NrRClasses(T);
499
+ true
500
+ gap> NrLClasses(S) = NrLClasses(T);
501
+ true
502
+ gap> NrIdempotents(S) = NrIdempotents(T);
503
+ true
504
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
505
+ gap> BruteForceIsoCheck(map);
506
+ true
507
+ gap> BruteForceInverseCheck(map);
508
+ true
509
+
510
+ # AsSemigroup:
511
+ # convert from IsMinPlusMatrixMonoid to IsBipartitionSemigroup
512
+ gap> S := Monoid([
513
+ > Matrix(IsMinPlusMatrix,
514
+ > [[infinity, 0, infinity],
515
+ > [infinity, 0, infinity],
516
+ > [infinity, 0, infinity]]),
517
+ > Matrix(IsMinPlusMatrix,
518
+ > [[infinity, infinity, 0],
519
+ > [infinity, infinity, 0],
520
+ > [infinity, infinity, 0]])]);
521
+ <monoid of 3x3 min-plus matrices with 2 generators>
522
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
523
+ <bipartition monoid of size 3, degree 3 with 2 generators>
524
+ gap> Size(S) = Size(T);
525
+ true
526
+ gap> NrDClasses(S) = NrDClasses(T);
527
+ true
528
+ gap> NrRClasses(S) = NrRClasses(T);
529
+ true
530
+ gap> NrLClasses(S) = NrLClasses(T);
531
+ true
532
+ gap> NrIdempotents(S) = NrIdempotents(T);
533
+ true
534
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
535
+ gap> BruteForceIsoCheck(map);
536
+ true
537
+ gap> BruteForceInverseCheck(map);
538
+ true
539
+
540
+ # AsSemigroup:
541
+ # convert from IsProjectiveMaxPlusMatrixMonoid to IsBipartitionSemigroup
542
+ gap> x := -infinity;;
543
+ gap> S := Monoid([
544
+ > Matrix(IsProjectiveMaxPlusMatrix,
545
+ > [[x, 0, x],
546
+ > [x, 0, x],
547
+ > [x, 0, x]]),
548
+ > Matrix(IsProjectiveMaxPlusMatrix,
549
+ > [[x, x, 0],
550
+ > [x, x, 0],
551
+ > [x, x, 0]])]);
552
+ <monoid of 3x3 projective max-plus matrices with 2 generators>
553
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
554
+ <bipartition monoid of size 3, degree 3 with 2 generators>
555
+ gap> Size(S) = Size(T);
556
+ true
557
+ gap> NrDClasses(S) = NrDClasses(T);
558
+ true
559
+ gap> NrRClasses(S) = NrRClasses(T);
560
+ true
561
+ gap> NrLClasses(S) = NrLClasses(T);
562
+ true
563
+ gap> NrIdempotents(S) = NrIdempotents(T);
564
+ true
565
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
566
+ gap> BruteForceIsoCheck(map);
567
+ true
568
+ gap> BruteForceInverseCheck(map);
569
+ true
570
+
571
+ # AsSemigroup:
572
+ # convert from IsIntegerMatrixMonoid to IsBipartitionSemigroup
573
+ gap> S := Monoid([
574
+ > Matrix(Integers,
575
+ > [[0, 1, 0], [0, 1, 0], [0, 1, 0]]),
576
+ > Matrix(Integers,
577
+ > [[0, 0, 1], [0, 0, 1], [0, 0, 1]])]);
578
+ <monoid of 3x3 integer matrices with 2 generators>
579
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
580
+ <bipartition monoid of size 3, degree 3 with 2 generators>
581
+ gap> Size(S) = Size(T);
582
+ true
583
+ gap> NrDClasses(S) = NrDClasses(T);
584
+ true
585
+ gap> NrRClasses(S) = NrRClasses(T);
586
+ true
587
+ gap> NrLClasses(S) = NrLClasses(T);
588
+ true
589
+ gap> NrIdempotents(S) = NrIdempotents(T);
590
+ true
591
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
592
+ gap> BruteForceIsoCheck(map);
593
+ true
594
+ gap> BruteForceInverseCheck(map);
595
+ true
596
+
597
+ # AsSemigroup:
598
+ # convert from IsTropicalMaxPlusMatrixMonoid to IsBipartitionSemigroup
599
+ gap> x := -infinity;;
600
+ gap> S := Monoid([
601
+ > Matrix(IsTropicalMaxPlusMatrix,
602
+ > [[x, 0, x],
603
+ > [x, 0, x],
604
+ > [x, 0, x]], 2),
605
+ > Matrix(IsTropicalMaxPlusMatrix,
606
+ > [[x, x, 0],
607
+ > [x, x, 0],
608
+ > [x, x, 0]], 2)]);
609
+ <monoid of 3x3 tropical max-plus matrices with 2 generators>
610
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
611
+ <bipartition monoid of size 3, degree 3 with 2 generators>
612
+ gap> Size(S) = Size(T);
613
+ true
614
+ gap> NrDClasses(S) = NrDClasses(T);
615
+ true
616
+ gap> NrRClasses(S) = NrRClasses(T);
617
+ true
618
+ gap> NrLClasses(S) = NrLClasses(T);
619
+ true
620
+ gap> NrIdempotents(S) = NrIdempotents(T);
621
+ true
622
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
623
+ gap> BruteForceIsoCheck(map);
624
+ true
625
+ gap> BruteForceInverseCheck(map);
626
+ true
627
+
628
+ # AsSemigroup:
629
+ # convert from IsTropicalMinPlusMatrixMonoid to IsBipartitionSemigroup
630
+ gap> S := Monoid([
631
+ > Matrix(IsTropicalMinPlusMatrix,
632
+ > [[infinity, 0, infinity],
633
+ > [infinity, 0, infinity],
634
+ > [infinity, 0, infinity]], 5),
635
+ > Matrix(IsTropicalMinPlusMatrix,
636
+ > [[infinity, infinity, 0],
637
+ > [infinity, infinity, 0],
638
+ > [infinity, infinity, 0]], 5)]);
639
+ <monoid of 3x3 tropical min-plus matrices with 2 generators>
640
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
641
+ <bipartition monoid of size 3, degree 3 with 2 generators>
642
+ gap> Size(S) = Size(T);
643
+ true
644
+ gap> NrDClasses(S) = NrDClasses(T);
645
+ true
646
+ gap> NrRClasses(S) = NrRClasses(T);
647
+ true
648
+ gap> NrLClasses(S) = NrLClasses(T);
649
+ true
650
+ gap> NrIdempotents(S) = NrIdempotents(T);
651
+ true
652
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
653
+ gap> BruteForceIsoCheck(map);
654
+ true
655
+ gap> BruteForceInverseCheck(map);
656
+ true
657
+
658
+ # AsSemigroup:
659
+ # convert from IsNTPMatrixMonoid to IsBipartitionSemigroup
660
+ gap> S := Monoid([
661
+ > Matrix(IsNTPMatrix,
662
+ > [[0, 1, 0], [0, 1, 0], [0, 1, 0]], 1, 5),
663
+ > Matrix(IsNTPMatrix,
664
+ > [[0, 0, 1], [0, 0, 1], [0, 0, 1]], 1, 5)]);
665
+ <monoid of 3x3 ntp matrices with 2 generators>
666
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
667
+ <bipartition monoid of size 3, degree 3 with 2 generators>
668
+ gap> Size(S) = Size(T);
669
+ true
670
+ gap> NrDClasses(S) = NrDClasses(T);
671
+ true
672
+ gap> NrRClasses(S) = NrRClasses(T);
673
+ true
674
+ gap> NrLClasses(S) = NrLClasses(T);
675
+ true
676
+ gap> NrIdempotents(S) = NrIdempotents(T);
677
+ true
678
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
679
+ gap> BruteForceIsoCheck(map);
680
+ true
681
+ gap> BruteForceInverseCheck(map);
682
+ true
683
+
684
+ # AsMonoid:
685
+ # convert from IsPBRSemigroup to IsBipartitionMonoid
686
+ gap> S := Semigroup([
687
+ > PBR([[-2, 1], [-1, 2], [-3, 3], [-4, 4]],
688
+ > [[-1, 2], [-2, 1], [-3, 3], [-4, 4]]),
689
+ > PBR([[1, 3], [-3, 2, 4], [1, 3], [-3, 2, 4]],
690
+ > [[-4, -2, -1], [-4, -2, -1], [-3, 2, 4], [-4, -2, -1]]),
691
+ > PBR([[-4, -3, -2, -1, 1, 2, 3, 4], [-4, -3, -2, -1, 1, 2, 3, 4],
692
+ > [-4, -3, -2, -1, 1, 2, 3, 4], [-4, -3, -2, -1, 1, 2, 3, 4]],
693
+ > [[-4, -3, -2, -1, 1, 2, 3, 4], [-4, -3, -2, -1, 1, 2, 3, 4],
694
+ > [-4, -3, -2, -1, 1, 2, 3, 4], [-4, -3, -2, -1, 1, 2, 3, 4]])]);
695
+ <pbr semigroup of degree 4 with 3 generators>
696
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
697
+ <bipartition monoid of size 8, degree 8 with 3 generators>
698
+ gap> Size(S) = Size(T);
699
+ true
700
+ gap> NrDClasses(S) = NrDClasses(T);
701
+ true
702
+ gap> NrRClasses(S) = NrRClasses(T);
703
+ true
704
+ gap> NrLClasses(S) = NrLClasses(T);
705
+ true
706
+ gap> NrIdempotents(S) = NrIdempotents(T);
707
+ true
708
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
709
+ gap> BruteForceIsoCheck(map);
710
+ true
711
+ gap> BruteForceInverseCheck(map);
712
+ true
713
+
714
+ # AsMonoid:
715
+ # convert from IsFpSemigroup to IsBipartitionMonoid
716
+ gap> F := FreeSemigroup(3);; AssignGeneratorVariables(F);;
717
+ gap> rels := [[s1 * s3, s3], [s2 * s1, s2], [s2 ^ 2, s2], [s3 * s1, s3],
718
+ > [s3 ^ 2, s3], [s1 ^ 3, s1], [s1 ^ 2 * s2, s2], [s2 * s3 * s2, s2],
719
+ > [s3 * s2 * s3, s3]];;
720
+ gap> S := F / rels;
721
+ <fp semigroup with 3 generators and 9 relations of length 34>
722
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
723
+ <bipartition monoid of size 8, degree 8 with 3 generators>
724
+ gap> Size(S) = Size(T);
725
+ true
726
+ gap> NrDClasses(S) = NrDClasses(T);
727
+ true
728
+ gap> NrRClasses(S) = NrRClasses(T);
729
+ true
730
+ gap> NrLClasses(S) = NrLClasses(T);
731
+ true
732
+ gap> NrIdempotents(S) = NrIdempotents(T);
733
+ true
734
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
735
+ gap> BruteForceIsoCheck(map);
736
+ true
737
+ gap> BruteForceInverseCheck(map);
738
+ true
739
+
740
+ # AsMonoid:
741
+ # convert from IsBipartitionMonoid to IsBipartitionMonoid
742
+ gap> S := Semigroup([
743
+ > Bipartition([[1, -2], [2, -1], [3, -3], [4, -4]]),
744
+ > Bipartition([[1, 3], [2, 4, -3], [-1, -2, -4]]),
745
+ > Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]])]);
746
+ <bipartition semigroup of degree 4 with 3 generators>
747
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
748
+ <bipartition monoid of size 8, degree 8 with 3 generators>
749
+ gap> Size(S) = Size(T);
750
+ true
751
+ gap> NrDClasses(S) = NrDClasses(T);
752
+ true
753
+ gap> NrRClasses(S) = NrRClasses(T);
754
+ true
755
+ gap> NrLClasses(S) = NrLClasses(T);
756
+ true
757
+ gap> NrIdempotents(S) = NrIdempotents(T);
758
+ true
759
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
760
+ gap> BruteForceIsoCheck(map);
761
+ true
762
+ gap> BruteForceInverseCheck(map);
763
+ true
764
+
765
+ # AsMonoid:
766
+ # convert from IsTransformationSemigroup to IsBipartitionMonoid
767
+ gap> S := Semigroup([
768
+ > Transformation([4, 2, 3, 1]),
769
+ > Transformation([5, 2, 7, 2, 5, 2, 7, 5]),
770
+ > Transformation([3, 6, 3, 3, 8, 6, 3, 8])]);
771
+ <transformation semigroup of degree 8 with 3 generators>
772
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
773
+ <bipartition monoid of degree 8 with 3 generators>
774
+ gap> Size(S) = Size(T);
775
+ true
776
+ gap> NrDClasses(S) = NrDClasses(T);
777
+ true
778
+ gap> NrRClasses(S) = NrRClasses(T);
779
+ true
780
+ gap> NrLClasses(S) = NrLClasses(T);
781
+ true
782
+ gap> NrIdempotents(S) = NrIdempotents(T);
783
+ true
784
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
785
+ gap> BruteForceIsoCheck(map);
786
+ true
787
+ gap> BruteForceInverseCheck(map);
788
+ true
789
+
790
+ # AsMonoid:
791
+ # convert from IsBooleanMatSemigroup to IsBipartitionMonoid
792
+ gap> S := Semigroup([
793
+ > Matrix(IsBooleanMat,
794
+ > [[false, false, false, true, false, false, false, false],
795
+ > [false, true, false, false, false, false, false, false],
796
+ > [false, false, true, false, false, false, false, false],
797
+ > [true, false, false, false, false, false, false, false],
798
+ > [false, false, false, false, true, false, false, false],
799
+ > [false, false, false, false, false, true, false, false],
800
+ > [false, false, false, false, false, false, true, false],
801
+ > [false, false, false, false, false, false, false, true]]),
802
+ > Matrix(IsBooleanMat,
803
+ > [[false, false, false, false, true, false, false, false],
804
+ > [false, true, false, false, false, false, false, false],
805
+ > [false, false, false, false, false, false, true, false],
806
+ > [false, true, false, false, false, false, false, false],
807
+ > [false, false, false, false, true, false, false, false],
808
+ > [false, true, false, false, false, false, false, false],
809
+ > [false, false, false, false, false, false, true, false],
810
+ > [false, false, false, false, true, false, false, false]]),
811
+ > Matrix(IsBooleanMat,
812
+ > [[false, false, true, false, false, false, false, false],
813
+ > [false, false, false, false, false, true, false, false],
814
+ > [false, false, true, false, false, false, false, false],
815
+ > [false, false, true, false, false, false, false, false],
816
+ > [false, false, false, false, false, false, false, true],
817
+ > [false, false, false, false, false, true, false, false],
818
+ > [false, false, true, false, false, false, false, false],
819
+ > [false, false, false, false, false, false, false, true]])]);
820
+ <semigroup of 8x8 boolean matrices with 3 generators>
821
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
822
+ <bipartition monoid of degree 8 with 3 generators>
823
+ gap> Size(S) = Size(T);
824
+ true
825
+ gap> NrDClasses(S) = NrDClasses(T);
826
+ true
827
+ gap> NrRClasses(S) = NrRClasses(T);
828
+ true
829
+ gap> NrLClasses(S) = NrLClasses(T);
830
+ true
831
+ gap> NrIdempotents(S) = NrIdempotents(T);
832
+ true
833
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
834
+ gap> BruteForceIsoCheck(map);
835
+ true
836
+ gap> BruteForceInverseCheck(map);
837
+ true
838
+
839
+ # AsMonoid:
840
+ # convert from IsMaxPlusMatrixSemigroup to IsBipartitionMonoid
841
+ gap> x := -infinity;;
842
+ gap> S := Semigroup([
843
+ > Matrix(IsMaxPlusMatrix,
844
+ > [[x, x, x, 0, x, x, x, x],
845
+ > [x, 0, x, x, x, x, x, x],
846
+ > [x, x, 0, x, x, x, x, x],
847
+ > [0, x, x, x, x, x, x, x],
848
+ > [x, x, x, x, 0, x, x, x],
849
+ > [x, x, x, x, x, 0, x, x],
850
+ > [x, x, x, x, x, x, 0, x],
851
+ > [x, x, x, x, x, x, x, 0]]),
852
+ > Matrix(IsMaxPlusMatrix,
853
+ > [[x, x, x, x, 0, x, x, x],
854
+ > [x, 0, x, x, x, x, x, x],
855
+ > [x, x, x, x, x, x, 0, x],
856
+ > [x, 0, x, x, x, x, x, x],
857
+ > [x, x, x, x, 0, x, x, x],
858
+ > [x, 0, x, x, x, x, x, x],
859
+ > [x, x, x, x, x, x, 0, x],
860
+ > [x, x, x, x, 0, x, x, x]]),
861
+ > Matrix(IsMaxPlusMatrix,
862
+ > [[x, x, 0, x, x, x, x, x],
863
+ > [x, x, x, x, x, 0, x, x],
864
+ > [x, x, 0, x, x, x, x, x],
865
+ > [x, x, 0, x, x, x, x, x],
866
+ > [x, x, x, x, x, x, x, 0],
867
+ > [x, x, x, x, x, 0, x, x],
868
+ > [x, x, 0, x, x, x, x, x],
869
+ > [x, x, x, x, x, x, x, 0]])]);
870
+ <semigroup of 8x8 max-plus matrices with 3 generators>
871
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
872
+ <bipartition monoid of size 8, degree 8 with 3 generators>
873
+ gap> Size(S) = Size(T);
874
+ true
875
+ gap> NrDClasses(S) = NrDClasses(T);
876
+ true
877
+ gap> NrRClasses(S) = NrRClasses(T);
878
+ true
879
+ gap> NrLClasses(S) = NrLClasses(T);
880
+ true
881
+ gap> NrIdempotents(S) = NrIdempotents(T);
882
+ true
883
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
884
+ gap> BruteForceIsoCheck(map);
885
+ true
886
+ gap> BruteForceInverseCheck(map);
887
+ true
888
+
889
+ # AsMonoid:
890
+ # convert from IsMinPlusMatrixSemigroup to IsBipartitionMonoid
891
+ gap> S := Semigroup([
892
+ > Matrix(IsMinPlusMatrix,
893
+ > [[infinity, infinity, infinity, 0, infinity, infinity, infinity, infinity],
894
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
895
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
896
+ > [0, infinity, infinity, infinity, infinity, infinity, infinity, infinity],
897
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
898
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
899
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
900
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0]]),
901
+ > Matrix(IsMinPlusMatrix,
902
+ > [[infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
903
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
904
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
905
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
906
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
907
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
908
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
909
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity]]),
910
+ > Matrix(IsMinPlusMatrix,
911
+ > [[infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
912
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
913
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
914
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
915
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0],
916
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
917
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
918
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0]])]);
919
+ <semigroup of 8x8 min-plus matrices with 3 generators>
920
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
921
+ <bipartition monoid of size 8, degree 8 with 3 generators>
922
+ gap> Size(S) = Size(T);
923
+ true
924
+ gap> NrDClasses(S) = NrDClasses(T);
925
+ true
926
+ gap> NrRClasses(S) = NrRClasses(T);
927
+ true
928
+ gap> NrLClasses(S) = NrLClasses(T);
929
+ true
930
+ gap> NrIdempotents(S) = NrIdempotents(T);
931
+ true
932
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
933
+ gap> BruteForceIsoCheck(map);
934
+ true
935
+ gap> BruteForceInverseCheck(map);
936
+ true
937
+
938
+ # AsMonoid:
939
+ # convert from IsProjectiveMaxPlusMatrixSemigroup to IsBipartitionMonoid
940
+ gap> x := -infinity;;
941
+ gap> S := Semigroup([
942
+ > Matrix(IsProjectiveMaxPlusMatrix,
943
+ > [[x, x, x, 0, x, x, x, x],
944
+ > [x, 0, x, x, x, x, x, x],
945
+ > [x, x, 0, x, x, x, x, x],
946
+ > [0, x, x, x, x, x, x, x],
947
+ > [x, x, x, x, 0, x, x, x],
948
+ > [x, x, x, x, x, 0, x, x],
949
+ > [x, x, x, x, x, x, 0, x],
950
+ > [x, x, x, x, x, x, x, 0]]),
951
+ > Matrix(IsProjectiveMaxPlusMatrix,
952
+ > [[x, x, x, x, 0, x, x, x],
953
+ > [x, 0, x, x, x, x, x, x],
954
+ > [x, x, x, x, x, x, 0, x],
955
+ > [x, 0, x, x, x, x, x, x],
956
+ > [x, x, x, x, 0, x, x, x],
957
+ > [x, 0, x, x, x, x, x, x],
958
+ > [x, x, x, x, x, x, 0, x],
959
+ > [x, x, x, x, 0, x, x, x]]),
960
+ > Matrix(IsProjectiveMaxPlusMatrix,
961
+ > [[x, x, 0, x, x, x, x, x],
962
+ > [x, x, x, x, x, 0, x, x],
963
+ > [x, x, 0, x, x, x, x, x],
964
+ > [x, x, 0, x, x, x, x, x],
965
+ > [x, x, x, x, x, x, x, 0],
966
+ > [x, x, x, x, x, 0, x, x],
967
+ > [x, x, 0, x, x, x, x, x],
968
+ > [x, x, x, x, x, x, x, 0]])]);
969
+ <semigroup of 8x8 projective max-plus matrices with 3 generators>
970
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
971
+ <bipartition monoid of size 8, degree 8 with 3 generators>
972
+ gap> Size(S) = Size(T);
973
+ true
974
+ gap> NrDClasses(S) = NrDClasses(T);
975
+ true
976
+ gap> NrRClasses(S) = NrRClasses(T);
977
+ true
978
+ gap> NrLClasses(S) = NrLClasses(T);
979
+ true
980
+ gap> NrIdempotents(S) = NrIdempotents(T);
981
+ true
982
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
983
+ gap> BruteForceIsoCheck(map);
984
+ true
985
+ gap> BruteForceInverseCheck(map);
986
+ true
987
+
988
+ # AsMonoid:
989
+ # convert from IsIntegerMatrixSemigroup to IsBipartitionMonoid
990
+ gap> S := Semigroup([
991
+ > Matrix(Integers,
992
+ > [[0, 0, 0, 1, 0, 0, 0, 0],
993
+ > [0, 1, 0, 0, 0, 0, 0, 0],
994
+ > [0, 0, 1, 0, 0, 0, 0, 0],
995
+ > [1, 0, 0, 0, 0, 0, 0, 0],
996
+ > [0, 0, 0, 0, 1, 0, 0, 0],
997
+ > [0, 0, 0, 0, 0, 1, 0, 0],
998
+ > [0, 0, 0, 0, 0, 0, 1, 0],
999
+ > [0, 0, 0, 0, 0, 0, 0, 1]]),
1000
+ > Matrix(Integers,
1001
+ > [[0, 0, 0, 0, 1, 0, 0, 0],
1002
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1003
+ > [0, 0, 0, 0, 0, 0, 1, 0],
1004
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1005
+ > [0, 0, 0, 0, 1, 0, 0, 0],
1006
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1007
+ > [0, 0, 0, 0, 0, 0, 1, 0],
1008
+ > [0, 0, 0, 0, 1, 0, 0, 0]]),
1009
+ > Matrix(Integers,
1010
+ > [[0, 0, 1, 0, 0, 0, 0, 0],
1011
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1012
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1013
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1014
+ > [0, 0, 0, 0, 0, 0, 0, 1],
1015
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1016
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1017
+ > [0, 0, 0, 0, 0, 0, 0, 1]])]);
1018
+ <semigroup of 8x8 integer matrices with 3 generators>
1019
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1020
+ <bipartition monoid of size 8, degree 8 with 3 generators>
1021
+ gap> Size(S) = Size(T);
1022
+ true
1023
+ gap> NrDClasses(S) = NrDClasses(T);
1024
+ true
1025
+ gap> NrRClasses(S) = NrRClasses(T);
1026
+ true
1027
+ gap> NrLClasses(S) = NrLClasses(T);
1028
+ true
1029
+ gap> NrIdempotents(S) = NrIdempotents(T);
1030
+ true
1031
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1032
+ gap> BruteForceIsoCheck(map);
1033
+ true
1034
+ gap> BruteForceInverseCheck(map);
1035
+ true
1036
+
1037
+ # AsMonoid:
1038
+ # convert from IsTropicalMaxPlusMatrixSemigroup to IsBipartitionMonoid
1039
+ gap> x := -infinity;;
1040
+ gap> S := Semigroup([
1041
+ > Matrix(IsTropicalMaxPlusMatrix,
1042
+ > [[x, x, x, 0, x, x, x, x],
1043
+ > [x, 0, x, x, x, x, x, x],
1044
+ > [x, x, 0, x, x, x, x, x],
1045
+ > [0, x, x, x, x, x, x, x],
1046
+ > [x, x, x, x, 0, x, x, x],
1047
+ > [x, x, x, x, x, 0, x, x],
1048
+ > [x, x, x, x, x, x, 0, x],
1049
+ > [x, x, x, x, x, x, x, 0]], 5),
1050
+ > Matrix(IsTropicalMaxPlusMatrix,
1051
+ > [[x, x, x, x, 0, x, x, x],
1052
+ > [x, 0, x, x, x, x, x, x],
1053
+ > [x, x, x, x, x, x, 0, x],
1054
+ > [x, 0, x, x, x, x, x, x],
1055
+ > [x, x, x, x, 0, x, x, x],
1056
+ > [x, 0, x, x, x, x, x, x],
1057
+ > [x, x, x, x, x, x, 0, x],
1058
+ > [x, x, x, x, 0, x, x, x]], 5),
1059
+ > Matrix(IsTropicalMaxPlusMatrix,
1060
+ > [[x, x, 0, x, x, x, x, x],
1061
+ > [x, x, x, x, x, 0, x, x],
1062
+ > [x, x, 0, x, x, x, x, x],
1063
+ > [x, x, 0, x, x, x, x, x],
1064
+ > [x, x, x, x, x, x, x, 0],
1065
+ > [x, x, x, x, x, 0, x, x],
1066
+ > [x, x, 0, x, x, x, x, x],
1067
+ > [x, x, x, x, x, x, x, 0]], 5)]);
1068
+ <semigroup of 8x8 tropical max-plus matrices with 3 generators>
1069
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1070
+ <bipartition monoid of size 8, degree 8 with 3 generators>
1071
+ gap> Size(S) = Size(T);
1072
+ true
1073
+ gap> NrDClasses(S) = NrDClasses(T);
1074
+ true
1075
+ gap> NrRClasses(S) = NrRClasses(T);
1076
+ true
1077
+ gap> NrLClasses(S) = NrLClasses(T);
1078
+ true
1079
+ gap> NrIdempotents(S) = NrIdempotents(T);
1080
+ true
1081
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1082
+ gap> BruteForceIsoCheck(map);
1083
+ true
1084
+ gap> BruteForceInverseCheck(map);
1085
+ true
1086
+
1087
+ # AsMonoid:
1088
+ # convert from IsTropicalMinPlusMatrixSemigroup to IsBipartitionMonoid
1089
+ gap> S := Semigroup([
1090
+ > Matrix(IsTropicalMinPlusMatrix,
1091
+ > [[infinity, infinity, infinity, 0, infinity, infinity, infinity, infinity],
1092
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
1093
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
1094
+ > [0, infinity, infinity, infinity, infinity, infinity, infinity, infinity],
1095
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
1096
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
1097
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
1098
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0]],
1099
+ > 3),
1100
+ > Matrix(IsTropicalMinPlusMatrix,
1101
+ > [[infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
1102
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
1103
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
1104
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
1105
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity],
1106
+ > [infinity, 0, infinity, infinity, infinity, infinity, infinity, infinity],
1107
+ > [infinity, infinity, infinity, infinity, infinity, infinity, 0, infinity],
1108
+ > [infinity, infinity, infinity, infinity, 0, infinity, infinity, infinity]],
1109
+ > 3),
1110
+ > Matrix(IsTropicalMinPlusMatrix,
1111
+ > [[infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
1112
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
1113
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
1114
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
1115
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0],
1116
+ > [infinity, infinity, infinity, infinity, infinity, 0, infinity, infinity],
1117
+ > [infinity, infinity, 0, infinity, infinity, infinity, infinity, infinity],
1118
+ > [infinity, infinity, infinity, infinity, infinity, infinity, infinity, 0]],
1119
+ > 3)]);
1120
+ <semigroup of 8x8 tropical min-plus matrices with 3 generators>
1121
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1122
+ <bipartition monoid of size 8, degree 8 with 3 generators>
1123
+ gap> Size(S) = Size(T);
1124
+ true
1125
+ gap> NrDClasses(S) = NrDClasses(T);
1126
+ true
1127
+ gap> NrRClasses(S) = NrRClasses(T);
1128
+ true
1129
+ gap> NrLClasses(S) = NrLClasses(T);
1130
+ true
1131
+ gap> NrIdempotents(S) = NrIdempotents(T);
1132
+ true
1133
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1134
+ gap> BruteForceIsoCheck(map);
1135
+ true
1136
+ gap> BruteForceInverseCheck(map);
1137
+ true
1138
+
1139
+ # AsMonoid:
1140
+ # convert from IsNTPMatrixSemigroup to IsBipartitionMonoid
1141
+ gap> S := Semigroup([
1142
+ > Matrix(IsNTPMatrix,
1143
+ > [[0, 0, 0, 1, 0, 0, 0, 0],
1144
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1145
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1146
+ > [1, 0, 0, 0, 0, 0, 0, 0],
1147
+ > [0, 0, 0, 0, 1, 0, 0, 0],
1148
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1149
+ > [0, 0, 0, 0, 0, 0, 1, 0],
1150
+ > [0, 0, 0, 0, 0, 0, 0, 1]], 3, 4),
1151
+ > Matrix(IsNTPMatrix,
1152
+ > [[0, 0, 0, 0, 1, 0, 0, 0],
1153
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1154
+ > [0, 0, 0, 0, 0, 0, 1, 0],
1155
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1156
+ > [0, 0, 0, 0, 1, 0, 0, 0],
1157
+ > [0, 1, 0, 0, 0, 0, 0, 0],
1158
+ > [0, 0, 0, 0, 0, 0, 1, 0],
1159
+ > [0, 0, 0, 0, 1, 0, 0, 0]], 3, 4),
1160
+ > Matrix(IsNTPMatrix,
1161
+ > [[0, 0, 1, 0, 0, 0, 0, 0],
1162
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1163
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1164
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1165
+ > [0, 0, 0, 0, 0, 0, 0, 1],
1166
+ > [0, 0, 0, 0, 0, 1, 0, 0],
1167
+ > [0, 0, 1, 0, 0, 0, 0, 0],
1168
+ > [0, 0, 0, 0, 0, 0, 0, 1]], 3, 4)]);
1169
+ <semigroup of 8x8 ntp matrices with 3 generators>
1170
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1171
+ <bipartition monoid of size 8, degree 8 with 3 generators>
1172
+ gap> Size(S) = Size(T);
1173
+ true
1174
+ gap> NrDClasses(S) = NrDClasses(T);
1175
+ true
1176
+ gap> NrRClasses(S) = NrRClasses(T);
1177
+ true
1178
+ gap> NrLClasses(S) = NrLClasses(T);
1179
+ true
1180
+ gap> NrIdempotents(S) = NrIdempotents(T);
1181
+ true
1182
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1183
+ gap> BruteForceIsoCheck(map);
1184
+ true
1185
+ gap> BruteForceInverseCheck(map);
1186
+ true
1187
+
1188
+ # AsMonoid:
1189
+ # convert from IsPBRMonoid to IsBipartitionMonoid
1190
+ gap> S := Monoid([
1191
+ > PBR([[-2], [-2], [-5], [-7], [-5], [-9], [-7], [-10], [-9], [-10],
1192
+ > [-12], [-12]],
1193
+ > [[], [1, 2], [], [], [3, 5], [], [4, 7], [], [6, 9], [8, 10], [],
1194
+ > [11, 12]]),
1195
+ > PBR([[-3], [-4], [-6], [-4], [-8], [-6], [-4], [-8], [-11], [-8], [-11],
1196
+ > [-11]],
1197
+ > [[], [], [1], [2, 4, 7], [], [3, 6], [], [5, 8, 10], [], [], [9, 11, 12],
1198
+ > []])]);
1199
+ <pbr monoid of degree 12 with 2 generators>
1200
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1201
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1202
+ gap> Size(S) = Size(T);
1203
+ true
1204
+ gap> NrDClasses(S) = NrDClasses(T);
1205
+ true
1206
+ gap> NrRClasses(S) = NrRClasses(T);
1207
+ true
1208
+ gap> NrLClasses(S) = NrLClasses(T);
1209
+ true
1210
+ gap> NrIdempotents(S) = NrIdempotents(T);
1211
+ true
1212
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1213
+ gap> BruteForceIsoCheck(map);
1214
+ true
1215
+ gap> BruteForceInverseCheck(map);
1216
+ true
1217
+
1218
+ # AsMonoid:
1219
+ # convert from IsFpMonoid to IsBipartitionMonoid
1220
+ gap> F := FreeMonoid(2);; AssignGeneratorVariables(F);;
1221
+ gap> rels := [[m1 ^ 2, m1],
1222
+ > [m1 * m2 ^ 2, m1 * m2],
1223
+ > [m2 ^ 3, m2 ^ 2],
1224
+ > [(m1 * m2) ^ 2, m1 * m2]];;
1225
+ gap> S := F / rels;
1226
+ <fp monoid with 2 generators and 4 relations of length 21>
1227
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1228
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1229
+ gap> Size(S) = Size(T);
1230
+ true
1231
+ gap> NrDClasses(S) = NrDClasses(T);
1232
+ true
1233
+ gap> NrRClasses(S) = NrRClasses(T);
1234
+ true
1235
+ gap> NrLClasses(S) = NrLClasses(T);
1236
+ true
1237
+ gap> NrIdempotents(S) = NrIdempotents(T);
1238
+ true
1239
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1240
+ gap> BruteForceIsoCheck(map);
1241
+ true
1242
+ gap> BruteForceInverseCheck(map);
1243
+ true
1244
+
1245
+ # AsMonoid:
1246
+ # convert from IsBipartitionMonoid to IsBipartitionMonoid
1247
+ gap> S := Monoid([
1248
+ > Bipartition([[1, 2, -2], [3], [4], [-1, -3], [-4]]),
1249
+ > Bipartition([[1, 4, -4], [2], [3, -1, -2, -3]])]);
1250
+ <bipartition monoid of degree 4 with 2 generators>
1251
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1252
+ <bipartition monoid of degree 4 with 2 generators>
1253
+ gap> Size(S) = Size(T);
1254
+ true
1255
+ gap> NrDClasses(S) = NrDClasses(T);
1256
+ true
1257
+ gap> NrRClasses(S) = NrRClasses(T);
1258
+ true
1259
+ gap> NrLClasses(S) = NrLClasses(T);
1260
+ true
1261
+ gap> NrIdempotents(S) = NrIdempotents(T);
1262
+ true
1263
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1264
+ gap> BruteForceIsoCheck(map);
1265
+ true
1266
+ gap> BruteForceInverseCheck(map);
1267
+ true
1268
+
1269
+ # AsMonoid:
1270
+ # convert from IsTransformationMonoid to IsBipartitionMonoid
1271
+ gap> S := Monoid([
1272
+ > Transformation([2, 2, 5, 7, 5, 9, 7, 10, 9, 10, 12, 12]),
1273
+ > Transformation([3, 4, 6, 4, 8, 6, 4, 8, 11, 8, 11, 11])]);
1274
+ <transformation monoid of degree 12 with 2 generators>
1275
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1276
+ <bipartition monoid of degree 12 with 2 generators>
1277
+ gap> Size(S) = Size(T);
1278
+ true
1279
+ gap> NrDClasses(S) = NrDClasses(T);
1280
+ true
1281
+ gap> NrRClasses(S) = NrRClasses(T);
1282
+ true
1283
+ gap> NrLClasses(S) = NrLClasses(T);
1284
+ true
1285
+ gap> NrIdempotents(S) = NrIdempotents(T);
1286
+ true
1287
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1288
+ gap> BruteForceIsoCheck(map);
1289
+ true
1290
+ gap> BruteForceInverseCheck(map);
1291
+ true
1292
+
1293
+ # AsMonoid:
1294
+ # convert from IsBooleanMatMonoid to IsBipartitionMonoid
1295
+ gap> S := Monoid([
1296
+ > Matrix(IsBooleanMat,
1297
+ > [[false, true, false, false, false, false, false, false, false, false,
1298
+ > false, false],
1299
+ > [false, true, false, false, false, false, false, false, false, false,
1300
+ > false, false],
1301
+ > [false, false, false, false, true, false, false, false, false, false,
1302
+ > false, false],
1303
+ > [false, false, false, false, false, false, true, false, false, false,
1304
+ > false, false],
1305
+ > [false, false, false, false, true, false, false, false, false, false,
1306
+ > false, false],
1307
+ > [false, false, false, false, false, false, false, false, true, false,
1308
+ > false, false],
1309
+ > [false, false, false, false, false, false, true, false, false, false,
1310
+ > false, false],
1311
+ > [false, false, false, false, false, false, false, false, false, true,
1312
+ > false, false],
1313
+ > [false, false, false, false, false, false, false, false, true, false,
1314
+ > false, false],
1315
+ > [false, false, false, false, false, false, false, false, false, true,
1316
+ > false, false],
1317
+ > [false, false, false, false, false, false, false, false, false, false,
1318
+ > false, true],
1319
+ > [false, false, false, false, false, false, false, false, false, false,
1320
+ > false, true]]),
1321
+ > Matrix(IsBooleanMat,
1322
+ > [[false, false, true, false, false, false, false, false, false, false,
1323
+ > false, false],
1324
+ > [false, false, false, true, false, false, false, false, false, false,
1325
+ > false, false],
1326
+ > [false, false, false, false, false, true, false, false, false, false,
1327
+ > false, false],
1328
+ > [false, false, false, true, false, false, false, false, false, false,
1329
+ > false, false],
1330
+ > [false, false, false, false, false, false, false, true, false, false,
1331
+ > false, false],
1332
+ > [false, false, false, false, false, true, false, false, false, false,
1333
+ > false, false],
1334
+ > [false, false, false, true, false, false, false, false, false, false,
1335
+ > false, false],
1336
+ > [false, false, false, false, false, false, false, true, false, false,
1337
+ > false, false],
1338
+ > [false, false, false, false, false, false, false, false, false, false,
1339
+ > true, false],
1340
+ > [false, false, false, false, false, false, false, true, false, false,
1341
+ > false, false],
1342
+ > [false, false, false, false, false, false, false, false, false, false,
1343
+ > true, false],
1344
+ > [false, false, false, false, false, false, false, false, false, false,
1345
+ > true, false]])]);
1346
+ <monoid of 12x12 boolean matrices with 2 generators>
1347
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1348
+ <bipartition monoid of degree 12 with 2 generators>
1349
+ gap> Size(S) = Size(T);
1350
+ true
1351
+ gap> NrDClasses(S) = NrDClasses(T);
1352
+ true
1353
+ gap> NrRClasses(S) = NrRClasses(T);
1354
+ true
1355
+ gap> NrLClasses(S) = NrLClasses(T);
1356
+ true
1357
+ gap> NrIdempotents(S) = NrIdempotents(T);
1358
+ true
1359
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1360
+ gap> BruteForceIsoCheck(map);
1361
+ true
1362
+ gap> BruteForceInverseCheck(map);
1363
+ true
1364
+
1365
+ # AsMonoid:
1366
+ # convert from IsMaxPlusMatrixMonoid to IsBipartitionMonoid
1367
+ gap> x := -infinity;;
1368
+ gap> S := Monoid([
1369
+ > Matrix(IsMaxPlusMatrix,
1370
+ > [[x, 0, x, x, x, x, x, x, x, x, x, x],
1371
+ > [x, 0, x, x, x, x, x, x, x, x, x, x],
1372
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1373
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1374
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1375
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1376
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1377
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1378
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1379
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1380
+ > [x, x, x, x, x, x, x, x, x, x, x, 0],
1381
+ > [x, x, x, x, x, x, x, x, x, x, x, 0]]),
1382
+ > Matrix(IsMaxPlusMatrix,
1383
+ > [[x, x, 0, x, x, x, x, x, x, x, x, x],
1384
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1385
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1386
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1387
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1388
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1389
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1390
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1391
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1392
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1393
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1394
+ > [x, x, x, x, x, x, x, x, x, x, 0, x]])]);
1395
+ <monoid of 12x12 max-plus matrices with 2 generators>
1396
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1397
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1398
+ gap> Size(S) = Size(T);
1399
+ true
1400
+ gap> NrDClasses(S) = NrDClasses(T);
1401
+ true
1402
+ gap> NrRClasses(S) = NrRClasses(T);
1403
+ true
1404
+ gap> NrLClasses(S) = NrLClasses(T);
1405
+ true
1406
+ gap> NrIdempotents(S) = NrIdempotents(T);
1407
+ true
1408
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1409
+ gap> BruteForceIsoCheck(map);
1410
+ true
1411
+ gap> BruteForceInverseCheck(map);
1412
+ true
1413
+
1414
+ # AsMonoid:
1415
+ # convert from IsMinPlusMatrixMonoid to IsBipartitionMonoid
1416
+ gap> x := infinity;;
1417
+ gap> S := Monoid([
1418
+ > Matrix(IsMinPlusMatrix,
1419
+ > [[x, 0, x, x, x, x, x, x, x, x, x, x],
1420
+ > [x, 0, x, x, x, x, x, x, x, x, x, x],
1421
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1422
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1423
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1424
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1425
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1426
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1427
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1428
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1429
+ > [x, x, x, x, x, x, x, x, x, x, x, 0],
1430
+ > [x, x, x, x, x, x, x, x, x, x, x, 0]]),
1431
+ > Matrix(IsMinPlusMatrix,
1432
+ > [[x, x, 0, x, x, x, x, x, x, x, x, x],
1433
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1434
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1435
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1436
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1437
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1438
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1439
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1440
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1441
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1442
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1443
+ > [x, x, x, x, x, x, x, x, x, x, 0, x]])]);
1444
+ <monoid of 12x12 min-plus matrices with 2 generators>
1445
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1446
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1447
+ gap> Size(S) = Size(T);
1448
+ true
1449
+ gap> NrDClasses(S) = NrDClasses(T);
1450
+ true
1451
+ gap> NrRClasses(S) = NrRClasses(T);
1452
+ true
1453
+ gap> NrLClasses(S) = NrLClasses(T);
1454
+ true
1455
+ gap> NrIdempotents(S) = NrIdempotents(T);
1456
+ true
1457
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1458
+ gap> BruteForceIsoCheck(map);
1459
+ true
1460
+ gap> BruteForceInverseCheck(map);
1461
+ true
1462
+
1463
+ # AsMonoid:
1464
+ # convert from IsProjectiveMaxPlusMatrixMonoid to IsBipartitionMonoid
1465
+ gap> x := -infinity;;
1466
+ gap> S := Monoid([
1467
+ > Matrix(IsProjectiveMaxPlusMatrix,
1468
+ > [[x, 0, x, x, x, x, x, x, x, x, x, x],
1469
+ > [x, 0, x, x, x, x, x, x, x, x, x, x],
1470
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1471
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1472
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1473
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1474
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1475
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1476
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1477
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1478
+ > [x, x, x, x, x, x, x, x, x, x, x, 0],
1479
+ > [x, x, x, x, x, x, x, x, x, x, x, 0]]),
1480
+ > Matrix(IsProjectiveMaxPlusMatrix,
1481
+ > [[x, x, 0, x, x, x, x, x, x, x, x, x],
1482
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1483
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1484
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1485
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1486
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1487
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1488
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1489
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1490
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1491
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1492
+ > [x, x, x, x, x, x, x, x, x, x, 0, x]])]);
1493
+ <monoid of 12x12 projective max-plus matrices with 2 generators>
1494
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1495
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1496
+ gap> Size(S) = Size(T);
1497
+ true
1498
+ gap> NrDClasses(S) = NrDClasses(T);
1499
+ true
1500
+ gap> NrRClasses(S) = NrRClasses(T);
1501
+ true
1502
+ gap> NrLClasses(S) = NrLClasses(T);
1503
+ true
1504
+ gap> NrIdempotents(S) = NrIdempotents(T);
1505
+ true
1506
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1507
+ gap> BruteForceIsoCheck(map);
1508
+ true
1509
+ gap> BruteForceInverseCheck(map);
1510
+ true
1511
+
1512
+ # AsMonoid:
1513
+ # convert from IsIntegerMatrixMonoid to IsBipartitionMonoid
1514
+ gap> S := Monoid([
1515
+ > Matrix(Integers,
1516
+ > [[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1517
+ > [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1518
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
1519
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
1520
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
1521
+ > [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
1522
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
1523
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
1524
+ > [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
1525
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
1526
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
1527
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]]),
1528
+ > Matrix(Integers,
1529
+ > [[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1530
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1531
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
1532
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1533
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1534
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
1535
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1536
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1537
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
1538
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1539
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
1540
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]])]);
1541
+ <monoid of 12x12 integer matrices with 2 generators>
1542
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1543
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1544
+ gap> Size(S) = Size(T);
1545
+ true
1546
+ gap> NrDClasses(S) = NrDClasses(T);
1547
+ true
1548
+ gap> NrRClasses(S) = NrRClasses(T);
1549
+ true
1550
+ gap> NrLClasses(S) = NrLClasses(T);
1551
+ true
1552
+ gap> NrIdempotents(S) = NrIdempotents(T);
1553
+ true
1554
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1555
+ gap> BruteForceIsoCheck(map);
1556
+ true
1557
+ gap> BruteForceInverseCheck(map);
1558
+ true
1559
+
1560
+ # AsMonoid:
1561
+ # convert from IsTropicalMaxPlusMatrixMonoid to IsBipartitionMonoid
1562
+ gap> x := -infinity;;
1563
+ gap> S := Monoid([
1564
+ > Matrix(IsTropicalMaxPlusMatrix,
1565
+ > [[x, 0, x, x, x, x, x, x, x, x, x, x],
1566
+ > [x, 0, x, x, x, x, x, x, x, x, x, x],
1567
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1568
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1569
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1570
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1571
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1572
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1573
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1574
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1575
+ > [x, x, x, x, x, x, x, x, x, x, x, 0],
1576
+ > [x, x, x, x, x, x, x, x, x, x, x, 0]], 5),
1577
+ > Matrix(IsTropicalMaxPlusMatrix,
1578
+ > [[x, x, 0, x, x, x, x, x, x, x, x, x],
1579
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1580
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1581
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1582
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1583
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1584
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1585
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1586
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1587
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1588
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1589
+ > [x, x, x, x, x, x, x, x, x, x, 0, x]], 5)]);
1590
+ <monoid of 12x12 tropical max-plus matrices with 2 generators>
1591
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1592
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1593
+ gap> Size(S) = Size(T);
1594
+ true
1595
+ gap> NrDClasses(S) = NrDClasses(T);
1596
+ true
1597
+ gap> NrRClasses(S) = NrRClasses(T);
1598
+ true
1599
+ gap> NrLClasses(S) = NrLClasses(T);
1600
+ true
1601
+ gap> NrIdempotents(S) = NrIdempotents(T);
1602
+ true
1603
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1604
+ gap> BruteForceIsoCheck(map);
1605
+ true
1606
+ gap> BruteForceInverseCheck(map);
1607
+ true
1608
+
1609
+ # AsMonoid:
1610
+ # convert from IsTropicalMinPlusMatrixMonoid to IsBipartitionMonoid
1611
+ gap> x := infinity;;
1612
+ gap> S := Monoid([
1613
+ > Matrix(IsTropicalMinPlusMatrix,
1614
+ > [[x, 0, x, x, x, x, x, x, x, x, x, x],
1615
+ > [x, 0, x, x, x, x, x, x, x, x, x, x],
1616
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1617
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1618
+ > [x, x, x, x, 0, x, x, x, x, x, x, x],
1619
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1620
+ > [x, x, x, x, x, x, 0, x, x, x, x, x],
1621
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1622
+ > [x, x, x, x, x, x, x, x, 0, x, x, x],
1623
+ > [x, x, x, x, x, x, x, x, x, 0, x, x],
1624
+ > [x, x, x, x, x, x, x, x, x, x, x, 0],
1625
+ > [x, x, x, x, x, x, x, x, x, x, x, 0]], 2),
1626
+ > Matrix(IsTropicalMinPlusMatrix,
1627
+ > [[x, x, 0, x, x, x, x, x, x, x, x, x],
1628
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1629
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1630
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1631
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1632
+ > [x, x, x, x, x, 0, x, x, x, x, x, x],
1633
+ > [x, x, x, 0, x, x, x, x, x, x, x, x],
1634
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1635
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1636
+ > [x, x, x, x, x, x, x, 0, x, x, x, x],
1637
+ > [x, x, x, x, x, x, x, x, x, x, 0, x],
1638
+ > [x, x, x, x, x, x, x, x, x, x, 0, x]], 2)]);
1639
+ <monoid of 12x12 tropical min-plus matrices with 2 generators>
1640
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1641
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1642
+ gap> Size(S) = Size(T);
1643
+ true
1644
+ gap> NrDClasses(S) = NrDClasses(T);
1645
+ true
1646
+ gap> NrRClasses(S) = NrRClasses(T);
1647
+ true
1648
+ gap> NrLClasses(S) = NrLClasses(T);
1649
+ true
1650
+ gap> NrIdempotents(S) = NrIdempotents(T);
1651
+ true
1652
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1653
+ gap> BruteForceIsoCheck(map);
1654
+ true
1655
+ gap> BruteForceInverseCheck(map);
1656
+ true
1657
+
1658
+ # AsMonoid:
1659
+ # convert from IsNTPMatrixMonoid to IsBipartitionMonoid
1660
+ gap> S := Monoid([
1661
+ > Matrix(IsNTPMatrix,
1662
+ > [[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1663
+ > [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1664
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
1665
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
1666
+ > [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
1667
+ > [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
1668
+ > [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
1669
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
1670
+ > [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
1671
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
1672
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
1673
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]], 5, 5),
1674
+ > Matrix(IsNTPMatrix,
1675
+ > [[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
1676
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1677
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
1678
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1679
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1680
+ > [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
1681
+ > [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
1682
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1683
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
1684
+ > [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
1685
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
1686
+ > [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]], 5, 5)]);
1687
+ <monoid of 12x12 ntp matrices with 2 generators>
1688
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1689
+ <bipartition monoid of size 12, degree 12 with 2 generators>
1690
+ gap> Size(S) = Size(T);
1691
+ true
1692
+ gap> NrDClasses(S) = NrDClasses(T);
1693
+ true
1694
+ gap> NrRClasses(S) = NrRClasses(T);
1695
+ true
1696
+ gap> NrLClasses(S) = NrLClasses(T);
1697
+ true
1698
+ gap> NrIdempotents(S) = NrIdempotents(T);
1699
+ true
1700
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1701
+ gap> BruteForceIsoCheck(map);
1702
+ true
1703
+ gap> BruteForceInverseCheck(map);
1704
+ true
1705
+
1706
+ # AsSemigroup:
1707
+ # convert from IsReesMatrixSemigroup to IsBipartitionSemigroup
1708
+ gap> R := ReesMatrixSemigroup(Group([(1, 2)]), [[()]]);
1709
+ <Rees matrix semigroup 1x1 over Group([ (1,2) ])>
1710
+ gap> T := AsSemigroup(IsBipartitionSemigroup, R);
1711
+ <block bijection group of size 2, degree 2 with 1 generator>
1712
+ gap> Size(R) = Size(T);
1713
+ true
1714
+ gap> NrDClasses(R) = NrDClasses(T);
1715
+ true
1716
+ gap> NrRClasses(R) = NrRClasses(T);
1717
+ true
1718
+ gap> NrLClasses(R) = NrLClasses(T);
1719
+ true
1720
+ gap> NrIdempotents(R) = NrIdempotents(T);
1721
+ true
1722
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, R);;
1723
+ gap> BruteForceIsoCheck(map);
1724
+ true
1725
+ gap> BruteForceInverseCheck(map);
1726
+ true
1727
+
1728
+ # AsMonoid
1729
+ # convert from IsReesMatrixSemigroup to IsBipartitionMonoid
1730
+ gap> R := ReesMatrixSemigroup(Group([(1, 2)]), [[(1, 2)]]);
1731
+ <Rees matrix semigroup 1x1 over Group([ (1,2) ])>
1732
+ gap> T := AsMonoid(IsBipartitionMonoid, R);
1733
+ <block bijection group of size 2, degree 2 with 1 generator>
1734
+ gap> Size(R) = Size(T);
1735
+ true
1736
+ gap> NrDClasses(R) = NrDClasses(T);
1737
+ true
1738
+ gap> NrRClasses(R) = NrRClasses(T);
1739
+ true
1740
+ gap> NrLClasses(R) = NrLClasses(T);
1741
+ true
1742
+ gap> NrIdempotents(R) = NrIdempotents(T);
1743
+ true
1744
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, R);;
1745
+ gap> BruteForceIsoCheck(map);
1746
+ true
1747
+ gap> BruteForceInverseCheck(map);
1748
+ true
1749
+
1750
+ # AsSemigroup:
1751
+ # convert from IsReesZeroMatrixSemigroup to IsBipartitionSemigroup
1752
+ gap> R := ReesZeroMatrixSemigroup(Group([(1, 2)]),
1753
+ > [[(1, 2)]]);
1754
+ <Rees 0-matrix semigroup 1x1 over Group([ (1,2) ])>
1755
+ gap> T := AsSemigroup(IsBipartitionSemigroup, R);
1756
+ <bipartition semigroup of size 3, degree 3 with 2 generators>
1757
+ gap> Size(R) = Size(T);
1758
+ true
1759
+ gap> NrDClasses(R) = NrDClasses(T);
1760
+ true
1761
+ gap> NrRClasses(R) = NrRClasses(T);
1762
+ true
1763
+ gap> NrLClasses(R) = NrLClasses(T);
1764
+ true
1765
+ gap> NrIdempotents(R) = NrIdempotents(T);
1766
+ true
1767
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, R);;
1768
+ gap> BruteForceIsoCheck(map);
1769
+ true
1770
+ gap> BruteForceInverseCheck(map);
1771
+ true
1772
+
1773
+ # AsMonoid
1774
+ # convert from IsReesZeroMatrixSemigroup to IsBipartitionMonoid
1775
+ gap> R := ReesZeroMatrixSemigroup(Group([(1, 2)]), [[()]]);
1776
+ <Rees 0-matrix semigroup 1x1 over Group([ (1,2) ])>
1777
+ gap> T := AsMonoid(IsBipartitionMonoid, R);
1778
+ <bipartition monoid of size 3, degree 3 with 2 generators>
1779
+ gap> Size(R) = Size(T);
1780
+ true
1781
+ gap> NrDClasses(R) = NrDClasses(T);
1782
+ true
1783
+ gap> NrRClasses(R) = NrRClasses(T);
1784
+ true
1785
+ gap> NrLClasses(R) = NrLClasses(T);
1786
+ true
1787
+ gap> NrIdempotents(R) = NrIdempotents(T);
1788
+ true
1789
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, R);;
1790
+ gap> BruteForceIsoCheck(map);
1791
+ true
1792
+ gap> BruteForceInverseCheck(map);
1793
+ true
1794
+
1795
+ # AsSemigroup:
1796
+ # convert from graph inverse to IsBipartitionSemigroup
1797
+ gap> S := GraphInverseSemigroup(Digraph([[2], []]));
1798
+ <finite graph inverse semigroup with 2 vertices, 1 edge>
1799
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
1800
+ <bipartition semigroup of size 6, degree 7 with 4 generators>
1801
+ gap> Size(S) = Size(T);
1802
+ true
1803
+ gap> NrDClasses(S) = NrDClasses(T);
1804
+ true
1805
+ gap> NrRClasses(S) = NrRClasses(T);
1806
+ true
1807
+ gap> NrLClasses(S) = NrLClasses(T);
1808
+ true
1809
+ gap> NrIdempotents(S) = NrIdempotents(T);
1810
+ true
1811
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
1812
+ gap> BruteForceIsoCheck(map);
1813
+ true
1814
+ gap> BruteForceInverseCheck(map);
1815
+ true
1816
+
1817
+ # AsSemigroup:
1818
+ # convert from IsBlockBijectionSemigroup to IsBipartitionSemigroup
1819
+ gap> S := InverseSemigroup(Bipartition([[1, -1, -3], [2, 3, -2]]));;
1820
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
1821
+ <inverse block bijection semigroup of degree 3 with 1 generator>
1822
+ gap> IsInverseSemigroup(T);
1823
+ true
1824
+ gap> Size(S) = Size(T);
1825
+ true
1826
+ gap> NrDClasses(S) = NrDClasses(T);
1827
+ true
1828
+ gap> NrRClasses(S) = NrRClasses(T);
1829
+ true
1830
+ gap> NrLClasses(S) = NrLClasses(T);
1831
+ true
1832
+ gap> NrIdempotents(S) = NrIdempotents(T);
1833
+ true
1834
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
1835
+ gap> BruteForceIsoCheck(map);
1836
+ true
1837
+ gap> BruteForceInverseCheck(map);
1838
+ true
1839
+
1840
+ # AsSemigroup:
1841
+ # convert from IsBlockBijectionMonoid to IsBipartitionMonoid
1842
+ gap> S := InverseMonoid([
1843
+ > Bipartition([[1, -1, -3], [2, 3, -2]])]);;
1844
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
1845
+ <inverse block bijection monoid of degree 3 with 1 generator>
1846
+ gap> IsInverseMonoid(T);
1847
+ true
1848
+ gap> Size(S) = Size(T);
1849
+ true
1850
+ gap> NrDClasses(S) = NrDClasses(T);
1851
+ true
1852
+ gap> NrRClasses(S) = NrRClasses(T);
1853
+ true
1854
+ gap> NrLClasses(S) = NrLClasses(T);
1855
+ true
1856
+ gap> NrIdempotents(S) = NrIdempotents(T);
1857
+ true
1858
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
1859
+ gap> BruteForceIsoCheck(map);
1860
+ true
1861
+ gap> BruteForceInverseCheck(map);
1862
+ true
1863
+
1864
+ # AsSemigroup:
1865
+ # convert from IsBlockBijectionMonoid to IsBipartitionSemigroup
1866
+ gap> S := InverseMonoid([
1867
+ > Bipartition([[1, -1, -3], [2, 3, -2]])]);;
1868
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
1869
+ <inverse block bijection monoid of degree 3 with 1 generator>
1870
+ gap> IsInverseSemigroup(T) and IsMonoidAsSemigroup(T);
1871
+ true
1872
+ gap> Size(S) = Size(T);
1873
+ true
1874
+ gap> NrDClasses(S) = NrDClasses(T);
1875
+ true
1876
+ gap> NrRClasses(S) = NrRClasses(T);
1877
+ true
1878
+ gap> NrLClasses(S) = NrLClasses(T);
1879
+ true
1880
+ gap> NrIdempotents(S) = NrIdempotents(T);
1881
+ true
1882
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
1883
+ gap> BruteForceIsoCheck(map);
1884
+ true
1885
+ gap> BruteForceInverseCheck(map);
1886
+ true
1887
+
1888
+ # AsSemigroup:
1889
+ # convert from IsPartialPermSemigroup to IsBlockBijectionSemigroup
1890
+ # for an inverse semigroup
1891
+ gap> S := SymmetricInverseMonoid(2);;
1892
+ gap> T := AsSemigroup(IsBlockBijectionSemigroup, S);
1893
+ <inverse block bijection monoid of degree 3 with 2 generators>
1894
+ gap> IsInverseSemigroup(T);
1895
+ true
1896
+ gap> Size(S) = Size(T);
1897
+ true
1898
+ gap> NrDClasses(S) = NrDClasses(T);
1899
+ true
1900
+ gap> NrRClasses(S) = NrRClasses(T);
1901
+ true
1902
+ gap> NrLClasses(S) = NrLClasses(T);
1903
+ true
1904
+ gap> NrIdempotents(S) = NrIdempotents(T);
1905
+ true
1906
+ gap> map := IsomorphismSemigroup(IsBlockBijectionSemigroup, S);;
1907
+ gap> BruteForceIsoCheck(map);
1908
+ true
1909
+ gap> BruteForceInverseCheck(map);
1910
+ true
1911
+
1912
+ # AsSemigroup:
1913
+ # convert from IsPartialPermSemigroup to IsBlockBijectionSemigroup
1914
+ # for a non-inverse semigroup
1915
+ gap> S := Semigroup([
1916
+ > PartialPerm([1, 2, 4], [4, 2, 3]),
1917
+ > PartialPerm([1, 3, 4], [1, 4, 3]),
1918
+ > PartialPerm([1, 2, 3, 4], [3, 4, 1, 2]),
1919
+ > PartialPerm([1, 3, 4], [2, 4, 1])]);;
1920
+ gap> T := AsSemigroup(IsBlockBijectionSemigroup, S);
1921
+ <block bijection semigroup of degree 5 with 4 generators>
1922
+ gap> IsInverseSemigroup(T);
1923
+ false
1924
+ gap> Size(S) = Size(T);
1925
+ true
1926
+ gap> NrDClasses(S) = NrDClasses(T);
1927
+ true
1928
+ gap> NrRClasses(S) = NrRClasses(T);
1929
+ true
1930
+ gap> NrLClasses(S) = NrLClasses(T);
1931
+ true
1932
+ gap> NrIdempotents(S) = NrIdempotents(T);
1933
+ true
1934
+ gap> map := IsomorphismSemigroup(IsBlockBijectionSemigroup, S);;
1935
+ gap> BruteForceIsoCheck(map);
1936
+ true
1937
+ gap> BruteForceInverseCheck(map);
1938
+ true
1939
+
1940
+ # AsSemigroup:
1941
+ # convert from IsReesMatrixSemigroup to IsBipartitionSemigroup
1942
+ gap> R := ReesMatrixSemigroup(Group([(1, 2)]), [[(1, 2), (1, 2)], [(), ()]]);
1943
+ <Rees matrix semigroup 2x2 over Group([ (1,2) ])>
1944
+ gap> T := AsSemigroup(IsBipartitionSemigroup, R);
1945
+ <bipartition semigroup of size 8, degree 9 with 2 generators>
1946
+ gap> Size(R) = Size(T);
1947
+ true
1948
+ gap> NrDClasses(R) = NrDClasses(T);
1949
+ true
1950
+ gap> NrRClasses(R) = NrRClasses(T);
1951
+ true
1952
+ gap> NrLClasses(R) = NrLClasses(T);
1953
+ true
1954
+ gap> NrIdempotents(R) = NrIdempotents(T);
1955
+ true
1956
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, R);;
1957
+ gap> BruteForceIsoCheck(map);
1958
+ true
1959
+ gap> BruteForceInverseCheck(map);
1960
+ true
1961
+
1962
+ # AsMonoid
1963
+ # convert from IsReesMatrixSemigroup to IsBipartitionMonoid
1964
+ gap> R := ReesMatrixSemigroup(Group([(1, 2)]), [[(1, 2)]]);
1965
+ <Rees matrix semigroup 1x1 over Group([ (1,2) ])>
1966
+ gap> T := AsMonoid(IsBipartitionMonoid, R);
1967
+ <block bijection group of size 2, degree 2 with 1 generator>
1968
+ gap> Size(R) = Size(T);
1969
+ true
1970
+ gap> NrDClasses(R) = NrDClasses(T);
1971
+ true
1972
+ gap> NrRClasses(R) = NrRClasses(T);
1973
+ true
1974
+ gap> NrLClasses(R) = NrLClasses(T);
1975
+ true
1976
+ gap> NrIdempotents(R) = NrIdempotents(T);
1977
+ true
1978
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, R);;
1979
+ gap> BruteForceIsoCheck(map);
1980
+ true
1981
+ gap> BruteForceInverseCheck(map);
1982
+ true
1983
+
1984
+ # AsSemigroup:
1985
+ # convert from IsReesZeroMatrixSemigroup to IsBipartitionSemigroup
1986
+ gap> R := ReesZeroMatrixSemigroup(Group([(1, 2)]),
1987
+ > [[(1, 2), (1, 2)], [0, ()]]);
1988
+ <Rees 0-matrix semigroup 2x2 over Group([ (1,2) ])>
1989
+ gap> T := AsSemigroup(IsBipartitionSemigroup, R);
1990
+ <bipartition semigroup of size 9, degree 10 with 3 generators>
1991
+ gap> Size(R) = Size(T);
1992
+ true
1993
+ gap> NrDClasses(R) = NrDClasses(T);
1994
+ true
1995
+ gap> NrRClasses(R) = NrRClasses(T);
1996
+ true
1997
+ gap> NrLClasses(R) = NrLClasses(T);
1998
+ true
1999
+ gap> NrIdempotents(R) = NrIdempotents(T);
2000
+ true
2001
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, R);;
2002
+ gap> BruteForceIsoCheck(map);
2003
+ true
2004
+ gap> BruteForceInverseCheck(map);
2005
+ true
2006
+
2007
+ # AsMonoid
2008
+ # convert from IsReesZeroMatrixSemigroup to IsBipartitionMonoid
2009
+ gap> R := ReesZeroMatrixSemigroup(Group([(1, 2)]), [[(1, 2)]]);
2010
+ <Rees 0-matrix semigroup 1x1 over Group([ (1,2) ])>
2011
+ gap> T := AsMonoid(IsBipartitionMonoid, R);
2012
+ <bipartition monoid of size 3, degree 3 with 2 generators>
2013
+ gap> Size(R) = Size(T);
2014
+ true
2015
+ gap> NrDClasses(R) = NrDClasses(T);
2016
+ true
2017
+ gap> NrRClasses(R) = NrRClasses(T);
2018
+ true
2019
+ gap> NrLClasses(R) = NrLClasses(T);
2020
+ true
2021
+ gap> NrIdempotents(R) = NrIdempotents(T);
2022
+ true
2023
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, R);;
2024
+ gap> BruteForceIsoCheck(map);
2025
+ true
2026
+ gap> BruteForceInverseCheck(map);
2027
+ true
2028
+
2029
+ # AsSemigroup:
2030
+ # convert from graph inverse to IsBipartitionSemigroup
2031
+ gap> S := GraphInverseSemigroup(Digraph([[2], []]));
2032
+ <finite graph inverse semigroup with 2 vertices, 1 edge>
2033
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2034
+ <bipartition semigroup of size 6, degree 7 with 4 generators>
2035
+ gap> Size(S) = Size(T);
2036
+ true
2037
+ gap> NrDClasses(S) = NrDClasses(T);
2038
+ true
2039
+ gap> NrRClasses(S) = NrRClasses(T);
2040
+ true
2041
+ gap> NrLClasses(S) = NrLClasses(T);
2042
+ true
2043
+ gap> NrIdempotents(S) = NrIdempotents(T);
2044
+ true
2045
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2046
+ gap> BruteForceIsoCheck(map);
2047
+ true
2048
+ gap> BruteForceInverseCheck(map);
2049
+ true
2050
+
2051
+ # AsSemigroup:
2052
+ # convert from free band to IsBipartitionSemigroup
2053
+ gap> S := FreeBand(2);
2054
+ <free band on the generators [ x1, x2 ]>
2055
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2056
+ <bipartition semigroup of size 6, degree 7 with 2 generators>
2057
+ gap> Size(S) = Size(T);
2058
+ true
2059
+ gap> NrDClasses(S) = NrDClasses(T);
2060
+ true
2061
+ gap> NrRClasses(S) = NrRClasses(T);
2062
+ true
2063
+ gap> NrLClasses(S) = NrLClasses(T);
2064
+ true
2065
+ gap> NrIdempotents(S) = NrIdempotents(T);
2066
+ true
2067
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2068
+ gap> BruteForceIsoCheck(map);
2069
+ true
2070
+ gap> BruteForceInverseCheck(map);
2071
+ true
2072
+
2073
+ # AsSemigroup:
2074
+ # convert from perm group to IsBipartitionSemigroup
2075
+ gap> S := DihedralGroup(IsPermGroup, 6);
2076
+ Group([ (1,2,3), (2,3) ])
2077
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2078
+ <block bijection group of degree 3 with 2 generators>
2079
+ gap> Size(S) = Size(T);
2080
+ true
2081
+ gap> NrDClasses(S) = NrDClasses(T);
2082
+ true
2083
+ gap> NrRClasses(S) = NrRClasses(T);
2084
+ true
2085
+ gap> NrLClasses(S) = NrLClasses(T);
2086
+ true
2087
+ gap> NrIdempotents(S) = NrIdempotents(T);
2088
+ true
2089
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2090
+ gap> BruteForceIsoCheck(map);
2091
+ true
2092
+ gap> BruteForceInverseCheck(map);
2093
+ true
2094
+
2095
+ # AsSemigroup:
2096
+ # convert from perm group to IsBipartitionMonoid
2097
+ gap> S := DihedralGroup(IsPermGroup, 6);
2098
+ Group([ (1,2,3), (2,3) ])
2099
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
2100
+ <block bijection group of degree 3 with 2 generators>
2101
+ gap> Size(S) = Size(T);
2102
+ true
2103
+ gap> NrDClasses(S) = NrDClasses(T);
2104
+ true
2105
+ gap> NrRClasses(S) = NrRClasses(T);
2106
+ true
2107
+ gap> NrLClasses(S) = NrLClasses(T);
2108
+ true
2109
+ gap> NrIdempotents(S) = NrIdempotents(T);
2110
+ true
2111
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
2112
+ gap> BruteForceIsoCheck(map);
2113
+ true
2114
+ gap> BruteForceInverseCheck(map);
2115
+ true
2116
+
2117
+ # AsSemigroup:
2118
+ # convert from non-perm group to IsBipartitionSemigroup
2119
+ gap> S := DihedralGroup(6);
2120
+ <pc group of size 6 with 2 generators>
2121
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2122
+ <block bijection group of size 6, degree 6 with 5 generators>
2123
+ gap> Size(S) = Size(T);
2124
+ true
2125
+ gap> NrDClasses(S) = NrDClasses(T);
2126
+ true
2127
+ gap> NrRClasses(S) = NrRClasses(T);
2128
+ true
2129
+ gap> NrLClasses(S) = NrLClasses(T);
2130
+ true
2131
+ gap> NrIdempotents(S) = NrIdempotents(T);
2132
+ true
2133
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2134
+ gap> BruteForceIsoCheck(map);
2135
+ true
2136
+ gap> BruteForceInverseCheck(map);
2137
+ true
2138
+
2139
+ # AsSemigroup:
2140
+ # convert from non-perm group to IsBipartitionMonoid
2141
+ gap> S := DihedralGroup(6);
2142
+ <pc group of size 6 with 2 generators>
2143
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
2144
+ <block bijection group of size 6, degree 6 with 5 generators>
2145
+ gap> Size(S) = Size(T);
2146
+ true
2147
+ gap> NrDClasses(S) = NrDClasses(T);
2148
+ true
2149
+ gap> NrRClasses(S) = NrRClasses(T);
2150
+ true
2151
+ gap> NrLClasses(S) = NrLClasses(T);
2152
+ true
2153
+ gap> NrIdempotents(S) = NrIdempotents(T);
2154
+ true
2155
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
2156
+ gap> BruteForceIsoCheck(map);
2157
+ true
2158
+ gap> BruteForceInverseCheck(map);
2159
+ true
2160
+
2161
+ # AsSemigroup:
2162
+ # convert from IsBlockBijectionSemigroup to IsBipartitionSemigroup
2163
+ gap> S := InverseSemigroup(Bipartition([[1, -1, -3], [2, 3, -2]]));;
2164
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2165
+ <inverse block bijection semigroup of degree 3 with 1 generator>
2166
+ gap> IsInverseSemigroup(T);
2167
+ true
2168
+ gap> Size(S) = Size(T);
2169
+ true
2170
+ gap> NrDClasses(S) = NrDClasses(T);
2171
+ true
2172
+ gap> NrRClasses(S) = NrRClasses(T);
2173
+ true
2174
+ gap> NrLClasses(S) = NrLClasses(T);
2175
+ true
2176
+ gap> NrIdempotents(S) = NrIdempotents(T);
2177
+ true
2178
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2179
+ gap> BruteForceIsoCheck(map);
2180
+ true
2181
+ gap> BruteForceInverseCheck(map);
2182
+ true
2183
+
2184
+ # AsSemigroup:
2185
+ # convert from IsBlockBijectionMonoid to IsBipartitionMonoid
2186
+ gap> S := InverseMonoid([
2187
+ > Bipartition([[1, -1, -3], [2, 3, -2]])]);;
2188
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
2189
+ <inverse block bijection monoid of degree 3 with 1 generator>
2190
+ gap> IsInverseMonoid(T);
2191
+ true
2192
+ gap> Size(S) = Size(T);
2193
+ true
2194
+ gap> NrDClasses(S) = NrDClasses(T);
2195
+ true
2196
+ gap> NrRClasses(S) = NrRClasses(T);
2197
+ true
2198
+ gap> NrLClasses(S) = NrLClasses(T);
2199
+ true
2200
+ gap> NrIdempotents(S) = NrIdempotents(T);
2201
+ true
2202
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
2203
+ gap> BruteForceIsoCheck(map);
2204
+ true
2205
+ gap> BruteForceInverseCheck(map);
2206
+ true
2207
+
2208
+ # AsSemigroup:
2209
+ # convert from IsBlockBijectionMonoid to IsBipartitionSemigroup
2210
+ gap> S := InverseMonoid([
2211
+ > Bipartition([[1, -1, -3], [2, 3, -2]])]);;
2212
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2213
+ <inverse block bijection monoid of degree 3 with 1 generator>
2214
+ gap> IsInverseSemigroup(T) and IsMonoidAsSemigroup(T);
2215
+ true
2216
+ gap> Size(S) = Size(T);
2217
+ true
2218
+ gap> NrDClasses(S) = NrDClasses(T);
2219
+ true
2220
+ gap> NrRClasses(S) = NrRClasses(T);
2221
+ true
2222
+ gap> NrLClasses(S) = NrLClasses(T);
2223
+ true
2224
+ gap> NrIdempotents(S) = NrIdempotents(T);
2225
+ true
2226
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2227
+ gap> BruteForceIsoCheck(map);
2228
+ true
2229
+ gap> BruteForceInverseCheck(map);
2230
+ true
2231
+
2232
+ # AsSemigroup:
2233
+ # convert from IsPartialPermSemigroup to IsBipartitionSemigroup
2234
+ gap> S := InverseSemigroup(PartialPerm([1, 2], [2, 1]),
2235
+ > PartialPerm([1, 2], [3, 1]));
2236
+ <inverse partial perm semigroup of rank 3 with 2 generators>
2237
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2238
+ <inverse bipartition semigroup of degree 3 with 2 generators>
2239
+ gap> Size(S) = Size(T);
2240
+ true
2241
+ gap> NrDClasses(S) = NrDClasses(T);
2242
+ true
2243
+ gap> NrRClasses(S) = NrRClasses(T);
2244
+ true
2245
+ gap> NrLClasses(S) = NrLClasses(T);
2246
+ true
2247
+ gap> NrIdempotents(S) = NrIdempotents(T);
2248
+ true
2249
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2250
+ gap> BruteForceIsoCheck(map);
2251
+ true
2252
+ gap> BruteForceInverseCheck(map);
2253
+ true
2254
+ gap> S := Semigroup(PartialPerm([1, 2], [2, 1]),
2255
+ > PartialPerm([1, 2], [3, 1]));
2256
+ <partial perm semigroup of rank 2 with 2 generators>
2257
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2258
+ <bipartition semigroup of degree 3 with 2 generators>
2259
+ gap> Size(S) = Size(T);
2260
+ true
2261
+ gap> NrDClasses(S) = NrDClasses(T);
2262
+ true
2263
+ gap> NrRClasses(S) = NrRClasses(T);
2264
+ true
2265
+ gap> NrLClasses(S) = NrLClasses(T);
2266
+ true
2267
+ gap> NrIdempotents(S) = NrIdempotents(T);
2268
+ true
2269
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2270
+ gap> BruteForceIsoCheck(map);
2271
+ true
2272
+ gap> BruteForceInverseCheck(map);
2273
+ true
2274
+
2275
+ # AsSemigroup:
2276
+ # convert from IsPartialPermMonoid to IsBipartitionMonoid
2277
+ gap> S := InverseMonoid(PartialPerm([1, 2], [2, 1]),
2278
+ > PartialPerm([1, 2], [3, 1]));
2279
+ <inverse partial perm monoid of rank 3 with 2 generators>
2280
+ gap> T := AsMonoid(IsBipartitionMonoid, S);
2281
+ <inverse bipartition monoid of degree 3 with 2 generators>
2282
+ gap> Size(S) = Size(T);
2283
+ true
2284
+ gap> NrDClasses(S) = NrDClasses(T);
2285
+ true
2286
+ gap> NrRClasses(S) = NrRClasses(T);
2287
+ true
2288
+ gap> NrLClasses(S) = NrLClasses(T);
2289
+ true
2290
+ gap> NrIdempotents(S) = NrIdempotents(T);
2291
+ true
2292
+ gap> map := IsomorphismMonoid(IsBipartitionMonoid, S);;
2293
+ gap> BruteForceIsoCheck(map);
2294
+ true
2295
+ gap> BruteForceInverseCheck(map);
2296
+ true
2297
+
2298
+ # AsSemigroup:
2299
+ # convert from IsPartialPermMonoid to IsBipartitionSemigroup
2300
+ gap> S := InverseMonoid(PartialPerm([1, 2], [2, 1]),
2301
+ > PartialPerm([1, 2], [3, 1]));
2302
+ <inverse partial perm monoid of rank 3 with 2 generators>
2303
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);
2304
+ <inverse bipartition monoid of degree 3 with 2 generators>
2305
+ gap> Size(S) = Size(T);
2306
+ true
2307
+ gap> NrDClasses(S) = NrDClasses(T);
2308
+ true
2309
+ gap> NrRClasses(S) = NrRClasses(T);
2310
+ true
2311
+ gap> NrLClasses(S) = NrLClasses(T);
2312
+ true
2313
+ gap> NrIdempotents(S) = NrIdempotents(T);
2314
+ true
2315
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2316
+ gap> BruteForceIsoCheck(map);
2317
+ true
2318
+ gap> BruteForceInverseCheck(map);
2319
+ true
2320
+
2321
+ # AsSemigroup:
2322
+ # convert from an ideal to IsBipartitionSemigroup
2323
+ gap> S := SingularTransformationMonoid(3);;
2324
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);;
2325
+ gap> Size(S) = Size(T);
2326
+ true
2327
+ gap> NrDClasses(S) = NrDClasses(T);
2328
+ true
2329
+ gap> NrRClasses(S) = NrRClasses(T);
2330
+ true
2331
+ gap> NrLClasses(S) = NrLClasses(T);
2332
+ true
2333
+ gap> NrIdempotents(S) = NrIdempotents(T);
2334
+ true
2335
+ gap> map := IsomorphismSemigroup(IsBipartitionSemigroup, S);;
2336
+ gap> BruteForceIsoCheck(map);
2337
+ true
2338
+ gap> BruteForceInverseCheck(map);
2339
+ true
2340
+
2341
+ # AsSemigroup:
2342
+ # convert from an ideal to IsBlockBijectionSemigroup
2343
+ gap> S := SymmetricInverseMonoid(3);;
2344
+ gap> S := SemigroupIdeal(S, S.3);;
2345
+ gap> T := AsSemigroup(IsBlockBijectionSemigroup, S);
2346
+ <inverse bipartition semigroup ideal of degree 4 with 1 generator>
2347
+ gap> Size(S) = Size(T);
2348
+ true
2349
+ gap> NrDClasses(S) = NrDClasses(T);
2350
+ true
2351
+ gap> NrRClasses(S) = NrRClasses(T);
2352
+ true
2353
+ gap> NrLClasses(S) = NrLClasses(T);
2354
+ true
2355
+ gap> NrIdempotents(S) = NrIdempotents(T);
2356
+ true
2357
+ gap> map := IsomorphismSemigroup(IsBlockBijectionSemigroup, S);;
2358
+ gap> BruteForceIsoCheck(map);
2359
+ true
2360
+ gap> BruteForceInverseCheck(map);
2361
+ true
2362
+
2363
+ # Test IsomorphismSemigroup
2364
+ # for IsBlockBijectionSemigroup and IsBlockBijectionSemigroup
2365
+ gap> S := DualSymmetricInverseMonoid(3);
2366
+ <inverse block bijection monoid of degree 3 with 3 generators>
2367
+ gap> map := IsomorphismSemigroup(IsBlockBijectionSemigroup, S);
2368
+ <inverse block bijection monoid of degree 3 with 3 generators> ->
2369
+ <inverse block bijection monoid of degree 3 with 3 generators>
2370
+
2371
+ # Test RandomSemigroup
2372
+ gap> S := RandomSemigroup(IsBipartitionSemigroup, 2, 5);;
2373
+ gap> IsBipartitionSemigroup(S);
2374
+ true
2375
+ gap> DegreeOfBipartitionSemigroup(S);
2376
+ 5
2377
+ gap> Length(GeneratorsOfSemigroup(S));
2378
+ 2
2379
+ gap> S := RandomSemigroup(IsBlockBijectionSemigroup, 2, 5);;
2380
+ gap> IsBlockBijectionSemigroup(S);
2381
+ true
2382
+ gap> DegreeOfBipartitionSemigroup(S);
2383
+ 5
2384
+ gap> Length(GeneratorsOfSemigroup(S));
2385
+ 2
2386
+
2387
+ # Test RandomMonoid
2388
+ gap> S := RandomMonoid(IsBipartitionMonoid, 4, 3);;
2389
+ gap> DegreeOfBipartitionSemigroup(S);
2390
+ 3
2391
+ gap> Length(GeneratorsOfMonoid(S));
2392
+ 4
2393
+ gap> S := RandomMonoid(IsBlockBijectionMonoid, 2, 5);;
2394
+ gap> IsBlockBijectionMonoid(S);
2395
+ true
2396
+ gap> DegreeOfBipartitionSemigroup(S);
2397
+ 5
2398
+ gap> Length(GeneratorsOfMonoid(S));
2399
+ 2
2400
+
2401
+ # Test RandomInverseSemigroup
2402
+ gap> S := RandomInverseSemigroup(IsBlockBijectionSemigroup, 2, 5);;
2403
+ gap> IsBlockBijectionSemigroup(S);
2404
+ true
2405
+ gap> IsInverseSemigroup(S);
2406
+ true
2407
+ gap> DegreeOfBipartitionSemigroup(S);
2408
+ 5
2409
+ gap> Length(GeneratorsOfInverseSemigroup(S));
2410
+ 2
2411
+
2412
+ # Test RandomInverseMonoid
2413
+ gap> S := RandomInverseMonoid(IsBlockBijectionMonoid, 2, 5);;
2414
+ gap> IsBlockBijectionMonoid(S);
2415
+ true
2416
+ gap> IsInverseMonoid(S);
2417
+ true
2418
+ gap> DegreeOfBipartitionSemigroup(S);
2419
+ 5
2420
+ gap> Length(GeneratorsOfInverseMonoid(S));
2421
+ 2
2422
+
2423
+ # Test SemigroupViewStringPrefix
2424
+ gap> S := Monoid([
2425
+ > Bipartition([[1, 3], [2, -2], [-1], [-3]]),
2426
+ > Bipartition([[1, -1], [2, -2], [3, -3]]),
2427
+ > Bipartition([[1, -1], [2, -2], [3], [-3]]),
2428
+ > Bipartition([[1], [2, -2], [3], [-1, -3]])]);;
2429
+ gap> IsStarSemigroup(S);
2430
+ true
2431
+ gap> SemigroupViewStringPrefix(S);
2432
+ "\>bipartition\< *-"
2433
+ gap> S := Semigroup(DualSymmetricInverseMonoid(4));;
2434
+ gap> IsStarSemigroup(S);
2435
+ true
2436
+ gap> SemigroupViewStringPrefix(S);
2437
+ "\>block bijection\< *-"
2438
+
2439
+ # Test GroupOfUnits
2440
+ gap> S := Semigroup(
2441
+ > [Bipartition([[1, 5, 6, 10, 11, 12, 25, -3, -6, -16, -26, -27],
2442
+ > [2, 3, 4, 7, 13, 16, 17, 21, -2, -4, -13, -22, -24],
2443
+ > [8, 14, 18, -5, -7, -10, -19, -21],
2444
+ > [9, 15, 19, 20, 22, -1, -9, -14, -17, -23],
2445
+ > [23, 24, 26, 27, -8, -11, -18, -20], [-12, -15, -25]]),
2446
+ > Bipartition([[1, -1], [2, -2], [3, -3], [4, -4], [5, -5],
2447
+ > [6, -6], [7, -7], [8, -8], [9, -9], [10, -10], [11, -11],
2448
+ > [12, -12], [13, -14], [14, -16], [15, -17], [16, -19],
2449
+ > [17, -20], [18, -21], [19, -22], [20, -23], [21, -24],
2450
+ > [22, -13], [23, -25], [24, -26], [25, -15], [26, -27],
2451
+ > [27, -18]]),
2452
+ > Bipartition([[1, -2], [2, -3], [3, -5],
2453
+ > [4, -10], [5, -1], [6, -11], [7, -12], [8, -6], [9, -8],
2454
+ > [10, -7], [11, -9], [12, -4], [13, -13], [14, -14],
2455
+ > [15, -18], [16, -16], [17, -21], [18, -15], [19, -19],
2456
+ > [20, -24], [21, -17], [22, -22], [23, -26], [24, -20],
2457
+ > [25, -27], [26, -23], [27, -25]]),
2458
+ > Bipartition([[1, -4], [2, -6], [3, -7], [4, -8], [5, -9],
2459
+ > [6, -10], [7, -11], [8, -1], [9, -12], [10, -2], [11, -3],
2460
+ > [12, -5], [13, -15], [14, -17], [15, -18], [16, -20],
2461
+ > [17, -21], [18, -13], [19, -23], [20, -24], [21, -14],
2462
+ > [22, -25], [23, -26], [24, -16], [25, -27], [26, -19],
2463
+ > [27, -22]])]);;
2464
+ gap> GroupOfUnits(S);
2465
+ <block bijection group of degree 27 with 3 generators>
2466
+ gap> StructureDescription(last);
2467
+ "C5 x (C3 : C4)"
2468
+ gap> S := Semigroup([
2469
+ > Bipartition([[1, 3], [2, -2], [-1], [-3]]),
2470
+ > Bipartition([[1, -1], [2, -2], [3], [-3]]),
2471
+ > Bipartition([[1], [2, -2], [3], [-1, -3]])]);;
2472
+ gap> GroupOfUnits(S);
2473
+ fail
2474
+
2475
+ # Test IsBlockBijectionSemigroup for an ideal
2476
+ gap> IsBlockBijectionSemigroup(MinimalIdeal(PartitionMonoid(3)));
2477
+ false
2478
+ gap> IsBlockBijectionSemigroup(SingularDualSymmetricInverseMonoid(3));
2479
+ true
2480
+ gap> IsBlockBijectionSemigroup(OrderEndomorphisms(3));
2481
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
2482
+ Error, no 1st choice method found for `IsBlockBijectionSemigroup' on 1 argumen\
2483
+ ts
2484
+
2485
+ # Test IsPartialPermBipartitionSemigroup for an ideal
2486
+ gap> IsPartialPermBipartitionSemigroup(MinimalIdeal(PartitionMonoid(2)));
2487
+ false
2488
+ gap> S := AsSemigroup(IsBipartitionSemigroup, SymmetricInverseMonoid(2));;
2489
+ gap> IsPartialPermBipartitionSemigroup(S);
2490
+ true
2491
+ gap> IsPartialPermBipartitionSemigroup(MinimalIdeal(S));
2492
+ true
2493
+ gap> S := Semigroup(AsSemigroup(IsBipartitionSemigroup,
2494
+ > SymmetricInverseMonoid(2)));;
2495
+ gap> IsPartialPermBipartitionSemigroup(MinimalIdeal(S));
2496
+ true
2497
+ gap> IsPartialPermBipartitionSemigroup(OrderEndomorphisms(2));
2498
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
2499
+ Error, no 1st choice method found for `IsPartialPermBipartitionSemigroup' on 1\
2500
+ arguments
2501
+ gap> IsPermBipartitionGroup(MinimalIdeal(PartitionMonoid(2)));
2502
+ false
2503
+ gap> S := AsSemigroup(IsBipartitionSemigroup, SymmetricGroup(2));;
2504
+ gap> IsPermBipartitionGroup(S);
2505
+ true
2506
+ gap> IsPermBipartitionGroup(MinimalIdeal(S));
2507
+ true
2508
+ gap> S := Semigroup(AsSemigroup(IsBipartitionSemigroup,
2509
+ > SymmetricInverseMonoid(2)));;
2510
+ gap> IsPermBipartitionGroup(MinimalIdeal(S));
2511
+ false
2512
+ gap> IsPermBipartitionGroup(SingularDualSymmetricInverseMonoid(3));
2513
+ false
2514
+ gap> IsPermBipartitionGroup(OrderEndomorphisms(2));
2515
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
2516
+ Error, no 1st choice method found for `IsPermBipartitionGroup' on 1 arguments
2517
+
2518
+ # Test NaturalLeqInverseSemigroup
2519
+ gap> NaturalLeqInverseSemigroup(DualSymmetricInverseMonoid(3));
2520
+ <Operation "NaturalLeqBlockBijection">
2521
+ gap> S := SymmetricInverseMonoid(3);;
2522
+ gap> NaturalLeqInverseSemigroup(AsSemigroup(IsBipartitionSemigroup,
2523
+ > S));
2524
+ <Operation "NaturalLeqPartialPermBipartition">
2525
+ gap> AsSemigroup(IsTransformationSemigroup, S);
2526
+ <transformation monoid of degree 4 with 4 generators>
2527
+ gap> AsSemigroup(IsBipartitionSemigroup, last);
2528
+ <bipartition monoid of degree 4 with 4 generators>
2529
+ gap> NaturalLeqInverseSemigroup(last);
2530
+ function( x, y ) ... end
2531
+ gap> NaturalLeqInverseSemigroup(PartitionMonoid(2));
2532
+ Error, the argument is not an inverse semigroup
2533
+
2534
+ # Test NaturalPartialOrder
2535
+ gap> NaturalPartialOrder(DualSymmetricInverseMonoid(3));
2536
+ [ [ ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ],
2537
+ [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1, 2, 9, 16 ],
2538
+ [ 1, 3, 8, 16 ], [ 1, 2, 11, 18 ], [ 1, 3, 11, 19 ], [ 1, 5, 8, 18 ],
2539
+ [ 1, 5, 9, 19 ] ]
2540
+ gap> o1 := NaturalPartialOrder(AsSemigroup(IsBipartitionSemigroup,
2541
+ > SymmetricInverseMonoid(3)));
2542
+ [ [ 2, 6, 7, 26, 27, 33, 34 ], [ 7, 27, 34 ], [ 4, 5, 7, 29, 30, 32, 34 ],
2543
+ [ 7, 30, 34 ], [ 7, 32, 34 ], [ 7, 33, 34 ], [ 34 ],
2544
+ [ 9, 13, 14, 23, 24, 33, 34 ], [ 14, 24, 34 ],
2545
+ [ 11, 12, 14, 28, 30, 31, 34 ], [ 14, 30, 34 ], [ 14, 31, 34 ],
2546
+ [ 14, 33, 34 ], [ 34 ], [ 16, 20, 21, 22, 24, 32, 34 ], [ 21, 24, 34 ],
2547
+ [ 18, 19, 21, 25, 27, 31, 34 ], [ 21, 27, 34 ], [ 21, 31, 34 ],
2548
+ [ 21, 32, 34 ], [ 34 ], [ 24, 32, 34 ], [ 24, 33, 34 ], [ 34 ],
2549
+ [ 27, 31, 34 ], [ 27, 33, 34 ], [ 34 ], [ 30, 31, 34 ], [ 30, 32, 34 ],
2550
+ [ 34 ], [ 34 ], [ 34 ], [ 34 ], [ ] ]
2551
+ gap> gr1 := DigraphReflexiveTransitiveClosure(Digraph(o1));
2552
+ <immutable preorder digraph with 34 vertices, 139 edges>
2553
+ gap> o2 := NaturalPartialOrder(SymmetricInverseMonoid(3));
2554
+ [ [ ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1, 2, 6 ], [ 1, 2, 7 ],
2555
+ [ 1, 3, 5 ], [ 1, 3, 7 ], [ 1, 4, 5 ], [ 1, 4, 6 ], [ 1 ], [ 1 ], [ 1 ],
2556
+ [ 1, 5, 15 ], [ 1, 5, 16 ], [ 1, 6, 14 ], [ 1, 6, 16 ], [ 1, 7, 14 ],
2557
+ [ 1, 7, 15 ], [ 1, 2, 15 ], [ 1, 2, 16 ], [ 1, 2, 6, 8, 16, 20, 24 ],
2558
+ [ 1, 2, 7, 9, 15, 22, 23 ], [ 1, 3, 14 ], [ 1, 3, 16 ],
2559
+ [ 1, 3, 5, 10, 16, 18, 28 ], [ 1, 3, 7, 11, 14, 21, 27 ], [ 1, 4, 14 ],
2560
+ [ 1, 4, 15 ], [ 1, 4, 5, 12, 15, 17, 32 ], [ 1, 4, 6, 13, 14, 19, 31 ] ]
2561
+ gap> gr2 := DigraphReflexiveTransitiveClosure(Digraph(o2));
2562
+ <immutable preorder digraph with 34 vertices, 139 edges>
2563
+ gap> IsomorphismDigraphs(gr1, gr2);
2564
+ (1,25,19,31,14,3,26,20,32,15,33,16,12,27,6,24,5,23,18,13,28,21,4,9,10,30,7,2,
2565
+ 8,29,22,17,34)
2566
+
2567
+ # Test AsMonoid for 1 arg
2568
+ gap> S := Semigroup(Transformation([2, 2, 3, 4]));
2569
+ <commutative transformation semigroup of degree 2 with 1 generator>
2570
+ gap> AsMonoid(S);
2571
+ <trivial transformation group of degree 0 with 1 generator>
2572
+ gap> T := AsSemigroup(IsBipartitionSemigroup, S);;
2573
+ gap> IsMonoid(T);
2574
+ false
2575
+ gap> IsMonoidAsSemigroup(T);
2576
+ true
2577
+ gap> AsMonoid(T);
2578
+ <trivial block bijection group of degree 1 with 1 generator>
2579
+ gap> S := Semigroup(Bipartition([[1, 2, -1, -3], [3, -2]]),
2580
+ > Bipartition([[1, 2, -2, -3], [3, -1]]),
2581
+ > Bipartition([[1, 2, -3], [3, -1, -2]]),
2582
+ > Bipartition([[1, 3, -1, -2], [2, -3]]),
2583
+ > Bipartition([[1, -3], [2, 3, -1, -2]]));
2584
+ <block bijection semigroup of degree 3 with 5 generators>
2585
+ gap> S := AsMonoid(S);
2586
+ fail
2587
+
2588
+ # Test GeneratorsOfInverseSemigroup
2589
+ gap> S := Monoid(Bipartition([[1, -2], [2, -3], [3, -1]]),
2590
+ > Bipartition([[1, -2], [2, -1], [3, -3]]),
2591
+ > Bipartition([[1], [2, -1], [3, -2], [-3]]),
2592
+ > Bipartition([[1, -2], [2, -3], [3], [-1]]));;
2593
+ gap> IsInverseSemigroup(S);
2594
+ true
2595
+ gap> HasGeneratorsOfInverseSemigroup(S);
2596
+ false
2597
+ gap> GeneratorsOfInverseSemigroup(S);
2598
+ [ <block bijection: [ 1, -1 ], [ 2, -2 ], [ 3, -3 ]>,
2599
+ <block bijection: [ 1, -2 ], [ 2, -3 ], [ 3, -1 ]>,
2600
+ <block bijection: [ 1, -2 ], [ 2, -1 ], [ 3, -3 ]>,
2601
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3, -2 ], [ -3 ]> ]
2602
+ gap> InverseSemigroup(last) = S;
2603
+ true
2604
+ gap> GeneratorsOfInverseMonoid(S);
2605
+ [ <block bijection: [ 1, -2 ], [ 2, -3 ], [ 3, -1 ]>,
2606
+ <block bijection: [ 1, -2 ], [ 2, -1 ], [ 3, -3 ]>,
2607
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3, -2 ], [ -3 ]> ]
2608
+ gap> InverseMonoid(last) = S;
2609
+ true
2610
+
2611
+ # Operator <
2612
+ gap> A := Semigroup(Bipartition([[1, 2], [-1], [-2]]),
2613
+ > Bipartition([[1, 2, -1, -2]]));
2614
+ <bipartition semigroup of degree 2 with 2 generators>
2615
+ gap> B := Semigroup([Bipartition([[1, 2, -2], [-1]]),
2616
+ > Bipartition([[1, 2, -1], [-2]])]);
2617
+ <bipartition semigroup of degree 2 with 2 generators>
2618
+ gap> C := Monoid([Bipartition([[1, -1]])]);
2619
+ <trivial block bijection group of degree 1 with 1 generator>
2620
+ gap> A < B;
2621
+ true
2622
+ gap> B < A;
2623
+ false
2624
+ gap> B = A;
2625
+ false
2626
+ gap> C = A;
2627
+ false
2628
+ gap> C < A;
2629
+ true
2630
+ gap> C < B;
2631
+ true
2632
+
2633
+ #
2634
+ gap> SEMIGROUPS.StopTest();
2635
+ gap> STOP_TEST("Semigroups package: standard/semigroups/semibipart.tst");