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

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/x86_64-pc-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1069 -0
  17. gap/pkg/semigroups/config.status +1133 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libsemigroups-6be12ad2.so.2.0.0 +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,421 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/congruences/conglatt.tst
4
+ #Y Copyright (C) 2014-2022 Wilf A. Wilson
5
+ ## Michael Young
6
+ ##
7
+ ## Licensing information can be found in the README file of this package.
8
+ ##
9
+ #############################################################################
10
+ ##
11
+
12
+ #@local D, S, coll, congs, info, l, latt, min, minl, minr, numbers, pair1
13
+ #@local pair2, pair3, poset, restriction, x
14
+ gap> START_TEST("Semigroups package: standard/congruences/conglatt.tst");
15
+ gap> LoadPackage("semigroups", false);;
16
+
17
+ # Set info levels and user preferences
18
+ gap> SEMIGROUPS.StartTest();
19
+
20
+ # Robustness against infinite semigroups
21
+ gap> S := FreeSemigroup(2);;
22
+ gap> congs := CongruencesOfSemigroup(S);
23
+ Error, the argument (a semigroup) must be finite and have CanUseFroidurePin
24
+ gap> poset := PosetOfPrincipalLeftCongruences(S);
25
+ Error, the argument (a semigroup) must be finite and have CanUseFroidurePin
26
+ gap> poset := PosetOfPrincipalRightCongruences(S);
27
+ Error, the argument (a semigroup) must be finite and have CanUseFroidurePin
28
+
29
+ # LatticeOfCongruences
30
+ gap> S := PartitionMonoid(2);;
31
+ gap> l := LatticeOfCongruences(S);
32
+ <lattice of 13 two-sided congruences over <regular bipartition *-monoid
33
+ of size 15, degree 2 with 3 generators>>
34
+ gap> IsIsomorphicDigraph(l,
35
+ > DigraphFromDigraph6String("&L~~gpU{yksMEB@?_?XozWKcAI@B?__"));
36
+ true
37
+ gap> IsLatticeDigraph(l);
38
+ true
39
+ gap> S := OrderEndomorphisms(2);;
40
+ gap> CongruencesOfSemigroup(S);
41
+ [ <2-sided semigroup congruence over <regular transformation monoid
42
+ of size 3, degree 2 with 2 generators> with 0 generating pairs>,
43
+ <universal semigroup congruence over <regular transformation monoid
44
+ of size 3, degree 2 with 2 generators>>,
45
+ <2-sided semigroup congruence over <regular transformation monoid
46
+ of size 3, degree 2 with 2 generators> with 1 generating pairs> ]
47
+ gap> l := LatticeOfCongruences(S);
48
+ <lattice of 3 two-sided congruences over <regular transformation monoid
49
+ of size 3, degree 2 with 2 generators>>
50
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String("&ByW"));
51
+ true
52
+ gap> Print(l, "\n");
53
+ PosetOfCongruences(
54
+ [
55
+ SemigroupCongruence( Monoid(
56
+ [ Transformation( [ 1, 1 ] ), Transformation( [ 2, 2 ] ) ] ), [ ] ),
57
+ SemigroupCongruence( Monoid(
58
+ [ Transformation( [ 1, 1 ] ), Transformation( [ 2, 2 ] ) ] ),
59
+ [ [ Transformation( [ 1, 1 ] ), IdentityTransformation ] ] ),
60
+ SemigroupCongruence( Monoid(
61
+ [ Transformation( [ 1, 1 ] ), Transformation( [ 2, 2 ] ) ] ),
62
+ [ [ Transformation( [ 1, 1 ] ), Transformation( [ 2, 2 ] ) ] ] ) ] )
63
+ gap> CongruencesOfPoset(l) = CongruencesOfSemigroup(S);
64
+ true
65
+ gap> DotString(l);
66
+ "//dot\ngraph graphname {\n node [shape=circle]\n2 -- 3\n3 -- 1\n }"
67
+ gap> S := Semigroup([Transformation([1, 4, 3, 1, 4, 2]),
68
+ > Transformation([1, 6, 6, 3, 6, 6])]);;
69
+ gap> l := LatticeOfCongruences(S);;
70
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String("&D}{ho_"));
71
+ true
72
+ gap> DotString(l, rec(info := true));;
73
+ gap> S := Semigroup([Transformation([1, 1, 2, 1]),
74
+ > Transformation([3, 3, 1, 2])]);;
75
+ gap> l := LatticeOfCongruences(S);;
76
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String(
77
+ > Concatenation(
78
+ > "&h~~~~~~}a?Jo?A@kK^{?EAk?nF{J_ooG????_?O???P_DwX`CvnN}rrLn}~~n~wW{Mr??",
79
+ > "??_G?????_O????A_qG???D`uYn{K]~XimwG?m??G?op|_?W?_?w??????_?????@_?????",
80
+ > "B_?C?WWMo????_K_???@?\\_?oP_Dwz`[A?B_o????B?_????F@gJ_O@[EgR???[C_a@?Do",
81
+ > "W`C?D@uQbKK]^XaeW?SFXI~o?gKa?z_??W??_?A?q?@_??@oQAw??B?_Co??E@?G_?gKa?X",
82
+ > "_")));
83
+ true
84
+
85
+ # the string depends on the representation of the semigroup
86
+ gap> DotString(l);;
87
+ gap> DotString(l, rec(numbers := true));;
88
+ gap> IsCongruencePoset(l);
89
+ true
90
+ gap> IsDigraph(l);
91
+ true
92
+ gap> IsPartialOrderDigraph(l);
93
+ true
94
+
95
+ # Left/RightCongruences (as a list)
96
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
97
+ gap> Size(LeftCongruencesOfSemigroup(S));
98
+ 21
99
+ gap> Size(RightCongruencesOfSemigroup(S));
100
+ 31
101
+
102
+ # LatticeOfLeft/RightCongruences
103
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
104
+ gap> l := LatticeOfLeftCongruences(S);
105
+ <lattice of 21 left congruences over <transformation semigroup of size 11,
106
+ degree 3 with 2 generators>>
107
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String(
108
+ > "&T~~~ycA?Nc^wcA?A_@?K?E?_??U?GSgXgC_CAqTitj~Eu~wCA?C_XgSAlEc^wC?G?_?_C?E?_Pg"));
109
+ true
110
+ gap> l := LatticeOfRightCongruences(S);
111
+ <lattice of 31 right congruences over <transformation semigroup of size 11,
112
+ degree 3 with 2 generators>>
113
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String(
114
+ > Concatenation(
115
+ > "&^~~~~~g_F_OAGHgC?`?r?GM?H^EA?C@??_A?O?kP?S?A?_??D`OA_?IgoC@",
116
+ > "AETv??a???_HSzo?A_????o????G????E@???A_O??@G?_??a?O??O_GA?GJEA?CBb??A?",
117
+ > "_??@?G???_I???OA_??GbM??C?A??A?p_")));
118
+ true
119
+ gap> IsIsomorphicDigraph(DigraphFromDigraph6String("&C|FS"),
120
+ > LatticeOfCongruences(S));
121
+ true
122
+ gap> Size(CongruencesOfSemigroup(S));
123
+ 4
124
+ gap> IsPartialOrderDigraph(l);
125
+ true
126
+ gap> IsLatticeDigraph(l);
127
+ true
128
+
129
+ # LatticeOfLeft/RightCongruences with restriction
130
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
131
+ gap> restriction := Subsemigroup(S, [Transformation([1, 1, 1]),
132
+ > Transformation([2, 2, 2]),
133
+ > Transformation([3, 3, 3])]);;
134
+ gap> PosetOfPrincipalLeftCongruences(S, Combinations(AsList(restriction), 2));
135
+ <poset of 3 left congruences over <transformation semigroup of size 11,
136
+ degree 3 with 2 generators>>
137
+ gap> latt := LatticeOfLeftCongruences(S, Combinations(AsList(restriction), 2));
138
+ <lattice of 5 left congruences over <transformation semigroup of size 11,
139
+ degree 3 with 2 generators>>
140
+ gap> IsIsomorphicDigraph(latt, DigraphFromDigraph6String("&D}cgo_"));
141
+ true
142
+ gap> restriction := [Transformation([3, 2, 3]),
143
+ > Transformation([3, 1, 3]),
144
+ > Transformation([2, 2, 2])];;
145
+ gap> latt := LatticeOfRightCongruences(S, Combinations(restriction, 2));
146
+ <lattice of 4 right congruences over <transformation semigroup of size 11,
147
+ degree 3 with 2 generators>>
148
+ gap> IsIsomorphicDigraph(latt, DigraphFromDigraph6String("&C|ES"));
149
+ true
150
+ gap> congs := CongruencesOfPoset(latt);;
151
+ gap> Length(congs);
152
+ 4
153
+ gap> IsDuplicateFreeList(congs);
154
+ true
155
+ gap> restriction := [Transformation([3, 1, 3]), Transformation([3, 2, 3])];;
156
+ gap> latt := LatticeOfCongruences(S, Combinations(restriction, 2));
157
+ <lattice of 2 two-sided congruences over <transformation semigroup
158
+ of size 11, degree 3 with 2 generators>>
159
+ gap> InNeighbours(latt);
160
+ [ [ 1 ], [ 1, 2 ] ]
161
+ gap> restriction := [Transformation([3, 3, 3])];;
162
+ gap> latt := LatticeOfCongruences(S, Combinations(restriction, 2));
163
+ <lattice of 1 two-sided congruence over <transformation semigroup of size 11,
164
+ degree 3 with 2 generators>>
165
+ gap> InNeighbours(latt);
166
+ [ [ 1 ] ]
167
+
168
+ # LatticeOf(Left/Right)Congruences with invalid restriction
169
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
170
+ gap> restriction := [Transformation([1, 1, 1]), Transformation([2, 2, 2, 2])];;
171
+ gap> LatticeOfCongruences(S, restriction);
172
+ Error, the 2nd argument (a list or collection) must be empty or a mult. elt. c\
173
+ oll. coll.
174
+ gap> LatticeOfLeftCongruences(S, restriction);
175
+ Error, the 2nd argument (a list or collection) must be empty or a mult. elt. c\
176
+ oll. coll.
177
+ gap> LatticeOfRightCongruences(S, restriction);
178
+ Error, the 2nd argument (a list or collection) must be empty or a mult. elt. c\
179
+ oll. coll.
180
+
181
+ # Left/RightCongruences (as a list)
182
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
183
+ gap> Size(LeftCongruencesOfSemigroup(S));
184
+ 21
185
+ gap> Size(RightCongruencesOfSemigroup(S));
186
+ 31
187
+
188
+ # PosetOfPrincipalLeft/RightCongruences
189
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
190
+ gap> poset := PosetOfPrincipalLeftCongruences(S);
191
+ <poset of 12 left congruences over <transformation semigroup of size 11,
192
+ degree 3 with 2 generators>>
193
+ gap> IsIsomorphicDigraph(poset,
194
+ > DigraphFromDigraph6String("&Kh?^GH?D?B?@?D_hO@GDclYLl"));
195
+ true
196
+ gap> poset := PosetOfPrincipalRightCongruences(S);
197
+ <poset of 15 right congruences over <transformation semigroup of size 11,
198
+ degree 3 with 2 generators>>
199
+ gap> IsIsomorphicDigraph(poset,
200
+ > DigraphFromDiSparse6String(".NkR@RyJofoPdM?qPEUsbFpfSRHVqACl_CRn"));
201
+ true
202
+ gap> poset := PosetOfPrincipalCongruences(S);
203
+ <lattice of 3 two-sided congruences over <transformation semigroup
204
+ of size 11, degree 3 with 2 generators>>
205
+ gap> IsIsomorphicDigraph(poset, DigraphByInNeighbours(
206
+ > [[1, 2, 3], [2], [2, 3]]));
207
+ true
208
+ gap> Print(poset, "\n");
209
+ PosetOfCongruences(
210
+ [ SemigroupCongruence( Semigroup( [ Transformation( [ 1, 3, 1 ] ),
211
+ Transformation( [ 2, 3, 3 ] ) ] ),
212
+ [ [ Transformation( [ 1, 1, 1 ] ), Transformation( [ 1, 3, 1 ] ) ] ] ),
213
+ SemigroupCongruence( Semigroup( [ Transformation( [ 1, 3, 1 ] ),
214
+ Transformation( [ 2, 3, 3 ] ) ] ),
215
+ [ [ Transformation( [ 1, 3, 1 ] ), Transformation( [ 3, 1, 3 ] ) ] ] ),
216
+ SemigroupCongruence( Semigroup( [ Transformation( [ 1, 3, 1 ] ),
217
+ Transformation( [ 2, 3, 3 ] ) ] ),
218
+ [ [ Transformation( [ 1, 1, 1 ] ), Transformation( [ 2, 2, 2 ] ) ] ] ) ] )
219
+ gap> Size(PrincipalCongruencesOfSemigroup(S));
220
+ 3
221
+
222
+ # PosetOfPrincipalLeft/RightCongruences with restriction
223
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
224
+ gap> restriction := Subsemigroup(S, [Transformation([1, 1, 1]),
225
+ > Transformation([2, 2, 2]),
226
+ > Transformation([3, 3, 3])]);;
227
+ gap> latt := PosetOfPrincipalLeftCongruences(S,
228
+ > Combinations(AsList(restriction), 2));
229
+ <poset of 3 left congruences over <transformation semigroup of size 11,
230
+ degree 3 with 2 generators>>
231
+ gap> InNeighbours(latt);
232
+ [ [ 1 ], [ 2 ], [ 3 ] ]
233
+ gap> restriction := [Transformation([3, 2, 3]),
234
+ > Transformation([3, 1, 3]),
235
+ > Transformation([2, 2, 2])];;
236
+ gap> latt := PosetOfPrincipalRightCongruences(S, Combinations(restriction, 2));
237
+ <poset of 3 right congruences over <transformation semigroup of size 11,
238
+ degree 3 with 2 generators>>
239
+ gap> InNeighbours(latt);
240
+ [ [ 1, 2, 3 ], [ 2 ], [ 3 ] ]
241
+ gap> CongruencesOfPoset(latt);
242
+ [ <right semigroup congruence over <transformation semigroup of size 11,
243
+ degree 3 with 2 generators> with 1 generating pairs>,
244
+ <right semigroup congruence over <transformation semigroup of size 11,
245
+ degree 3 with 2 generators> with 1 generating pairs>,
246
+ <right semigroup congruence over <transformation semigroup of size 11,
247
+ degree 3 with 2 generators> with 1 generating pairs> ]
248
+ gap> restriction := [Transformation([3, 1, 3]), Transformation([3, 2, 3])];;
249
+ gap> latt := PosetOfPrincipalCongruences(S, Combinations(restriction, 2));;
250
+ gap> InNeighbours(latt);
251
+ [ [ 1 ] ]
252
+ gap> restriction := [Transformation([3, 3, 3])];;
253
+ gap> latt := PosetOfPrincipalCongruences(S, Combinations(restriction, 2));
254
+ <empty congruence poset>
255
+ gap> InNeighbours(latt);
256
+ [ ]
257
+ gap> IsPartialOrderDigraph(latt);
258
+ true
259
+
260
+ # PosetOfPrincipal(Left/Right)Congruences with invalid restriction
261
+ gap> S := Semigroup([Transformation([1, 3, 1]), Transformation([2, 3, 3])]);;
262
+ gap> restriction := [Transformation([1, 1, 1]), Transformation([2, 2, 2, 2])];;
263
+ gap> PosetOfPrincipalCongruences(S, Combinations(restriction, 2));
264
+ Error, the 2nd argument (a list) must consist of pairs of the 1st argument (a \
265
+ semigroup)
266
+ gap> PosetOfPrincipalLeftCongruences(S, restriction);
267
+ Error, the 2nd argument (a list or collection) must be empty or a mult. elt. c\
268
+ oll. coll.
269
+ gap> PosetOfPrincipalRightCongruences(S, restriction);
270
+ Error, the 2nd argument (a list or collection) must be empty or a mult. elt. c\
271
+ oll. coll.
272
+
273
+ # PrincipalCongruencesOfSemigroup
274
+ gap> S := Semigroup(Transformation([1, 3, 2]),
275
+ > Transformation([3, 1, 3]));;
276
+ gap> Length(PrincipalCongruencesOfSemigroup(S));
277
+ 5
278
+
279
+ # PrincipalLeft/RightCongruencesOfSemigroup
280
+ gap> S := Semigroup([Transformation([1, 1]), Transformation([2, 1])]);;
281
+ gap> Length(PrincipalLeftCongruencesOfSemigroup(S));
282
+ 3
283
+ gap> Length(PrincipalRightCongruencesOfSemigroup(S));
284
+ 4
285
+ gap> PrincipalRightCongruencesOfSemigroup(S)[1];
286
+ <right semigroup congruence over <transformation semigroup of size 4,
287
+ degree 2 with 2 generators> with 1 generating pairs>
288
+ gap> PrincipalLeftCongruencesOfSemigroup(S)[2];
289
+ <left semigroup congruence over <transformation semigroup of size 4, degree 2
290
+ with 2 generators> with 1 generating pairs>
291
+
292
+ # MinimalCongruencesOfSemigroup
293
+ gap> S := Semigroup([Transformation([1, 3, 2]), Transformation([3, 1, 3])]);;
294
+ gap> min := MinimalCongruencesOfSemigroup(S);;
295
+ gap> Length(min);
296
+ 1
297
+ gap> Length(CongruencesOfSemigroup(S));
298
+ 6
299
+ gap> l := LatticeOfCongruences(S);;
300
+ gap> IsIsomorphicDigraph(l,
301
+ > DigraphByInNeighbours(
302
+ > [[1], [1, 2, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 4, 5, 6],
303
+ > [1, 5, 6], [1, 6]]));
304
+ true
305
+ gap> minl := MinimalLeftCongruencesOfSemigroup(S);;
306
+ gap> Size(minl);
307
+ 3
308
+ gap> minr := MinimalRightCongruencesOfSemigroup(S);;
309
+ gap> Size(minr);
310
+ 9
311
+ gap> PositionsProperty(minl, c -> IsSubrelation(min[1], c));
312
+ [ 1, 2, 3 ]
313
+ gap> PositionsProperty(minr, c -> IsSubrelation(min[1], c)) in [[7], [8]];
314
+ true
315
+
316
+ # Biggish example which forces garbage collection
317
+ gap> S := Semigroup([Transformation([4, 2, 4, 4, 1]),
318
+ > Transformation([4, 4, 1, 2, 2]),
319
+ > Transformation([3, 3, 1, 2, 5])]);;
320
+ gap> Length(MinimalCongruencesOfSemigroup(S));
321
+ 3
322
+
323
+ # JoinSemilatticeOfCongruences
324
+ gap> S := SymmetricInverseMonoid(2);;
325
+ gap> pair1 := [PartialPerm([1], [1]), PartialPerm([2], [1])];;
326
+ gap> pair2 := [PartialPerm([1], [1]), PartialPerm([1, 2], [1, 2])];;
327
+ gap> pair3 := [PartialPerm([1, 2], [1, 2]), PartialPerm([1, 2], [2, 1])];;
328
+ gap> coll := [RightSemigroupCongruence(S, pair1),
329
+ > RightSemigroupCongruence(S, pair2),
330
+ > RightSemigroupCongruence(S, pair3)];;
331
+ gap> l := JoinSemilatticeOfCongruences(coll);
332
+ <poset of 4 right congruences over <symmetric inverse monoid of degree 2>>
333
+ gap> IsIsomorphicDigraph(l, DigraphFromDigraph6String("&ClRC"));
334
+ true
335
+ gap> JoinSemilatticeOfCongruences(coll);
336
+ <poset of 4 right congruences over <symmetric inverse monoid of degree 2>>
337
+
338
+ # MinimalCongruences
339
+ gap> S := SymmetricInverseMonoid(2);;
340
+ gap> pair1 := [PartialPerm([1], [1]), PartialPerm([2], [1])];;
341
+ gap> pair2 := [PartialPerm([1], [1]), PartialPerm([1, 2], [1, 2])];;
342
+ gap> pair3 := [PartialPerm([1, 2], [1, 2]), PartialPerm([1, 2], [2, 1])];;
343
+ gap> coll := [RightSemigroupCongruence(S, pair1),
344
+ > RightSemigroupCongruence(S, pair2),
345
+ > RightSemigroupCongruence(S, pair3)];;
346
+ gap> MinimalCongruences(PosetOfCongruences(coll)) = coll{[1, 2]};
347
+ true
348
+ gap> MinimalCongruences(PosetOfCongruences(coll)) = coll{[1, 2]};
349
+ true
350
+ gap> poset := LatticeOfCongruences(S);
351
+ <lattice of 4 two-sided congruences over
352
+ <symmetric inverse monoid of degree 2>>
353
+ gap> IsIsomorphicDigraph(poset, DigraphFromDigraph6String("&C|qK"));
354
+ true
355
+ gap> Print(poset, "\n");
356
+ PosetOfCongruences(
357
+ [ SemigroupCongruence( InverseMonoid( [ PartialPerm( [ 1, 2 ], [ 2, 1 ] ),
358
+ PartialPerm( [ 1 ], [ 1 ] ) ] ), [ ] ),
359
+ SemigroupCongruence( InverseMonoid( [ PartialPerm( [ 1, 2 ], [ 2, 1 ] ),
360
+ PartialPerm( [ 1 ], [ 1 ] ) ] ),
361
+ [ [ PartialPerm( [ ], [ ] ), PartialPerm( [ 1, 2 ], [ 1, 2 ] ) ] ] ),
362
+ SemigroupCongruence( InverseMonoid( [ PartialPerm( [ 1, 2 ], [ 2, 1 ] ),
363
+ PartialPerm( [ 1 ], [ 1 ] ) ] ),
364
+ [ [ PartialPerm( [ 1, 2 ], [ 1, 2 ] ), PartialPerm( [ 1, 2 ], [ 2, 1 ] )
365
+ ] ] ), SemigroupCongruence( InverseMonoid(
366
+ [ PartialPerm( [ 1, 2 ], [ 2, 1 ] ), PartialPerm( [ 1 ], [ 1 ] ) ] ),
367
+ [ [ PartialPerm( [ ], [ ] ), PartialPerm( [ 1 ], [ 1 ] ) ] ] ) ] )
368
+ gap> MinimalCongruences(poset);
369
+ [ <2-sided semigroup congruence over <symmetric inverse monoid of degree 2> wi\
370
+ th 0 generating pairs> ]
371
+ gap> MinimalCongruences(PosetOfCongruences([]));
372
+ [ ]
373
+
374
+ # PosetOfCongruences
375
+ gap> S := OrderEndomorphisms(2);;
376
+ gap> pair1 := [Transformation([1, 1]), IdentityTransformation];;
377
+ gap> pair2 := [IdentityTransformation, Transformation([2, 2])];;
378
+ gap> coll := [RightSemigroupCongruence(S, pair1),
379
+ > RightSemigroupCongruence(S, pair2),
380
+ > RightSemigroupCongruence(S, [])];;
381
+ gap> poset := PosetOfCongruences(coll);
382
+ <poset of 3 right congruences over <regular transformation monoid of size 3,
383
+ degree 2 with 2 generators>>
384
+ gap> InNeighbours(poset);
385
+ [ [ 1, 3 ], [ 2, 3 ], [ 3 ] ]
386
+
387
+ # Trivial poset
388
+ gap> poset := PosetOfCongruences([]);
389
+ <empty congruence poset>
390
+ gap> CongruencesOfPoset(poset);
391
+ [ ]
392
+ gap> DigraphNrVertices(poset);
393
+ 0
394
+ gap> JoinSemilatticeOfCongruences(poset);
395
+ Error, cannot form the join semilattice of an empty congruence poset without t\
396
+ he underlying semigroup being set
397
+ gap> MinimalCongruences(poset);
398
+ [ ]
399
+
400
+ # Test Issue 309
401
+ gap> S := Semigroup(Transformation([2, 1, 4, 3, 5, 2]),
402
+ > Transformation([3, 4, 1, 2, 5, 3]),
403
+ > Transformation([5, 5, 5, 5, 5, 5]));;
404
+ gap> l := LatticeOfCongruences(S);;
405
+ gap> IsIsomorphicDigraph(l, DigraphByInNeighbours(
406
+ > [[1], [1, 2], [1, 3], [1, 4], [1, 2, 3, 4, 5, 6],
407
+ > [1, 2, 3, 4, 6]]));
408
+ true
409
+
410
+ # Test for correct ordering of congruences and lattice nodes
411
+ gap> S := InverseSemigroup(PartialPerm([1, 3], [2, 4]),
412
+ > PartialPerm([1], [1]));;
413
+ gap> D := DigraphReflexiveTransitiveReduction(LatticeOfRightCongruences(S));
414
+ <immutable digraph with 22 vertices, 49 edges>
415
+ gap> x := DigraphSinks(D)[1];;
416
+ gap> NrEquivalenceClasses(RightCongruencesOfSemigroup(S)[x]);
417
+ 1
418
+
419
+ #
420
+ gap> SEMIGROUPS.StopTest();
421
+ gap> STOP_TEST("Semigroups package: standard/congruences/conglatt.tst");