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

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

Potentially problematic release.


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

Files changed (354) hide show
  1. gap/pkg/semigroups/CHANGELOG.md +1699 -0
  2. gap/pkg/semigroups/CONTRIBUTING.md +91 -0
  3. gap/pkg/semigroups/GNUmakefile +110 -0
  4. gap/pkg/semigroups/GNUmakefile.in +110 -0
  5. gap/pkg/semigroups/GPL +674 -0
  6. gap/pkg/semigroups/LICENSE +16 -0
  7. gap/pkg/semigroups/Makefile +26 -0
  8. gap/pkg/semigroups/Makefile.gappkg +225 -0
  9. gap/pkg/semigroups/PackageInfo.g +529 -0
  10. gap/pkg/semigroups/README.md +102 -0
  11. gap/pkg/semigroups/VERSIONS +112 -0
  12. gap/pkg/semigroups/aclocal.m4 +375 -0
  13. gap/pkg/semigroups/autogen.sh +25 -0
  14. gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1158 -0
  17. gap/pkg/semigroups/config.status +1131 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.cpython-311-darwin.so +0 -0
@@ -0,0 +1,1699 @@
1
+ # CHANGELOG – [Semigroups package][] for [GAP][]
2
+ Copyright © 2011-2025 [James D. Mitchell][] et al.
3
+
4
+ Licensing information can be found in the `LICENSE` file.
5
+
6
+ ## Version 5.5.3 (released 17/07/2025)
7
+
8
+ This is a minor release including some changes for compatibility with GAP by
9
+ @fingolfin.
10
+
11
+ ## Version 5.5.2 (released 11/07/2025)
12
+
13
+ This is a minor release removing some extraneous files included in the release
14
+ archive for v5.5.1, and updating a test file due to some changes in a recent
15
+ version of GAP.
16
+
17
+ ## Version 5.5.1 (released 19/06/2025)
18
+
19
+ This release containing one fix:
20
+
21
+ * Fix `TikzString` for bipartitions by @james-d-mitchell in
22
+ https://github.com/semigroups/Semigroups/pull/1060
23
+
24
+ and updating the version of ``libsemigroups`` required to version 2.7.4 which
25
+ resolves:
26
+
27
+ https://github.com/semigroups/Semigroups/issues/1064
28
+
29
+
30
+ ## Version 5.5.0 (released 19/02/2025)
31
+
32
+ ## What's Changed
33
+
34
+ * Fix bug in gen pairs by @james-d-mitchell in
35
+ https://github.com/semigroups/Semigroups/pull/1043
36
+ * Generalize `IsSelfDualSemigroup` declaration by @fingolfin in
37
+ https://github.com/semigroups/Semigroups/pull/1044
38
+ * Better inverses by @Tianrun-Y in
39
+ https://github.com/semigroups/Semigroups/pull/1021
40
+ * Use GAP kernel helper `IS_STRING_REP` to test for strings by @fingolfin in
41
+ https://github.com/semigroups/Semigroups/pull/1045
42
+ * Better Nambooripad by @Tianrun-Y in
43
+ https://github.com/semigroups/Semigroups/pull/1026
44
+ * Fix spelling by @james-d-mitchell in
45
+ https://github.com/semigroups/Semigroups/pull/1050
46
+ * Avoid obsolete `C_NEW_STRING` macro by @fingolfin in
47
+ https://github.com/semigroups/Semigroups/pull/1051
48
+
49
+ **Full Changelog**: https://github.com/semigroups/Semigroups/compare/v5.4.0...v5.5.0
50
+
51
+ ## Version 5.4.0 (released 19/10/2024)
52
+
53
+ ## What's Changed
54
+
55
+ * Improved IsIsomorphicSemigroup Method by @awesometillman in https://github.com/semigroups/Semigroups/pull/1023
56
+ * fix typo in nambooripad partial order documentation by @Tianrun-Y in https://github.com/semigroups/Semigroups/pull/1030
57
+ * Better kernel module checking by @Joseph-Edwards in https://github.com/semigroups/Semigroups/pull/1032
58
+ * Fix ChooseHashFunction rank issue. by @reiniscirpons in https://github.com/semigroups/Semigroups/pull/1035
59
+ * kernel: Semigroups can be used in GAP on julia by @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/1036
60
+ * Use LoadKernelExtension for gapbind_demo by @fingolfin in https://github.com/semigroups/Semigroups/pull/1039
61
+
62
+ ## New Contributors
63
+ * @awesometillman made their first contribution in https://github.com/semigroups/Semigroups/pull/1023
64
+ * @Tianrun-Y made their first contribution in https://github.com/semigroups/Semigroups/pull/1030
65
+
66
+ **Full Changelog**: https://github.com/semigroups/Semigroups/compare/v5.3.7...v5.4.0
67
+
68
+ ## Version 5.3.7 (released 11/03/2024)
69
+
70
+ This is a minor release with some changes for compatibility with GAP.
71
+
72
+ * Update Joe's info by @Joseph-Edwards in
73
+ https://github.com/semigroups/Semigroups/pull/1002
74
+ * Workaround for GAP 4.12 test failure due to new GAPDoc version by @fingolfin
75
+ in https://github.com/semigroups/Semigroups/pull/1004
76
+ * Use MarkAllButFirstSubBags for T_BIPART by @fingolfin in
77
+ https://github.com/semigroups/Semigroups/pull/1003
78
+
79
+ ## Version 5.3.6 (released 19/02/2024)
80
+
81
+ This is a minor release with some changes related to forthcoming changes in
82
+ GAP. These changes were implemented by Fabian Zickgraf.
83
+
84
+ ### Version 5.3.5 (released 14/02/2024)
85
+
86
+ This is a minor release fixing an issue in the kernel extension (reported by
87
+ Michael Orlitzky in Issue #996), with some further changes for compatibility
88
+ with GAP (by Max Horn), and fixing a bug in `IrredundantGeneratingSubset` which
89
+ gave an error for monogenic semigroups (by Reinis Cirpons).
90
+
91
+ ### Version 5.3.4 (released 24/01/2024)
92
+
93
+ This is a minor release that fixes some issue in the build system, applies some
94
+ new linting rules, and perhaps most importantly re-enables the use of [HPCombi][]
95
+ in [libsemigroups][]. A number of different things were wrong which meant that:
96
+
97
+ * the correct configuration flags weren't set for building [Semigroups][] when
98
+ [HPCombi][] is enabled;
99
+ * [HPCombi][] was not detected properly because of a mistake in the path;
100
+ * the kernel module couldn't be built even when the last two items were
101
+ resolved, due to some missing functionality for [HPCombi][] types.
102
+
103
+ These issues arose because the main author no longer has access to any machines
104
+ running x86, and so the support for [HPCombi][] slowly eroded, unnoticed by me,
105
+ over time.
106
+
107
+ The other changes in this release are:
108
+
109
+ * some changes of PreImages... to NC versions (for compatibility with
110
+ forthcoming changes to GAP) by @cdwensley in
111
+ https://github.com/semigroups/Semigroups/pull/965
112
+ * buildsys: unify rpath handling by @fingolfin in
113
+ https://github.com/semigroups/Semigroups/pull/976
114
+ * Support GAP on Cygwin with libtool removed (for compatibility with
115
+ forthcoming changes to GAP) by @ChrisJefferson in
116
+ https://github.com/semigroups/Semigroups/pull/979
117
+ * Fix for [HPCombi][] by @james-d-mitchell (fixes the issues itemised above) in
118
+ https://github.com/semigroups/Semigroups/pull/978
119
+ * Linting by @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/980
120
+
121
+ ### New Contributors
122
+ * @cdwensley made their first contribution in
123
+ https://github.com/semigroups/Semigroups/pull/965
124
+
125
+ **Full Changelog**: https://github.com/semigroups/Semigroups/compare/v5.3.3...v5.3.4
126
+
127
+ ### Version 5.3.3 (released 05/01/2024)
128
+
129
+ This is a minor release bumping the included+required versions of libsemigroups
130
+ to the latest version 2.7.2.
131
+
132
+ ### Version 5.3.2 (released 07/10/2023)
133
+
134
+ This is a minor release with some bugfixes and minor improvements. Support
135
+ for GAP workspaces was broken in v5.3.0, and this issue has been resolved in
136
+ v5.3.2.
137
+
138
+ ### Version 5.3.1 (released 19/09/2023)
139
+
140
+ This is a minor release fixing a minor issue in the build system.
141
+
142
+ ### Version 5.3.0 (released 18/09/2023)
143
+
144
+ This release contains a fairly large number of changes, fixes, and
145
+ improvements. The biggest changes/new features in this release are:
146
+
147
+ * The build system has been completely updated by @fingolfin and @dimapase:
148
+ - Convert buildsystem to use Makefile.gappkg instead of automake by @fingolfin
149
+ in https://github.com/semigroups/Semigroups/pull/902
150
+ - Use the C++ compiler to link semigroups.so by @fingolfin in
151
+ https://github.com/semigroups/Semigroups/pull/942
152
+ - Work around autoconf 2.69 bugs by @fingolfin in
153
+ https://github.com/semigroups/Semigroups/pull/947
154
+ - set rpath for external libsemigroups by @dimpase in
155
+ https://github.com/semigroups/Semigroups/pull/954
156
+ - buildsystem: sane warning if not using gmake by @james-d-mitchell in
157
+ https://github.com/semigroups/Semigroups/pull/955
158
+ * Some updates to improve the performance of `LatticeOfCongruences` and friends
159
+ by @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/884
160
+ * Add `GreensLeftMultipliers` and related by @james-d-mitchell in
161
+ https://github.com/semigroups/Semigroups/pull/925
162
+
163
+ The following bugs were fixed and/or issues resolved:
164
+
165
+ * Use same URL as in my other packages by @olexandr-konovalov in
166
+ https://github.com/semigroups/Semigroups/pull/907
167
+ * Fix a few typos inn the doc by @fingolfin in
168
+ https://github.com/semigroups/Semigroups/pull/913
169
+ * Increase required version of Digraphs and remove some redundant code by
170
+ @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/921
171
+ * greens: fix `HClassReps(LClass)` for acting semigroups by @james-d-mitchell
172
+ in https://github.com/semigroups/Semigroups/pull/927
173
+ * greens: fix bug in `RightGreensMultiplier` for acting semigroups by
174
+ @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/930
175
+ * congsemigraph: add `\=` method by @james-d-mitchell in
176
+ https://github.com/semigroups/Semigroups/pull/933
177
+ * greens: fix `RhoOrbStabChain(DClass)` by @james-d-mitchell in
178
+ https://github.com/semigroups/Semigroups/pull/932
179
+ * doc: remove empty xml files by @james-d-mitchell in
180
+ https://github.com/semigroups/Semigroups/pull/934
181
+ * Fix a typo that breaks HPCombi support by @fingolfin in
182
+ https://github.com/semigroups/Semigroups/pull/941
183
+ * typo (ERNEL<-KERNEL) in configure.ac by @dimpase in
184
+ https://github.com/semigroups/Semigroups/pull/944
185
+ * fix the URL for libsemigroups in README.md by @dimpase in
186
+ https://github.com/semigroups/Semigroups/pull/945
187
+ * kernel: fix mem leaks by @james-d-mitchell in
188
+ https://github.com/semigroups/Semigroups/pull/951
189
+
190
+ ### Version 5.2.1 (released 05/03/2023)
191
+
192
+ This is a minor release with some changes for compatibility with upcoming
193
+ changes to GAP, and some updates to the build system.
194
+
195
+ ### Version 5.2.0 (released 01/12/2022)
196
+
197
+ This release contains a number of fixes and improvements, and one new feature,
198
+ which is a method for `IsSelfDualSemigroup` and related functionality for
199
+ semigroups satisfying `CanUseFroidurePin`:
200
+
201
+ * m4/find_gap.m4: update by @fingolfin in
202
+ https://github.com/semigroups/Semigroups/pull/887
203
+ * Adds method for `IsSelfDualSemigroup` and related functionality by
204
+ @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/890
205
+ * Fix some bugs by @james-d-mitchell in
206
+ https://github.com/semigroups/Semigroups/pull/889
207
+ * Fix closure semigroup for non-libsemigroups types by @james-d-mitchell in
208
+ https://github.com/semigroups/Semigroups/pull/891
209
+ * Add missing tests and doc for `IsSelfDualSemigroup` and friends by
210
+ @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/892
211
+ * Change `-march=avx` -> `-mavx` by @james-d-mitchell in
212
+ https://github.com/semigroups/Semigroups/pull/896
213
+ * Fix faulty usage of 0-simple RZMS translations code by @flsmith in
214
+ https://github.com/semigroups/Semigroups/pull/893
215
+ * build: replace `m4/ax_check_hpcombi` by @james-d-mitchell in
216
+ https://github.com/semigroups/Semigroups/pull/897
217
+
218
+ ### Version 5.1.0 (released 31/10/2022)
219
+
220
+ The following major new features have been added in this version:
221
+
222
+ * extensive support for translations by @flsmith in
223
+ https://github.com/semigroups/Semigroups/pull/720.
224
+ See Chapter 18 of the manual for details.
225
+ * support for `Sims1` in libsemigroups by @james-d-mitchell in
226
+ https://github.com/semigroups/Semigroups/pull/873. This manifests in the new
227
+ functions:
228
+ * `IteratorOfRightCongruences`, `IteratorOfLeftCongruences`
229
+ * `NumberOfRightCongruences`, `NumberOfLeftCongruences`
230
+ * `SmalerDegreeTransformationRepresentation`
231
+
232
+ The following bugs were resolved:
233
+
234
+ * `IsDualSemigroupRep` is no longer a representation by @flsmith in
235
+ https://github.com/semigroups/Semigroups/pull/863
236
+ * fix an issue in `SemigroupIsomorphismByImages` by @james-d-mitchell
237
+ in https://github.com/semigroups/Semigroups/pull/866
238
+ * set `IsInjective` flag before calling `SetNiceMonomorphism` by @ThomasBreuer
239
+ in https://github.com/semigroups/Semigroups/pull/870
240
+ * Fix issue 869 (the multiplication table of fp semigroups/monoids was
241
+ sometimes incorrect) by @james-d-mitchell in
242
+ https://github.com/semigroups/Semigroups/pull/871
243
+ * Resolve Issue #868 (there was recursion depth trap error when trying to
244
+ create an fp monoid from a small semigroup)by @james-d-mitchell in
245
+ https://github.com/semigroups/Semigroups/pull/872
246
+ * semifp: add missing methods for fp monoids/semigroups by @james-d-mitchell in
247
+ https://github.com/semigroups/Semigroups/pull/874
248
+ * Fix the README to use the correct version of GAP that's required by
249
+ @james-d-mitchell in https://github.com/semigroups/Semigroups/pull/876
250
+ * Replace gap implementation of `EqualInFreeBand` with C++ implementation from
251
+ libsemigroups by @reiniscirpons in
252
+ https://github.com/semigroups/Semigroups/pull/877
253
+ * Remove an obsolete comment by @fingolfin in
254
+ https://github.com/semigroups/Semigroups/pull/878
255
+ * Fix extreme tests by @james-d-mitchell in
256
+ https://github.com/semigroups/Semigroups/pull/880
257
+
258
+ ## New Contributors
259
+ * @ThomasBreuer made their first contribution in https://github.com/semigroups/Semigroups/pull/870
260
+ * @reiniscirpons made their first contribution in https://github.com/semigroups/Semigroups/pull/877
261
+
262
+ ### Version 5.0.2 (released 12/08/2022)
263
+
264
+ This is a minor release hopefully resolving some crashes originating in
265
+ [libsemigroups][].
266
+
267
+ ### Version 5.0.1 (released 11/08/2022)
268
+
269
+ This is a minor release resolving some issues in the kernel module and build
270
+ system [[Max Horn][]].
271
+
272
+ ### Version 5.0.0 (released 05/08/2022)
273
+
274
+ This is a major release with several new features and some backwards
275
+ incompatible changes prompted by changes in GAP 4.12. Note that to use version
276
+ 5.0.0 of [Semigroups][] GAP 4.12 is required. At the time of writing GAP 4.12
277
+ has not yet been released, and so the development version of GAP (in the
278
+ `master` branch of the git repo hosted on github) is required for
279
+ [Semigroups][] version 5.0.0.
280
+
281
+ The backwards incompatible changes in this release related to matrices over the
282
+ integers or over a finite field. In previous versions of [Semigroups][] there
283
+ was an implementation of matrices over the integers and over finite fields,
284
+ because at the time they were written it was not possible to use the matrices
285
+ in the GAP library. This is no longer the case, and some changes in the GAP
286
+ library for version 4.12, meant that the implementation in [Semigroups][] had
287
+ to be removed.
288
+
289
+ Previously, to create a matrix over the integers you could do:
290
+
291
+ Matrix(IsIntegerMatrix, [[0, 1], [1, 0]]);
292
+
293
+ The equivalent in version 5.0.0 of [Semigroups][] is:
294
+
295
+ Matrix(Integers, [[0, 1], [1, 0]]);
296
+
297
+ where `Integers` is the ring of integers. The changes for matrices over finite
298
+ fields are mostly internal, and it was, and still is, possible to create such
299
+ matrices using, for example,
300
+
301
+ Matrix(GF(4), Z(4) * [[0, 1], [1, 0]]);
302
+
303
+ In versions of [Semigroups][] before 5.0.0, the filter
304
+ `IsMatrixOverFiniteField` could also be used when constructing matrices, and
305
+ these features have been removed in version 5.0.0.
306
+ See: https://github.com/semigroups/Semigroups/pull/827
307
+
308
+ The new features introduced in version 5.0.0 are:
309
+
310
+ * Add support for partial orders of L/R-classes by [Wilf A. Wilson][] in
311
+ https://github.com/semigroups/Semigroups/pull/415
312
+ * Support for homomorphisms was introduced by Artemis Konstantinidi,
313
+ Chinmay Nagpal, and [James D. Mitchell][] in
314
+ https://github.com/semigroups/Semigroups/pull/797
315
+ and
316
+ https://github.com/semigroups/Semigroups/pull/828
317
+
318
+ ### Version 4.0.3 (released 01/07/2022)
319
+
320
+ This is a minor release that includes a number of improvements and bug fixes:
321
+
322
+ * Update authors + mailmap by @james-d-mitchell in
323
+ https://github.com/semigroups/Semigroups/pull/837
324
+ * Resolve issue #835 (implement `MultiplicationTable` for fp semigroups and
325
+ monoids) by @james-d-mitchell in
326
+ https://github.com/semigroups/Semigroups/pull/838
327
+ * Improve ccache hit rate in CI by @james-d-mitchell in
328
+ https://github.com/semigroups/Semigroups/pull/840
329
+ * Improve support for quotient semigroups by @james-d-mitchell in
330
+ https://github.com/semigroups/Semigroups/pull/841
331
+ * semigrp: remove 2 unnec. methods after #841 by @james-d-mitchell in
332
+ https://github.com/semigroups/Semigroups/pull/843
333
+ * congsemigraph: add meet method by @james-d-mitchell in
334
+ https://github.com/semigroups/Semigroups/pull/842
335
+ * Remove superfluous strings from error messages by @james-d-mitchell in
336
+ https://github.com/semigroups/Semigroups/pull/845
337
+
338
+ ### Version 4.0.2 (released 05/06/2022)
339
+
340
+ This is a minor release that includes a number of minor fixes:
341
+
342
+ * conglatt: fix ordering issue by @james-d-mitchell in
343
+ https://github.com/semigroups/Semigroups/pull/829
344
+ * Add support for partial orders of L/R-classes by @wilfwilson in
345
+ https://github.com/semigroups/Semigroups/pull/415
346
+ * conglatt: avoid recomputing principal congs by @james-d-mitchell in
347
+ https://github.com/semigroups/Semigroups/pull/832
348
+ * semipperm: allow SmallerDegree for other types by @james-d-mitchell in
349
+ https://github.com/semigroups/Semigroups/pull/833
350
+ * semipperm: resolve issue 817 by @james-d-mitchell in
351
+ https://github.com/semigroups/Semigroups/pull/834
352
+
353
+ ### Version 4.0.1 (released 21/04/2022)
354
+
355
+ This is a minor release that includes a number of changes:
356
+
357
+ * Avoid using `SIZEOF_VOID_P` by @wilfwilson in
358
+ https://github.com/semigroups/Semigroups/pull/803
359
+ * doc: allow manual compile without all deps by @james-d-mitchell in
360
+ https://github.com/semigroups/Semigroups/pull/810
361
+ * Bump libsemigroups -> v2.1.4 by @james-d-mitchell in
362
+ https://github.com/semigroups/Semigroups/pull/809
363
+ * Change http -> https by @fingolfin in
364
+ https://github.com/semigroups/Semigroups/pull/818
365
+ * Remove spurious dependency on libgmp by @fingolfin in
366
+ https://github.com/semigroups/Semigroups/pull/820
367
+ * Improve compatibility with GAP's MatrixObj project by @fingolfin in
368
+ https://github.com/semigroups/Semigroups/pull/819
369
+ * Better congruence lattices by @james-d-mitchell in
370
+ https://github.com/semigroups/Semigroups/pull/815
371
+ * Add more matrix generators by @flsmith in
372
+ https://github.com/semigroups/Semigroups/pull/822
373
+
374
+ ### Version 4.0.0 (released 28/02/2022)
375
+
376
+ This is a major release which simplifies and improves many aspects of the
377
+ package. The kernel module has been simplified significantly, to make it easier
378
+ to incorporate future changes in [libsemigroups][], and some superfluous
379
+ functionality was withdrawn.
380
+
381
+ ### Version 3.4.2 (released 07/02/2021)
382
+
383
+ This is a minor release resolving some issues in v3.4.1 [[James D. Mitchell][]],
384
+ with a number of improvements by [Wilf A. Wilson][].
385
+
386
+ ### Version 3.4.1 (released 28/01/2021)
387
+
388
+ This is a minor release including some bugfixes and improvements. The required
389
+ minimum version of [libsemigroups][] is increased from v1.1.0 to v1.3.2. The
390
+ required version of `Digraphs` is increased to v1.2.0. The `datastructures`
391
+ package was implicitly required (via `Digraphs`), and now at least version
392
+ v0.2.5 is required explicitly. The version of GAP required was implicitly at
393
+ least v4.10.0, but was explicitly v4.9.0, it is now explicitly v4.10.0.
394
+
395
+ ### Version 3.4.0 (released 28/08/2020)
396
+
397
+ This is a minor release with the following new features added to the package:
398
+
399
+ * `CanonicalReesMatrixSemigroup` and `CanonicalReesZeroMatrixSemigroup` written by Chris Russell.
400
+ * `ParseRelations` for finitely presented semigroups or monoids written by [Luke Elliott][].
401
+ * `TikzString` method was implemented for collections of PBRs by [Finn Smith][].
402
+
403
+ The following bugs/issues were resolved:
404
+
405
+ * [Issue #685](https://github.com/gap-packages/Semigroups/issues/685): after some somewhat recent changes in [libsemigroups][] some infinite finitely presented semigroups in GAP reported their size as being `-2`. Fixed by [James D. Mitchell][].
406
+ * [Issue #680](https://github.com/gap-packages/Semigroups/issues/680): Semigroups did not compile with recent git versions of [libsemigroups][]. Reported by [Wilf A. Wilson][] fixed by [James D. Mitchell][].
407
+
408
+ The required minimum version of [libsemigroups][] is now v1.1.0,
409
+
410
+ ### Version 3.3.2 (released 28/06/2020)
411
+
412
+ This is a very minor release fixing the following issues.
413
+
414
+ * [Issue #676](https://github.com/gap-packages/Semigroups/issues/676) and
415
+ [Issue #677](https://github.com/gap-packages/Semigroups/issues/677) reported
416
+ by Reinis Cirpons, where for some congruences `NonTrivialCongruenceClasses`
417
+ failed to work, but `CongruenceClasses` did work. This was caused by an issue
418
+ in `EquivalenceRelationPartition`; resolved by [James D. Mitchell][].
419
+
420
+ * An issue in the equality, less than, and product methods for PBRs which
421
+ previously permitted PBRs of different degrees to be given as arguments,
422
+ resulting in unhelpful errors from within the implementations of these
423
+ methods; resolved by [James D. Mitchell][].
424
+
425
+ ### Version 3.3.1 (released 28/05/2020)
426
+
427
+ This is a minor release fixing some issues in the build system [Max Horn][]
428
+ related to compatibility with future versions of GAP, and some other minor
429
+ fixes by [James D. Mitchell][] and [Wilf A. Wilson][].
430
+
431
+ ### Version 3.3.0 (released 28/04/2020)
432
+
433
+ This is a minor release fixing some issues in the build system
434
+ [Chris Jefferson][], some improvements to the isomorphism capabilities of the
435
+ package [James D. Mitchell][], and the introduction of a rudimentary function
436
+ to compute the automorphism group of an arbitrary semigroup. From v3.3.0, the
437
+ Semigroups package requires the [images package][] version 1.3.0 or higher.
438
+
439
+ ### Version 3.2.5 (released 28/03/2020)
440
+
441
+ This is a minor release to fixing some build issues for windows [Chris Jefferson][]
442
+ and fixing an issue in `IsRowTrimBooleanMat`, `IsColTrimBooleanMat`, and
443
+ `IsTrimBooleanMat` [Finn Smith][] see
444
+ [Issue #654](https://github.com/gap-packages/Semigroups/issues/654) for more details.
445
+
446
+ ### Version 3.2.4 (released 28/02/2020)
447
+
448
+ This is a minor release to fix a memory leak and some other issues in the
449
+ kernel module.
450
+
451
+ ### Version 3.2.3 (released 07/02/2020)
452
+
453
+ This is a minor release to make some changes for compatibility with the
454
+ [Digraphs package][] v1.1.1 and [GAP][], and to fix a memory leak in the kernel
455
+ module.
456
+
457
+ ### Version 3.2.2 (released 17/01/2020)
458
+
459
+ This is a minor release to update the version of [libsemigroups][] to v1.0.5,
460
+ to include some changes for compatibility with [GAP][], and to fix the following issues
461
+
462
+ * [Issue #632](https://github.com/gap-packages/Semigroups/issues/632) where
463
+ file objects were not closed properly if an error was given;
464
+ * [Issue #636](https://github.com/gap-packages/Semigroups/issues/636) the
465
+ compiler flag `-march=native` is only added if it is supported by the compiler;
466
+ * [Issue #637](https://github.com/gap-packages/Semigroups/issues/637) where
467
+ `IsomorphismPermGroup` sometimes returned an incorrect answer.
468
+
469
+ The changes in this release were made by [Max Horn][] and [James D. Mitchell][].
470
+
471
+ ### Version 3.2.1 (released 04/12/2019)
472
+
473
+ This is a minor release to update the version of [libsemigroups][] to v1.0.2,
474
+ and to include some changes for compatibility with [GAP][]. The changes in this
475
+ release were made by [James D. Mitchell][] and [Wilf A. Wilson][].
476
+
477
+ ### Version 3.2.0 (released 04/10/2019)
478
+
479
+ This is a minor release including several cleanups, changes for compatibility
480
+ with [GAP][], and to update the required version of the [Digraphs package][] to
481
+ v1.0.0. The changes in this release were made by [James D. Mitchell][] and
482
+ [Wilf A. Wilson][].
483
+
484
+ ### Version 3.1.5 (released 19/09/2019)
485
+
486
+ This is a minor release including several cleanups, changes for compatibility
487
+ with [GAP][], and to add the possibility to pass a `RandomSource` as a first
488
+ argument to some methods. All the changes in this release were made by
489
+ [Max Horn][].
490
+
491
+ ### Version 3.1.4 (released 30/08/2019)
492
+
493
+ This is a minor release fixing some minor issues, mostly related to
494
+ compatibility with [GAP][] 4.11.
495
+
496
+ ### Version 3.1.3 (released 07/06/2019)
497
+
498
+ This is a minor release of the Semigroups package, including some improvements
499
+ to `SmallestIdempotentPower` and `RepresentativeOfMinimalIdeal` by
500
+ [Wilf A. Wilson][] and some other minor modifications. Semigroups now requires
501
+ version 4.8.2 of the [orb package][], or newer.
502
+
503
+ ### Version 3.1.2 (released 15/03/2019)
504
+
505
+ This is a minor release of the Semigroups package, including some changes to the
506
+ build system (by [D. V. Pasechnik][]), one issue was fixed
507
+ ([Issue 581](https://github.com/gap-packages/Semigroups/issues/581) by Chris
508
+ Russell and [James D. Mitchell][]), and the version of [libsemigroups][]
509
+ required was increased to 0.6.7.
510
+
511
+ ### Version 3.1.1 (released 15/02/2019)
512
+
513
+ This is a minor release of the Semigroups package, including some minor changes
514
+ in the kernel module (by [Max Horn][]) and the bibliography section of the
515
+ manual has been fixed and updated (by Murray Whyte).
516
+
517
+ ### Version 3.1.0 (released 14/01/2019)
518
+
519
+ This is a major release of the Semigroups package, including several changes to
520
+ existing behaviour, new functionality, and bugfixes.
521
+
522
+ #### Changed functionality in this release
523
+
524
+ * Congruence posets are now digraph objects (in the sense of the
525
+ [Digraphs package][]) rather than lists of lists. This applies to
526
+ `LatticeOfCongruences`, `PosetOfCongruences`, and several other functions.
527
+ This change was made by [Michael Young][] in
528
+ [PR #385](https://github.com/gap-packages/Semigroups/pull/385).
529
+ * The attributes `LeftCayleyDigraph` and `RightCayleyDigraph` are introduced to
530
+ replace `LeftCayleyGraphSemigroup` and `RightCayleyGraphSemigroup`. These new
531
+ attributes return digraph objects (in the sense of the [Digraphs package][])
532
+ rather than lists of out-neighbours. There are also several new functions for
533
+ visualising Cayley digraphs, such as `TikzLeftCayleyDigraph`,
534
+ `DotLeftCayleyDigraph`, and `DotStringDigraph`. This functionality was all
535
+ added by [James D. Mitchell][] in
536
+ [PR #348](https://github.com/gap-packages/Semigroups/pull/348).
537
+ * `IteratorFromPickledFile` has been replaced by `IteratorFromGeneratorsFile`,
538
+ and `IteratorFromOldGeneratorsFile` has been removed. The behaviour of
539
+ `WriteGenerators` has also been modified slightly. This work was done by
540
+ [James D. Mitchell][] in
541
+ [PR #419](https://github.com/gap-packages/Semigroups/pull/419).
542
+
543
+ #### New functionality in this release
544
+
545
+ * Finn Smith added support for creating and representing dual semigroups in
546
+ [PR #470](https://github.com/gap-packages/Semigroups/pull/470),
547
+ via the new commands `DualSemigroup` and `AntiIsomorphismDualSemigroup`.
548
+ * Chris Russell added support for representing E-unitary inverse semigroups by
549
+ McAlister triple semigroups, via the command `McAlisterTripleSemigroup` and
550
+ others, in the PRs
551
+ [#271](https://github.com/gap-packages/Semigroups/pull/271) and
552
+ [#507](https://github.com/gap-packages/Semigroups/pull/507). Chris also
553
+ introduced the related functions `EUnitaryInverseCover`,
554
+ `IsFInverseSemigroup`, and `IsFInverseMonoid`.
555
+ * It is now possible to use the Semigroups package to construct direct products
556
+ of arbitrary finite semigroups with the command `DirectProduct`. Direct
557
+ products created in this way support the commands `Projection` and
558
+ `Embedding`. To enable the creation of direct products of arbitrary finite
559
+ semigroups, the related commands `NonTrivialFactorization`,
560
+ `IndecomposableElements`, and `IsSurjectiveSemigroup` were introduced. This
561
+ work was done by [Wilf A. Wilson][] in
562
+ PRs [#347](https://github.com/gap-packages/Semigroups/pull/347)
563
+ and [#558](https://github.com/gap-packages/Semigroups/pull/558).
564
+ * The functions `NambooripadPartialOrder` and `NambooripadLeqRegularSemigroup`
565
+ were added by Chris Russell in PRs
566
+ [#467](https://github.com/gap-packages/Semigroups/pull/467) and
567
+ [#479](https://github.com/gap-packages/Semigroups/pull/479).
568
+ * The option `numbers` is available when calling `DotString` on a congruence
569
+ poset (added by [Michael Young][] in
570
+ [PR #455](https://github.com/gap-packages/Semigroups/pull/455)).
571
+ * More `Info` statements can be produced, if desired, during computations of
572
+ congruence lattices (added by [Michael Young][] in
573
+ [PR #403](https://github.com/gap-packages/Semigroups/pull/403)).
574
+ * It is now possible to construct all non-empty two-sided ideals of a finite
575
+ semigroup with the command `Ideals` (added by [Michael Young][] in
576
+ [PR #500](https://github.com/gap-packages/Semigroups/pull/500)).
577
+ * `WriteMultiplicatiomTable`, `ReadMultiplicationTable`, and
578
+ `IteratorFromMultiplicationTableFile` were added by Chris Russell in
579
+ [PR #339](https://github.com/gap-packages/Digraphs/pull/339)
580
+ * A new constructor `BrandtSemigroup` was added by [James D. Mitchell][] in
581
+ [PR #411](https://github.com/gap-packages/Semigroups/pull/411).
582
+ * The command `WreathProduct` can be now applied to construct the wreath
583
+ producth of a transformation monoid or permutation group with a transformation
584
+ semigroup or permutation group. This work was done by Fernando Flores Brito in
585
+ [PR #262](https://github.com/gap-packages/Semigroups/pull/262).
586
+ * `SemigroupsTestAll` was introduced by [Michael Young][] in
587
+ PRs [#404](https://github.com/gap-packages/Semigroups/pull/404)
588
+ and [#446](https://github.com/gap-packages/Semigroups/pull/446).
589
+ * Some basic methods for `MinimalSemigroupGeneratingSet` were implemented by
590
+ [Wilf A. Wilson][] in
591
+ [PR #407](https://github.com/gap-packages/Semigroups/pull/407).
592
+ * It is now possible to write and read Rees matrix semigroups and Rees 0-matrix
593
+ semigroups to and from files with `WriteGenerators` and `ReadGenerators`
594
+ (added by [James D. Mitchell][] in
595
+ [PR #569](https://github.com/gap-packages/Semigroups/pull/569)).
596
+ * Special methods for `IsIdempotentGenerated` and
597
+ `IdempotentGeneratedSubsemigroup` for Rees matrix semigroups and Rees 0-matrix
598
+ semigroups were added by [Wilf A. Wilson][] in
599
+ [PR #325](https://github.com/gap-packages/Semigroups/pull/325).
600
+ * Special methods for `IsomorphismPartialPermSemigroup` for groups and
601
+ zero-groups were added by [Wilf A. Wilson][] in
602
+ [PR #406](https://github.com/gap-packages/Semigroups/pull/406).
603
+ * Semigroups in more kinds of families are now comparable via `\<`, including
604
+ pairs of semigroups of partial permutations, pairs of semigroups of
605
+ bipartitions, and pairs of semigroups of PBRs (added by
606
+ [James D. Mitchell][] in
607
+ [PR #568](https://github.com/gap-packages/Semigroups/pull/568)).
608
+
609
+ #### Issues resolved by this release
610
+
611
+ * The documentation now clarifies that only those subsemigroups of regular Rees
612
+ 0-matrix semigroups defined over *permutation* groups are acting semigroups.
613
+ This problem was reported by [Wilf A. Wilson][] in
614
+ [Issue #336](https://github.com/gap-packages/Semigroups/issues/336) and fixed
615
+ by [James D. Mitchell][] in
616
+ [PR #337](https://github.com/gap-packages/Semigroups/pull/337).
617
+ * There was a bug in the kernel module that related to computing with
618
+ bipartitions, which would sometime cause an unexpected error. This was
619
+ reported by [Wilf A. Wilson][] and Finn Smith in
620
+ [Issue #444](https://github.com/gap-packages/Semigroups/issues/444), and fixed
621
+ by Finn Smith in
622
+ [PR #466](https://github.com/gap-packages/Semigroups/pull/466).
623
+ * The Semigroups package would sometimes automatically set the
624
+ `GeneratorsOfSemigroup` of a trivial group of partial permutations to be an
625
+ empty list. This was reported and fixed by [Wilf A. Wilson][] in
626
+ [PR #565](https://github.com/gap-packages/Semigroups/pull/565).
627
+ * The function `IsMonogenicSemigroup` incorrectly returned `true` for an empty
628
+ semigroup. This was reported and fixed by [Wilf A. Wilson][]
629
+ in [PR #567](https://github.com/gap-packages/Semigroups/pull/567).
630
+
631
+ There have also been many technical changes to the package and its kernel
632
+ module, including many by [Max Horn][], such as
633
+ those in PRs
634
+ [#490](https://github.com/gap-packages/Semigroups/pull/490),
635
+ [#491](https://github.com/gap-packages/Semigroups/pull/491),
636
+ [#493](https://github.com/gap-packages/Semigroups/pull/493),
637
+ [#501](https://github.com/gap-packages/Semigroups/pull/501),
638
+ [#553](https://github.com/gap-packages/Semigroups/pull/553), and
639
+ [#562](https://github.com/gap-packages/Semigroups/pull/562).
640
+
641
+ Semigroups now requires version 4.8.1 of the
642
+ [orb package](https://gap-packages.github.io/orb), or newer.
643
+
644
+
645
+ ### Version 3.0.20 (released 01/10/2018)
646
+
647
+ This version contains some minor changes related to compatibility issues with
648
+ GAP, was updated to use [libsemigroups][] 0.6.4, and contains bugfixes for the
649
+ following issues:
650
+
651
+ * [Issue 530](https://github.com/gap-packages/Semigroups/issues/530): there was
652
+ a bug in the method for `IsFactorisableInverseMonoid` for an ideal of
653
+ semigroup. It only returned `true` if the parent semigroup was factorisable.
654
+ [[James D. Mitchell][]]
655
+
656
+ * [Issue 531](https://github.com/gap-packages/Semigroups/issues/531): there
657
+ were some issues with method selection for Green's classes, when the
658
+ [RCWA package][] was loaded at the same time as [Semigroups][].
659
+ [[Wilf A. Wilson][]]
660
+
661
+ * [Issue 532](https://github.com/gap-packages/Semigroups/issues/532): the
662
+ `Iterator` method for free inverse monoids used some implementational details
663
+ of the method for free group iterators in the GAP library. This caused an
664
+ error to be reported when [Semigroups][] and the [RCWA package][] were loaded
665
+ at the same time.
666
+ [[James D. Mitchell][]]
667
+
668
+ * [Issue 536](https://github.com/gap-packages/Semigroups/issues/536): the
669
+ `Iterator` method for free inverse monoids did not work as intended, because
670
+ some words could never be reached.
671
+ [[James D. Mitchell][]]
672
+
673
+ * [Issue 543](https://github.com/gap-packages/Semigroups/issues/543): the
674
+ [Semigroups][] tests failed when all packages were loaded.
675
+ [[Wilf A. Wilson][]]
676
+
677
+ ### Version 3.0.19 (released 18/09/2018)
678
+
679
+ This version contains some minor changes related to compatibility issues with
680
+ GAP, and to resolve some incorrectly delegating methods for print/view/display.
681
+ ([Wilf A. Wilson][])
682
+
683
+ ### Version 3.0.18 (released 11/09/2018)
684
+
685
+ This version contains some minor changes related to compatibility issues with
686
+ GAP.
687
+
688
+ ### Version 3.0.17 (released 23/08/2018)
689
+
690
+ This version contains some minor improvements and bugfixes.
691
+
692
+ ### Version 3.0.16 (released 29/05/2018)
693
+
694
+ This version contains some minor improvements and bugfixes.
695
+
696
+ ### Version 3.0.15 (released 24/03/2018)
697
+
698
+ This version contains some bugfixes, and some improved functionality:
699
+ * [Issue 444](https://github.com/gap-packages/Semigroups/issues/444): there was
700
+ a garbage collection error in the kernel module that sometimes resulted in a
701
+ GAP error `"\<func\> must return a value"`.
702
+ [Finn Smith]
703
+ * [Issue 459](https://github.com/gap-packages/Semigroups/issues/459): the method
704
+ for `IsTrivial` did not check if the number of generators was non-zero.
705
+ [[James D. Mitchell][]]
706
+ * [PR 457](https://github.com/gap-packages/Semigroups/pull/457): an improved
707
+ method for finding a set of generating pairs of a congruence over a Rees
708
+ 0-matrix semigroup represented as a linked triple
709
+ [[Michael Young][]]
710
+ * [Issue 461](https://github.com/gap-packages/Semigroups/issues/461):
711
+ `NrCongruenceClasses` sometimes returned the wrong result for classes of
712
+ semigroups not defined in the [Semigroups][] package.
713
+ [[Michael Young][]]
714
+ * [Issue 463](https://github.com/gap-packages/Semigroups/pull/463): replaced use
715
+ of `EvalString` by `ValueGlobal`.
716
+ [[James D. Mitchell][]]
717
+
718
+ ### Version 3.0.14 (released 15/02/2018)
719
+
720
+ This version contains a fix for the following issue, this was resolved by
721
+ updating the version of [libsemigroups][] to 0.6.3:
722
+
723
+ * [Issue 450](https://github.com/gap-packages/Semigroups/issues/450): There was
724
+ an intermittent error in some methods for congruences and finitely presented
725
+ semigroups arising from a bug in libsemigroups.
726
+ [[James D. Mitchell][]]
727
+
728
+ ### Version 3.0.13 (released 08/02/2018)
729
+
730
+ This version contains some minor updates for compatibility with [GAP][] 4.9, and
731
+ some fixes for some minor issues.
732
+
733
+ ### Version 3.0.12 (released 17/01/2018)
734
+
735
+ This version contains some minor updates for compatibility with [GAP][] 4.9, to
736
+ fix some bugs, to update the build system, and to update the kernel module for
737
+ [libsemigroups][] version 0.6.2.
738
+
739
+ The following improvements have been made:
740
+
741
+ * [PR 426](https://github.com/gap-packages/Semigroups/pull/426): a new faster
742
+ method for `IsomorphismFpSemigroup` for factorisable inverse monoids is added.
743
+ [Chris Russell]
744
+ * [PR 430](https://github.com/gap-packages/Semigroups/pull/430): the performance
745
+ of the maximal subsemigroups functionality has been improved.
746
+ [[Wilf A. Wilson][]]
747
+
748
+ The following issues are resolved:
749
+
750
+ * [Issue 424](https://github.com/gap-packages/Semigroups/issues/424): the
751
+ operation `MinimalFactorization` sometimes returned incorrect results.
752
+ [[James D. Mitchell][]]
753
+ * [Issue 435](https://github.com/gap-packages/Semigroups/issues/435): the
754
+ operation `ClosureInverseMonoid` sometimes returned incorrect results.
755
+ [[James D. Mitchell][]]
756
+
757
+ ### Version 3.0.11 (released 18/12/2017)
758
+
759
+ This version contains some minor updates for compatibility with [GAP][] 4.9,
760
+ the build system has been modified slightly, the kernel module has been
761
+ updated for [libsemigroups][] version 0.6.1.
762
+
763
+ ### Version 3.0.10 (released 04/12/2017)
764
+
765
+ This version contains some minor updates for compatibility with [GAP][] 4.9.
766
+
767
+ ### Version 3.0.9 (released 24/11/2017)
768
+
769
+ This version contains some minor bugfixes, and updates for compatibility with
770
+ [GAP][] 4.9, [io][] 4.5.0, and [Digraphs][] 0.11.0.
771
+
772
+ ### Version 3.0.8 (released 10/11/2017)
773
+
774
+ This version contains some minor bugfixes, and updates for compatibility with
775
+ [GAP][] 4.9 and [orb][] 4.8.0.
776
+
777
+ ### Version 3.0.7 (released 02/10/2017)
778
+
779
+ This version contains some minor bugfixes, fixes some issues where some tests in
780
+ the main GAP repo returned different output when Semigroups was loaded than when
781
+ it was not, and updates the kernel module for version 0.5.2 of
782
+ [libsemigroups][]. The configuration option `--enable-debug` was added.
783
+
784
+ The following issues are resolved:
785
+
786
+ * [Issue 389](https://github.com/gap-packages/Semigroups/issues/389): the most
787
+ general method for `NaturalPartialOrder` sometimes returned incorrect results.
788
+ [[Wilf A. Wilson][]]
789
+ * [Issue 393](https://github.com/gap-packages/Semigroups/issues/393):
790
+ `StructureDescription` for finitely presented groups failed with an error when
791
+ Semigroups was loaded.
792
+ [[James D. Mitchell][]]
793
+ * [Issue 395](https://github.com/gap-packages/Semigroups/issues/395): GAP's test
794
+ `tst/testinstall/semigrp.tst` failed because of a missing method for
795
+ `NrEquivalenceClasses` for a generic semigroup congruence.
796
+ [[James D. Mitchell][] and [Wilf A. Wilson][]]
797
+
798
+ ### Version 3.0.6 (released 27/09/2017)
799
+
800
+ This version contains some minor bugfixes, improves the compatibility of
801
+ Semigroups with other GAP packages, and updates the kernel
802
+ module for version 0.5.0 of [libsemigroups][]
803
+
804
+ The following issues are resolved:
805
+ * [Issue 371](https://github.com/gap-packages/Semigroups/issues/371): the
806
+ identity element of some types of monoids was not added to its
807
+ `GeneratorsOfSemigroup`. This meant that the semigroup generated by
808
+ `GeneratorsOfSemigroup(M)` was not equal to `M` in some rare cases.
809
+ [[Wilf A. Wilson][]]
810
+ * [Issue 377](https://github.com/gap-packages/Semigroups/issues/377): there was
811
+ a bug in the method for `IsInverseSemigroup` for non-acting semigroups that
812
+ sometimes returned a false positive.
813
+ [[Wilf A. Wilson][]]
814
+
815
+ ### Version 3.0.5 (released 23/08/2017)
816
+
817
+ This version contains some minor tweaks and the following issue is resolved:
818
+ * [Issue 352](https://github.com/gap-packages/Semigroups/issues/352): There was
819
+ a name clash with some other GAP packages using `RandomMatrix` and
820
+ `IsTorsion`.
821
+ [[James D. Mitchell][]]
822
+
823
+ ### Version 3.0.4 (released 16/07/2017)
824
+
825
+ Some minor issues are fixed in this release:
826
+ * [Issue 342](https://github.com/gap-packages/Semigroups/issues/342):
827
+ `DirectProduct` for transformation semigroups returned the wrong answer when
828
+ applied to semigroups satisfying `IsMonoidAsSemigroup`.
829
+ [[James D. Mitchell][]]
830
+
831
+ Some documentation and tests were added by [Michael Young][].
832
+
833
+ ### Version 3.0.3 (released 21/06/2017)
834
+
835
+ Some minor issues are fixed in this release:
836
+ * [Issue 336](https://github.com/gap-packages/Semigroups/issues/336): Rees
837
+ (0-)matrix semigroups over non-permutation groups sometimes resulted in an
838
+ error.
839
+ [[James D. Mitchell][]]
840
+ * A method was added for `IsEUnitaryInverseSemigroup` for non-inverse
841
+ semigroups, which previously resulted in no method found.
842
+ [Chris Russell]
843
+ * Some error messages were improved in `ReadGenerators` and `WriteGenerators`.
844
+ [[James D. Mitchell][]]
845
+
846
+ ### Version 3.0.2 (released 16/06/2017)
847
+
848
+ This is an minor release fixing some minor issues in the last release.
849
+
850
+ The following issues were resolved:
851
+ * [Issue 330](https://github.com/gap-packages/Semigroups/issues/330):
852
+ `InversesOfSemigroupElement` some times returned an incorrect value,
853
+ specifically when applied to the identity of a transformation monoid.
854
+ [[James D. Mitchell][]]
855
+ * [Issue 328](https://github.com/gap-packages/Semigroups/issues/328): when using
856
+ Linux the package compiled but failed to link pthreads and so the kernel
857
+ module failed to load in GAP.
858
+ [[James D. Mitchell][]]
859
+
860
+ There are improvements to the following:
861
+ * some missing documentation was added by [Michael Young][].
862
+ * the subsemigroup returned by `IdempotentGeneratedSubsemigroup` for Rees
863
+ (0-)matrix semigroup over a group has a smaller generating set than
864
+ previously, and can be found more quickly.
865
+ [[Wilf A. Wilson][]]
866
+ * `IsomorphismSemigroups` is extended so that it can be applied to arbitrary
867
+ simple, 0-simple, or monogenic semigroups.
868
+ [[Wilf A. Wilson][]]
869
+
870
+ ### Version 3.0.1 (released 03/06/2017)
871
+ This is an extremely minor release fixing some minor issues in the last
872
+ release.
873
+
874
+ ### Version 3.0.0 (released 02/06/2017)
875
+ This is a major release that dramatically expands the scope of the package. The
876
+ package now features a compiled C/C++ module which interfaces with the
877
+ [libsemigroups][] C++ library to allow high-speed computations for congruences
878
+ and certain categories of semigroup. There are also several new types of
879
+ semigroup and a variety of new methods which can be used with them.
880
+
881
+ ### Version 2.8.2 (released 15/01/2018)
882
+ This is a minor release to correct the required version of [GAP][] in
883
+ `PackageInfo.g` (from GAP 4.9.0 to GAP 4.8.9).
884
+
885
+ ### Version 2.8.1 (released 22/12/2017)
886
+ This is a minor release to update the output in some test file and manual
887
+ examples due to some changes in the GAP library code.
888
+
889
+ ### Version 2.8.0 (released 26/05/2016)
890
+ In this release there are some new features and some bug fixes. In this
891
+ version, we welcome [Nick Ham][] to the contributors to the package.
892
+
893
+ #### New Features in Version 2.8.0
894
+ The new features in this release are contributed by [Nick Ham][]:
895
+
896
+ * `ApsisMonoid`
897
+ * `CrossedApsisMonoid`
898
+ * `ModularPartitionMonoid`
899
+ * `PlanarModularPartitionMonoid`
900
+ * `PlanarPartitionMonoid`
901
+ * `PlanarUniformBlockBijectionMonoid`
902
+ * `SingularApsisMonoid`
903
+ * `SingularCrossedApsisMonoid`
904
+ * `SingularModularPartitionMonoid`
905
+ * `SingularPlanarModularPartitionMonoid`
906
+ * `SingularPlanarPartitionMonoid`
907
+ * `SingularPlanarUniformBlockBijectionMonoid`
908
+ * `SingularUniformBlockBijectionMonoid`
909
+ * `UniformBlockBijectionMonoid`
910
+
911
+ #### Issues Resolved in Version 2.8.0
912
+
913
+ * [Issue 160](https://github.com/gap-packages/Semigroups/issues/160)
914
+ `IrreundantGeneratingSubset` behaved incorrectly when given a semigroup whose
915
+ generating set consisted of a single repeated element.
916
+ [[Wilf A. Wilson][]]
917
+ * [Issue 164](https://github.com/gap-packages/Semigroups/issues/164)
918
+ `MatrixEntries` gave an error for Rees 0-matrix semigroups whose matrices
919
+ contain `0`.
920
+ [[Wilf A. Wilson][]]
921
+ * Some tests failed when GAP was compiled in 32-bit mode.
922
+ [[Michael Young][]]
923
+
924
+ ### Version 2.7.6 (released 19/04/2016)
925
+ This is a very minor release changing the name of the `README` (to `README.md`)
926
+ in the `PackageInfo.g` file.
927
+
928
+ ### Version 2.7.5 (released 19/04/2016)
929
+ This is a minor release to fix
930
+ [Issue 151](https://github.com/gap-packages/Semigroups/issues/151), and to make
931
+ some changes for future compatibility with GAP. In
932
+ [Issue 151](https://github.com/gap-packages/Semigroups/issues/151) when the
933
+ method `IsomorphismPermGroup` was applied to a semigroups of non-permutation
934
+ transformations the returned mapping was not an isomorphism.
935
+
936
+ ### Version 2.7.4 (released 02/03/2016)
937
+ This is a minor release to fix
938
+ [Issue 150](https://bitbucket.org/james-d-mitchell/semigroups/issue/150), and to
939
+ correct the required version of GAP (from 4.8.2 to 4.8.3).
940
+ In [Issue 150](https://bitbucket.org/james-d-mitchell/semigroups/issue/150) the
941
+ function `IsZeroSimpleSemigroup` entered an infinite loop for some examples of
942
+ semigroups of partial permutations.
943
+
944
+ ### Version 2.7.3 (released 15/02/2016)
945
+ This is a minor release to fix some manual examples, to correct the package URL
946
+ in the `PackageInfo.g` file, and to fix some issues with semigroups of
947
+ bipartitions. It was formerly possible to create semigroups of bipartitions
948
+ where the generators had different degrees, but the created semigroups were
949
+ invalid; this is fixed in version 2.7.3.
950
+
951
+ ### Version 2.7.2 (released 28/01/2016)
952
+
953
+ This is a minor release to fix to remove `ErrorMayQuit` which was renamed
954
+ `ErrorNoReturn` in GAP 4.8.2. This change was made by [Max Horn][].
955
+
956
+ ### Version 2.7.1 (released 19/12/2015)
957
+
958
+ This is a minor release to fix
959
+ [Issue 144](https://bitbucket.org/james-d-mitchell/semigroups/issue/144). This
960
+ issue resulted in `IsInverseSemigroup` sometimes returning `true` for semigroups
961
+ which were not inverse. This occurred when the \\(\mathscr{D}\\)-classes of the
962
+ semigroup were computed before the method for `IsInverseSemigroup` was first
963
+ run.
964
+
965
+ ### Version 2.7 (released 27/11/2015)
966
+
967
+ This is a minor release including some changes for compatibility with GAP 4.8,
968
+ and some bug fixes.
969
+
970
+ #### New Features in Version 2.7
971
+ * `IsomorphismReesZeroMatrixSemigroup` is introduced, and it is no longer
972
+ possible to apply `IsomorphismReesMatrixSemigroup` to a 0-simple semigroup.
973
+ This change was made for the sake of consistency, so that the `Range` of an
974
+ `IsomorphismReesMatrixSemigroup` is always a Rees matrix semigroup and not
975
+ sometimes a Rees 0-matrix semigroup as was formerly the case.
976
+
977
+ #### Changes for GAP 4.8
978
+ * several `ViewString` methods for semigroups and their elements were moved from
979
+ the `Semigroups` package to the GAP library. Some minor changes were made in
980
+ the method for `ViewString` for semigroups, and the tests, and manual examples
981
+ were updated accordingly.
982
+ * The meaning of `IsMonoidAsSemigroup` was changed to be consistent with the
983
+ meaning of `IsGroupAsSemigroup`. In earlier versions, `IsMonoidAsSemigroup`
984
+ was `false` for semigroups in the category `IsMonoid`. From Version 2.7,
985
+ `IsMonoidAsSemigroup` is `true` for monoids in the category `IsMonoid` and for
986
+ some further semigroups.
987
+
988
+ #### Issues Resolved in Version 2.7
989
+
990
+ * [Issue 136](https://bitbucket.org/james-d-mitchell/semigroups/issue/136):
991
+ `CyclesOfPartialPermSemigroup` sometimes resulted in an error due to using
992
+ `DegreeOfPartialPermSemigroup` instead of the maximum of the degree and the
993
+ codegree.
994
+ [James D. Mitchell][]
995
+ * [Issue 141](https://bitbucket.org/james-d-mitchell/semigroups/issue/141):
996
+ `PartialOrderOfDClasses` sometimes resulted in an error. This bug was
997
+ introduced in Semigroups 2.6 and did not effect any previous versions.
998
+ [James D. Mitchell][]
999
+
1000
+ ### Version 2.6 (released 22/09/2015)
1001
+
1002
+ This release includes some bugfixes, some minor new features, and one major new
1003
+ feature (efficient methods for semigroups of matrices over a finite field).
1004
+
1005
+ #### New Features in Version 2.6
1006
+
1007
+ * extensive new features for computing with semigroups, monoids, and ideals, of
1008
+ matrices with entries in a finite field. See Chapter 7 of the manual for more
1009
+ details.
1010
+ [[Markus Pfeiffer][]]
1011
+
1012
+ * The functions `RectangularBand`, `MonogenicSemigroup`, and `ZeroSemigroup` now
1013
+ have an optional first argument to specify the category of the result; the
1014
+ functions `LeftZeroSemigroup` and `RightZeroSemigroup` are introduced in a
1015
+ similar sense.
1016
+ [[Wilf A. Wilson][]]
1017
+
1018
+ * The new property `IsSemigroupWithAdjoinedZero` and attribute
1019
+ `UnderlyingSemigroupOfSemigroupWithAdjoinedZero` are introduced.
1020
+ [[Wilf A. Wilson][]]
1021
+
1022
+ * The operations `MotzkinMonoid` and `PartialJonesMonoid` were introduced.
1023
+ [James D. Mitchell][]
1024
+
1025
+ #### Issues Resolved in Version 2.6
1026
+
1027
+ * [Issue 131](https://bitbucket.org/james-d-mitchell/semigroups/issue/131):
1028
+ testing membership in a Rees 0-matrix semigroup that knows it is inverse
1029
+ sometimes resulted in an error.
1030
+ [[Michael Young][]]
1031
+
1032
+ * [Issue 132](https://bitbucket.org/james-d-mitchell/semigroups/issue/132): this
1033
+ was a feature request to introduce the operations `MotzkinMonoid` and
1034
+ `PartialJonesMonoid`.
1035
+ [James D. Mitchell][]
1036
+
1037
+ * [Issue 134](https://bitbucket.org/james-d-mitchell/semigroups/issue/134): the
1038
+ operation `PartialBrauerMonoid` returned the wrong answer when the argument
1039
+ was `1`. The returned semigroup was not the partial brauer monoid of degree 1.
1040
+ [James D. Mitchell][]
1041
+
1042
+ ### Version 2.5 (released 01/06/2015)
1043
+
1044
+ This is a minor release including several bugfixes, lots of minor improvements
1045
+ in the documentation, some improvements in performance, and some new features.
1046
+
1047
+ #### New Features in Version 2.5
1048
+
1049
+ * Semigroups of partial permutations now have a polynomial time (quadratic in
1050
+ the degree) algorithm for computing the minimal ideal
1051
+ [[Wilf A. Wilson][]]
1052
+
1053
+ * A more efficient `IsInverseSemigroup` method for Rees 0-matrix semigroups is
1054
+ introduced, along with new methods for `Idempotents` and `NrIdempotents` for
1055
+ inverse Rees 0-matrix semigroups
1056
+ [[Wilf A. Wilson][]]
1057
+
1058
+ * The documentation for congruences has been improved and new tests have been
1059
+ added.
1060
+ [[Michael Young][]]
1061
+
1062
+ * A `UniversalSemigroupCongruence` now returns a much smaller set of generating
1063
+ pairs.
1064
+ [[Michael Young][]]
1065
+
1066
+ #### Issues Resolved in Version 2.5
1067
+
1068
+ Issue numbers refer to those on the [Bitbucket issue tracker][].
1069
+
1070
+ * [Issue 126](https://bitbucket.org/james-d-mitchell/semigroups/issue/126):
1071
+ testing membership in a Rees 0-matrix semigroup that knows it is inverse
1072
+ sometimes resulted in an error.
1073
+ [James D. Mitchell][]
1074
+
1075
+ * [Issue 127](https://bitbucket.org/james-d-mitchell/semigroups/issue/127): the
1076
+ main algorithm for computing with ideals of acting semigroups which know they
1077
+ are regular contained a bug that resulted in incorrect results. In some
1078
+ cases, some \\(\mathscr{D}\\)-classes were counted more than once, and the
1079
+ returned value of `Size` was higher than the actual size of the ideal.
1080
+ [James D. Mitchell][]
1081
+
1082
+ * [Issue 128](https://bitbucket.org/james-d-mitchell/semigroups/issue/128): in
1083
+ some special cases `UnderlyingSemigroup`, `ViewObj`, `Size`, and related
1084
+ methods, for Rees 0-matrix semigroups over non-groups returned an error.
1085
+ [James D. Mitchell][]
1086
+
1087
+ * The universal congruence specified by generating pairs on a (0-)simple
1088
+ semigroup no longer causes an error.
1089
+ [[Michael Young][]]
1090
+
1091
+ ### Version 2.4.1 (released 15/05/2015)
1092
+ This is a extremely minor release to change 1 character in the PackageInfo.g
1093
+ file (wrong package archive URL).
1094
+
1095
+ ### Version 2.4 (released 02/04/2015)
1096
+ This is a minor release including several bugfixes, and improvements in
1097
+ performance, and some new features.
1098
+
1099
+ #### New Features in Version 2.4
1100
+
1101
+ * The function `RepresentativeOfMinimalIdeal` is introduced.
1102
+ [[Wilf A. Wilson][]]
1103
+
1104
+ * Transformation semigroups now have a polynomial time (cubic in the degree)
1105
+ algorithm for computing the minimal ideal
1106
+ [[Wilf A. Wilson][]]
1107
+
1108
+ * The functions `RectangularBand`, `ZeroSemigroup`, and `MonogenicSemigroup` are
1109
+ introduced.
1110
+ [[Wilf A. Wilson][]]
1111
+
1112
+ * A method for choosing a random element of a semigroup has been introduced in
1113
+ the case that the semigroup knows its set of elements. This new method choose
1114
+ elements at random with uniform probability.
1115
+ [[Wilf A. Wilson][]]
1116
+
1117
+ * The documentation and tests for congruences has been improved.
1118
+ [Wilf A. Wilson][]] and [[Michael Young][]
1119
+
1120
+ * The functionality for Rees congruences has been rewritten and improved.
1121
+ [[Michael Young][]]
1122
+
1123
+ * There is a new `Enumerator` method for congruence classes of a semigroup
1124
+ congruence.
1125
+ [[Michael Young][]]
1126
+
1127
+ #### Issues Resolved in Version 2.4
1128
+
1129
+ Issue numbers refer to those on the [Bitbucket issue tracker][].
1130
+
1131
+ * [Issue 88](https://bitbucket.org/james-d-mitchell/semigroups/issue/88):
1132
+ an inefficiency in `JoinIrreducibleDClasses` of an inverse semigroup ideal
1133
+ resulted in a call to `GeneratorsOfSemigroup`.
1134
+
1135
+ * [Issue 94](https://bitbucket.org/james-d-mitchell/semigroups/issue/94):
1136
+ `EquivalenceClasses` of the trivial congruence (generated by 0 pairs of
1137
+ elements) returned an error.
1138
+
1139
+ * [Issue 95](https://bitbucket.org/james-d-mitchell/semigroups/issue/95): The
1140
+ class containing the zero element of a Rees 0-matrix semigroup was not
1141
+ returned by `EquivalenceClasses` of a congruence over a Rees 0-matrix
1142
+ semigroup.
1143
+
1144
+ * [Issue 108](https://bitbucket.org/james-d-mitchell/semigroups/issue/108):
1145
+ `IsRegularSemigroup` with argument a Rees 0-matrix semigroup returned an
1146
+ error.
1147
+
1148
+ * [Issue 119](https://bitbucket.org/james-d-mitchell/semigroups/issue/119):
1149
+ `NrCongruencesClasses` and related methods did not work for Rees congruences.
1150
+
1151
+ * [Issue 121](https://bitbucket.org/james-d-mitchell/semigroups/issue/121):
1152
+ `MultiplicativeZero` and `IsMultiplicativeZero` sometimes returned incorrect
1153
+ results when applied to a non-acting semigroup (i.e. a semigroup not of
1154
+ transformations, partial permutations, partitions, or subsemigroups of a Rees
1155
+ 0-matrix semigroup).
1156
+
1157
+ * [Issue 122](https://bitbucket.org/james-d-mitchell/semigroups/issue/122): A
1158
+ bug in the creation of Green's classes of ideals of semigroups, which resulted
1159
+ in an error.
1160
+
1161
+ * [Issue 123](https://bitbucket.org/james-d-mitchell/semigroups/issue/123):
1162
+ `IsZeroSemigroup` sometimes returned a false positive when applied to a
1163
+ non-acting semigroup.
1164
+
1165
+ ### Version 2.3 (released 16/03/2015)
1166
+
1167
+ This is a minor release including some internal refactoring, and
1168
+ subsequent bugfixes, and stability improvements.
1169
+
1170
+ * [Issue 116](https://bitbucket.org/james-d-mitchell/semigroups/issue/116) was
1171
+ resolved. In some cases when the default length of hash tables in
1172
+ [Semigroups][] was set to be very small, a segmentation fault occurred. This
1173
+ is a bug in the [orb package][] (see
1174
+ [Issue 10](https://github.com/gap-packages/orb/issues/10)), but we worked
1175
+ around it to resolve this issue.
1176
+
1177
+ ### Version 2.2 (released 20/01/2015)
1178
+ This is a minor release including some bug fixes, performance
1179
+ improvements, and additional functionality.
1180
+
1181
+ #### New Features in Version 2.2
1182
+
1183
+ * The functions `SmallestElementSemigroup`, `LargestElementSemigroup`,
1184
+ and `GeneratorsSmallest`.
1185
+
1186
+ * Free bands are introduced.
1187
+
1188
+ * Error messages are more uniform.
1189
+
1190
+ * The function `RegularDClasses` was introduced to resolve
1191
+ [Issue 102](https://bitbucket.org/james-d-mitchell/semigroups/issue/102).
1192
+
1193
+ * The documentation and code for semigroup congruences has been improved, and is
1194
+ better integrated with the core [GAP][] system.
1195
+
1196
+ * The functions `ReadGenerators` and `WriteGenerators` were improved.
1197
+
1198
+ #### Issues Resolved in Version 2.2
1199
+
1200
+ * Some minor corrections were made to the methods for creating the ideals of
1201
+ some semigroups in standard examples semigroups, such as
1202
+ `SingularTransformationSemigroup`.
1203
+
1204
+ * [Issue 102](https://bitbucket.org/james-d-mitchell/semigroups/issue/102): we
1205
+ introduced `RegularDClasses`.
1206
+
1207
+ * [Issue 104](https://bitbucket.org/james-d-mitchell/semigroups/issue/104): the
1208
+ performance of `MaximalSubsemigroups` when applied to an inverse semigroup has
1209
+ been improved.
1210
+
1211
+ * [Issue 105](https://bitbucket.org/james-d-mitchell/semigroups/issue/105):
1212
+ `CyclesOfPartialPerm` is now documented and does not return nonsense.
1213
+
1214
+ * [Issue 106](https://bitbucket.org/james-d-mitchell/semigroups/issue/106):
1215
+ `MaximalSubsemigroups` sometimes failed when the ResClasses package was
1216
+ loaded. We refactored the code so that the method from ResClasses is no longer
1217
+ applied.
1218
+
1219
+ * [Issue 107](https://bitbucket.org/james-d-mitchell/semigroups/issue/107): A
1220
+ bug in the creation of Green's classes of an ideal of a semigroup, which
1221
+ sometimes caused an error, has been resolved. This issue often caused
1222
+ `MaximalSubsemigroups` to stop in an error.
1223
+
1224
+ * [Issue 110](https://bitbucket.org/james-d-mitchell/semigroups/issue/110):
1225
+ `MaximalSubsemigroups` can be applied to any class of semigroup where it is
1226
+ possible to find an isomorphism to a transformation semigroup.
1227
+
1228
+ * [Issue 111](https://bitbucket.org/james-d-mitchell/semigroups/issue/111):
1229
+ `POPI(1)` returned the wrong semigroup. Similar issues existed in other corner
1230
+ cases, and these have been resolved too.
1231
+
1232
+ ### Version 2.1.1 (released 09/09/2014)
1233
+
1234
+ This is a very minor release to fix an issue caused by only loading the packages
1235
+ needed (but not required) by [Semigroups][].
1236
+
1237
+ ### Version 2.1 (released 04/09/2014)
1238
+
1239
+ This is a minor release including some bug fixes and performance improvements.
1240
+
1241
+ #### New Features in Version 2.1
1242
+
1243
+ * The functions:
1244
+
1245
+ - `AsTransformationSemigroup`,
1246
+ - `AsPartialPermSemigroup`,
1247
+ - `AsBipartitionSemigroup`,
1248
+ - `AsBlockBijectionSemigroup`
1249
+
1250
+ which are shortcuts to `Range(IsomorphismXSemigroup(S))`.
1251
+
1252
+ * A method for `IsTransitive` for a transformation semigroup and, optionally, a
1253
+ positive integer or list of positive integers. This method is based on Gabow's
1254
+ algorithm for determining the strongly connected components of a directed
1255
+ graph.
1256
+
1257
+ * The functions `MeetSemigroupCongruence` and `JoinSemigroupCongruences` for
1258
+ finding the meet and join of a pair of congruences of a semigroup.
1259
+
1260
+ * There is a new method for `IsSynchronizingSemigroup`, suggested by Peter
1261
+ Cameron, with better complexity than the previous method.
1262
+
1263
+ #### Issues Resolved in Version 2.1
1264
+
1265
+ Issue numbers refer to those on the [Bitbucket issue tracker][].
1266
+
1267
+ * There was a bug in `ReadGeneratorsFile`, which meant it sometimes returned
1268
+ fail. The mode argument for `IO_FilteredFile` was not given.
1269
+
1270
+ * There was a bug in the `\in` method for a congruence of a Rees 0-matrix
1271
+ semigroup, which sometimes returned the wrong answer for the zero of the
1272
+ semigroup.
1273
+
1274
+ * There was a bug in `IteratorFromGeneratorsFile` that caused it to read only
1275
+ every other line in the given file, and to crash if there were an odd number
1276
+ of lines.
1277
+
1278
+ * There was no hash function for bipartitions.
1279
+
1280
+ * The documentation for `InverseSubsemigroupByProperty` did not specify the
1281
+ arguments of the function.
1282
+
1283
+ * [Issue 82](https://bitbucket.org/james-d-mitchell/semigroups/issue/82): it is
1284
+ now possible to take the quotient of a semigroup by an ideal using the `/`
1285
+ operator.
1286
+
1287
+ * [Issue 96](https://bitbucket.org/james-d-mitchell/semigroups/issue/96):
1288
+ `IsIsomorphicSemigroup` sometimes returned a false negative by incorrectly
1289
+ comparing the output of `PartialOrderOfDClasses` (up to isomorphism) rather
1290
+ than the transitive reflexive closure of `PartialOrderOfDClasses`.
1291
+
1292
+ * [Issue 97](https://bitbucket.org/james-d-mitchell/semigroups/issue/97): there
1293
+ was a bug in the `Normalizer` method, which caused [GAP][] to crash when the
1294
+ argument was a monoid with 0 generators.
1295
+
1296
+ * [Issue 98](https://bitbucket.org/james-d-mitchell/semigroups/issue/98):
1297
+ `PartitionMonoid(1)` returned the wrong answer, it was missing the
1298
+ non-identity element.
1299
+
1300
+ * [Issue 99](https://bitbucket.org/james-d-mitchell/semigroups/issue/99): the
1301
+ documentation for `PartialOrderOfDClasses` was incorrect.
1302
+
1303
+ * [Issue 103](https://bitbucket.org/james-d-mitchell/semigroups/issue/103):
1304
+ under certain circumstances an error was given when trying to compute with an
1305
+ ideal of an inverse semigroup.
1306
+
1307
+ ### Version 2.0 (released 17/04/2014)
1308
+
1309
+ This is a major release including many new features and several bug fixes.
1310
+
1311
+ #### New Features in Version 2.0
1312
+
1313
+ * extensive new features for computing with elements and
1314
+ subsemigroups of the partition monoid. It is now possible to compute
1315
+ with semigroups, monoids, inverse semigroups, inverse monoids, and
1316
+ ideals consisting of elements of the partition monoid. Examples of
1317
+ subsemigroups of this type are the Brauer monoids, Temperley-Lieb
1318
+ monoids, and the dual symmetric inverse monoid. See Chapter 5 of the
1319
+ manual for more details;
1320
+
1321
+ * support for ideals of transformation, partial permutation, and
1322
+ bipartition semigroups, and subsemigroups of Rees 0-matrix
1323
+ semigroups. It is now possible to compute anything about one of
1324
+ these ideals that could formerly only be computed about a semigroup
1325
+ defined by a generating set. Such ideals now use a data structure
1326
+ similar to that used by semigroups defined by a generating set;
1327
+
1328
+ * the new operations `IsomorphismSemigroups`, `IsIsomorphicSemigroup`,
1329
+ and `SmallestMultiplicationTable`. Some of the methods for this
1330
+ operation require the Grape package to be fully installed;
1331
+
1332
+ * the new operation `MaximalSubsemigroups`, which returns the maximal
1333
+ subsemigroups of an arbitrary semigroup. Some of the methods for
1334
+ this operation require the Grape package to be fully installed;
1335
+
1336
+ * the operation `IsMaximalSubsemigroup`;
1337
+
1338
+ * the new operation `Normalizer` for computing a subgroup of a
1339
+ permutation group consisting of those permutations that stabilise,
1340
+ under conjugation, a transformation, partial perm, or bipartition
1341
+ semigroup. The genss package is required for this operation in some
1342
+ cases;
1343
+
1344
+ * the new operation `CharacterTableOfInverseSemigroup` for finding the
1345
+ character table of an inverse semigroup of partial permutations;
1346
+
1347
+ * methods for defining and manipulating the congruences of a Rees
1348
+ 0-matrix semigroup;
1349
+
1350
+ * the properties `IsCongruenceFreeSemigroup`, `IsEUnitaryInverseSemigroup`;
1351
+
1352
+ * the attributes:
1353
+ * `ComponentRepsOfTransformationSemigroup`
1354
+ * `ComponentsOfTransformationSemigroup`
1355
+ * `CyclesOfTransformationSemigroup`
1356
+ * `ComponentRepsOfPartialPermSemigroup`
1357
+ * `ComponentsOfPartialPermSemigroup`
1358
+ * `CyclesOfPartialPermSemigroup`.
1359
+
1360
+ * the new function `IteratorFromGeneratorsFile` that returns an
1361
+ iterator which reads semigroup elements from a file created using
1362
+ `WriteGenerators`. This function is a convenient way of, for example,
1363
+ looping over a collection of generators in a file without loading
1364
+ every object in the file into memory. This might be useful if
1365
+ the file contains more information than there is available memory;
1366
+
1367
+ * the operation `EndomorphismsPartition` that returns the monoid
1368
+ of endomorphisms preserving a partition. This monoid is defined
1369
+ using the minimum possible number of generators;
1370
+
1371
+ * a version of the function `Splash` that attempts to convert a string
1372
+ containing a dot or tikz document into a pdf and opens this pdf.
1373
+ Other file formats are also supported;
1374
+
1375
+ * the function `DotSemilatticeOfIdempotents` that produces a string
1376
+ containing a dot document of the semilattice of idempotents of an
1377
+ inverse semigroup grouped by \\(\mathscr{D}\\)-class;
1378
+
1379
+ * the operation `NaturalLeqInverseSemigroup`, which is an umbrella
1380
+ operation for `NaturalLeqPartialPerm`, and other such functions.
1381
+
1382
+ #### Issues Resolved in Version 2.0
1383
+
1384
+ Issue numbers refer to those on the [Bitbucket issue tracker][].
1385
+
1386
+ * the main algorithm underlying many of the methods in [Semigroups][] has been
1387
+ revised to avoid computing the same information more than once. Some further
1388
+ internal rearranging and cleaning up was done.
1389
+
1390
+ * `MinimalIdeal` and `SingularTransformationSemigroup` now returns an ideal
1391
+ rather than a semigroup defined by a generating set;
1392
+
1393
+ * to reduce the size of the package archive, the examples directory has been
1394
+ removed. The content of the examples directory is available on
1395
+ [this webpage](https://tinyurl.com/jdmitchell/data.php).
1396
+
1397
+ * several bugs in the setup for subsemigroups of Rees 0-matrix semigroups were
1398
+ resolved. These issues would have caused [GAP][] to give an error in certain
1399
+ circumstances.
1400
+
1401
+ * [Issue 33](https://bitbucket.org/james-d-mitchell/semigroups/issue/33): an
1402
+ error was returned when trying to calculate the size, or multiply elements in
1403
+ the quotient of a semigroup by an ideal.
1404
+
1405
+ * [Issue 36](https://bitbucket.org/james-d-mitchell/semigroups/issue/36),
1406
+ [Issue 64](https://bitbucket.org/james-d-mitchell/semigroups/issue/64): the
1407
+ function `SmallGeneratingSet` was ambiguous, in the sense that it was
1408
+ sometimes unclear how to recreate a semigroup from its small generating set.
1409
+ For example, `SmallGeneratingSet` of a monoid could return an empty list, but
1410
+ this empty list could not be used to recreate the monoid in [GAP][]. This was
1411
+ resolved by introducing the functions `SmallSemigroupGeneratingSet`,
1412
+ `SmallMonoidGeneratingSet`, `SmallInverseSemigroupGeneratingSet`,
1413
+ `SmallInverseMonoidGeneratingSet`. These functions can also now be applied to
1414
+ collections of elements, i.e. not only to semigroups.
1415
+
1416
+ * [Issue 47](https://bitbucket.org/james-d-mitchell/semigroups/issue/47):
1417
+ `ClosureSemigroup` had several bugs that could, in some cases, result in
1418
+ incorrect results, or semigroups with invalid data structures.
1419
+
1420
+ * [Issue 50](https://bitbucket.org/james-d-mitchell/semigroups/issue/50) and
1421
+ [Issue 59](https://bitbucket.org/james-d-mitchell/semigroups/issue/59):
1422
+ `WriteGenerators` wrote nothing to a file in the case that it was not piping
1423
+ through `xz` or `gzip`.
1424
+
1425
+ * [Issue 55](https://bitbucket.org/james-d-mitchell/semigroups/issue/55):
1426
+ `DotDClasses` did not work when the argument was a Rees 0-matrix semigroup (it
1427
+ worked as intended when the argument was a subsemigroup of such a semigroup
1428
+ defined by a generating set).
1429
+
1430
+ * [Issue 56](https://bitbucket.org/james-d-mitchell/semigroups/issue/56): the
1431
+ functions `Monoid` and `InverseMonoid` sometimes did not contain their
1432
+ identity element.
1433
+
1434
+ * [Issue 57](https://bitbucket.org/james-d-mitchell/semigroups/issue/57): under
1435
+ certain circumstances a bug in the [GAP][] kernel function `INV_KER_TRANS`,
1436
+ that didn't handle kernels and transformations with different length and
1437
+ degree properly, caused [GAP][] to give an error.
1438
+
1439
+ * [Issue 63](https://bitbucket.org/james-d-mitchell/semigroups/issue/63): there
1440
+ was an error in the [GAP][] library functions `Monoid` and `InverseMonoid`,
1441
+ when they were passed a monoid as an argument.
1442
+
1443
+ * [Issue 63](https://bitbucket.org/james-d-mitchell/semigroups/issue/63) (and
1444
+ [Issue 4](https://github.com/gap-system/orb/issues) in the [orb package][]): a
1445
+ bug in the [orb package][] meant that the log of an `Orb` was not properly
1446
+ updated if the enumeration stopped early because we found something we were
1447
+ looking for. This caused [Semigroups][] to return incorrect results in some
1448
+ rare cases.
1449
+
1450
+ * [Issue 72](https://bitbucket.org/james-d-mitchell/semigroups/issue/72): the
1451
+ method for `IsomorphismTransformationSemigroup` applied to a binary relation
1452
+ monoid returned an isomorphism to a transformation semigroup which was missing
1453
+ the image of the identity.
1454
+
1455
+ * [Issue 89](https://bitbucket.org/james-d-mitchell/semigroups/issue/89): there
1456
+ was a bug in `TRANS_IMG_CONJ` which failed to handle transformations of
1457
+ unequal degrees correctly. This causes incorrect results to be returned when
1458
+ considering semigroups generated by transformations of unequal degrees.
1459
+
1460
+ ### Version 1.4 (released 28/10/13)
1461
+
1462
+ This is a minor release containing some bug fixes. Specifically:
1463
+ the functionality of `ReadGenerators` and `WriteGenerators` has been
1464
+ improved to allow the argument to be an [io][] file object, and support
1465
+ is added to read and write directly to files compressed using
1466
+ `xz`. A minor bug relating to the creation of idempotents in
1467
+ transformation semigroups which was triggered by the identity
1468
+ transformation has been resolved. The functions
1469
+ `IsomorphismReesMatrixSemigroup`, `InjectionPrincipalFactor`, and
1470
+ `IsZeroSimpleSemigroup` have been revised. `IsZeroSimpleSemigroup`
1471
+ formerly returned `true` for the 2-element zero semigroup, which is
1472
+ not 0-simple. `IsomorphismReesMatrixSemigroup` could have returned an
1473
+ error if called for a semigroup which was not a semigroup of
1474
+ partial perms or transformations. The use of `AsPermutation` was
1475
+ changed to `PermutationOfImage` where appropriate following a change
1476
+ to the library methods for `AsPermutation`. The declarations of
1477
+ `IsomorphismPermGroup` and `ClosureSemigroup` were moved/changed to
1478
+ avoid warnings that their methods matched more than one
1479
+ declaration. These warnings were exposed by doing `LoadAllPackages`,
1480
+ but were not present when loading [Semigroups][] by itself.
1481
+
1482
+ ### Version 1.3 (released 11/10/13)
1483
+
1484
+ Version 1.3 contains many bug fixes, extensions and improvements in
1485
+ the documentation, and several new methods and functions. Most
1486
+ notably are (in no particular order):
1487
+
1488
+ * the methods in [Semigroups][] have been extended to apply to arbitrary
1489
+ subsemigroups of regular Rees 0-matrix semigroups over groups;
1490
+ * a new method for `MaximalSubsemigroups` of Rees matrix semigroup has been
1491
+ implemented;
1492
+ * the functions `Read/WriteSemigroups` have been renamed `Read/WriteGenerators`,
1493
+ and their performance has been improved. It is now possible to use
1494
+ `WriteGenerators` to write to a gzipped file;
1495
+ * the operation `SingularSemigroup` has been renamed to
1496
+ `SingularTransformationSemigroup`;
1497
+ * the following attributes have been introduced:
1498
+ * `MinimalDClass`,
1499
+ * `MaximalDClasses`,
1500
+ * `StructureDescriptionMaximalSubgroups`,
1501
+ * `StructureDescriptionSchutzenbergerGroups`, and
1502
+ * `IsGreensDLeq`.
1503
+ * the attribute/operation `DotDClasses` has been introduced. This allows the
1504
+ \\(\mathscr{D}\\)-class diagram of a semigroup to be viewed.
1505
+ * `ComponentRepsOfTransformationSemigroup` is reintroduced.
1506
+
1507
+ ### Version 1.2 (released 02/08/13)
1508
+
1509
+ This release includes several new methods for inverse semigroups of
1510
+ partial permutations and for free inverse semigroups. Most notably
1511
+ among the new methods for inverse semigroups of partial
1512
+ permutations are:
1513
+
1514
+ * `SmallerDegreePartialPermRepresentation`
1515
+ * `VagnerPrestonRepresentation`
1516
+
1517
+ for changing the representation of an inverse semigroup of partial
1518
+ permutations. The changes in this release were the result of the
1519
+ University of St Andrews Research for Undergraduates Summer School
1520
+ in 2012, and were largely written by [Wilf A. Wilson][] and Robert Hancock.
1521
+
1522
+ Free inverse semigroups, and their elements, are also introduced, this part of
1523
+ the package was written by [Julius Jonusas][] (who wishes to acknowledge the
1524
+ support of the Carnegie Trust).
1525
+
1526
+ ### Version 1.1 (released 11/06/13)
1527
+ A minor release to fix some technical issues in `PackageInfo.g`, the
1528
+ declarations of `IsGreens.Class`, and a minor change in the output in
1529
+ one test in everyfunction.tst which was consequence of the
1530
+ declarations of `IsGreens.Class`.
1531
+
1532
+ ### Version 1.0 (released 07/06/13)
1533
+ The package has been renamed from Citrus to [Semigroups][].
1534
+ The package has been completely overhauled, the performance has been improved,
1535
+ and the code has been generalized so that in the future the same code can be
1536
+ used to compute with other types of semigroups.
1537
+
1538
+ # Under the name Citrus:
1539
+
1540
+ ### Version 0.9999
1541
+ This is the final release of Citrus (the package will be renamed
1542
+ Citrus in the next release since the scope of the package has
1543
+ expanded to include more types of semigroups than just those of
1544
+ transformations and partial permutations).
1545
+
1546
+ A minor release fixing several bugs relating to inverse semigroups
1547
+ of partial permutations pointed out by participants at the
1548
+ University of St Andrews Research for Undergraduates Summer School
1549
+ in July 2012. Most notably by Demi Allen, Casey Donoven, Rhiannon
1550
+ Dougall, Robert Hancock, and [Wilf A. Wilson][]. More specifically,
1551
+ `SymmetricInverseSemigroup(n)` returned an incorrect answer when `n=1`
1552
+ or `n=2`, `\in` for the empty mapping and an inverse semigroup of
1553
+ partial perms sometimes incorrectly returned false, some harmless
1554
+ compiler warnings were displayed when using more recent versions of
1555
+ gcc, `NaturalLeqPP` sometimes returned the incorrect value, there was
1556
+ no method for `IsInverseSemigroup` or `IsInverseMonoid` for a semigroup
1557
+ of partial perms.
1558
+
1559
+ ### Version 0.999
1560
+ A minor release fixing several bugs relating to partial
1561
+ permutations and monoids thereof, pointed out by Jack Schmidt.
1562
+ More specifically, `MultiplicativeZero` sometimes incorrectly
1563
+ returned fail for an inverse semigroup of partial permutations,
1564
+ sometimes `PartialPerm` incorrectly returned fail when given a dense
1565
+ range as an argument, sometimes the size of an inverse monoid was 1
1566
+ more than the correct value, and `RestrictedPP` sometimes failed when
1567
+ it should not have.
1568
+
1569
+ ### Version 0.99
1570
+ another minor release. Specific changes were: removed the
1571
+ declaration of SmallGeneratingSet for IsSemigroup since it appears
1572
+ not to be used and caused a warning to be shown when the [RCWA package][] was
1573
+ loaded after Citrus. Added a new abstract to the `PackageInfo.g`
1574
+ file, and the documentation, and updated the webpages, in
1575
+ particular so that the html version of the manual is linked to that
1576
+ on the [GAP][] webpage and the links to other manuals work.
1577
+
1578
+ ### Version 0.9
1579
+ renamed the function for creating the semigroup of order-preserving
1580
+ transformations on an n-chain from `O` to `OrderEndomorphisms` after it
1581
+ was pointed out that it is not sensible to have function names with
1582
+ one character. Also made some minor adjustments to the manual.
1583
+
1584
+ ### Version 0.8
1585
+ minor changes due to incompatibility with [Smallsemi][] version 0.6.4 which
1586
+ caused some test files to fail when Nilmat was loaded after
1587
+ Citrus. The clashes and the failed test were caused by various
1588
+ properties being declared for `IsTransformationSemigroup` rather than
1589
+ `IsSemigroup`.
1590
+
1591
+ ### Version 0.7
1592
+ the most major change is the introduction of special methods for
1593
+ partial permutations and inverse semigroups. So that these methods
1594
+ are efficient, a [GAP][] kernel component (in C) has also been
1595
+ introduced for various low-level computations with partial
1596
+ permutations. Essentially all functions previously available for
1597
+ transformation semigroups are now available for inverse semigroups
1598
+ of partial permutations. The manual has been expanded and
1599
+ reorganised, some standard examples have been included (semigroups
1600
+ of order preserving transformations or partial permutations, the
1601
+ symmetric inverse semigroup, the full matrix semigroup over a
1602
+ finite field), the endomorphism monoids of the non-abelian groups
1603
+ with at most 64 elements have been included in the catalogues of
1604
+ examples, the functions `InjectionPrincipalFactor`,
1605
+ `IsomorphismReesMatrixSemigroup`, and `PrincipalFactor`, and some
1606
+ specific properties and attributes of inverse semigroups have been
1607
+ introduced (such as `IsFactorisableSemigroup` and
1608
+ `PrimitiveIdempotents`).
1609
+
1610
+ ### Version 0.6
1611
+ fixed a bug relating to the creation of transformation semigroups
1612
+ using `MagmaByGenerators`. Also added the global variable
1613
+ `CitrusOptionsRec` containing the default values of the options
1614
+ used by Citrus when creating a semigroup.
1615
+
1616
+ ### Version 0.5
1617
+ major changes are: the documentation has been further revised, functions for
1618
+ creating semigroups and monoids with certain options have been introduced,
1619
+ several functions have had the word `Greens` removed from their names to reduce
1620
+ the length, the operation `ClosureSemigroup` has been introduced, the functions
1621
+ `ReadCitrus` and `WriteCitrus` for reading and writing transformations to a file
1622
+ have been introduced, several catalogues of examples of transformation
1623
+ semigroups are now included in the examples directory, methods for creating a
1624
+ Green's class inside another Green's class have been included (such as an
1625
+ \\(\mathscr{R}\\)-class of a \\(\mathscr{D}\\)-class or an
1626
+ \\(\mathscr{H}\\)-class of an \\(\mathscr{L}\\)-class), the hash functions used
1627
+ for transformations etc have been improved.
1628
+
1629
+ Some minor bugs have been fixed, and new methods or functions with the following
1630
+ names have also been introduced:
1631
+
1632
+ * `AntiIsomorphismTransformationSemigroup` (for a transformation semigroup),
1633
+ * `IdempotentGeneratedSubsemigp`,
1634
+ * `IsomorphismTransformationSemigroup` (for a permutation group),
1635
+ * `IsomorphismTransformationMonoid` (for a permutation group),
1636
+ * `NrElementsOfRank`.
1637
+
1638
+ ### Version 0.4
1639
+ major changes are: the documentation has been updated, some changes
1640
+ to core functions for \\(\mathscr{R}\\)-classes/image orbits have resulted in a
1641
+ performance improvement, there is a method for the operation
1642
+ `Factorization` allowing an arbitrary element of a transformation
1643
+ semigroup to be expressed as a product of the generators.
1644
+
1645
+ Some minor bugs have been fixed, and new methods or functions with
1646
+ the following names have also been introduced:
1647
+
1648
+ `OrbSCC`, `OrbSCCLookup`, `OrbSCCTruthTable`,
1649
+ `ReverseSchreierTreeOfSCC`, `SchreierTreeOfSCC`,
1650
+ `IsomorphismTransformationSemigroup` (for a perm. gp).
1651
+
1652
+ ### Version 0.3
1653
+ fixed a critical (but rare) bug in AddToOrbitsOfKernels that caused
1654
+ computations relating to \\(\mathscr{D}\\)-classes, \\(\mathscr{H}\\)-classes,
1655
+ or \\(\mathscr{L}\\)-classes to return incorrect answers in some cases.
1656
+
1657
+ ### Version 0.2
1658
+ updated the method for `\^` for a transformation and perm so that it
1659
+ is more efficient than the library method, same for \* for a perm
1660
+ and transformation. New method for `StructureDescription` of a
1661
+ Brandt semigroup, and `IsSubset` for a trans. semigroup and trans.
1662
+ coll.
1663
+
1664
+ fixed bugs in `IndexPeriodOfTransformation` (it returned incorrect
1665
+ results) and `AsPermutation`. Also reduce hash table lengths so that
1666
+ Citrus uses less memory. Fixed bug that triggered an infinite
1667
+ loop when trying to find elements of a trivial trans. semigroup.
1668
+
1669
+ added the functions `CitrusDefaultMem`, `CitrusHiMem`,
1670
+ `CitrusLoMem`, `CitrusVeryLoMem`, `IsBrandtSemigroup`,
1671
+ `IsLeftSimple`, `IsMonogenicSemigroup`, `IsRightSimple`,
1672
+ `IsZeroRectangularBand`, `IsZeroSimpleSemigroup`.
1673
+
1674
+ [D. V. Pasechnik]: http://users.ox.ac.uk/~coml0531
1675
+ [James D. Mitchell]: https://jdbm.me
1676
+ [Julius Jonusas]: http://julius.jonusas.work
1677
+ [Markus Pfeiffer]: https://markusp.morphism.de
1678
+ [Max Horn]: https://www.quendi.de/en/math
1679
+ [Michael Young]: https://mct25.host.cs.st-andrews.ac.uk
1680
+ [Nick Ham]: https://n-ham.github.io
1681
+ [Wilf A. Wilson]: https://wilf.me
1682
+ [Chris Jefferson]: https://heather.cafe
1683
+ [Finn Smith]: https://flsmith.github.io
1684
+ [Luke Elliott]: https://le27.github.io/Luke-Elliott/
1685
+ [GAP]: https://www.gap-system.org
1686
+ [Digraphs package]: https://gap-packages.github.io/Digraphs
1687
+ [Digraphs]: https://gap-packages.github.io/Digraphs
1688
+ [RCWA package]: https://gap-packages.github.io/rcwa
1689
+ [Semigroups package]: https://gap-packages.github.io/Semigroups
1690
+ [Semigroups]: https://gap-packages.github.io/Semigroups
1691
+ [Smallsemi]: https://gap-packages.github.io/smallsemi
1692
+ [io]: https://gap-packages.github.io/io
1693
+ [libsemigroups]: https://libsemigroups.github.io/libsemigroups
1694
+ [orb package]: https://gap-packages.github.io/orb
1695
+ [orb]: https://gap-packages.github.io/orb
1696
+ [Bitbucket issue tracker]: https://bitbucket.org/james-d-mitchell/semigroups/issues
1697
+ [images package]: https://gap-packages.github.io/images
1698
+ [HPCombi]: libsemigroups.github.io/HPCombi/
1699
+