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

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1158 -0
  17. gap/pkg/semigroups/config.status +1131 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.cpython-311-darwin.so +0 -0
@@ -0,0 +1,1044 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/congruences/cong.tst
4
+ #Y Copyright (C) 2015-2022 Michael Young
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local C, F, I, M, R, S, T, c, ccong, class, class1a, class1b, class1c, class2
12
+ #@local cong, cong1, cong2, cong3, congS, congT, cong_by_ker_trace_threshold
13
+ #@local el, elm, f, g, ideal, iso, ker, lcong, lookup1, lookup2, m, pair, pair1
14
+ #@local pair2, pairs, pairs1, pairs2, phi, rcong, reesclass, reescong, rmscong
15
+ #@local trc, x
16
+ gap> START_TEST("Semigroups package: standard/congruences/cong.tst");
17
+ gap> LoadPackage("semigroups", false);;
18
+
19
+ # Set info levels and user preferences
20
+ gap> SEMIGROUPS.StartTest();
21
+
22
+ # SemigroupCongruence: Bad input
23
+ gap> S := FullTransformationSemigroup(5);;
24
+ gap> pairs := [[Transformation([2, 1, 3, 4, 1]), Transformation([2, 1])],
25
+ > [Transformation([2, 1]), Transformation([2, 3, 4, 5, 2])]];;
26
+ gap> SemigroupCongruence(S);
27
+ Error, at least 2 arguments are required
28
+ gap> SemigroupCongruence(42, pairs);
29
+ Error, the 1st argument is not a semigroup
30
+ gap> SemigroupCongruence(S, pairs[1], [Transformation([2, 1])]);
31
+ Error, the 2nd argument (a list of lists) contains lists of size not equal to \
32
+ 2
33
+ gap> SemigroupCongruence(S, [Transformation([2, 6, 3, 4, 5, 3]),
34
+ > Transformation([2, 3, 1])]);
35
+ Error, the 2nd argument (a list of lists) contains items that do not belong to\
36
+ the 1st argument (a semigroup)
37
+ gap> S := FullTransformationSemigroup(6);;
38
+ gap> SemigroupCongruence(S, 12, 13, 100);
39
+ Error, the arguments are not valid for this function
40
+
41
+ # \in: Bad input
42
+ gap> S := Semigroup(Transformation([2, 1, 1, 2, 1]),
43
+ > Transformation([2, 4, 2, 3, 5]),
44
+ > Transformation([3, 4, 3, 4, 3]),
45
+ > Transformation([4, 3, 3, 4, 4]));;
46
+ gap> pair1 := [Transformation([3, 4, 3, 4, 3]),
47
+ > Transformation([1, 2, 1, 2, 1])];;
48
+ gap> cong := LeftSemigroupCongruence(S, pair1);;
49
+ gap> [Transformation([2, 1, 1, 2, 1])] in cong;
50
+ Error, the 1st argument (a list) does not have length 2
51
+ gap> [Transformation([2, 1, 1, 2, 1]), Transformation([5, 2, 1, 2, 2])] in cong;
52
+ Error, the items in the 1st argument (a list) do not all belong to the range o\
53
+ f the 2nd argument (a left semigroup congruence)
54
+ gap> cong := RightSemigroupCongruence(S, pair1);;
55
+ gap> [Transformation([2, 1, 1, 2, 1])] in cong;
56
+ Error, the 1st argument (a list) does not have length 2
57
+ gap> [Transformation([2, 1, 1, 2, 1]), Transformation([5, 2, 1, 2, 2])] in cong;
58
+ Error, the items in the 1st argument (a list) do not all belong to the range o\
59
+ f the 2nd argument (a right semigroup congruence)
60
+ gap> cong := SemigroupCongruence(S, pair1);;
61
+ gap> [Transformation([2, 1, 1, 2, 1])] in cong;
62
+ Error, the 1st argument (a list) does not have length 2
63
+ gap> [Transformation([2, 1, 1, 2, 1]), Transformation([5, 2, 1, 2, 2])] in cong;
64
+ Error, the items in the 1st argument (a list) do not all belong to the range o\
65
+ f the 2nd argument (a 2-sided semigroup congruence)
66
+
67
+ # SemigroupCongruence: Infinite semigroup
68
+ gap> S := FreeSemigroup(2);;
69
+ gap> SemigroupCongruence(S, [S.1, S.2]);
70
+ <2-sided semigroup congruence over <free semigroup on the generators
71
+ [ s1, s2 ]> with 1 generating pairs>
72
+
73
+ # SemigroupCongruence: Simple semigroup
74
+ gap> S := Semigroup(MinimalIdeal(FullTransformationMonoid(5)));;
75
+ gap> IsSimpleSemigroup(S);
76
+ true
77
+ gap> pairs := [
78
+ > [Transformation([1, 1, 1, 1, 1]), Transformation([3, 3, 3, 3, 3])]];;
79
+ gap> cong := SemigroupCongruence(S, pairs);;
80
+ gap> EquivalenceRelationCanonicalPartition(cong);
81
+ [ [ Transformation( [ 1, 1, 1, 1, 1 ] ), Transformation( [ 3, 3, 3, 3, 3 ] )
82
+ ] ]
83
+
84
+ # SemigroupCongruence: 0-simple semigroup
85
+ gap> S := Semigroup(Transformation([1, 2]), Transformation([1, 1]));;
86
+ gap> IsZeroSimpleSemigroup(S);
87
+ true
88
+ gap> IsRegularSemigroup(S);
89
+ true
90
+ gap> IsSimpleSemigroupCongruence(SemigroupCongruence(S, [S.1, S.1]));
91
+ true
92
+
93
+ # SemigroupCongruence: Inverse semigroup
94
+ gap> S := InverseSemigroup([PartialPerm([1, 2, 3], [1, 4, 2]),
95
+ > PartialPerm([1, 2, 3], [2, 3, 4]),
96
+ > PartialPerm([1, 2, 4], [2, 1, 3])]);;
97
+ gap> SemigroupCongruence(S, [S.1, S.2]);
98
+ <2-sided semigroup congruence over <inverse partial perm semigroup
99
+ of size 116, rank 4 with 3 generators> with 1 generating pairs>
100
+ gap> SemigroupCongruence(S, [S.1, S.2], rec(cong_by_ker_trace_threshold := 1024));
101
+ <2-sided semigroup congruence over <inverse partial perm semigroup
102
+ of size 116, rank 4 with 3 generators> with 1 generating pairs>
103
+ gap> SemigroupCongruence(S, [S.1, S.2], rec(cong_by_ker_trace_threshold := 0));
104
+ <semigroup congruence over <inverse partial perm semigroup of size 116,
105
+ rank 4 with 3 generators> with congruence pair (116,1)>
106
+
107
+ # SemigroupCongruence: Inverse semigroup (low cong_by_ker_trace_threshold)
108
+ gap> S := InverseSemigroup([PartialPerm([1, 2, 3], [1, 4, 2]),
109
+ > PartialPerm([1, 2, 3], [2, 3, 4]),
110
+ > PartialPerm([1, 2, 4], [2, 1, 3])],
111
+ > rec(cong_by_ker_trace_threshold := 100));;
112
+ gap> SemigroupCongruence(S, [S.1, S.2], rec(cong_by_ker_trace_threshold := 100));
113
+ <semigroup congruence over <inverse partial perm semigroup of size 116,
114
+ rank 4 with 3 generators> with congruence pair (116,1)>
115
+
116
+ # SemigroupCongruence: Inverse semigroup (high cong_by_ker_trace_threshold)
117
+ gap> S := InverseSemigroup([PartialPerm([1, 2, 3], [1, 4, 2]),
118
+ > PartialPerm([1, 2, 3], [2, 3, 4]),
119
+ > PartialPerm([1, 2, 4], [2, 1, 3])],
120
+ > rec(cong_by_ker_trace_threshold := 100));;
121
+ gap> SemigroupCongruence(S, [S.1, S.2],
122
+ > rec(cong_by_ker_trace_threshold := infinity));
123
+ <2-sided semigroup congruence over <inverse partial perm semigroup
124
+ of size 116, rank 4 with 3 generators> with 1 generating pairs>
125
+
126
+ # SemigroupCongruence: Pairs
127
+ gap> S := Semigroup([Transformation([3, 3, 3]),
128
+ > Transformation([3, 4, 3, 3])]);;
129
+ gap> pairs := [Transformation([3, 4, 3, 3]), Transformation([3, 3, 3, 3])];;
130
+ gap> cong := SemigroupCongruence(S, pairs);;
131
+ gap> EquivalenceRelationCanonicalPartition(cong);
132
+ [ [ Transformation( [ 3, 4, 3, 3 ] ), Transformation( [ 3, 3, 3, 3 ] ) ] ]
133
+
134
+ # SemigroupCongruence: left congruence
135
+ gap> S := Semigroup([Transformation([3, 3, 3]),
136
+ > Transformation([3, 4, 3, 3])]);;
137
+ gap> pair := [Transformation([3, 4, 3, 3]), Transformation([3, 3, 3, 3])];;
138
+ gap> cong := LeftSemigroupCongruence(S, pair);;
139
+ gap> EquivalenceRelationCanonicalPartition(cong);
140
+ [ [ Transformation( [ 3, 4, 3, 3 ] ), Transformation( [ 3, 3, 3, 3 ] ) ] ]
141
+ gap> pair in cong;
142
+ true
143
+ gap> [S.1, S.1] in cong;
144
+ true
145
+
146
+ # SemigroupCongruence: Giving an RMS cong
147
+ gap> S := Semigroup(MinimalIdeal(FullTransformationMonoid(5)));;
148
+ gap> iso := IsomorphismReesMatrixSemigroup(S);;
149
+ gap> R := Range(iso);;
150
+ gap> pairs := [ReesMatrixSemigroupElement(R, 1, (), 1),
151
+ > ReesMatrixSemigroupElement(R, 1, (), 3)];;
152
+ gap> rmscong := SemigroupCongruence(R, pairs);;
153
+ gap> IsSimpleSemigroupCongruence(SemigroupCongruence(S, iso, rmscong));
154
+ true
155
+
156
+ # SemigroupCongruence: Giving an RZMS cong
157
+ gap> S := Semigroup(Transformation([1, 2]), Transformation([1, 1]));;
158
+ gap> IsRegularSemigroup(S);;
159
+ gap> iso := IsomorphismReesZeroMatrixSemigroup(S);;
160
+ gap> R := Range(iso);;
161
+ gap> pairs := [ReesZeroMatrixSemigroupElement(R, 1, (), 1),
162
+ > ReesZeroMatrixSemigroupElement(R, 1, (), 1)];;
163
+ gap> rmscong := SemigroupCongruence(R, pairs);;
164
+ gap> IsSimpleSemigroupCongruence(SemigroupCongruence(S, iso, rmscong));
165
+ true
166
+
167
+ # SemigroupCongruence: Bad R(Z)MS Input
168
+ gap> S := Semigroup(MinimalIdeal(FullTransformationMonoid(5)));;
169
+ gap> iso := IsomorphismReesMatrixSemigroup(S);;
170
+ gap> R := Range(iso);;
171
+ gap> pairs := [ReesMatrixSemigroupElement(R, 1, (), 1),
172
+ > ReesMatrixSemigroupElement(R, 1, (), 3)];;
173
+ gap> rmscong := SemigroupCongruence(R, pairs);;
174
+ gap> S := Semigroup(Transformation([2, 2]), Transformation([1, 1]));;
175
+ gap> SemigroupCongruence(S, iso, rmscong);
176
+ Error, the range of the 3rd argument (a congruence) is not a Rees (0-)matrix s\
177
+ emigroup isomorphic to the 1st argument
178
+
179
+ # SemigroupCongruence: Rees congruence via ideal
180
+ gap> S := Semigroup(FullTransformationMonoid(5));;
181
+ gap> I := MinimalIdeal(S);;
182
+ gap> SemigroupCongruence(S, I);
183
+ <Rees congruence of <simple transformation semigroup ideal of degree 5 with
184
+ 1 generator> over <transformation monoid of degree 5 with 3 generators>>
185
+
186
+ # SemigroupCongruence: Kernel and Trace
187
+ gap> S := InverseSemigroup([PartialPerm([1, 2, 3], [1, 4, 2]),
188
+ > PartialPerm([1, 2, 3], [2, 3, 4]),
189
+ > PartialPerm([1, 2, 4], [2, 1, 3])]);;
190
+ gap> ker := IdempotentGeneratedSubsemigroup(S);;
191
+ gap> trc := List(Idempotents(S), e -> [e]);;
192
+ gap> SemigroupCongruence(S, ker, trc);;
193
+
194
+ # LeftSemigroupCongruence: Bad input
195
+ gap> S := FullTransformationSemigroup(5);;
196
+ gap> pairs := [[Transformation([2, 1, 3, 4, 1]), Transformation([2, 1])],
197
+ > [Transformation([2, 1]), Transformation([2, 3, 4, 5, 2])]];;
198
+ gap> LeftSemigroupCongruence(S);
199
+ Error, at least 2 arguments are required
200
+ gap> LeftSemigroupCongruence(42, pairs);
201
+ Error, the 1st argument is not a semigroup
202
+ gap> LeftSemigroupCongruence(S, pairs[1], [Transformation([2, 1])]);
203
+ Error, the 2nd argument (a list of lists) contains lists of size not equal to \
204
+ 2
205
+ gap> LeftSemigroupCongruence(S,
206
+ > [Transformation([2, 6, 3, 4, 5, 2]), Transformation([2, 3, 1])]);
207
+ Error, the 2nd argument (a list of lists) contains items that do not belong to\
208
+ the 1st argument (a semigroup)
209
+ gap> S := FullTransformationSemigroup(6);;
210
+ gap> LeftSemigroupCongruence(S, 12, 13, 100);
211
+ Error, the arguments are not valid for this function
212
+
213
+ # RightSemigroupCongruence: Bad input
214
+ gap> S := FullTransformationSemigroup(5);;
215
+ gap> pairs := [[Transformation([2, 1, 3, 4, 1]), Transformation([2, 1])],
216
+ > [Transformation([2, 1]), Transformation([2, 3, 4, 5, 2])]];;
217
+ gap> RightSemigroupCongruence(S);
218
+ Error, at least 2 arguments are required
219
+ gap> RightSemigroupCongruence(42, pairs);
220
+ Error, the 1st argument is not a semigroup
221
+ gap> RightSemigroupCongruence(S, pairs[1], [Transformation([2, 2])]);
222
+ Error, the 2nd argument (a list of lists) contains lists of size not equal to \
223
+ 2
224
+ gap> RightSemigroupCongruence(S,
225
+ > [Transformation([2, 6, 3, 4, 5, 4]), Transformation([2, 3, 1])]);
226
+ Error, the 2nd argument (a list of lists) contains items that do not belong to\
227
+ the 1st argument (a semigroup)
228
+ gap> S := FullTransformationSemigroup(6);;
229
+ gap> RightSemigroupCongruence(S, 12, 13, 100);
230
+ Error, the arguments are not valid for this function
231
+
232
+ # LeftSemigroupCongruence: Pairs
233
+ gap> S := Semigroup([Transformation([3, 3, 3]),
234
+ > Transformation([3, 4, 3, 3])]);;
235
+ gap> pairs := [Transformation([3, 4, 3, 3]), Transformation([3, 3, 3, 3])];;
236
+ gap> cong := LeftSemigroupCongruence(S, pairs);
237
+ <left semigroup congruence over <transformation semigroup of degree 4 with 2
238
+ generators> with 1 generating pairs>
239
+ gap> C := EquivalenceClassOfElement(cong, Transformation([3, 4, 3, 3]));
240
+ <left congruence class of Transformation( [ 3, 4, 3, 3 ] )>
241
+ gap> Size(C);
242
+ 2
243
+ gap> AsList(C);
244
+ [ Transformation( [ 3, 4, 3, 3 ] ), Transformation( [ 3, 3, 3, 3 ] ) ]
245
+ gap> C < C;
246
+ false
247
+ gap> EquivalenceClassOfElement(cong, Transformation([3, 4, 3, 3, 6, 6, 6]));
248
+ Error, the 2nd argument (a mult. elt.) does not belong to the range of the 1st\
249
+ argument (a left congruence)
250
+ gap> Transformation([3, 4, 3, 3, 6, 6, 6]) in C;
251
+ false
252
+
253
+ # RightSemigroupCongruence: Pairs
254
+ gap> S := Semigroup([Transformation([3, 3, 3]),
255
+ > Transformation([3, 4, 3, 3])]);;
256
+ gap> pairs := [Transformation([3, 4, 3, 3]), Transformation([3, 3, 3, 3])];;
257
+ gap> cong := RightSemigroupCongruence(S, pairs);
258
+ <right semigroup congruence over <transformation semigroup of degree 4 with 2
259
+ generators> with 1 generating pairs>
260
+ gap> EquivalenceClassOfElement(cong, Transformation([3, 4, 3, 3]));
261
+ <right congruence class of Transformation( [ 3, 4, 3, 3 ] )>
262
+
263
+ # Equality of left and right congruences
264
+ gap> S := Semigroup(Matrix(IsBooleanMat, [[0, 1], [1, 0]]),
265
+ > Matrix(IsBooleanMat, [[1, 0], [1, 1]]),
266
+ > Matrix(IsBooleanMat, [[1, 0], [0, 0]]));;
267
+ gap> lcong := LeftSemigroupCongruence(S, [S.1, S.2]);;
268
+ gap> rcong := RightSemigroupCongruence(S, [S.1, S.2]);;
269
+ gap> lcong = rcong;
270
+ false
271
+ gap> rcong = lcong;
272
+ false
273
+ gap> lcong := LeftSemigroupCongruence(S, []);;
274
+ gap> rcong := RightSemigroupCongruence(S, []);;
275
+ gap> lcong = rcong;
276
+ true
277
+ gap> rcong = lcong;
278
+ true
279
+
280
+ # OnLeftCongruenceClasses
281
+ gap> S := Semigroup(Transformation([2, 1, 1, 2, 1]),
282
+ > Transformation([3, 4, 3, 4, 4]),
283
+ > Transformation([3, 4, 3, 4, 3]),
284
+ > Transformation([4, 3, 3, 4, 4]));;
285
+ gap> pair1 := [Transformation([3, 4, 3, 4, 3]),
286
+ > Transformation([1, 2, 1, 2, 1])];;
287
+ gap> pair2 := [Transformation([4, 3, 4, 3, 4]),
288
+ > Transformation([3, 4, 3, 4, 3])];;
289
+ gap> cong := LeftSemigroupCongruence(S, [pair1, pair2]);
290
+ <left semigroup congruence over <transformation semigroup of degree 5 with 4
291
+ generators> with 2 generating pairs>
292
+ gap> x := Transformation([3, 4, 3, 4, 3]);;
293
+ gap> class := EquivalenceClassOfElement(cong, x);
294
+ <left congruence class of Transformation( [ 3, 4, 3, 4, 3 ] )>
295
+ gap> elm := Transformation([1, 2, 2, 1, 2]);;
296
+ gap> OnLeftCongruenceClasses(class, elm);
297
+ <left congruence class of Transformation( [ 3, 4, 4, 3, 4 ] )>
298
+
299
+ # OnRightCongruenceClasses
300
+ gap> S := Semigroup(Transformation([2, 1, 1, 2, 1]),
301
+ > Transformation([3, 4, 3, 4, 4]),
302
+ > Transformation([3, 4, 3, 4, 3]),
303
+ > Transformation([4, 3, 3, 4, 4]));;
304
+ gap> pair1 := [Transformation([3, 4, 3, 4, 3]),
305
+ > Transformation([1, 2, 1, 2, 1])];;
306
+ gap> pair2 := [Transformation([4, 3, 4, 3, 4]),
307
+ > Transformation([3, 4, 3, 4, 3])];;
308
+ gap> cong := RightSemigroupCongruence(S, [pair1, pair2]);
309
+ <right semigroup congruence over <transformation semigroup of degree 5 with 4
310
+ generators> with 2 generating pairs>
311
+ gap> x := Transformation([3, 4, 3, 4, 3]);;
312
+ gap> class := EquivalenceClassOfElement(cong, x);
313
+ <right congruence class of Transformation( [ 3, 4, 3, 4, 3 ] )>
314
+ gap> elm := Transformation([1, 2, 2, 1, 2]);;
315
+ gap> OnRightCongruenceClasses(class, elm);
316
+ <right congruence class of Transformation( [ 2, 1, 2, 1, 2 ] )>
317
+
318
+ # \* for an equivalence class and a list
319
+ gap> S := Semigroup(
320
+ > [Transformation([1, 4, 3, 4]), Transformation([2, 3, 4, 2])]);;
321
+ gap> pair := [Transformation([2, 3, 4, 2]), Transformation([4, 4, 4, 4])];;
322
+ gap> cong := SemigroupCongruence(S, pair);;
323
+ gap> class := EquivalenceClassOfElement(cong, Transformation([4, 4, 4, 4]));;
324
+ gap> class * EquivalenceClasses(cong);
325
+ [ <2-sided congruence class of Transformation( [ 4, 4, 4, 4 ] )>,
326
+ <2-sided congruence class of Transformation( [ 2, 2, 2, 2 ] )> ]
327
+ gap> EquivalenceClasses(cong) * class;
328
+ [ <2-sided congruence class of Transformation( [ 4, 4, 4, 4 ] )>,
329
+ <2-sided congruence class of Transformation( [ 4, 4, 4, 4 ] )> ]
330
+
331
+ # Equivalence classes
332
+ gap> S := Semigroup(
333
+ > [Transformation([1, 4, 3, 4]), Transformation([2, 3, 4, 2])]);;
334
+ gap> pair := [Transformation([2, 3, 4, 2]), Transformation([4, 4, 4, 4])];;
335
+ gap> cong1 := SemigroupCongruence(S, pair);;
336
+ gap> cong2 := SemigroupCongruence(S, []);;
337
+ gap> class1a := EquivalenceClassOfElement(cong1, Transformation([4, 4, 4, 4]));;
338
+ gap> class1b := EquivalenceClassOfElement(cong1, Transformation([2, 3, 4, 2]));;
339
+ gap> class1c := EquivalenceClassOfElement(cong1, Transformation([1, 4, 3, 4]));;
340
+ gap> class2 := EquivalenceClassOfElement(cong2, Transformation([4, 4, 4, 4]));;
341
+ gap> class1a * class1b;
342
+ <2-sided congruence class of Transformation( [ 2, 2, 2, 2 ] )>
343
+ gap> class1b * class1a;
344
+ <2-sided congruence class of Transformation( [ 4, 4, 4, 4 ] )>
345
+ gap> class1a * class2;
346
+ Error, the arguments (cong. classes) are not classes of the same congruence
347
+ gap> class1a = class1b;
348
+ true
349
+ gap> class1a = class2;
350
+ false
351
+ gap> class1a < class1b;
352
+ false
353
+ gap> class1b < class1a;
354
+ false
355
+ gap> class1c < class1a;
356
+ true
357
+ gap> class1a < class2;
358
+ false
359
+
360
+ # IsSuperrelation
361
+ gap> S := Semigroup(
362
+ > [Transformation([1, 4, 3, 4]), Transformation([2, 3, 4, 2])]);;
363
+ gap> pair1 := [Transformation([2, 3, 4, 2]), Transformation([4, 4, 4, 4])];;
364
+ gap> pair2 := [Transformation([2, 3, 4, 2]), Transformation([1, 4, 3, 4])];;
365
+ gap> cong1 := SemigroupCongruence(S, pair1);;
366
+ gap> cong2 := SemigroupCongruence(S, pair2);;
367
+ gap> IsSuperrelation(cong1, cong2);
368
+ true
369
+
370
+ # Equality for different types of congruence class
371
+ gap> S := FullTransformationMonoid(4);;
372
+ gap> I := SemigroupIdeal(S, Transformation([1, 1, 2, 2]));;
373
+ gap> reescong := ReesCongruenceOfSemigroupIdeal(I);;
374
+ gap> pair := [Transformation([1, 1, 2, 2]), Transformation([1, 1, 1, 1])];;
375
+ gap> cong := SemigroupCongruence(S, pair);;
376
+ gap> reesclass := EquivalenceClassOfElement(reescong, pair[1]);
377
+ <2-sided congruence class of Transformation( [ 1, 1, 2, 2 ] )>
378
+ gap> class := EquivalenceClassOfElement(cong, Transformation([1, 1, 2, 2]));
379
+ <2-sided congruence class of Transformation( [ 1, 1, 2, 2 ] )>
380
+ gap> class = reesclass;
381
+ true
382
+ gap> cong := SemigroupCongruence(S, []);;
383
+ gap> class := EquivalenceClassOfElement(cong, Transformation([1, 1, 2, 2]));;
384
+ gap> class = reesclass;
385
+ false
386
+ gap> cong := UniversalSemigroupCongruence(S);;
387
+ gap> class := EquivalenceClassOfElement(cong, Transformation([1, 1, 2, 2]));;
388
+ gap> class = reesclass;
389
+ false
390
+
391
+ # EquivalenceRelation(Canonical)Lookup
392
+ gap> S := FullTransformationMonoid(3);;
393
+ gap> I := SemigroupIdeal(S, Transformation([1, 1, 2]));;
394
+ gap> cong := ReesCongruenceOfSemigroupIdeal(I);;
395
+ gap> EquivalenceRelationLookup(cong);
396
+ [ 1, 2, 3, 11, 5, 6, 11, 8, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
397
+ 11, 11, 11, 11, 11, 11, 11 ]
398
+ gap> EquivalenceRelationCanonicalLookup(cong);
399
+ [ 1, 2, 3, 4, 5, 6, 4, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
400
+ 4, 4 ]
401
+
402
+ # EquivalenceRelationCanonicalLookup with an fp semigroup
403
+ gap> F := FreeSemigroup(2);;
404
+ gap> S := F / [[F.1 ^ 2, F.1],
405
+ > [F.1 * F.2 * F.1, F.2 * F.1],
406
+ > [F.1 * F.2 ^ 2, F.2 * F.1],
407
+ > [F.2 * F.1 * F.2, F.1 * F.2],
408
+ > [F.2 ^ 2 * F.1, F.2 * F.1],
409
+ > [F.2 ^ 3, F.2]];;
410
+ gap> cong1 := ReesCongruenceOfSemigroupIdeal(SemigroupIdeal(S, [S.1 * S.2]));;
411
+ gap> cong2 := SemigroupCongruenceByGeneratingPairs(S, [[S.1 * S.2,
412
+ > S.1 * S.2 * S.1]]);;
413
+ gap> EquivalenceRelationCanonicalLookup(cong1);
414
+ [ 1, 2, 3, 3, 4 ]
415
+ gap> EquivalenceRelationCanonicalLookup(cong2);
416
+ [ 1, 2, 3, 3, 4 ]
417
+
418
+ # EquivalenceRelationCanonicalLookup with an RMS cong
419
+ gap> S := ReesMatrixSemigroup(SymmetricGroup(3), [[(1, 2), ()], [(), (1, 3)]]);
420
+ <Rees matrix semigroup 2x2 over Sym( [ 1 .. 3 ] )>
421
+ gap> cong := RMSCongruenceByLinkedTriple(S, Group((1, 2, 3)),
422
+ > [[1], [2]], [[1, 2]]);;
423
+ gap> ccong := AsSemigroupCongruenceByGeneratingPairs(cong);;
424
+ gap> cong := RMSCongruenceByLinkedTriple(S, Group((1, 2, 3)),
425
+ > [[1], [2]], [[1, 2]]);;
426
+ gap> EquivalenceRelationCanonicalLookup(cong);
427
+ [ 1, 2, 3, 1, 2, 2, 2, 1, 1, 3, 4, 4, 2, 1, 1, 2, 3, 4, 4, 4, 3, 3, 3, 4 ]
428
+ gap> EquivalenceRelationCanonicalLookup(ccong);
429
+ [ 1, 2, 3, 1, 2, 2, 2, 1, 1, 3, 4, 4, 2, 1, 1, 2, 3, 4, 4, 4, 3, 3, 3, 4 ]
430
+ gap> cong = ccong;
431
+ true
432
+
433
+ # This test used to return false because it fell back on a generic \= method for
434
+ # objects of different families (this is invalid and may give false negatives).
435
+ # We now use a correct method, but this test would run forever if enabled.
436
+ #gap> F := FreeSemigroup(2);;
437
+ #gap> cong1 := ReesCongruenceOfSemigroupIdeal(SemigroupIdeal(F, [F.1]));;
438
+ #gap> cong2 := SemigroupCongruence(F, [F.1, F.1 ^ 2]);;
439
+ #gap> cong1 = cong2;
440
+ #false
441
+
442
+ # This test made sure that an error was thrown when we tried anything with
443
+ # infinite semigroups. Infinite semigroups are now supported, but this test
444
+ # would run forever if enabled.
445
+ #gap> F := FreeSemigroup(2);;
446
+ #gap> cong1 := LeftSemigroupCongruence(F, [F.1, F.2]);;
447
+ #gap> cong2 := RightSemigroupCongruence(F, [F.1, F.2]);;
448
+ #gap> cong1 = cong2;
449
+ #Error, no method found! For debugging hints type ?Recovery from NoMethodFound
450
+ #Error, no 2nd choice method found for `ImagesSet' on 2 arguments
451
+ #gap> cong2 = cong1;
452
+ #Error, no method found! For debugging hints type ?Recovery from NoMethodFound
453
+ #Error, no 2nd choice method found for `ImagesSet' on 2 arguments
454
+
455
+ # EquivalenceRelationLookup with an infinite semigroup
456
+ gap> F := FreeSemigroup(2);;
457
+ gap> cong := ReesCongruenceOfSemigroupIdeal(SemigroupIdeal(F, [F.1]));;
458
+ gap> EquivalenceRelationLookup(cong);
459
+ Error, the argument (a 2-sided congruence) must have finite range
460
+ gap> EquivalenceRelationCanonicalLookup(cong);
461
+ Error, the argument (a 2-sided congruence) must have finite range
462
+ gap> cong := LeftSemigroupCongruence(F, [F.1, F.2]);;
463
+ gap> EquivalenceRelationLookup(cong);
464
+ Error, the argument (a left congruence) must have finite range
465
+ gap> cong := RightSemigroupCongruence(F, [F.1, F.2]);;
466
+ gap> EquivalenceRelationLookup(cong);
467
+ Error, the argument (a right congruence) must have finite range
468
+
469
+ # Equality for congruences over different semigroups (false)
470
+ gap> S := Semigroup([Transformation([3, 2, 3]), Transformation([3, 1, 1])]);;
471
+ gap> congS := ReesCongruenceOfSemigroupIdeal(MinimalIdeal(S));;
472
+ gap> T := Semigroup([PartialPerm([1, 2], [3, 2]),
473
+ > PartialPerm([1, 3], [3, 1])]);;
474
+ gap> pair := [PartialPerm([], []), PartialPerm([3], [1])];;
475
+ gap> congT := SemigroupCongruence(T, pair);;
476
+ gap> congS = congT;
477
+ false
478
+
479
+ # Equality for different types of congruences over a maybe-infinite semigroup
480
+ gap> F := FreeSemigroup(2);;
481
+ gap> S := F / [[F.1 ^ 2, F.1],
482
+ > [F.1 * F.2 * F.1, F.2 * F.1],
483
+ > [F.1 * F.2 ^ 2, F.2 * F.1],
484
+ > [F.2 * F.1 * F.2, F.1 * F.2],
485
+ > [F.2 ^ 2 * F.1, F.2 * F.1],
486
+ > [F.2 ^ 3, F.2]];;
487
+ gap> cong1 := ReesCongruenceOfSemigroupIdeal(SemigroupIdeal(S, [S.1 * S.2]));;
488
+ gap> cong2 := SemigroupCongruenceByGeneratingPairs(S, [[S.1 * S.2,
489
+ > S.1 * S.2 * S.1]]);;
490
+ gap> cong1 = cong2;
491
+ true
492
+
493
+ # Equality for different types of congruence, both with pairs
494
+ gap> S := ReesZeroMatrixSemigroup(SymmetricGroup(3),
495
+ > [[(1, 2), ()], [(), (1, 3)]]);;
496
+ gap> cong1 := RMSCongruenceByLinkedTriple(S, Group((1, 2, 3)),
497
+ > [[1], [2]], [[1, 2]]);;
498
+ gap> ideal := SemigroupIdeal(S, [MultiplicativeZero(S)]);;
499
+ gap> cong2 := ReesCongruenceOfSemigroupIdeal(ideal);;
500
+ gap> GeneratingPairsOfSemigroupCongruence(cong1);;
501
+ gap> GeneratingPairsOfSemigroupCongruence(cong2);;
502
+ gap> cong1 = cong2;
503
+ false
504
+
505
+ # EquivalenceRelation(Canonical)Partition
506
+ gap> S := FullTransformationMonoid(3);;
507
+ gap> I := SemigroupIdeal(S, Transformation([1, 1, 2]));;
508
+ gap> cong := ReesCongruenceOfSemigroupIdeal(I);;
509
+ gap> Size(EquivalenceRelationPartition(cong)[1]);
510
+ 21
511
+ gap> EquivalenceRelationCanonicalPartition(cong);
512
+ [ [ Transformation( [ 1, 2, 1 ] ), Transformation( [ 2, 1, 1 ] ),
513
+ Transformation( [ 2, 3, 2 ] ), Transformation( [ 2, 1, 2 ] ),
514
+ Transformation( [ 1, 1, 2 ] ), Transformation( [ 3, 2, 2 ] ),
515
+ Transformation( [ 1, 2, 2 ] ), Transformation( [ 3, 1, 3 ] ),
516
+ Transformation( [ 1, 3, 1 ] ), Transformation( [ 3, 2, 3 ] ),
517
+ Transformation( [ 2, 2 ] ), Transformation( [ 2, 2, 1 ] ),
518
+ Transformation( [ 1, 3, 3 ] ), Transformation( [ 3, 1, 1 ] ),
519
+ Transformation( [ 2, 3, 3 ] ), Transformation( [ 1, 1, 1 ] ),
520
+ Transformation( [ 3, 3, 1 ] ), Transformation( [ 1, 1 ] ),
521
+ Transformation( [ 3, 3, 2 ] ), Transformation( [ 2, 2, 2 ] ),
522
+ Transformation( [ 3, 3, 3 ] ) ] ]
523
+
524
+ # A left congruence example
525
+ gap> F := FreeMonoid(2);;
526
+ gap> M := F / [[F.1 * F.2 ^ 2, F.2 ^ 2],
527
+ > [F.2 ^ 3, F.2 ^ 2],
528
+ > [F.1 ^ 4, F.1],
529
+ > [F.2 * F.1 ^ 2 * F.2, F.2 ^ 2],
530
+ > [F.2 * F.1 ^ 3 * F.2, F.2],
531
+ > [(F.2 * F.1) ^ 2 * F.2, F.2],
532
+ > [F.2 ^ 2 * F.1 ^ 3, F.2 ^ 2],
533
+ > [F.2 * (F.2 * F.1) ^ 2, F.2 ^ 2 * F.1 ^ 2]];;
534
+ gap> cong1 := LeftSemigroupCongruence(M, [M.1, M.2 ^ 3]);;
535
+ gap> cong2 := LeftSemigroupCongruence(M, [M.2 ^ 2, M.1 ^ 7]);;
536
+ gap> lookup1 := EquivalenceRelationCanonicalLookup(cong1);;
537
+ gap> lookup2 := EquivalenceRelationCanonicalLookup(cong2);;
538
+ gap> Length(lookup1);
539
+ 40
540
+ gap> lookup1 = lookup2;
541
+ true
542
+
543
+ # A right congruence example
544
+ gap> F := FreeMonoid(2);;
545
+ gap> M := F / [[F.1 * F.2 ^ 2, F.2 ^ 2],
546
+ > [F.2 ^ 3, F.2 ^ 2],
547
+ > [F.1 ^ 4, F.1],
548
+ > [F.2 * F.1 ^ 2 * F.2, F.2 ^ 2],
549
+ > [F.2 * F.1 ^ 3 * F.2, F.2],
550
+ > [(F.2 * F.1) ^ 2 * F.2, F.2],
551
+ > [F.2 ^ 2 * F.1 ^ 3, F.2 ^ 2],
552
+ > [F.2 * (F.2 * F.1) ^ 2, F.2 ^ 2 * F.1 ^ 2]];;
553
+ gap> cong1 := RightSemigroupCongruence(M, [M.1, M.2 ^ 3]);;
554
+ gap> cong2 := RightSemigroupCongruence(M, [M.2 ^ 2, M.1 ^ 7]);;
555
+ gap> lookup1 := EquivalenceRelationCanonicalLookup(cong1);;
556
+ gap> lookup2 := EquivalenceRelationCanonicalLookup(cong2);;
557
+ gap> Length(lookup1);
558
+ 40
559
+ gap> lookup1 = lookup2;
560
+ true
561
+
562
+ # Issue 393, missing method for NrEquivalenceClasses for a generic semigroup
563
+ # congruence
564
+ # gap> f := FreeGroup("a");;
565
+ # gap> g := f / [f.1 ^ 4];;
566
+ # gap> phi := InjectionZeroMagma(g);;
567
+ # gap> m := Range(phi);;
568
+ # gap> el := Elements(m);;
569
+ # gap> c := MagmaCongruenceByGeneratingPairs(m, [[el[2], el[3]]]);;
570
+ # gap> EquivalenceRelationPartition(c);;
571
+ # gap> IsReesCongruence(c);
572
+ # false
573
+
574
+ # EquivalenceRelationPartitionWithSingletons non-finite
575
+ gap> S := FreeSemigroup(2);
576
+ <free semigroup on the generators [ s1, s2 ]>
577
+ gap> C := SemigroupCongruence(S, [S.1, S.2]);
578
+ <2-sided semigroup congruence over <free semigroup on the generators
579
+ [ s1, s2 ]> with 1 generating pairs>
580
+ gap> EquivalenceRelationPartitionWithSingletons(C);
581
+ Error, the argument (a congruence) must have finite range
582
+
583
+ # MeetSemigroupCongruences, error different ranges
584
+ gap> S := FreeSemigroup(2);
585
+ <free semigroup on the generators [ s1, s2 ]>
586
+ gap> T := Semigroup([Transformation([2, 1, 1, 2, 1]),
587
+ > Transformation([3, 4, 3, 4, 4]),
588
+ > Transformation([3, 4, 3, 4, 3]),
589
+ > Transformation([4, 3, 3, 4, 4])]);;
590
+ gap> IsSimpleSemigroup(T);
591
+ true
592
+ gap> cong1 := SemigroupCongruence(T,
593
+ > [[Transformation([1, 2, 1, 2, 2]),
594
+ > Transformation([2, 1, 2, 1, 2])],
595
+ > [Transformation([2, 1, 1, 2, 2]),
596
+ > Transformation([1, 2, 2, 1, 2])]]);;
597
+ gap> cong2 := SemigroupCongruence(S, []);;
598
+ gap> MeetSemigroupCongruences(cong1, cong2);
599
+ Error, cannot form the meet of congruences over different semigroups
600
+
601
+ # MeetSemigroupCongruences, contained
602
+ gap> S := PartitionMonoid(3);;
603
+ gap> pairs1 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
604
+ > Bipartition([[1, 2, -1, -2, -3], [3]])]];;
605
+ gap> pairs2 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
606
+ > Bipartition([[1, 2, 3, -1, -2], [-3]])],
607
+ > [Bipartition([[1, 2, -1, -2], [3, -3]]),
608
+ > Bipartition([[1, 2, -3], [3, -1, -2]])]];;
609
+ gap> cong1 := SemigroupCongruence(S, pairs1);;
610
+ gap> cong2 := SemigroupCongruence(S, pairs2);;
611
+ gap> cong3 := JoinSemigroupCongruences(cong1, cong2);
612
+ <2-sided semigroup congruence over <regular bipartition *-monoid of size 203,
613
+ degree 3 with 4 generators> with 3 generating pairs>
614
+ gap> MeetSemigroupCongruences(cong1, cong3) = cong1;
615
+ true
616
+ gap> MeetSemigroupCongruences(cong2, cong3) = cong2;
617
+ true
618
+ gap> MeetSemigroupCongruences(cong3, cong1) = cong1;
619
+ true
620
+ gap> MeetSemigroupCongruences(cong3, cong2) = cong2;
621
+ true
622
+ gap> MeetSemigroupCongruences(cong1, cong2);
623
+ <2-sided semigroup congruence over <regular bipartition *-monoid of size 203,
624
+ degree 3 with 4 generators> with 1 generating pairs>
625
+ gap> MeetSemigroupCongruences(cong3, cong3) = cong3;
626
+ true
627
+
628
+ # MeetRightSemigroupCongruences
629
+ gap> S := PartitionMonoid(3);;
630
+ gap> pairs1 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
631
+ > Bipartition([[1, 2, -1, -2, -3], [3]])]];;
632
+ gap> pairs2 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
633
+ > Bipartition([[1, 2, 3, -1, -2], [-3]])],
634
+ > [Bipartition([[1, 2, -1, -2], [3, -3]]),
635
+ > Bipartition([[1, 2, -3], [3, -1, -2]])]];;
636
+ gap> cong1 := RightSemigroupCongruence(S, pairs1);;
637
+ gap> cong2 := RightSemigroupCongruence(S, pairs2);;
638
+ gap> cong3 := JoinRightSemigroupCongruences(cong1, cong2);
639
+ <right semigroup congruence over <regular bipartition *-monoid of size 203,
640
+ degree 3 with 4 generators> with 3 generating pairs>
641
+ gap> MeetRightSemigroupCongruences(cong1, cong3) = cong1;
642
+ true
643
+ gap> MeetRightSemigroupCongruences(cong2, cong3) = cong2;
644
+ true
645
+ gap> MeetRightSemigroupCongruences(cong3, cong1) = cong1;
646
+ true
647
+ gap> MeetRightSemigroupCongruences(cong3, cong2) = cong2;
648
+ true
649
+ gap> MeetRightSemigroupCongruences(cong1, cong2);
650
+ <right semigroup congruence over <regular bipartition *-monoid of size 203,
651
+ degree 3 with 4 generators> with 0 generating pairs>
652
+ gap> MeetRightSemigroupCongruences(cong3, cong3) = cong3;
653
+ true
654
+
655
+ # MeetLeftSemigroupCongruences
656
+ gap> S := PartitionMonoid(3);;
657
+ gap> pairs1 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
658
+ > Bipartition([[1, 2, -1, -2, -3], [3]])]];;
659
+ gap> pairs2 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
660
+ > Bipartition([[1, 2, 3, -1, -2], [-3]])],
661
+ > [Bipartition([[1, 2, -1, -2], [3, -3]]),
662
+ > Bipartition([[1, 2, -3], [3, -1, -2]])]];;
663
+ gap> cong1 := LeftSemigroupCongruence(S, pairs1);;
664
+ gap> cong2 := LeftSemigroupCongruence(S, pairs2);;
665
+ gap> cong3 := JoinLeftSemigroupCongruences(cong1, cong2);
666
+ <left semigroup congruence over <regular bipartition *-monoid of size 203,
667
+ degree 3 with 4 generators> with 3 generating pairs>
668
+ gap> MeetLeftSemigroupCongruences(cong1, cong3) = cong1;
669
+ true
670
+ gap> MeetLeftSemigroupCongruences(cong2, cong3) = cong2;
671
+ true
672
+ gap> MeetLeftSemigroupCongruences(cong3, cong1) = cong1;
673
+ true
674
+ gap> MeetLeftSemigroupCongruences(cong3, cong2) = cong2;
675
+ true
676
+ gap> MeetLeftSemigroupCongruences(cong1, cong2);
677
+ <left semigroup congruence over <regular bipartition *-monoid of size 203,
678
+ degree 3 with 4 generators> with 0 generating pairs>
679
+ gap> MeetLeftSemigroupCongruences(cong3, cong3) = cong3;
680
+ true
681
+
682
+ #
683
+ gap> S := PartitionMonoid(3);;
684
+ gap> pairs1 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
685
+ > Bipartition([[1, 2, -1, -2, -3], [3]])]];;
686
+ gap> pairs2 := [[Bipartition([[1, 2, 3, -1, -2, -3]]),
687
+ > Bipartition([[1, 2, 3, -1, -2], [-3]])],
688
+ > [Bipartition([[1, 2, -1, -2], [3, -3]]),
689
+ > Bipartition([[1, 2, -3], [3, -1, -2]])]];;
690
+ gap> C := SemigroupCongruence(S, pairs1);
691
+ <2-sided semigroup congruence over <regular bipartition *-monoid of size 203,
692
+ degree 3 with 4 generators> with 1 generating pairs>
693
+ gap> EquivalenceRelationLookup(C);
694
+ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
695
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 30, 34, 35, 36, 37, 38, 39, 40,
696
+ 41, 42, 43, 30, 45, 46, 47, 48, 36, 50, 51, 52, 53, 54, 30, 56, 30, 56, 59,
697
+ 30, 30, 56, 63, 36, 37, 66, 67, 37, 36, 70, 30, 72, 73, 30, 75, 76, 36, 78,
698
+ 79, 56, 30, 56, 83, 30, 85, 36, 87, 67, 37, 90, 30, 92, 93, 30, 56, 96, 56,
699
+ 30, 30, 56, 36, 102, 36, 36, 67, 37, 67, 30, 56, 30, 56, 112, 30, 30, 56,
700
+ 116, 117, 67, 119, 30, 121, 122, 30, 56, 36, 126, 67, 37, 30, 30, 56, 132,
701
+ 30, 30, 56, 30, 56, 67, 36, 67, 37, 67, 30, 56, 30, 30, 36, 148, 36, 36,
702
+ 30, 56, 153, 30, 56, 67, 56, 30, 36, 160, 36, 36, 30, 67, 37, 30, 56, 56,
703
+ 67, 36, 67, 37, 67, 56, 36, 176, 36, 36, 56, 67, 36, 67, 37, 67, 56, 30,
704
+ 36, 67, 37, 67, 36, 67, 37, 67, 67, 37, 56, 67, 36, 67, 37, 67, 37 ]
705
+ gap> EquivalenceRelationPartition(C);
706
+ [ [ <bipartition: [ 1 ], [ 2, -3 ], [ 3 ], [ -1 ], [ -2 ]>,
707
+ <bipartition: [ 1 ], [ 2 ], [ 3, -3 ], [ -1 ], [ -2 ]>,
708
+ <bipartition: [ 1, -3 ], [ 2 ], [ 3 ], [ -1 ], [ -2 ]>,
709
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2 ], [ -1 ], [ -3 ]>,
710
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3 ], [ -2 ], [ -3 ]>,
711
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3 ], [ -1 ], [ -3 ]>,
712
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1 ], [ -2 ], [ -3 ]>,
713
+ <bipartition: [ 1, 2, -3 ], [ 3 ], [ -1 ], [ -2 ]>,
714
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ -1 ], [ -2 ]>,
715
+ <bipartition: [ 1, -1 ], [ 2 ], [ 3 ], [ -2 ], [ -3 ]>,
716
+ <bipartition: [ 1, -2 ], [ 2 ], [ 3 ], [ -1 ], [ -3 ]>,
717
+ <bipartition: [ 1, 3, -3 ], [ 2 ], [ -1 ], [ -2 ]>,
718
+ <bipartition: [ 1, 3 ], [ 2, -3 ], [ -1 ], [ -2 ]>,
719
+ <bipartition: [ 1 ], [ 2, 3, -2 ], [ -1 ], [ -3 ]>,
720
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1 ], [ -2 ], [ -3 ]>,
721
+ <bipartition: [ 1, 2 ], [ 3, -2 ], [ -1 ], [ -3 ]>,
722
+ <bipartition: [ 1, 2, -1 ], [ 3 ], [ -2 ], [ -3 ]>,
723
+ <bipartition: [ 1, 2, -2 ], [ 3 ], [ -1 ], [ -3 ]>,
724
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2 ], [ -3 ]>,
725
+ <bipartition: [ 1 ], [ 2, 3, -3 ], [ -1 ], [ -2 ]>,
726
+ <bipartition: [ 1, -3 ], [ 2, 3 ], [ -1 ], [ -2 ]>,
727
+ <bipartition: [ 1, 3 ], [ 2, -2 ], [ -1 ], [ -3 ]>,
728
+ <bipartition: [ 1, 3, -1 ], [ 2 ], [ -2 ], [ -3 ]>,
729
+ <bipartition: [ 1, 3, -2 ], [ 2 ], [ -1 ], [ -3 ]>,
730
+ <bipartition: [ 1, 3 ], [ 2, -1 ], [ -2 ], [ -3 ]>,
731
+ <bipartition: [ 1 ], [ 2, 3, -1 ], [ -2 ], [ -3 ]>,
732
+ <bipartition: [ 1, 2, 3, -3 ], [ -1 ], [ -2 ]>,
733
+ <bipartition: [ 1, 2, 3, -2 ], [ -1 ], [ -3 ]>,
734
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1 ], [ -2 ], [ -3 ]>,
735
+ <bipartition: [ 1, -2 ], [ 2, 3 ], [ -1 ], [ -3 ]>,
736
+ <bipartition: [ 1, -1 ], [ 2, 3 ], [ -2 ], [ -3 ]>,
737
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1 ], [ -2 ], [ -3 ]>,
738
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1 ], [ -2 ], [ -3 ]>,
739
+ <bipartition: [ 1, 2, 3, -1 ], [ -2 ], [ -3 ]>,
740
+ <bipartition: [ 1, 2, 3 ], [ -1 ], [ -2 ], [ -3 ]> ],
741
+ [ <bipartition: [ 1, 2, -2, -3 ], [ 3 ], [ -1 ]>,
742
+ <bipartition: [ 1, 3, -2, -3 ], [ 2 ], [ -1 ]>,
743
+ <bipartition: [ 1 ], [ 2, -2, -3 ], [ 3 ], [ -1 ]>,
744
+ <bipartition: [ 1, 2, 3, -2, -3 ], [ -1 ]>,
745
+ <bipartition: [ 1 ], [ 2, 3, -2, -3 ], [ -1 ]>,
746
+ <bipartition: [ 1, -2, -3 ], [ 2 ], [ 3 ], [ -1 ]>,
747
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3 ], [ -2, -3 ]>,
748
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2, -3 ], [ -1 ]>,
749
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1 ], [ -2, -3 ]>,
750
+ <bipartition: [ 1, -1 ], [ 2 ], [ 3 ], [ -2, -3 ]>,
751
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1 ], [ -2, -3 ]>,
752
+ <bipartition: [ 1, 2, -1 ], [ 3 ], [ -2, -3 ]>,
753
+ <bipartition: [ 1, 2 ], [ 3, -2, -3 ], [ -1 ]>,
754
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2, -3 ]>,
755
+ <bipartition: [ 1, 3, -1 ], [ 2 ], [ -2, -3 ]>,
756
+ <bipartition: [ 1, 3 ], [ 2, -2, -3 ], [ -1 ]>,
757
+ <bipartition: [ 1, 3 ], [ 2, -1 ], [ -2, -3 ]>,
758
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1 ], [ -2, -3 ]>,
759
+ <bipartition: [ 1 ], [ 2, 3, -1 ], [ -2, -3 ]>,
760
+ <bipartition: [ 1, -2, -3 ], [ 2, 3 ], [ -1 ]>,
761
+ <bipartition: [ 1, -1 ], [ 2, 3 ], [ -2, -3 ]>,
762
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1 ], [ -2, -3 ]>,
763
+ <bipartition: [ 1, 2, 3, -1 ], [ -2, -3 ]>,
764
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1 ], [ -2, -3 ]>,
765
+ <bipartition: [ 1, 2, 3 ], [ -1 ], [ -2, -3 ]> ],
766
+ [ <block bijection: [ 1, 2, 3, -1, -2, -3 ]>,
767
+ <bipartition: [ 1 ], [ 2, 3, -1, -2, -3 ]>,
768
+ <bipartition: [ 1, 2, -1, -2, -3 ], [ 3 ]>,
769
+ <bipartition: [ 1, 3, -1, -2, -3 ], [ 2 ]>,
770
+ <bipartition: [ 1 ], [ 2, -1, -2, -3 ], [ 3 ]>,
771
+ <bipartition: [ 1, -1, -2, -3 ], [ 2 ], [ 3 ]>,
772
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -2, -3 ]>,
773
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -2, -3 ]>,
774
+ <bipartition: [ 1, 2 ], [ 3, -1, -2, -3 ]>,
775
+ <bipartition: [ 1, 3 ], [ 2, -1, -2, -3 ]>,
776
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -2, -3 ]>,
777
+ <bipartition: [ 1, -1, -2, -3 ], [ 2, 3 ]>,
778
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -2, -3 ]>,
779
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -2, -3 ]>,
780
+ <bipartition: [ 1, 2, 3 ], [ -1, -2, -3 ]> ],
781
+ [ <bipartition: [ 1 ], [ 2, 3, -1, -2 ], [ -3 ]>,
782
+ <bipartition: [ 1 ], [ 2, -3 ], [ 3 ], [ -1, -2 ]>,
783
+ <bipartition: [ 1 ], [ 2 ], [ 3, -3 ], [ -1, -2 ]>,
784
+ <bipartition: [ 1, 2, -1, -2 ], [ 3 ], [ -3 ]>,
785
+ <bipartition: [ 1, -3 ], [ 2 ], [ 3 ], [ -1, -2 ]>,
786
+ <bipartition: [ 1, 3, -1, -2 ], [ 2 ], [ -3 ]>,
787
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -2 ], [ -3 ]>,
788
+ <bipartition: [ 1 ], [ 2, -1, -2 ], [ 3 ], [ -3 ]>,
789
+ <bipartition: [ 1, 2, 3, -1, -2 ], [ -3 ]>,
790
+ <bipartition: [ 1, 2, -3 ], [ 3 ], [ -1, -2 ]>,
791
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ -1, -2 ]>,
792
+ <bipartition: [ 1, -1, -2 ], [ 2 ], [ 3 ], [ -3 ]>,
793
+ <bipartition: [ 1, 3, -3 ], [ 2 ], [ -1, -2 ]>,
794
+ <bipartition: [ 1, 3 ], [ 2, -3 ], [ -1, -2 ]>,
795
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -2 ], [ -3 ]>,
796
+ <bipartition: [ 1, 2 ], [ 3, -1, -2 ], [ -3 ]>,
797
+ <bipartition: [ 1 ], [ 2, 3, -3 ], [ -1, -2 ]>,
798
+ <bipartition: [ 1, -3 ], [ 2, 3 ], [ -1, -2 ]>,
799
+ <bipartition: [ 1, 3 ], [ 2, -1, -2 ], [ -3 ]>,
800
+ <bipartition: [ 1, 2, 3, -3 ], [ -1, -2 ]>,
801
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -2 ], [ -3 ]>,
802
+ <bipartition: [ 1, -1, -2 ], [ 2, 3 ], [ -3 ]>,
803
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -2 ], [ -3 ]>,
804
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -2 ], [ -3 ]>,
805
+ <bipartition: [ 1, 2, 3 ], [ -1, -2 ], [ -3 ]> ],
806
+ [ <bipartition: [ 1, 2, -1, -3 ], [ 3 ], [ -2 ]>,
807
+ <bipartition: [ 1, 3, -1, -3 ], [ 2 ], [ -2 ]>,
808
+ <bipartition: [ 1 ], [ 2, -1, -3 ], [ 3 ], [ -2 ]>,
809
+ <bipartition: [ 1, 2, 3, -1, -3 ], [ -2 ]>,
810
+ <bipartition: [ 1 ], [ 2, 3, -1, -3 ], [ -2 ]>,
811
+ <bipartition: [ 1, -1, -3 ], [ 2 ], [ 3 ], [ -2 ]>,
812
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3 ], [ -1, -3 ]>,
813
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -3 ], [ -2 ]>,
814
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2 ], [ -1, -3 ]>,
815
+ <bipartition: [ 1, -2 ], [ 2 ], [ 3 ], [ -1, -3 ]>,
816
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -3 ], [ -2 ]>,
817
+ <bipartition: [ 1, 2, -2 ], [ 3 ], [ -1, -3 ]>,
818
+ <bipartition: [ 1, 2 ], [ 3, -1, -3 ], [ -2 ]>,
819
+ <bipartition: [ 1, 2 ], [ 3, -2 ], [ -1, -3 ]>,
820
+ <bipartition: [ 1, 3, -2 ], [ 2 ], [ -1, -3 ]>,
821
+ <bipartition: [ 1, 3 ], [ 2, -1, -3 ], [ -2 ]>,
822
+ <bipartition: [ 1, 3 ], [ 2, -2 ], [ -1, -3 ]>,
823
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -3 ], [ -2 ]>,
824
+ <bipartition: [ 1 ], [ 2, 3, -2 ], [ -1, -3 ]>,
825
+ <bipartition: [ 1, -1, -3 ], [ 2, 3 ], [ -2 ]>,
826
+ <bipartition: [ 1, -2 ], [ 2, 3 ], [ -1, -3 ]>,
827
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -3 ], [ -2 ]>,
828
+ <bipartition: [ 1, 2, 3, -2 ], [ -1, -3 ]>,
829
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -3 ], [ -2 ]>,
830
+ <bipartition: [ 1, 2, 3 ], [ -1, -3 ], [ -2 ]> ] ]
831
+ gap> EquivalenceRelationPartitionWithSingletons(C);
832
+ [ [ <block bijection: [ 1, -1 ], [ 2, -2 ], [ 3, -3 ]> ],
833
+ [ <block bijection: [ 1, -2 ], [ 2, -3 ], [ 3, -1 ]> ],
834
+ [ <block bijection: [ 1, -2 ], [ 2, -1 ], [ 3, -3 ]> ],
835
+ [ <bipartition: [ 1 ], [ 2, -2 ], [ 3, -3 ], [ -1 ]> ],
836
+ [ <block bijection: [ 1, 2, -1, -2 ], [ 3, -3 ]> ],
837
+ [ <block bijection: [ 1, -3 ], [ 2, -1 ], [ 3, -2 ]> ],
838
+ [ <block bijection: [ 1, -1 ], [ 2, -3 ], [ 3, -2 ]> ],
839
+ [ <bipartition: [ 1, -2 ], [ 2, -3 ], [ 3 ], [ -1 ]> ],
840
+ [ <block bijection: [ 1, 3, -1, -2 ], [ 2, -3 ]> ],
841
+ [ <block bijection: [ 1, -3 ], [ 2, -2 ], [ 3, -1 ]> ],
842
+ [ <bipartition: [ 1, -2 ], [ 2 ], [ 3, -3 ], [ -1 ]> ],
843
+ [ <bipartition: [ 1 ], [ 2, -3 ], [ 3, -1 ], [ -2 ]> ],
844
+ [ <bipartition: [ 1 ], [ 2, -1 ], [ 3, -3 ], [ -2 ]> ],
845
+ [ <bipartition: [ 1 ], [ 2, -1, -2 ], [ 3, -3 ]> ],
846
+ [ <block bijection: [ 1, 2, -2, -3 ], [ 3, -1 ]> ],
847
+ [ <bipartition: [ 1, 2, -2 ], [ 3, -3 ], [ -1 ]> ],
848
+ [ <bipartition: [ 1, -3 ], [ 2 ], [ 3, -2 ], [ -1 ]> ],
849
+ [ <block bijection: [ 1, -3 ], [ 2, 3, -1, -2 ]> ],
850
+ [ <bipartition: [ 1 ], [ 2, -3 ], [ 3, -2 ], [ -1 ]> ],
851
+ [ <bipartition: [ 1, -3 ], [ 2, -1 ], [ 3 ], [ -2 ]> ],
852
+ [ <bipartition: [ 1, -1 ], [ 2, -3 ], [ 3 ], [ -2 ]> ],
853
+ [ <bipartition: [ 1, -1, -2 ], [ 2, -3 ], [ 3 ]> ],
854
+ [ <block bijection: [ 1, 3, -2, -3 ], [ 2, -1 ]> ],
855
+ [ <bipartition: [ 1, 3, -2 ], [ 2, -3 ], [ -1 ]> ],
856
+ [ <bipartition: [ 1, -3 ], [ 2, -2 ], [ 3 ], [ -1 ]> ],
857
+ [ <bipartition: [ 1, -3 ], [ 2 ], [ 3, -1 ], [ -2 ]> ],
858
+ [ <bipartition: [ 1, -1 ], [ 2 ], [ 3, -3 ], [ -2 ]> ],
859
+ [ <bipartition: [ 1, -1, -2 ], [ 2 ], [ 3, -3 ]> ],
860
+ [ <bipartition: [ 1 ], [ 2, -1 ], [ 3, -2 ], [ -3 ]> ],
861
+ [ <bipartition: [ 1 ], [ 2, -3 ], [ 3 ], [ -1 ], [ -2 ]>,
862
+ <bipartition: [ 1 ], [ 2 ], [ 3, -3 ], [ -1 ], [ -2 ]>,
863
+ <bipartition: [ 1, -3 ], [ 2 ], [ 3 ], [ -1 ], [ -2 ]>,
864
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2 ], [ -1 ], [ -3 ]>,
865
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3 ], [ -2 ], [ -3 ]>,
866
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3 ], [ -1 ], [ -3 ]>,
867
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1 ], [ -2 ], [ -3 ]>,
868
+ <bipartition: [ 1, 2, -3 ], [ 3 ], [ -1 ], [ -2 ]>,
869
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ -1 ], [ -2 ]>,
870
+ <bipartition: [ 1, -1 ], [ 2 ], [ 3 ], [ -2 ], [ -3 ]>,
871
+ <bipartition: [ 1, -2 ], [ 2 ], [ 3 ], [ -1 ], [ -3 ]>,
872
+ <bipartition: [ 1, 3, -3 ], [ 2 ], [ -1 ], [ -2 ]>,
873
+ <bipartition: [ 1, 3 ], [ 2, -3 ], [ -1 ], [ -2 ]>,
874
+ <bipartition: [ 1 ], [ 2, 3, -2 ], [ -1 ], [ -3 ]>,
875
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1 ], [ -2 ], [ -3 ]>,
876
+ <bipartition: [ 1, 2 ], [ 3, -2 ], [ -1 ], [ -3 ]>,
877
+ <bipartition: [ 1, 2, -1 ], [ 3 ], [ -2 ], [ -3 ]>,
878
+ <bipartition: [ 1, 2, -2 ], [ 3 ], [ -1 ], [ -3 ]>,
879
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2 ], [ -3 ]>,
880
+ <bipartition: [ 1 ], [ 2, 3, -3 ], [ -1 ], [ -2 ]>,
881
+ <bipartition: [ 1, -3 ], [ 2, 3 ], [ -1 ], [ -2 ]>,
882
+ <bipartition: [ 1, 3 ], [ 2, -2 ], [ -1 ], [ -3 ]>,
883
+ <bipartition: [ 1, 3, -1 ], [ 2 ], [ -2 ], [ -3 ]>,
884
+ <bipartition: [ 1, 3, -2 ], [ 2 ], [ -1 ], [ -3 ]>,
885
+ <bipartition: [ 1, 3 ], [ 2, -1 ], [ -2 ], [ -3 ]>,
886
+ <bipartition: [ 1 ], [ 2, 3, -1 ], [ -2 ], [ -3 ]>,
887
+ <bipartition: [ 1, 2, 3, -3 ], [ -1 ], [ -2 ]>,
888
+ <bipartition: [ 1, 2, 3, -2 ], [ -1 ], [ -3 ]>,
889
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1 ], [ -2 ], [ -3 ]>,
890
+ <bipartition: [ 1, -2 ], [ 2, 3 ], [ -1 ], [ -3 ]>,
891
+ <bipartition: [ 1, -1 ], [ 2, 3 ], [ -2 ], [ -3 ]>,
892
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1 ], [ -2 ], [ -3 ]>,
893
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1 ], [ -2 ], [ -3 ]>,
894
+ <bipartition: [ 1, 2, 3, -1 ], [ -2 ], [ -3 ]>,
895
+ <bipartition: [ 1, 2, 3 ], [ -1 ], [ -2 ], [ -3 ]> ],
896
+ [ <bipartition: [ 1 ], [ 2, -3 ], [ 3, -1, -2 ]> ],
897
+ [ <bipartition: [ 1 ], [ 2, -2 ], [ 3, -1 ], [ -3 ]> ],
898
+ [ <bipartition: [ 1 ], [ 2, -2, -3 ], [ 3, -1 ]> ],
899
+ [ <block bijection: [ 1, 2, -1, -3 ], [ 3, -2 ]> ],
900
+ [ <bipartition: [ 1, 2, -2, -3 ], [ 3 ], [ -1 ]>,
901
+ <bipartition: [ 1, 3, -2, -3 ], [ 2 ], [ -1 ]>,
902
+ <bipartition: [ 1 ], [ 2, -2, -3 ], [ 3 ], [ -1 ]>,
903
+ <bipartition: [ 1, 2, 3, -2, -3 ], [ -1 ]>,
904
+ <bipartition: [ 1 ], [ 2, 3, -2, -3 ], [ -1 ]>,
905
+ <bipartition: [ 1, -2, -3 ], [ 2 ], [ 3 ], [ -1 ]>,
906
+ <bipartition: [ 1 ], [ 2, -1 ], [ 3 ], [ -2, -3 ]>,
907
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2, -3 ], [ -1 ]>,
908
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1 ], [ -2, -3 ]>,
909
+ <bipartition: [ 1, -1 ], [ 2 ], [ 3 ], [ -2, -3 ]>,
910
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1 ], [ -2, -3 ]>,
911
+ <bipartition: [ 1, 2, -1 ], [ 3 ], [ -2, -3 ]>,
912
+ <bipartition: [ 1, 2 ], [ 3, -2, -3 ], [ -1 ]>,
913
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2, -3 ]>,
914
+ <bipartition: [ 1, 3, -1 ], [ 2 ], [ -2, -3 ]>,
915
+ <bipartition: [ 1, 3 ], [ 2, -2, -3 ], [ -1 ]>,
916
+ <bipartition: [ 1, 3 ], [ 2, -1 ], [ -2, -3 ]>,
917
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1 ], [ -2, -3 ]>,
918
+ <bipartition: [ 1 ], [ 2, 3, -1 ], [ -2, -3 ]>,
919
+ <bipartition: [ 1, -2, -3 ], [ 2, 3 ], [ -1 ]>,
920
+ <bipartition: [ 1, -1 ], [ 2, 3 ], [ -2, -3 ]>,
921
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1 ], [ -2, -3 ]>,
922
+ <bipartition: [ 1, 2, 3, -1 ], [ -2, -3 ]>,
923
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1 ], [ -2, -3 ]>,
924
+ <bipartition: [ 1, 2, 3 ], [ -1 ], [ -2, -3 ]> ],
925
+ [ <block bijection: [ 1, 2, 3, -1, -2, -3 ]>,
926
+ <bipartition: [ 1 ], [ 2, 3, -1, -2, -3 ]>,
927
+ <bipartition: [ 1, 2, -1, -2, -3 ], [ 3 ]>,
928
+ <bipartition: [ 1, 3, -1, -2, -3 ], [ 2 ]>,
929
+ <bipartition: [ 1 ], [ 2, -1, -2, -3 ], [ 3 ]>,
930
+ <bipartition: [ 1, -1, -2, -3 ], [ 2 ], [ 3 ]>,
931
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -2, -3 ]>,
932
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -2, -3 ]>,
933
+ <bipartition: [ 1, 2 ], [ 3, -1, -2, -3 ]>,
934
+ <bipartition: [ 1, 3 ], [ 2, -1, -2, -3 ]>,
935
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -2, -3 ]>,
936
+ <bipartition: [ 1, -1, -2, -3 ], [ 2, 3 ]>,
937
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -2, -3 ]>,
938
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -2, -3 ]>,
939
+ <bipartition: [ 1, 2, 3 ], [ -1, -2, -3 ]> ],
940
+ [ <bipartition: [ 1, 2, -3 ], [ 3, -1 ], [ -2 ]> ],
941
+ [ <bipartition: [ 1, 2, -1 ], [ 3, -3 ], [ -2 ]> ],
942
+ [ <bipartition: [ 1, -3 ], [ 2 ], [ 3, -1, -2 ]> ],
943
+ [ <block bijection: [ 1, -1 ], [ 2, 3, -2, -3 ]> ],
944
+ [ <bipartition: [ 1, -3 ], [ 2, 3, -2 ], [ -1 ]> ],
945
+ [ <bipartition: [ 1, -1 ], [ 2, -2 ], [ 3 ], [ -3 ]> ],
946
+ [ <bipartition: [ 1, -3 ], [ 2, -1, -2 ], [ 3 ]> ],
947
+ [ <bipartition: [ 1, -2 ], [ 2, -1 ], [ 3 ], [ -3 ]> ],
948
+ [ <bipartition: [ 1, -2, -3 ], [ 2, -1 ], [ 3 ]> ],
949
+ [ <block bijection: [ 1, 3, -1, -3 ], [ 2, -2 ]> ],
950
+ [ <bipartition: [ 1, 3, -3 ], [ 2, -1 ], [ -2 ]> ],
951
+ [ <bipartition: [ 1, 3, -1 ], [ 2, -3 ], [ -2 ]> ],
952
+ [ <bipartition: [ 1, -1 ], [ 2 ], [ 3, -2 ], [ -3 ]> ],
953
+ [ <bipartition: [ 1, -2 ], [ 2 ], [ 3, -1 ], [ -3 ]> ],
954
+ [ <bipartition: [ 1, -2, -3 ], [ 2 ], [ 3, -1 ]> ],
955
+ [ <bipartition: [ 1 ], [ 2, 3, -1, -2 ], [ -3 ]>,
956
+ <bipartition: [ 1 ], [ 2, -3 ], [ 3 ], [ -1, -2 ]>,
957
+ <bipartition: [ 1 ], [ 2 ], [ 3, -3 ], [ -1, -2 ]>,
958
+ <bipartition: [ 1, 2, -1, -2 ], [ 3 ], [ -3 ]>,
959
+ <bipartition: [ 1, -3 ], [ 2 ], [ 3 ], [ -1, -2 ]>,
960
+ <bipartition: [ 1, 3, -1, -2 ], [ 2 ], [ -3 ]>,
961
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -2 ], [ -3 ]>,
962
+ <bipartition: [ 1 ], [ 2, -1, -2 ], [ 3 ], [ -3 ]>,
963
+ <bipartition: [ 1, 2, 3, -1, -2 ], [ -3 ]>,
964
+ <bipartition: [ 1, 2, -3 ], [ 3 ], [ -1, -2 ]>,
965
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ -1, -2 ]>,
966
+ <bipartition: [ 1, -1, -2 ], [ 2 ], [ 3 ], [ -3 ]>,
967
+ <bipartition: [ 1, 3, -3 ], [ 2 ], [ -1, -2 ]>,
968
+ <bipartition: [ 1, 3 ], [ 2, -3 ], [ -1, -2 ]>,
969
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -2 ], [ -3 ]>,
970
+ <bipartition: [ 1, 2 ], [ 3, -1, -2 ], [ -3 ]>,
971
+ <bipartition: [ 1 ], [ 2, 3, -3 ], [ -1, -2 ]>,
972
+ <bipartition: [ 1, -3 ], [ 2, 3 ], [ -1, -2 ]>,
973
+ <bipartition: [ 1, 3 ], [ 2, -1, -2 ], [ -3 ]>,
974
+ <bipartition: [ 1, 2, 3, -3 ], [ -1, -2 ]>,
975
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -2 ], [ -3 ]>,
976
+ <bipartition: [ 1, -1, -2 ], [ 2, 3 ], [ -3 ]>,
977
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -2 ], [ -3 ]>,
978
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -2 ], [ -3 ]>,
979
+ <bipartition: [ 1, 2, 3 ], [ -1, -2 ], [ -3 ]> ],
980
+ [ <bipartition: [ 1 ], [ 2, -1 ], [ 3, -2, -3 ]> ],
981
+ [ <bipartition: [ 1 ], [ 2, -1, -3 ], [ 3, -2 ]> ],
982
+ [ <bipartition: [ 1, 2, -3 ], [ 3, -2 ], [ -1 ]> ],
983
+ [ <bipartition: [ 1, 2, -1, -3 ], [ 3 ], [ -2 ]>,
984
+ <bipartition: [ 1, 3, -1, -3 ], [ 2 ], [ -2 ]>,
985
+ <bipartition: [ 1 ], [ 2, -1, -3 ], [ 3 ], [ -2 ]>,
986
+ <bipartition: [ 1, 2, 3, -1, -3 ], [ -2 ]>,
987
+ <bipartition: [ 1 ], [ 2, 3, -1, -3 ], [ -2 ]>,
988
+ <bipartition: [ 1, -1, -3 ], [ 2 ], [ 3 ], [ -2 ]>,
989
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3 ], [ -1, -3 ]>,
990
+ <bipartition: [ 1 ], [ 2 ], [ 3, -1, -3 ], [ -2 ]>,
991
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2 ], [ -1, -3 ]>,
992
+ <bipartition: [ 1, -2 ], [ 2 ], [ 3 ], [ -1, -3 ]>,
993
+ <bipartition: [ 1 ], [ 2 ], [ 3 ], [ -1, -3 ], [ -2 ]>,
994
+ <bipartition: [ 1, 2, -2 ], [ 3 ], [ -1, -3 ]>,
995
+ <bipartition: [ 1, 2 ], [ 3, -1, -3 ], [ -2 ]>,
996
+ <bipartition: [ 1, 2 ], [ 3, -2 ], [ -1, -3 ]>,
997
+ <bipartition: [ 1, 3, -2 ], [ 2 ], [ -1, -3 ]>,
998
+ <bipartition: [ 1, 3 ], [ 2, -1, -3 ], [ -2 ]>,
999
+ <bipartition: [ 1, 3 ], [ 2, -2 ], [ -1, -3 ]>,
1000
+ <bipartition: [ 1, 2 ], [ 3 ], [ -1, -3 ], [ -2 ]>,
1001
+ <bipartition: [ 1 ], [ 2, 3, -2 ], [ -1, -3 ]>,
1002
+ <bipartition: [ 1, -1, -3 ], [ 2, 3 ], [ -2 ]>,
1003
+ <bipartition: [ 1, -2 ], [ 2, 3 ], [ -1, -3 ]>,
1004
+ <bipartition: [ 1, 3 ], [ 2 ], [ -1, -3 ], [ -2 ]>,
1005
+ <bipartition: [ 1, 2, 3, -2 ], [ -1, -3 ]>,
1006
+ <bipartition: [ 1 ], [ 2, 3 ], [ -1, -3 ], [ -2 ]>,
1007
+ <bipartition: [ 1, 2, 3 ], [ -1, -3 ], [ -2 ]> ],
1008
+ [ <bipartition: [ 1, 2, -1 ], [ 3, -2 ], [ -3 ]> ],
1009
+ [ <block bijection: [ 1, 2, -3 ], [ 3, -1, -2 ]> ],
1010
+ [ <bipartition: [ 1, 2, -2 ], [ 3, -1 ], [ -3 ]> ],
1011
+ [ <bipartition: [ 1, -1 ], [ 2 ], [ 3, -2, -3 ]> ],
1012
+ [ <block bijection: [ 1, -2 ], [ 2, 3, -1, -3 ]> ],
1013
+ [ <bipartition: [ 1, -1 ], [ 2, 3, -3 ], [ -2 ]> ],
1014
+ [ <bipartition: [ 1, -3 ], [ 2, 3, -1 ], [ -2 ]> ],
1015
+ [ <bipartition: [ 1, -1 ], [ 2, -2, -3 ], [ 3 ]> ],
1016
+ [ <bipartition: [ 1, -1, -3 ], [ 2, -2 ], [ 3 ]> ],
1017
+ [ <bipartition: [ 1, 3, -3 ], [ 2, -2 ], [ -1 ]> ],
1018
+ [ <bipartition: [ 1, 3, -1 ], [ 2, -2 ], [ -3 ]> ],
1019
+ [ <block bijection: [ 1, 3, -3 ], [ 2, -1, -2 ]> ],
1020
+ [ <bipartition: [ 1, 3, -2 ], [ 2, -1 ], [ -3 ]> ],
1021
+ [ <bipartition: [ 1, -1, -3 ], [ 2 ], [ 3, -2 ]> ],
1022
+ [ <bipartition: [ 1 ], [ 2, -2 ], [ 3, -1, -3 ]> ],
1023
+ [ <block bijection: [ 1, 2, -1 ], [ 3, -2, -3 ]> ],
1024
+ [ <bipartition: [ 1, -2 ], [ 2 ], [ 3, -1, -3 ]> ],
1025
+ [ <bipartition: [ 1, -2 ], [ 2, 3, -3 ], [ -1 ]> ],
1026
+ [ <bipartition: [ 1, -2 ], [ 2, 3, -1 ], [ -3 ]> ],
1027
+ [ <block bijection: [ 1, -1, -2 ], [ 2, 3, -3 ]> ],
1028
+ [ <bipartition: [ 1, -1 ], [ 2, 3, -2 ], [ -3 ]> ],
1029
+ [ <bipartition: [ 1, -2 ], [ 2, -1, -3 ], [ 3 ]> ],
1030
+ [ <block bijection: [ 1, 3, -1 ], [ 2, -2, -3 ]> ],
1031
+ [ <block bijection: [ 1, 2, -2 ], [ 3, -1, -3 ]> ],
1032
+ [ <block bijection: [ 1, -2, -3 ], [ 2, 3, -1 ]> ],
1033
+ [ <block bijection: [ 1, 3, -2 ], [ 2, -1, -3 ]> ],
1034
+ [ <block bijection: [ 1, -1, -3 ], [ 2, 3, -2 ]> ] ]
1035
+
1036
+ # TrivialCongruence
1037
+ gap> S := PartitionMonoid(3);;
1038
+ gap> TrivialCongruence(S);
1039
+ <2-sided semigroup congruence over <regular bipartition *-monoid of size 203,
1040
+ degree 3 with 4 generators> with 0 generating pairs>
1041
+
1042
+ #
1043
+ gap> SEMIGROUPS.StopTest();
1044
+ gap> STOP_TEST("Semigroups package: standard/congruences/cong.tst");