passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-macosx_14_0_arm64.whl

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1157 -0
  17. gap/pkg/semigroups/config.status +1132 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,783 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/elements/bipart.tst
4
+ #Y Copyright (C) 2014-2022 Attila Egri-Nagy
5
+ ## James D. Mitchell
6
+ ##
7
+ ## Licensing information can be found in the README file of this package.
8
+ ##
9
+ #############################################################################
10
+ ##
11
+
12
+ #@local ElementNumber, G, Length, N, NumberElement, S, an, bp, classes
13
+ #@local classes2, e, elts, enum, f, filename, g, gens, l, n, r, triples, x, y
14
+ gap> START_TEST("Semigroups package: standard/elements/bipart.tst");
15
+ gap> LoadPackage("semigroups", false);;
16
+
17
+ #
18
+ gap> SEMIGROUPS.StartTest();
19
+
20
+ # the number of iterations, change here to get faster test
21
+ gap> N := 333;;
22
+
23
+ # BipartitionTest2: BASICS
24
+ gap> classes := [[1, 2, 3, -2], [4, -5], [5, -7], [6, -3, -4], [7], [-1],
25
+ > [-6]];;
26
+ gap> f := Bipartition(classes);
27
+ <bipartition: [ 1, 2, 3, -2 ], [ 4, -5 ], [ 5, -7 ], [ 6, -3, -4 ], [ 7 ],
28
+ [ -1 ], [ -6 ]>
29
+ gap> LeftProjection(f);
30
+ <bipartition: [ 1, 2, 3, -1, -2, -3 ], [ 4, -4 ], [ 5, -5 ], [ 6, -6 ],
31
+ [ 7 ], [ -7 ]>
32
+
33
+ # BipartitionTest3: different order of classes
34
+ gap> classes2 := [[-6], [1, 2, 3, -2], [4, -5], [5, -7], [6, -3, -4], [-1],
35
+ > [7]];;
36
+ gap> f = Bipartition(classes2);
37
+ true
38
+ gap> f := Bipartition([[1, 2, -3, -5, -6], [3, -2, -4], [4, 7],
39
+ > [5, -7, -8, -9], [6], [8, 9, -1]]);
40
+ <bipartition: [ 1, 2, -3, -5, -6 ], [ 3, -2, -4 ], [ 4, 7 ], [ 5, -7, -8, -9 ]
41
+ , [ 6 ], [ 8, 9, -1 ]>
42
+ gap> LeftProjection(f);
43
+ <bipartition: [ 1, 2, -1, -2 ], [ 3, -3 ], [ 4, 7 ], [ 5, -5 ], [ 6 ],
44
+ [ 8, 9, -8, -9 ], [ -4, -7 ], [ -6 ]>
45
+
46
+ # BipartitionTest4: ASSOCIATIVITY
47
+ gap> l := List([1 .. 3 * N], i -> RandomBipartition(17));;
48
+ gap> triples := List([1 .. N], i -> [l[i], l[i + 1], l[i + 2]]);;
49
+ gap> ForAll(triples, x -> ((x[1] * x[2]) * x[3]) = (x[1] * (x[2] * x[3])));
50
+ true
51
+
52
+ # BipartitionTest5: EMBEDDING into T_n
53
+ gap> l := List([1, 2, 3, 4, 5, 15, 35, 1999], RandomTransformation);;
54
+ gap> ForAll(l, t -> t = AsTransformation(AsBipartition(t)));
55
+ true
56
+
57
+ # BipartitionTest6: checking IsTransBipartitition
58
+ gap> l := List([1, 2, 3, 4, 5, 15, 35, 1999, 30101, 54321], i ->
59
+ > RandomTransformation(i));;
60
+ gap> ForAll(l, t -> IsTransBipartition(AsBipartition(t)));
61
+ true
62
+
63
+ # BipartitionTest7: check big size, identity, multiplication
64
+ gap> bp := RandomBipartition(7000);;
65
+ gap> bp * One(bp) = bp;
66
+ true
67
+ gap> One(bp) * bp = bp;
68
+ true
69
+
70
+ # BipartitionTest8: check BlocksIdempotentTester, first a few little examples
71
+ gap> l := BLOCKS_NC([[-1], [-2], [-3, -4]]);;
72
+ gap> r := BLOCKS_NC([[-1], [-2, -3, -4]]);;
73
+ gap> BLOCKS_E_TESTER(l, r);
74
+ true
75
+ gap> e := BLOCKS_E_CREATOR(l, r);
76
+ <bipartition: [ 1 ], [ 2, 3, 4 ], [ -1 ], [ -2 ], [ -3, -4 ]>
77
+ gap> IsIdempotent(e);
78
+ true
79
+
80
+ # BipartitionTest9: JDM is this the right behaviour?
81
+ gap> RightBlocks(e) = l;
82
+ true
83
+ gap> LeftBlocks(e) = r;
84
+ true
85
+
86
+ # BipartitionTest10: AsBipartition for a bipartition
87
+ gap> f := Bipartition([[1, 2, 3], [4, -1, -3], [5, 6, -4, -5],
88
+ > [-2], [-6]]);;
89
+ gap> AsBipartition(f, 8);
90
+ <bipartition: [ 1, 2, 3 ], [ 4, -1, -3 ], [ 5, 6, -4, -5 ], [ 7 ], [ 8 ],
91
+ [ -2 ], [ -6 ], [ -7 ], [ -8 ]>
92
+ gap> AsBipartition(f, 6);
93
+ <bipartition: [ 1, 2, 3 ], [ 4, -1, -3 ], [ 5, 6, -4, -5 ], [ -2 ], [ -6 ]>
94
+ gap> AsBipartition(f, 4);
95
+ <bipartition: [ 1, 2, 3 ], [ 4, -1, -3 ], [ -2 ], [ -4 ]>
96
+
97
+ # BipartitionTest11: AsPartialPerm for bipartitions
98
+ gap> S := DualSymmetricInverseMonoid(3);;
99
+ gap> Number(S, IsPartialPermBipartition);
100
+ 6
101
+ gap> S := PartitionMonoid(3);;
102
+ gap> Number(S, IsPartialPermBipartition);
103
+ 34
104
+ gap> Size(SymmetricInverseMonoid(3));
105
+ 34
106
+ gap> S := SymmetricInverseMonoid(3);;
107
+ gap> ForAll(S, x -> AsPartialPerm(AsBipartition(x)) = x);
108
+ true
109
+ gap> elts := Filtered(PartitionMonoid(3), IsPartialPermBipartition);;
110
+ gap> ForAll(elts, x -> AsBipartition(AsPartialPerm(x), 3) = x);
111
+ true
112
+
113
+ # BipartitionTest12: AsPermutation for bipartitions
114
+ gap> G := SymmetricGroup(5);;
115
+ gap> ForAll(G, x -> AsPermutation(AsBipartition(x)) = x);
116
+ true
117
+ gap> G := GroupOfUnits(PartitionMonoid(3));
118
+ <block bijection group of degree 3 with 2 generators>
119
+ gap> ForAll(G, x -> AsBipartition(AsPermutation(x), 3) = x);
120
+ true
121
+
122
+ # BipartitionTest22: AsBlockBijection and
123
+ # IsomorphismSemigroup(IsBlockBijectionSemigroup for an inverse semigroup of
124
+ # partial perms
125
+ gap> S := InverseSemigroup(
126
+ > PartialPerm([1, 2, 3, 6, 8, 10], [2, 6, 7, 9, 1, 5]),
127
+ > PartialPerm([1, 2, 3, 4, 6, 7, 8, 10], [3, 8, 1, 9, 4, 10, 5, 6]));;
128
+ gap> AsBlockBijection(S.1);
129
+ <block bijection: [ 1, -2 ], [ 2, -6 ], [ 3, -7 ],
130
+ [ 4, 5, 7, 9, 11, -3, -4, -8, -10, -11 ], [ 6, -9 ], [ 8, -1 ], [ 10, -5 ]>
131
+
132
+ # BipartitionTest24: NaturalLeqBlockBijection
133
+ gap> S := DualSymmetricInverseMonoid(4);;
134
+ gap> f := Bipartition([[1, -2], [2, -1], [3, -3], [4, -4]]);;
135
+ gap> g := Bipartition([[1, 4, -3], [2, -1, -2], [3, -4]]);;
136
+ gap> NaturalLeqBlockBijection(f, g);
137
+ false
138
+ gap> NaturalLeqBlockBijection(f, f);
139
+ true
140
+ gap> NaturalLeqBlockBijection(f, g);
141
+ false
142
+ gap> NaturalLeqBlockBijection(g, f);
143
+ false
144
+ gap> NaturalLeqBlockBijection(g, g);
145
+ true
146
+ gap> f := Bipartition([[1, 4, 2, -1, -2, -3], [3, -4]]);
147
+ <block bijection: [ 1, 2, 4, -1, -2, -3 ], [ 3, -4 ]>
148
+ gap> NaturalLeqBlockBijection(f, g);
149
+ true
150
+ gap> NaturalLeqBlockBijection(g, f);
151
+ false
152
+ gap> First(Idempotents(S), e -> e * g = f);
153
+ <block bijection: [ 1, 2, -1, -2 ], [ 3, -3 ], [ 4, -4 ]>
154
+ gap> Set(Filtered(S, f -> NaturalLeqBlockBijection(f, g)));
155
+ [ <block bijection: [ 1, 2, 3, 4, -1, -2, -3, -4 ]>,
156
+ <block bijection: [ 1, 2, 4, -1, -2, -3 ], [ 3, -4 ]>,
157
+ <block bijection: [ 1, 3, 4, -3, -4 ], [ 2, -1, -2 ]>,
158
+ <block bijection: [ 1, 4, -3 ], [ 2, 3, -1, -2, -4 ]>,
159
+ <block bijection: [ 1, 4, -3 ], [ 2, -1, -2 ], [ 3, -4 ]> ]
160
+ gap> Filtered(S, f -> ForAny(Idempotents(S), e -> e * f = g));
161
+ [ <block bijection: [ 1, 4, -3 ], [ 2, -1, -2 ], [ 3, -4 ]> ]
162
+ gap> Set(Filtered(S, f -> ForAny(Idempotents(S), e -> e * g = f)));
163
+ [ <block bijection: [ 1, 2, 3, 4, -1, -2, -3, -4 ]>,
164
+ <block bijection: [ 1, 2, 4, -1, -2, -3 ], [ 3, -4 ]>,
165
+ <block bijection: [ 1, 3, 4, -3, -4 ], [ 2, -1, -2 ]>,
166
+ <block bijection: [ 1, 4, -3 ], [ 2, 3, -1, -2, -4 ]>,
167
+ <block bijection: [ 1, 4, -3 ], [ 2, -1, -2 ], [ 3, -4 ]> ]
168
+
169
+ # BipartitionTest25: Factorization/EvaluateWord
170
+ gap> S := DualSymmetricInverseMonoid(6);;
171
+ gap> f := S.1 * S.2 * S.3 * S.2 * S.1;
172
+ <block bijection: [ 1, 6, -4 ], [ 2, -2, -3 ], [ 3, -5 ], [ 4, -6 ],
173
+ [ 5, -1 ]>
174
+ gap> EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, f));
175
+ <block bijection: [ 1, 6, -4 ], [ 2, -2, -3 ], [ 3, -5 ], [ 4, -6 ],
176
+ [ 5, -1 ]>
177
+ gap> S := PartitionMonoid(3);;
178
+ gap> f := Bipartition([[1, -2, -3], [2, 3], [-1]]);;
179
+ gap> EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, f));
180
+ <bipartition: [ 1, -2, -3 ], [ 2, 3 ], [ -1 ]>
181
+ gap> S := AsSemigroup(IsBipartitionSemigroup, SymmetricInverseMonoid(5));
182
+ <inverse bipartition monoid of degree 5 with 3 generators>
183
+ gap> f := S.1 * S.2 * S.3 * S.2 * S.1;
184
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3, -4 ], [ 4, -5 ], [ 5, -3 ], [ -1 ]>
185
+ gap> EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, f));
186
+ <bipartition: [ 1 ], [ 2, -2 ], [ 3, -4 ], [ 4, -5 ], [ 5, -3 ], [ -1 ]>
187
+ gap> S := Semigroup(
188
+ > [Bipartition([[1, 2, 3, 5, -1, -4], [4], [-2, -3], [-5]]),
189
+ > Bipartition([[1, 2, 4], [3, 5, -1, -4], [-2, -5], [-3]]),
190
+ > Bipartition([[1, 2], [3, -1, -3], [4, 5, -4, -5], [-2]]),
191
+ > Bipartition([[1, 3, 4, -4], [2], [5], [-1, -2, -3], [-5]]),
192
+ > Bipartition([[1, -3], [2, -5], [3, -1], [4, 5], [-2, -4]])]);;
193
+ gap> x := S.1 * S.2 * S.3 * S.4 * S.5;
194
+ <bipartition: [ 1, 2, 3, 5 ], [ 4 ], [ -1, -3, -5 ], [ -2, -4 ]>
195
+ gap> EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, x));
196
+ <bipartition: [ 1, 2, 3, 5 ], [ 4 ], [ -1, -3, -5 ], [ -2, -4 ]>
197
+ gap> IsInverseSemigroup(S);
198
+ false
199
+
200
+ # bipartition: PartialPermLeqBipartition 1/3
201
+ gap> x := Bipartition([[1, 2, 4, 5, -2], [3, -1, -3], [-4], [-5]]);;
202
+ gap> y := Bipartition([[1, 3, -2], [2, 4, -5], [5, -1, -4], [-3]]);;
203
+ gap> PartialPermLeqBipartition(x, y);
204
+ Error, the arguments (bipartitions) do not both satisfy IsPartialPermBipartiti\
205
+ on
206
+
207
+ # bipartition: PartialPermLeqBipartition 2/3
208
+ gap> x := Bipartition([[1, -4], [2, -1], [3], [4, -5], [5], [-2], [-3]]);;
209
+ gap> y := Bipartition([[1, -4], [2, -3], [3], [4], [5], [-1], [-2], [-5]]);;
210
+ gap> PartialPermLeqBipartition(x, y);
211
+ false
212
+ gap> PartialPermLeqBipartition(y, x);
213
+ true
214
+
215
+ # bipartition: PartialPermLeqBipartition 3/3
216
+ gap> x := Bipartition([[1, -4], [2, -1], [3], [4, -5], [5], [-2], [-3], [6],
217
+ > [-6]]);;
218
+ gap> y := Bipartition([[1, -4], [2, -3], [3], [4], [5], [-1], [-2], [-5]]);;
219
+ gap> PartialPermLeqBipartition(x, y);
220
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
221
+ Error, no 1st choice method found for `PartialPermLeqBipartition' on 2 argumen\
222
+ ts
223
+
224
+ # bipartition: NaturalLeqBlockBijection 1/3
225
+ gap> x := Bipartition([[1, 2, -1, -2], [3, -3]]);;
226
+ gap> y := Bipartition([[1], [2], [3, -3], [-1, -2]]);;
227
+ gap> NaturalLeqBlockBijection(x, y);
228
+ Error, the arguments (bipartitions) are not block bijections
229
+
230
+ # bipartition: NaturalLeqBlockBijection 2/3
231
+ gap> x := Bipartition([[1, 2, -4], [3, 4, -1, -2, -3]]);;
232
+ gap> y := Bipartition([[1, 2, -3], [3, -1, -2]]);;
233
+ gap> NaturalLeqBlockBijection(x, y);
234
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
235
+ Error, no 1st choice method found for `NaturalLeqBlockBijection' on 2 argument\
236
+ s
237
+
238
+ # bipartition: NaturalLeqBlockBijection 3/3
239
+ gap> x := IdentityBipartition(10);;
240
+ gap> NaturalLeqBlockBijection(x, x);
241
+ true
242
+
243
+ # bipartition: NaturalLeqPartialPermBipartition 1/4
244
+ gap> x := Bipartition([[1, 2, 4, 5, -2], [3, -1, -3], [-4], [-5]]);;
245
+ gap> y := Bipartition([[1, 3, -2], [2, 4, -5], [5, -1, -4], [-3]]);;
246
+ gap> NaturalLeqPartialPermBipartition(x, y);
247
+ Error, the arguments (bipartitions) are not partial perm bipartitions
248
+
249
+ # bipartition: NaturalLeqPartialPermBipartition 2/4
250
+ gap> x := Bipartition([[1, -4], [2, -1], [3], [4, -5], [5], [-2],
251
+ > [-3]]);;
252
+ gap> y := Bipartition([[1, -4], [2, -3], [3], [4], [5], [-1], [-2], [-5]]);;
253
+ gap> NaturalLeqPartialPermBipartition(x, y);
254
+ false
255
+ gap> NaturalLeqPartialPermBipartition(y, x);
256
+ false
257
+ gap> NaturalLeqPartialPermBipartition(y, y);
258
+ true
259
+
260
+ # bipartition: NaturalLeqPartialPermBipartition 3/4
261
+ gap> x := Bipartition([[1, -4], [2, -1], [3], [4, -5], [5], [-2], [-3], [6],
262
+ > [-6]]);;
263
+ gap> y := Bipartition([[1, -4], [2, -3], [3], [4], [5], [-1], [-2], [-5]]);;
264
+ gap> NaturalLeqPartialPermBipartition(x, y);
265
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
266
+ Error, no 1st choice method found for `NaturalLeqPartialPermBipartition' on 2 \
267
+ arguments
268
+
269
+ # bipartition: NaturalLeqPartialPermBipartition 4/4
270
+ gap> x := Bipartition([[1, -4], [2], [3, -3], [4, -1], [-2]]);;
271
+ gap> NaturalLeqPartialPermBipartition(x, x);
272
+ true
273
+
274
+ # bipartition: InverseMutable, for a non-invertible bipartition
275
+ gap> x := Bipartition([[1], [2], [3, -3], [-1, -2]]);;
276
+ gap> InverseMutable(x);
277
+ fail
278
+
279
+ # bipartition: \*, for bipartition and perm 1/2
280
+ gap> Bipartition([[1], [2], [3, -3], [-1, -2]]) * (1, 3, 2);
281
+ <bipartition: [ 1 ], [ 2 ], [ 3, -2 ], [ -1, -3 ]>
282
+
283
+ # bipartition: \*, for bipartition and perm 2/2
284
+ gap> Bipartition([[1], [2], [3, -3], [-1, -2]]) * (1, 2)(4, 5);
285
+ Error, the largest moved point of the 2nd argument (a permutation) exceeds the\
286
+ degree of the 1st argument (a bipartition)
287
+
288
+ # bipartition: \*, for perm and bipartition 1/2
289
+ gap> (1, 2) * Bipartition([[1], [2], [3, -3], [-1, -2]]);
290
+ <bipartition: [ 1 ], [ 2 ], [ 3, -3 ], [ -1, -2 ]>
291
+
292
+ # bipartition: \*, for perm and bipartition 2/2
293
+ gap> (1, 2, 4) * Bipartition([[1], [2], [3, -3], [-1, -2]]);
294
+ Error, the largest moved point of the 1st argument (a permutation) exceeds the\
295
+ degree of the 2nd argument (a bipartition)
296
+
297
+ # bipartition: \*, for bipartition and transformation 1/2
298
+ gap> Bipartition([[1, 2, -1, -2], [3, -3]]) *
299
+ > Transformation([3, 3, 2]);
300
+ <bipartition: [ 1, 2, -3 ], [ 3, -2 ], [ -1 ]>
301
+
302
+ # bipartition: \*, for bipartition and transformation 2/2
303
+ gap> Bipartition([[1, 2, -1, -2], [3, -3]]) *
304
+ > Transformation([3, 4, 2, 4]);
305
+ Error, the degree of the 2nd argument (a transformation) exceeds the degree of\
306
+ the 1st argument (a bipartition)
307
+
308
+ # bipartition: \*, for transformation and bipartition 1/2
309
+ gap> Transformation([1, 3, 2])
310
+ > * Bipartition([[1, 3], [2, -1], [-2, -3]]);
311
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2, -3 ]>
312
+
313
+ # bipartition: \*, for transformation and bipartition 2/2
314
+ gap> Transformation([1, 4, 4, 1]) *
315
+ > Bipartition([[1, 3], [2, -1], [-2, -3]]);
316
+ Error, the degree of the 1st argument (a transformation) exceeds the degree of\
317
+ the 2nd argument (a bipartition)
318
+
319
+ # bipartition: \*, for bipartition and partial perm 1/2
320
+ gap> Bipartition([[1, 2, -1, -2], [3, -3]]) *
321
+ > PartialPerm([1, 3, 2]);
322
+ <block bijection: [ 1, 2, -1, -3 ], [ 3, -2 ]>
323
+
324
+ # bipartition: \*, for bipartition and partial perm 2/2
325
+ gap> Bipartition([[1, 2, -1, -2], [3, -3]]) *
326
+ > PartialPerm([3, 2, 4]);
327
+ Error, the 2nd argument (a partial perm) does not map [1 .. 3] into [1 .. 3]
328
+
329
+ # bipartition: \*, for partial perm and bipartition 1/2
330
+ gap> PartialPerm([1, 3, 2]) * Bipartition([[1, 3], [2, -1], [-2, -3]]);
331
+ <bipartition: [ 1, 2 ], [ 3, -1 ], [ -2, -3 ]>
332
+
333
+ # bipartition: \*, for partial perm and bipartition 2/2
334
+ gap> PartialPerm([1, 4]) * Bipartition([[1, 3], [2, -1], [-2, -3]]);
335
+ Error, the 1st argument (a partial perm) does not map [1 .. 3] into [1 .. 3]
336
+
337
+ # bipartition: \^, for bipartition and perm 1/1
338
+ gap> Bipartition([[1, -3], [2], [3, -2], [4, -1, -4]]) ^ (1, 2, 3, 4);
339
+ <bipartition: [ 1, -1, -2 ], [ 2, -4 ], [ 3 ], [ 4, -3 ]>
340
+
341
+ # bipartition: \<, for bipartitions 1/2
342
+ gap> Bipartition([[1, 2, 3, -1, -2, -3]]) <
343
+ > Bipartition([[1, 3], [2, -1], [-2, -3]]);
344
+ true
345
+
346
+ # bipartition: \<, for bipartitions 2/2
347
+ gap> Bipartition([[1, 2, 3, -1, -2, -3], [4, -4]]) <
348
+ > Bipartition([[1, 3], [2, -1], [-2, -3]]);
349
+ true
350
+
351
+ # bipartition: PermLeftQuoBipartition, error 1/2
352
+ gap> x := Bipartition([[1, 2], [-1, -2]]);;
353
+ gap> y := Bipartition([[1, -1, -2], [2]]);;
354
+ gap> PermLeftQuoBipartition(x, y);
355
+ Error, the arguments (bipartitions) do not have equal left and right blocks
356
+
357
+ # bipartition: PermLeftQuoBipartition, result 2/2
358
+ gap> x := Bipartition([[1, 2], [-1, -2]]);;
359
+ gap> PermLeftQuoBipartition(x, x);
360
+ ()
361
+
362
+ # bipartition: AsPartialPerm, error 1/1
363
+ gap> AsPartialPerm(Bipartition([[1, 2, -2], [-1]]));
364
+ Error, the argument (a bipartition) does not define a partial perm
365
+
366
+ # bipartition: AsPermutation, error 1/1
367
+ gap> AsPermutation(Bipartition([[1, 2, -2], [-1]]));
368
+ Error, the argument (a bipartition) does not define a permutation
369
+
370
+ # bipartition: AsTransformation, error 1/1
371
+ gap> AsTransformation(Star(Bipartition([[1, 2, -2], [-1]])));
372
+ Error, the argument (a bipartition) does not define a transformation
373
+
374
+ # bipartition: AsBipartition, for a perm and pos int, error 1/1
375
+ gap> AsBipartition((1, 2, 3, 5), 4);
376
+ Error, the 1st argument (a permutation) does not permute [1 .. 4]
377
+
378
+ # bipartition: AsBipartition, for a transformation and pos int, error 1/1
379
+ gap> AsBipartition(Transformation([4, 4, 4, 4]), 2);
380
+ Error, the 1st argument (a transformation) does not map [1 .. 2] to itself
381
+
382
+ # bipartition: AsBipartition, for a bipartition and 0 1/1
383
+ gap> AsBipartition(Bipartition([[1, 2, -1, -2], [3, -3]]), 0);
384
+ <empty bipartition>
385
+
386
+ # bipartition: AsBlockBijection, for a partial perm and 0 1/1
387
+ gap> AsBlockBijection(PartialPerm([4, 1, 3, 2]), 0);
388
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
389
+ Error, no 1st choice method found for `AsBlockBijection' on 2 arguments
390
+
391
+ # bipartition: AsBlockBijection, for a partial perm and pos int, error 1/1
392
+ gap> AsBlockBijection(PartialPerm([1, 3, 2, 4]), 1);
393
+ Error, the 2nd argument (a pos. int.) is less than or equal to the maximum of \
394
+ the degree and codegree of the 1st argument (a partial perm)
395
+
396
+ # bipartition: IsUniformBlockBijection, for a bipartition 1/3
397
+ gap> IsUniformBlockBijection(Bipartition([[1, 2, -1, -2], [3, -3]]));
398
+ true
399
+
400
+ # bipartition: IsUniformBlockBijection, for a bipartition 2/3
401
+ gap> x := Bipartition([[1, -1], [2, 3, -2], [-3]]);;
402
+ gap> IsUniformBlockBijection(x);
403
+ false
404
+
405
+ # bipartition: IsUniformBlockBijection, for a bipartition 3/3
406
+ gap> x := Bipartition([[1, 3, -2], [2, -1, -3]]);;
407
+ gap> IsUniformBlockBijection(x);
408
+ false
409
+
410
+ # bipartition: IsDualTransBipartition, for a bipartition 1/2
411
+ gap> x := Bipartition([[1, 3, -2], [2, -1, -3]]);;
412
+ gap> IsDualTransBipartition(x);
413
+ false
414
+
415
+ # bipartition: IsDualTransBipartition, for a bipartition 2/2
416
+ gap> x := Star(AsBipartition(Transformation([2, 1, 2])));;
417
+ gap> IsDualTransBipartition(x);
418
+ true
419
+
420
+ # bipartition: RightProjection
421
+ gap> x := Bipartition([[1, 2, 4, 5, -1], [3, 6, -2], [-3, -6], [-4, -5]]);;
422
+ gap> RightProjection(x);
423
+ <bipartition: [ 1, -1 ], [ 2, -2 ], [ 3, 6 ], [ 4, 5 ], [ -3, -6 ],
424
+ [ -4, -5 ]>
425
+
426
+ # bipartition: RightProjection, LeftProjection
427
+ gap> x := Bipartition([[1, 2], [-1, -2, 3], [-3, -4, -5], [4, 5]]);;
428
+ gap> RightProjection(x);
429
+ <bipartition: [ 1, 2, -1, -2 ], [ 3, 4, 5 ], [ -3, -4, -5 ]>
430
+ gap> LeftProjection(StarOp(x));
431
+ <bipartition: [ 1, 2, -1, -2 ], [ 3, 4, 5 ], [ -3, -4, -5 ]>
432
+ gap> LeftProjection(x);
433
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ 4, 5 ], [ -1, -2 ], [ -4, -5 ]>
434
+ gap> RightProjection(StarOp(x));
435
+ <bipartition: [ 1, 2 ], [ 3, -3 ], [ 4, 5 ], [ -1, -2 ], [ -4, -5 ]>
436
+
437
+ # bipartition: RightProjection, LeftProjection
438
+ gap> x := Bipartition([[1, -2], [2, 3, 4], [5, -1, -3], [6, 7, 8],
439
+ > [9, 10, -7, -8, -9], [11], [-4, -5, -6], [-10, -11]]);;
440
+ gap> RightProjection(x);
441
+ <bipartition: [ 1, 3, -1, -3 ], [ 2, -2 ], [ 4, 5, 6 ],
442
+ [ 7, 8, 9, -7, -8, -9 ], [ 10, 11 ], [ -4, -5, -6 ], [ -10, -11 ]>
443
+ gap> LeftProjection(StarOp(x));
444
+ <bipartition: [ 1, 3, -1, -3 ], [ 2, -2 ], [ 4, 5, 6 ],
445
+ [ 7, 8, 9, -7, -8, -9 ], [ 10, 11 ], [ -4, -5, -6 ], [ -10, -11 ]>
446
+ gap> LeftProjection(x);
447
+ <bipartition: [ 1, -1 ], [ 2, 3, 4 ], [ 5, -5 ], [ 6, 7, 8 ],
448
+ [ 9, 10, -9, -10 ], [ 11 ], [ -2, -3, -4 ], [ -6, -7, -8 ], [ -11 ]>
449
+ gap> RightProjection(StarOp(x));
450
+ <bipartition: [ 1, -1 ], [ 2, 3, 4 ], [ 5, -5 ], [ 6, 7, 8 ],
451
+ [ 9, 10, -9, -10 ], [ 11 ], [ -2, -3, -4 ], [ -6, -7, -8 ], [ -11 ]>
452
+
453
+ # bipartition: RightProjection, LeftProjection
454
+ gap> x := Bipartition([[1, 3, -2, -4], [2], [4, 6, -1, -3, -5], [5, 8],
455
+ > [7, -6, -9], [9, 10], [-7, -8, -10]]);
456
+ <bipartition: [ 1, 3, -2, -4 ], [ 2 ], [ 4, 6, -1, -3, -5 ], [ 5, 8 ],
457
+ [ 7, -6, -9 ], [ 9, 10 ], [ -7, -8, -10 ]>
458
+ gap> RightProjection(x);
459
+ <bipartition: [ 1, 3, 5, -1, -3, -5 ], [ 2, 4, -2, -4 ], [ 6, 9, -6, -9 ],
460
+ [ 7, 8, 10 ], [ -7, -8, -10 ]>
461
+ gap> LeftProjection(StarOp(x));
462
+ <bipartition: [ 1, 3, 5, -1, -3, -5 ], [ 2, 4, -2, -4 ], [ 6, 9, -6, -9 ],
463
+ [ 7, 8, 10 ], [ -7, -8, -10 ]>
464
+ gap> LeftProjection(x);
465
+ <bipartition: [ 1, 3, -1, -3 ], [ 2 ], [ 4, 6, -4, -6 ], [ 5, 8 ], [ 7, -7 ],
466
+ [ 9, 10 ], [ -2 ], [ -5, -8 ], [ -9, -10 ]>
467
+ gap> RightProjection(StarOp(x));
468
+ <bipartition: [ 1, 3, -1, -3 ], [ 2 ], [ 4, 6, -4, -6 ], [ 5, 8 ], [ 7, -7 ],
469
+ [ 9, 10 ], [ -2 ], [ -5, -8 ], [ -9, -10 ]>
470
+
471
+ # bipartition: Bipartition 1/3
472
+ gap> Bipartition("test");
473
+ Error, the argument does not consist of duplicate-free homogeneous lists
474
+ gap> Bipartition(["test"]);
475
+ Error, the argument does not consist of duplicate-free homogeneous lists
476
+ gap> Bipartition([[1, 2], [3, "a"]]);
477
+ Error, the argument does not consist of duplicate-free homogeneous lists
478
+ gap> Bipartition([[1, 2], [3, 3]]);
479
+ Error, the argument does not consist of duplicate-free homogeneous lists
480
+
481
+ # bipartition: Bipartition 2/3
482
+ gap> Bipartition([[1, 2], [3, E(3)]]);
483
+ Error, the argument does not consist of lists of integers from [-
484
+ 2 .. -1, 1 .. 2]
485
+
486
+ # bipartition: Bipartition 3/3
487
+ gap> Bipartition([[1, 2], [3, 4]]);
488
+ Error, the argument does not consist of lists of integers from [-
489
+ 2 .. -1, 1 .. 2]
490
+
491
+ # bipartition: OneMutable, for a bipartition collection 1/1
492
+ gap> OneMutable([IdentityBipartition(2)]);
493
+ <block bijection: [ 1, -1 ], [ 2, -2 ]>
494
+
495
+ # bipartition: BipartitionByIntRep 1/5
496
+ gap> BipartitionByIntRep([1, 2, 3]);
497
+ Error, the degree of a bipartition must be even, found 3
498
+
499
+ # bipartition: BipartitionByIntRep 2/5
500
+ gap> BipartitionByIntRep([1, 2, 3, "a"]);
501
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
502
+ Error, no 1st choice method found for `BipartitionByIntRep' on 1 arguments
503
+
504
+ # bipartition: BipartitionByIntRep 3/5
505
+ gap> BipartitionByIntRep([1, 2, 3, 5]);
506
+ Error, expected 4 but found 5, in position 4
507
+
508
+ # bipartition: BipartitionByIntRep 4/5
509
+ gap> BipartitionByIntRep([1, 3, 3, 5]);
510
+ Error, expected 2 but found 3, in position 2
511
+
512
+ # bipartition: BipartitionByIntRep 5/5
513
+ gap> BipartitionByIntRep([1, 2, 3, 1]);
514
+ <bipartition: [ 1, -2 ], [ 2 ], [ -1 ]>
515
+
516
+ # BipartitionByIntRep
517
+ gap> BipartitionByIntRep([1, 3, 3, 4]);
518
+ Error, expected 2 but found 3, in position 2
519
+ gap> BipartitionByIntRep([1, 2, 4, 4]);
520
+ Error, expected 3 but found 4, in position 3
521
+
522
+ # bipartition: BIPART_LAMBDA_CONJ 1/2
523
+ gap> x := Bipartition([[1, 3, -2, -3], [2, -1]]);;
524
+ gap> BIPART_LAMBDA_CONJ(x, LeftOne(x));
525
+ (1,2)
526
+
527
+ # bipartition: BIPART_LAMBDA_CONJ 2/2
528
+ gap> x := Bipartition([[1, 3, -2, -3], [2, -1]]);;
529
+ gap> BIPART_LAMBDA_CONJ(LeftOne(x), x);
530
+ (1,2)
531
+
532
+ # bipartition: PrintString, for a bipartition 1/1
533
+ gap> PrintString(Bipartition([[1, 2, -1, -2], [3, -3]]));
534
+ "\>\>Bipartition(\< \>[ [ 1, 2, -1, -2 ],\< \>[ 3, -3 ] \<] )\<"
535
+
536
+ # bipartition: PrintString, for a bipartition collection, 1
537
+ gap> PrintString([Bipartition([[1, 2, -1, -2], [3, -3]]),
538
+ > Bipartition([[1, 2, -1, -2], [3, -3]])]);
539
+ "\>[ \>\>\>Bipartition(\< \>[ [ 1, 2, -1, -2 ],\< \>[ 3, -3 ] \<] )\<,\<\n \>\
540
+ \>\>Bipartition(\< \>[ [ 1, 2, -1, -2 ],\< \>[ 3, -3 ] \<] )\< ]\<\n"
541
+
542
+ # bipartition: PrintString, for a bipartition collection, 2
543
+ gap> S := Semigroup(Bipartition([[1, 2, -1, -2], [3, -3]]));;
544
+ gap> PrintString(S);
545
+ "\>Semigroup(\>\n\>\>[ \>\>\>Bipartition(\< \>[ [ 1, 2, -1, -2 ],\< \>[ 3, -3 \
546
+ ] \<] )\< ]\<\n\<\> \<)\<\<"
547
+
548
+ # bipartition: PrintString, for a bipartition collection, 3
549
+ gap> x := GreensRClassOfElement(
550
+ > Semigroup([
551
+ > Bipartition([[1, 2, 3, -1, -3], [-2]]),
552
+ > Bipartition([[1, 2, -2], [3], [-1], [-3]])]),
553
+ > Bipartition([[1, 2, -1, -3], [3], [-2]]));;
554
+ gap> PrintString(x);
555
+ "\>\>\>GreensRClassOfElement\<(\>\>Semigroup(\>\n\>\>[ \>\>\>Bipartition(\< \>\
556
+ [ [ 1, 2, 3, -1, -3 ],\< \>[ -2 ] \<] )\<,\<\n \>\>\>Bipartition(\< \>[ [ 1, 2\
557
+ , -2 ],\< \>[ 3 ],\< \>[ -1 ],\< \>[ -3 ] \<] )\< ]\<\n\<\> \<)\<\<,\< \>\>\>B\
558
+ ipartition(\< \>[ [ 1, 2, -1, -3 ],\< \>[ 3 ],\< \>[ -2 ] \<] )\<\<)\<\<"
559
+
560
+ # bipartition: DegreeOfBipartitionCollection, for a semigroup 1/1
561
+ gap> DegreeOfBipartitionCollection(PartitionMonoid(2));
562
+ 2
563
+
564
+ # bipartition: DegreeOfBipartitionCollection, error 1/1
565
+ gap> x := Bipartition([[1, 2, -2], [-1]]);;
566
+ gap> y := Bipartition([[1, 3], [2, -1], [-2], [-3]]);;
567
+ gap> IsBipartitionCollection([x, y]);
568
+ false
569
+
570
+ # bipartition: AsBipartition, for a PBR and 0, 1
571
+ gap> AsBipartition(EmptyPBR(1), 0);
572
+ <empty bipartition>
573
+
574
+ # bipartition: AsBipartition, for a PBR and pos int, 1
575
+ gap> AsBipartition(PBR([[-1], [-2]], [[], []]), 2);
576
+ Error, the 1st argument (a pbr) does not satisfy 'IsBipartitionPBR'
577
+
578
+ # bipartition: AsBipartition, for a PBR and pos int, 2
579
+ gap> AsBipartition(PBR(
580
+ > [[-3, 1, 3], [-1, 2], [-3, 1, 3]],
581
+ > [[-1, 2], [-2], [-3, 1, 3]]), 3);
582
+ <bipartition: [ 1, 3, -3 ], [ 2, -1 ], [ -2 ]>
583
+
584
+ # bipartition: AsBipartition, for a PBR, 1
585
+ gap> AsBipartition(PBR([[-1], [-2]], [[], []]));
586
+ Error, the argument (a pbr) does not satisfy 'IsBipartitionPBR'
587
+
588
+ # bipartition: AsBipartition, for a PBR, 2
589
+ gap> AsBipartition(PBR(
590
+ > [[-3, 1, 3], [-1, 2], [-3, 1, 3]],
591
+ > [[-1, 2], [-2], [-3, 1, 3]]));
592
+ <bipartition: [ 1, 3, -3 ], [ 2, -1 ], [ -2 ]>
593
+
594
+ # bipartition: RandomBlockBijection, 1
595
+ gap> ForAll([1 .. 20], x -> IsBlockBijection(RandomBlockBijection(x)));
596
+ true
597
+
598
+ # bipartition: bug in BIPART_LAMBDA_CONJ
599
+ gap> BIPART_LAMBDA_CONJ(Bipartition([[1, -2], [2, -3], [3], [-1]]),
600
+ > Bipartition([[1, -1, -2], [2, -3], [3]]));
601
+ (1,3,2)
602
+
603
+ # bipartition: empty bipartition tests for int/ext rep
604
+ gap> x := Bipartition([]);
605
+ <empty bipartition>
606
+ gap> ExtRepOfObj(x);
607
+ [ ]
608
+ gap> IntRepOfBipartition(x);
609
+ [ ]
610
+
611
+ # Test bipartition of degree 0
612
+ gap> x := Bipartition([]);;
613
+ gap> NrLeftBlocks(x * x);
614
+ 0
615
+ gap> NrRightBlocks(x * x);
616
+ 0
617
+ gap> DegreeOfBipartition(x * x);
618
+ 0
619
+ gap> RightBlocks(x * x);
620
+ <empty blocks>
621
+ gap> LeftBlocks(x * x);
622
+ <empty blocks>
623
+ gap> RankOfBipartition(x * x);
624
+ 0
625
+
626
+ # bipartition: IndexPeriodOfSemigroupElement, for a bipartition
627
+ gap> x := Bipartition(
628
+ > [[1, 4, -8], [2, -4], [3, 5, -1], [6, -9], [7, -7], [8, -5], [9, 10, -3],
629
+ > [-2], [-6], [-10]]);;
630
+ gap> IndexPeriodOfSemigroupElement(x);
631
+ [ 3, 3 ]
632
+
633
+ # Test TYPE_BIPART
634
+ gap> TYPE_BIPART(3);;
635
+ gap> TYPE_BIPART(3);;
636
+
637
+ # Test pickling
638
+ gap> filename := Filename(DirectoryTemporary(), "bipart.p");;
639
+ gap> x := Bipartition(
640
+ > [[1, 4, -8], [2, -4], [3, 5, -1], [6, -9], [7, -7], [8, -5], [9, 10, -3],
641
+ > [-2], [-6], [-10]]);;
642
+ gap> WriteGenerators(filename, [x]);
643
+ IO_OK
644
+ gap> x = ReadGenerators(filename)[1];
645
+ true
646
+ gap> Exec("rm ", filename);
647
+ gap> filename := Concatenation(SEMIGROUPS.PackageDir,
648
+ > "/tst/standard/elements/bipart.tst");;
649
+ gap> f := IO_File(filename, "r");;
650
+ gap> IO_Unpicklers.BIPA(f);
651
+ IO_Error
652
+ gap> IO_Pickle(f, x);
653
+ IO_Error
654
+ gap> IO_Close(f);
655
+ true
656
+
657
+ # Test identity bipartition of degree 0
658
+ gap> IdentityBipartition(0);
659
+ <empty bipartition>
660
+
661
+ # Test String
662
+ gap> x := Bipartition(
663
+ > [[1, 4, -8], [2, -4], [3, 5, -1], [6, -9], [7, -7], [8, -5], [9, 10, -3],
664
+ > [-2], [-6], [-10]]);;
665
+ gap> String(x);
666
+ "Bipartition([ [ 1, 4, -8 ], [ 2, -4 ], [ 3, 5, -1 ], [ 6, -9 ], [ 7, -7 ], [ \
667
+ 8, -5 ], [ 9, 10, -3 ], [ -2 ], [ -6 ], [ -10 ] ])"
668
+ gap> x = EvalString(String(x));
669
+ true
670
+
671
+ # Test PrintString (for degree 0)
672
+ gap> PrintString(IdentityBipartition(0));
673
+ "\>\>Bipartition(\< \>[]\<)\<"
674
+
675
+ # bipartition: AsBlockBijection, for a partial perm bipartition
676
+ gap> x := Bipartition([[1, 3], [2, 4, -2], [5, -1, -3, -4], [-5]]);;
677
+ gap> AsBlockBijection(x);
678
+ Error, the argument (a bipartion) does not satisfy IsPartialPermBipartition
679
+ gap> AsBlockBijection(x, 3);
680
+ Error, the 1st argument (a bipartition) is not a partial perm bipartition
681
+ gap> n := 4;;
682
+ gap> S := SymmetricInverseMonoid(n);
683
+ <symmetric inverse monoid of degree 4>
684
+ gap> gens := List(GeneratorsOfInverseMonoid(S), AsBipartition);;
685
+ gap> ForAll(gens, IsPartialPermBipartition);
686
+ true
687
+ gap> for x in gens do
688
+ > for y in gens do
689
+ > if not AsBlockBijection(x * y, n + 1)
690
+ > = AsBlockBijection(x, n + 1) * AsBlockBijection(y, n + 1) then
691
+ > Print("fail\n");
692
+ > fi;
693
+ > od;
694
+ > od;
695
+ gap> AsBlockBijection(One(gens[1])) = IdentityBipartition(5);
696
+ true
697
+ gap> x := Bipartition([[1, -4], [2, -1], [3], [4], [-2], [-3]]);;
698
+ gap> AsBlockBijection(x, 0);
699
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
700
+ Error, no 1st choice method found for `AsBlockBijection' on 2 arguments
701
+ gap> AsBlockBijection(x, 3);
702
+ Error, the 2nd argument (a pos. int.) is less than or equal to the maximum of \
703
+ the degree and codegree of the 1st argument (a partial perm)
704
+ gap> AsBlockBijection(x, 4);
705
+ Error, the 2nd argument (a pos. int.) is less than or equal to the maximum of \
706
+ the degree and codegree of the 1st argument (a partial perm)
707
+ gap> AsBlockBijection(x);
708
+ <block bijection: [ 1, -4 ], [ 2, -1 ], [ 3, 4, 5, -2, -3, -5 ]>
709
+ gap> AsBlockBijection(x, 6);
710
+ <block bijection: [ 1, -4 ], [ 2, -1 ], [ 3, 4, 5, 6, -2, -3, -5, -6 ]>
711
+
712
+ # DomainOfBipartition and CodomainOfBipartition
713
+ gap> x := Bipartition([]);
714
+ <empty bipartition>
715
+ gap> DomainOfBipartition(x);
716
+ [ ]
717
+ gap> CodomainOfBipartition(x);
718
+ [ ]
719
+ gap> x := Bipartition([[1, -3], [2, -2], [3, -4], [4, -1]]);;
720
+ gap> DomainOfBipartition(x);
721
+ [ 1, 2, 3, 4 ]
722
+ gap> CodomainOfBipartition(x);
723
+ [ -1, -2, -3, -4 ]
724
+ gap> x := Bipartition([[1, 2], [3], [4], [-1], [-2, -3], [-4]]);;
725
+ gap> DomainOfBipartition(x);
726
+ [ ]
727
+ gap> CodomainOfBipartition(x);
728
+ [ ]
729
+ gap> x := Bipartition([[1], [2, 6, -1, -2, -3], [3, -4], [4, -5], [5, -6]]);;
730
+ gap> DomainOfBipartition(x);
731
+ [ 2, 6, 3, 4, 5 ]
732
+ gap> CodomainOfBipartition(x);
733
+ [ -1, -2, -3, -4, -5, -6 ]
734
+ gap> x := Bipartition([[1, -1, -4], [2, 3, 6, -2, -3], [4, 5, -5], [-6]]);;
735
+ gap> DomainOfBipartition(x);
736
+ [ 1, 2, 3, 6, 4, 5 ]
737
+ gap> CodomainOfBipartition(x);
738
+ [ -1, -4, -2, -3, -5 ]
739
+
740
+ # Test error messages for when creating a bipartition with degree too large.
741
+ # We create enum, as opposed to a range [1 .. 2 ^ 33] to allow this test to
742
+ # work in the 32-bit version.
743
+ gap> enum := EnumeratorByFunctions(Integers,
744
+ > rec(ElementNumber := {enum, x} -> x,
745
+ > NumberElement := {enum, x} -> x,
746
+ > Length := x -> 2 ^ 33));;
747
+ gap> Bipartition([enum]);
748
+ Error, the maximum degree of a bipartition is 2 ^ 29 - 1
749
+ gap> BipartitionByIntRep(enum);
750
+ Error, the length of the argument (a list) exceeds 2 ^ 30 - 1
751
+ gap> IdentityBipartition(2 ^ 31);
752
+ Error, the argument (a pos. int) must not exceed 2 ^ 29 - 1
753
+ gap> RandomBipartition(2 ^ 31);
754
+ Error, the argument (a pos. int.) must not exceed 2 ^ 29 - 1
755
+ gap> RandomBlockBijection(2 ^ 31);
756
+ Error, the argument (a pos. int.) must not exceed 2 ^ 29 - 1
757
+ gap> AsBipartition((), 2 ^ 31);
758
+ Error, the 2nd argument (a pos. int.) exceeds 2 ^ 29 - 1
759
+ gap> AsBipartition(PartialPerm([]), 2 ^ 31);
760
+ Error, the 2nd argument (a pos. int.) exceeds 2 ^ 29 - 1
761
+ gap> AsBipartition(Transformation([]), 2 ^ 31);
762
+ Error, the 2nd argument (a pos. int.) exceeds 2 ^ 29 - 1
763
+ gap> AsBipartition(Bipartition([]), 2 ^ 31);
764
+ Error, the 2nd argument (a pos. int.) exceeds 2 ^ 29 - 1
765
+ gap> AsBlockBijection(PartialPerm([]), 2 ^ 31);
766
+ Error, the 2nd argument (a pos. int.) exceeds 2 ^ 29 - 1
767
+
768
+ # Bipartition
769
+ gap> Bipartition([[1, 2], [-1, 1]]);
770
+ Error, the union of the argument <classes> is not [-2 .. -1, 1 .. 2]
771
+
772
+ # AsBipartition, for a partial perm
773
+ gap> AsBipartition(PartialPermNC([1 .. 10]));;
774
+
775
+ # BipartitionByIntRep, bad input
776
+ gap> BipartitionByIntRep(['a', 'a']);
777
+ Error, the items in the argument (a list) must be positive integers
778
+ gap> BipartitionByIntRep(['a']);
779
+ Error, the degree of a bipartition must be even, found 1
780
+
781
+ #
782
+ gap> SEMIGROUPS.StopTest();
783
+ gap> STOP_TEST("Semigroups package: standard/elements/bipart.tst");