passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.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-unknown-linux-gnu-default64-kv10/semigroups.so +0 -0
  15. gap/pkg/semigroups/config.guess +1807 -0
  16. gap/pkg/semigroups/config.log +1016 -0
  17. gap/pkg/semigroups/config.status +1132 -0
  18. gap/pkg/semigroups/config.sub +1960 -0
  19. gap/pkg/semigroups/configure +9742 -0
  20. gap/pkg/semigroups/configure.ac +71 -0
  21. gap/pkg/semigroups/data/doc/greens.pickle +1 -0
  22. gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
  23. gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
  24. gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
  25. gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
  26. gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
  27. gap/pkg/semigroups/data/tst/bipart4 +10 -0
  28. gap/pkg/semigroups/data/tst/pperm10 +1 -0
  29. gap/pkg/semigroups/data/tst/tables.gz +0 -0
  30. gap/pkg/semigroups/data/tst/testdata +1 -0
  31. gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
  32. gap/pkg/semigroups/data/tst/trans3 +7 -0
  33. gap/pkg/semigroups/data/tst/trans3-old +7 -0
  34. gap/pkg/semigroups/environment.yml +7 -0
  35. gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
  36. gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
  37. gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
  38. gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
  39. gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
  40. gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
  41. gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
  42. gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
  43. gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
  44. gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
  45. gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
  46. gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
  47. gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
  48. gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
  49. gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
  50. gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
  51. gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
  52. gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
  53. gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
  54. gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
  55. gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
  56. gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
  57. gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
  58. gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
  59. gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
  60. gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
  61. gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
  62. gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
  63. gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
  64. gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
  65. gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
  66. gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
  67. gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
  68. gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
  69. gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
  70. gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
  71. gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
  72. gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
  73. gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
  74. gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
  75. gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
  76. gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
  77. gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
  78. gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
  79. gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
  80. gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
  81. gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
  82. gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
  83. gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
  84. gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
  85. gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
  86. gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
  87. gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
  88. gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
  89. gap/pkg/semigroups/gap/elements/elements.gd +11 -0
  90. gap/pkg/semigroups/gap/elements/elements.gi +121 -0
  91. gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
  92. gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
  93. gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
  94. gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
  95. gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
  96. gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
  97. gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
  98. gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
  99. gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
  100. gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
  101. gap/pkg/semigroups/gap/elements/star.gd +21 -0
  102. gap/pkg/semigroups/gap/elements/star.gi +21 -0
  103. gap/pkg/semigroups/gap/elements/trans.gd +13 -0
  104. gap/pkg/semigroups/gap/elements/trans.gi +50 -0
  105. gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
  106. gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
  107. gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
  108. gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
  109. gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
  110. gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
  111. gap/pkg/semigroups/gap/fp/word.gd +15 -0
  112. gap/pkg/semigroups/gap/fp/word.gi +67 -0
  113. gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
  114. gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
  115. gap/pkg/semigroups/gap/greens/acting.gd +81 -0
  116. gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
  117. gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
  118. gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
  119. gap/pkg/semigroups/gap/greens/generic.gd +117 -0
  120. gap/pkg/semigroups/gap/greens/generic.gi +630 -0
  121. gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
  122. gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
  123. gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
  124. gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
  125. gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
  126. gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
  127. gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
  128. gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
  129. gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
  130. gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
  131. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
  132. gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
  133. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
  134. gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
  135. gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
  136. gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
  137. gap/pkg/semigroups/gap/main/acting.gd +36 -0
  138. gap/pkg/semigroups/gap/main/acting.gi +779 -0
  139. gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
  140. gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
  141. gap/pkg/semigroups/gap/main/graded.gd +26 -0
  142. gap/pkg/semigroups/gap/main/graded.gi +355 -0
  143. gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
  144. gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
  145. gap/pkg/semigroups/gap/main/orbits.gd +24 -0
  146. gap/pkg/semigroups/gap/main/orbits.gi +512 -0
  147. gap/pkg/semigroups/gap/main/semiact.gd +20 -0
  148. gap/pkg/semigroups/gap/main/semiact.gi +821 -0
  149. gap/pkg/semigroups/gap/main/setup.gd +61 -0
  150. gap/pkg/semigroups/gap/main/setup.gi +1094 -0
  151. gap/pkg/semigroups/gap/obsolete.gd +9 -0
  152. gap/pkg/semigroups/gap/obsolete.gi +14 -0
  153. gap/pkg/semigroups/gap/options.g +55 -0
  154. gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
  155. gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
  156. gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
  157. gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
  158. gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
  159. gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
  160. gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
  161. gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
  162. gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
  163. gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
  164. gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
  165. gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
  166. gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
  167. gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
  168. gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
  169. gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
  170. gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
  171. gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
  172. gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
  173. gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
  174. gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
  175. gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
  176. gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
  177. gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
  178. gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
  179. gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
  180. gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
  181. gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
  182. gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
  183. gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
  184. gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
  185. gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
  186. gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
  187. gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
  188. gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
  189. gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
  190. gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
  191. gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
  192. gap/pkg/semigroups/gap/tools/display.gd +24 -0
  193. gap/pkg/semigroups/gap/tools/display.gi +749 -0
  194. gap/pkg/semigroups/gap/tools/io.gd +17 -0
  195. gap/pkg/semigroups/gap/tools/io.gi +543 -0
  196. gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
  197. gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
  198. gap/pkg/semigroups/gap/tools/utils.gd +19 -0
  199. gap/pkg/semigroups/gap/tools/utils.gi +756 -0
  200. gap/pkg/semigroups/gapbind14/.ccls +18 -0
  201. gap/pkg/semigroups/gapbind14/.clang-format +104 -0
  202. gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
  203. gap/pkg/semigroups/gapbind14/LICENSE +674 -0
  204. gap/pkg/semigroups/gapbind14/README.md +76 -0
  205. gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
  206. gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
  207. gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
  208. gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
  209. gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
  210. gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
  211. gap/pkg/semigroups/gapbind14/demo/configure +34 -0
  212. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
  213. gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
  214. gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
  215. gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
  216. gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
  217. gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
  218. gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
  219. gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
  220. gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
  221. gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
  222. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
  223. gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
  224. gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
  225. gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
  226. gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
  227. gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
  228. gap/pkg/semigroups/init.g +150 -0
  229. gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
  230. gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
  231. gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
  232. gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
  233. gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
  234. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
  235. gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
  236. gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
  237. gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
  238. gap/pkg/semigroups/m4/find_gap.m4 +94 -0
  239. gap/pkg/semigroups/makedoc.g +153 -0
  240. gap/pkg/semigroups/prerequisites.sh +62 -0
  241. gap/pkg/semigroups/read.g +105 -0
  242. gap/pkg/semigroups/release.toml +6 -0
  243. gap/pkg/semigroups/tst/extreme/README +2 -0
  244. gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
  245. gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
  246. gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
  247. gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
  248. gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
  249. gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
  250. gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
  251. gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
  252. gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
  253. gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
  254. gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
  255. gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
  256. gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
  257. gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
  258. gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
  259. gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
  260. gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
  261. gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
  262. gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
  263. gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
  264. gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
  265. gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
  266. gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
  267. gap/pkg/semigroups/tst/standard/README +2 -0
  268. gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
  269. gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
  270. gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
  271. gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
  272. gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
  273. gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
  274. gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
  275. gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
  276. gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
  277. gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
  278. gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
  279. gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
  280. gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
  281. gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
  282. gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
  283. gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
  284. gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
  285. gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
  286. gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
  287. gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
  288. gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
  289. gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
  290. gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
  291. gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
  292. gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
  293. gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
  294. gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
  295. gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
  296. gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
  297. gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
  298. gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
  299. gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
  300. gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
  301. gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
  302. gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
  303. gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
  304. gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
  305. gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
  306. gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
  307. gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
  308. gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
  309. gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
  310. gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
  311. gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
  312. gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
  313. gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
  314. gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
  315. gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
  316. gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
  317. gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
  318. gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
  319. gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
  320. gap/pkg/semigroups/tst/standard/options.tst +54 -0
  321. gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
  322. gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
  323. gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
  324. gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
  325. gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
  326. gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
  327. gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
  328. gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
  329. gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
  330. gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
  331. gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
  332. gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
  333. gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
  334. gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
  335. gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
  336. gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
  337. gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
  338. gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
  339. gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
  340. gap/pkg/semigroups/tst/testinstall.tst +1815 -0
  341. gap/pkg/semigroups/tst/teststandard.g +22 -0
  342. gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
  343. gap/pkg/semigroups/tst/workspaces/load.g +11 -0
  344. gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
  345. gap/pkg/semigroups/tst/workspaces/save.g +14 -0
  346. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
  347. passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
  348. passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
  349. passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
  350. passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
  351. passagemath_gap_pkg_semigroups.libs/libsemigroups-8ea3c4e7.so.2.0.0 +0 -0
  352. sage/all__sagemath_gap_pkg_semigroups.py +1 -0
  353. sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
  354. sage/libs/gap_pkg_semigroups.abi3.so +0 -0
@@ -0,0 +1,601 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/elements/semiringmat.tst
4
+ #Y Copyright (C) 2015-2022 James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local S, coll, f, filename, ht, m, mat, x
12
+ gap> START_TEST("Semigroups package: standard/elements/semiringmat.tst");
13
+ gap> LoadPackage("semigroups", false);;
14
+
15
+ #
16
+ gap> SEMIGROUPS.StartTest();
17
+
18
+ # Matrix: return an answer, all possibilities, and TransposedMat
19
+ gap> Matrix(IsBooleanMat, [[1, 0, 0, 0],
20
+ > [0, 0, 0, 0],
21
+ > [1, 1, 1, 1],
22
+ > [1, 0, 1, 1]]);
23
+ Matrix(IsBooleanMat, [[1, 0, 0, 0], [0, 0, 0, 0], [1, 1, 1, 1], [1, 0, 1, 1]])
24
+ gap> TransposedMat(TransposedMat(last)) = last;
25
+ true
26
+ gap> Matrix(IsMaxPlusMatrix, [[4, 0, -2],
27
+ > [1, -3, 0],
28
+ > [5, -1, -4]]);
29
+ Matrix(IsMaxPlusMatrix, [[4, 0, -2], [1, -3, 0], [5, -1, -4]])
30
+ gap> TransposedMat(TransposedMat(last)) = last;
31
+ true
32
+ gap> Matrix(IsMinPlusMatrix, [[-1, infinity],
33
+ > [1, -1]]);
34
+ Matrix(IsMinPlusMatrix, [[-1, infinity], [1, -1]])
35
+ gap> TransposedMat(TransposedMat(last)) = last;
36
+ true
37
+ gap> Matrix(IsTropicalMaxPlusMatrix, [[3, 2, 4],
38
+ > [3, 1, 1],
39
+ > [-infinity, 1, 1]],
40
+ > 9);
41
+ Matrix(IsTropicalMaxPlusMatrix, [[3, 2, 4], [3, 1, 1], [-infinity, 1, 1]], 9)
42
+ gap> TransposedMat(TransposedMat(last)) = last;
43
+ true
44
+ gap> Matrix(IsTropicalMinPlusMatrix, [[1, 1, 1],
45
+ > [0, 3, 0],
46
+ > [1, 1, 3]],
47
+ > 9);
48
+ Matrix(IsTropicalMinPlusMatrix, [[1, 1, 1], [0, 3, 0], [1, 1, 3]], 9)
49
+ gap> TransposedMat(TransposedMat(last)) = last;
50
+ true
51
+ gap> Matrix(IsProjectiveMaxPlusMatrix, [[0, -infinity, -1, 0],
52
+ > [0, -1, -infinity, -infinity],
53
+ > [4, 4, 2, -1],
54
+ > [1, 1, 0, 3]]);
55
+ Matrix(IsProjectiveMaxPlusMatrix, [[0, -infinity, -1, 0],
56
+ [0, -1, -infinity, -infinity], [4, 4, 2, -1], [1, 1, 0, 3]])
57
+ gap> TransposedMat(TransposedMat(last)) = last;
58
+ true
59
+ gap> Matrix(IsNTPMatrix, [[0, 0, 0],
60
+ > [2, 0, 1],
61
+ > [2, 2, 2]],
62
+ > 2, 1);
63
+ Matrix(IsNTPMatrix, [[0, 0, 0], [2, 0, 1], [2, 2, 2]], 2, 1)
64
+ gap> TransposedMat(TransposedMat(last)) = last;
65
+ true
66
+ gap> Matrix(Integers, [[-1, -2, 0],
67
+ > [0, 3, -1],
68
+ > [1, 0, -3]]);
69
+ <3x3-matrix over Integers>
70
+ gap> TransposedMat(TransposedMat(last)) = last;
71
+ true
72
+ gap> Matrix(Integers, [[-1, -2, 0],
73
+ > [0, 3, -1],
74
+ > [1, 0, -3]]);
75
+ <3x3-matrix over Integers>
76
+ gap> TransposedMat(TransposedMat(last)) = last;
77
+ true
78
+
79
+ # gap> Matrix(GF(3), [[Z(3), Z(3) ^ 0, Z(3)],
80
+ # > [Z(3), Z(3) ^ 0, Z(3) ^ 0],
81
+ # > [Z(3), 0 * Z(3), 0 * Z(3)]]);
82
+ # Matrix(GF(3), [[Z(3), Z(3)^0, Z(3)], [Z(3), Z(3)^0, Z(3)^0],
83
+ # [Z(3), 0*Z(3), 0*Z(3)]])
84
+ # gap> TransposedMat(TransposedMat(last)) = last;
85
+ # true
86
+
87
+ # semiringmat: MatrixNC for a matrix over semiring and homogeneous list
88
+ gap> mat := Matrix(IsTropicalMaxPlusMatrix, [[0, 3], [0, 2]], 5);
89
+ Matrix(IsTropicalMaxPlusMatrix, [[0, 3], [0, 2]], 5)
90
+ gap> One(mat);
91
+ Matrix(IsTropicalMaxPlusMatrix, [[0, -infinity], [-infinity, 0]], 5)
92
+
93
+ # semiringmat: Matrix, for a filter, homogeneous list, pos int, and pos int,
94
+ # 1/3
95
+ gap> Matrix(IsNTPMatrix, [[1, 1], [2]], 3, 3);
96
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
97
+ Error, no 2nd choice method found for `Matrix' on 4 arguments
98
+ gap> Matrix(IsNTPMatrix, [[1, 1, 3], [1, 2, 3]], 3, 3);
99
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
100
+ Error, no 2nd choice method found for `Matrix' on 4 arguments
101
+
102
+ # semiringmat: Matrix, for a filter, homogeneous list, pos int, and pos int,
103
+ # 2/3
104
+ gap> Matrix(Integers, [[1, 1], [2, 2]], 3, 3);
105
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
106
+ Error, no 1st choice method found for `Matrix' on 4 arguments
107
+
108
+ # semiringmat: Matrix, for a filter, homogeneous list, pos int, and pos int,
109
+ # 3/3
110
+ gap> Matrix(IsNTPMatrix, [[1, 1], [2, 10]], 3, 3);
111
+ Error, the entries in the 2nd argument do not define a matrix of type IsNTPMat\
112
+ rix
113
+
114
+ # semiringmat: Matrix, for a filter, homogeneous list, and pos int, 1/3
115
+ gap> Matrix(IsTropicalMaxPlusMatrix, [[1, 1], [2]], 3);
116
+ Error, the 2nd argument must define a square matrix
117
+ gap> Matrix(IsTropicalMaxPlusMatrix, [[1, 1, 3], [1, 2, 3]], 3);
118
+ Error, the 2nd argument must define a square matrix
119
+
120
+ # semiringmat: Matrix, for a filter, homogeneous list, and pos int, 3/3
121
+ gap> Matrix(IsTropicalMinPlusMatrix, [[1, 1], [2, 10]], 3);
122
+ Error, the entries in the 2nd argument do not define a matrix of type IsTropic\
123
+ alMinPlusMatrix
124
+
125
+ # semiringmat: Matrix, for Integers and homogeneous list, 1/3
126
+ # TODO(MatrixObj-later) the following works fine in MatrixObj land
127
+ # see https://github.com/gap-system/gap/issues/4885
128
+ # gap> Matrix(Integers, [[1, 1], [2]]);
129
+ # Error, no method found! For debugging hints type ?Recovery from NoMethodFound
130
+ # Error, no 2nd choice method found for `Matrix' on 2 arguments
131
+ # The following works fine in GAP 4.12.x but not in GAP 4.11.1
132
+ # gap> Matrix(Integers, [[1, 1, 3], [1, 2, 3]]);
133
+ # <2x3-matrix over Integers>
134
+
135
+ # semiringmat: Matrix, for a filter and homogeneous list, 2/3
136
+ gap> Matrix(IsNTPMatrix, [[1, 1], [1, 2]]);
137
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
138
+ Error, no 2nd choice method found for `Matrix' on 2 arguments
139
+
140
+ # semiringmat: Matrix, for a filter and homogeneous list, 3/3
141
+ # TODO(MatrixObj-later) the following works fine in MatrixObj land
142
+ # see: https://github.com/gap-system/gap/issues/4884
143
+ # gap> Matrix(Integers, [[1, 1], [2, E(8)]]);
144
+ # Error, the entries in the 2nd argument do not define a matrix of type IsIntege\
145
+ # rMatrix
146
+
147
+ # semiringmat: Matrix, for a semiring and homogeneous list, 1/3
148
+ # WORKAROUND: disabled until https://github.com/gap-system/gap/issues/4814
149
+ # is fully resolved
150
+ #gap> Matrix(Integers, [[1, 1], [2]]);
151
+ #Error, the 2nd argument <mat> does not give a rectangular table
152
+
153
+ # semiringmat: Matrix, for a semiring and homogeneous list, 2/3
154
+ gap> Matrix(Rationals, [[1, 1], [2, 2]]);
155
+ <2x2-matrix over Rationals>
156
+
157
+ # semiringmat: Matrix, for a semiring and homogeneous list, 3/3
158
+ # TODO(MatrixObj-later) the following works fine in MatrixObj land
159
+ # see: https://github.com/gap-system/gap/issues/4884
160
+ # gap> Matrix(Integers, [[1, 1], [2, E(8)]]);
161
+ # Error, the entries in the 2nd argument do not define a matrix of type IsIntege\
162
+ # rMatrix
163
+
164
+ # semiringmat: RandomMatrix, 1
165
+ gap> RandomMatrix(Integers, 2);;
166
+
167
+ # semiringmat: RandomMatrix, 2
168
+ gap> RandomMatrix(IsTropicalMaxPlusMatrix, 2, 2);;
169
+
170
+ # semiringmat: RandomMatrix, 3
171
+ gap> RandomMatrix(IsNTPMatrix, 2, 2, 2);;
172
+
173
+ # semiringmat: RandomMatrix, 4
174
+ gap> RandomMatrix(GF(7), 2);;
175
+
176
+ # semiringmat: RandomMatrix, 5
177
+ gap> RandomMatrix(7, 2);;
178
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
179
+ Error, no 1st choice method found for `RandomMatrix' on 2 arguments
180
+
181
+ # semiringmat: RandomMatrix, 6
182
+ gap> RandomMatrix(7, 2, 3);
183
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
184
+ Error, no 1st choice method found for `RandomMatrix' on 3 arguments
185
+
186
+ # semiringmat: RandomMatrix, for a semiring, 7
187
+ gap> RandomMatrix(Integers, 20);;
188
+
189
+ # semiringmat: PrintString, DisplayString for a collection
190
+ gap> mat := Matrix(IsBooleanMat, [[1, 0, 0, 0],
191
+ > [0, 0, 0, 0],
192
+ > [1, 1, 1, 1],
193
+ > [1, 0, 1, 1]]);
194
+ Matrix(IsBooleanMat, [[1, 0, 0, 0], [0, 0, 0, 0], [1, 1, 1, 1], [1, 0, 1, 1]])
195
+ gap> Display([mat, mat ^ 2]);
196
+ 1 0 0 0
197
+ 0 0 0 0
198
+ 1 1 1 1
199
+ 1 0 1 1
200
+
201
+ 1 0 0 0
202
+ 0 0 0 0
203
+ 1 1 1 1
204
+ 1 1 1 1
205
+ gap> PrintString([mat, mat ^ 2]);
206
+ "\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0, 0]\<, \<\>\>[0, 0, 0, 0]\<, \
207
+ \<\>\>[1, 1, 1, 1]\<, \<\>\>[1, 0, 1, 1]\<\<]\<)\<\>\>\>Matrix(\<\>IsBooleanMa\
208
+ t\<, \>[\>\>[1, 0, 0, 0]\<, \<\>\>[0, 0, 0, 0]\<, \<\>\>[1, 1, 1, 1]\<, \<\>\>\
209
+ [1, 1, 1, 1]\<\<]\<)\<\<"
210
+ gap> PrintString(MinimalDClass(Semigroup(mat)));
211
+ "\>\>\>GreensDClassOfElement\<(\>\>Semigroup(\>\n\>\>\>Matrix(\<\>IsBooleanMat\
212
+ \<, \>[\>\>[1, 0, 0, 0]\<, \<\>\>[0, 0, 0, 0]\<, \<\>\>[1, 1, 1, 1]\<, \<\>\>[\
213
+ 1, 0, 1, 1]\<\<]\<\<\> \<)\<\<,\< \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, \
214
+ 0, 0, 0]\<, \<\>\>[0, 0, 0, 0]\<, \<\>\>[1, 1, 1, 1]\<, \<\>\>[1, 1, 1, 1]\<\<\
215
+ ]\<)\<\<)\<\<"
216
+
217
+ # semiringmat: Display and DisplayString for a matrix
218
+ gap> Matrix(IsProjectiveMaxPlusMatrix, [[0, -infinity, -1, 0],
219
+ > [0, -1, -infinity, -infinity],
220
+ > [4, 4, 2, -1],
221
+ > [1, 1, 0, 3]]);
222
+ Matrix(IsProjectiveMaxPlusMatrix, [[0, -infinity, -1, 0],
223
+ [0, -1, -infinity, -infinity], [4, 4, 2, -1], [1, 1, 0, 3]])
224
+ gap> Display(last);
225
+ 0 -∞ -1 0
226
+ 0 -1 -∞ -∞
227
+ 4 4 2 -1
228
+ 1 1 0 3
229
+ gap> mat := One(RandomMatrix(IsMinPlusMatrix, 2));
230
+ Matrix(IsMinPlusMatrix, [[0, infinity], [infinity, 0]])
231
+ gap> Display(mat);
232
+ 0 ∞
233
+ ∞ 0
234
+ gap> mat := Matrix(IsMaxPlusMatrix, [[0, -infinity, -1, 0],
235
+ > [100, -1, -infinity, -infinity],
236
+ > [4, 40, 2, -1],
237
+ > [1, 1, 1000, 33313]]);;
238
+ gap> Display(mat);
239
+ 0 -∞ -1 0
240
+ 100 -1 -∞ -∞
241
+ 4 40 2 -1
242
+ 1 1 1000 33313
243
+
244
+ # semiringmat: ViewString for a matrix of dim >= 9
245
+ gap> mat := RandomMatrix(IsTropicalMinPlusMatrix, 9, 3);
246
+ <9x9 tropical min-plus matrix>
247
+
248
+ # semiringmat: \=, different types, 1/4
249
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
250
+ > = Matrix(IsTropicalMaxPlusMatrix, [[1, 1], [-infinity, 3]], 3);
251
+ false
252
+
253
+ # semiringmat: \=, different dims, 2/4
254
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
255
+ > = Matrix(IsTropicalMinPlusMatrix, [[2]], 3);
256
+ false
257
+
258
+ # semiringmat: \=, different threshold, 3/4
259
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
260
+ > = Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 4);
261
+ false
262
+
263
+ # semiringmat: \=, different period, 4/4
264
+ gap> Matrix(IsNTPMatrix, [[2, 1], [1, 3]], 3, 3)
265
+ > = Matrix(IsNTPMatrix, [[2, 1], [1, 3]], 3, 4);
266
+ false
267
+
268
+ # semiringmat: \<, 1/4
269
+ gap> mat := Matrix(IsTropicalMinPlusMatrix,
270
+ > [[2, infinity, infinity, 3, 1, 1, infinity, 3, 3],
271
+ > [1, 1, 1, 1, 1, 2, 0, infinity, 0],
272
+ > [0, 1, 1, 2, 2, 1, 0, infinity, 1],
273
+ > [1, 3, infinity, infinity, 3, 2, 2, 3, 2],
274
+ > [1, infinity, infinity, 1, 2, 1, 1, 3, 2],
275
+ > [infinity, infinity, 0, 0, 2, 1, 3, 3, infinity],
276
+ > [infinity, 2, 1, 0, 1, 2, 2, 0, 2],
277
+ > [infinity, 0, 3, infinity, 1, 3, infinity, 2, 3],
278
+ > [0, 2, infinity, 2, 1, 0, infinity, 1, 1]], 3);
279
+ <9x9 tropical min-plus matrix>
280
+ gap> S := Semigroup(mat);
281
+ <commutative semigroup of 9x9 tropical min-plus matrices with 1 generator>
282
+ gap> Size(S);
283
+ 9
284
+ gap> AsSet(AsList(S));
285
+ [ <9x9 tropical min-plus matrix>, <9x9 tropical min-plus matrix>,
286
+ <9x9 tropical min-plus matrix>, <9x9 tropical min-plus matrix>,
287
+ <9x9 tropical min-plus matrix>, <9x9 tropical min-plus matrix>,
288
+ <9x9 tropical min-plus matrix>, <9x9 tropical min-plus matrix>,
289
+ <9x9 tropical min-plus matrix> ]
290
+
291
+ # semiringmat: \<, equal matrices, 2/4
292
+ gap> mat := Matrix(Integers, [[-2, 0], [0, 3]]);;
293
+ gap> mat < mat;
294
+ false
295
+
296
+ # semiringmat: \<, different types, 3/4
297
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
298
+ > < Matrix(IsTropicalMaxPlusMatrix, [[1, 1], [-infinity, 3]], 3);
299
+ Error, the matrices are not of the same type
300
+
301
+ # semiringmat: \<, different dims, 4/4
302
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
303
+ > < Matrix(IsTropicalMinPlusMatrix, [[2]], 3);
304
+ false
305
+ gap> Matrix(IsTropicalMinPlusMatrix, [[2, infinity], [infinity, 3]], 3)
306
+ > > Matrix(IsTropicalMinPlusMatrix, [[2]], 3);
307
+ true
308
+
309
+ # semiringmat: ChooseHashFunction and use that hash function, 1/1
310
+ gap> mat := Matrix(IsTropicalMinPlusMatrix,
311
+ > [[2, infinity, infinity, 3, 1, 1, infinity, 3, 3],
312
+ > [1, 1, 1, 1, 1, 2, 0, infinity, 0],
313
+ > [0, 1, 1, 2, 2, 1, 0, infinity, 1],
314
+ > [1, 3, infinity, infinity, 3, 2, 2, 3, 2],
315
+ > [1, infinity, infinity, 1, 2, 1, 1, 3, 2],
316
+ > [infinity, infinity, 0, 0, 2, 1, 3, 3, infinity],
317
+ > [infinity, 2, 1, 0, 1, 2, 2, 0, 2],
318
+ > [infinity, 0, 3, infinity, 1, 3, infinity, 2, 3],
319
+ > [0, 2, infinity, 2, 1, 0, infinity, 1, 1]], 3);
320
+ <9x9 tropical min-plus matrix>
321
+ gap> ht := HTCreate(mat);
322
+ <tree hash table len=100003 used=0 colls=0 accs=0>
323
+ gap> for x in Semigroup(mat) do
324
+ > HTAdd(ht, x, true);
325
+ > od;
326
+ gap> ht;
327
+ <tree hash table len=100003 used=9 colls=0 accs=9>
328
+
329
+ # maxplusmat: AsMatrix, trop. min-plus <-> min-plus, 1/3
330
+ gap> mat := Matrix(IsTropicalMinPlusMatrix, [[1, infinity, 1], [0, infinity, 2],
331
+ > [infinity, 4, 0]], 10);;
332
+ gap> AsMatrix(IsMinPlusMatrix, mat);
333
+ Matrix(IsMinPlusMatrix, [[1, infinity, 1], [0, infinity, 2], [infinity, 4, 0]]
334
+ )
335
+ gap> AsMatrix(IsTropicalMinPlusMatrix, last, 10);
336
+ Matrix(IsTropicalMinPlusMatrix, [[1, infinity, 1], [0, infinity, 2],
337
+ [infinity, 4, 0]], 10)
338
+ gap> last = mat;
339
+ true
340
+
341
+ # maxplusmat: AsMatrix, trop. min-plus <-> trop. min-plus, 2/3
342
+ gap> mat := Matrix(IsTropicalMinPlusMatrix, [[1, infinity, 1], [0, infinity, 2],
343
+ > [infinity, 4, 0]], 10);;
344
+ gap> AsMatrix(IsTropicalMinPlusMatrix, mat, 2);
345
+ Matrix(IsTropicalMinPlusMatrix, [[1, infinity, 1], [0, infinity, 2],
346
+ [infinity, 2, 0]], 2)
347
+
348
+ # maxplusmat: AsMatrix, everything, 3/3
349
+ gap> mat := Matrix(IsTropicalMinPlusMatrix, [[0, 1, 3],
350
+ > [1, 1, 6],
351
+ > [0, 4, 2]], 10);;
352
+ gap> AsMatrix(IsMinPlusMatrix, mat);
353
+ Matrix(IsMinPlusMatrix, [[0, 1, 3], [1, 1, 6], [0, 4, 2]])
354
+ gap> mat := Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 3],
355
+ > [0, 1, 3],
356
+ > [4, 1, 0]], 10);;
357
+ gap> AsMatrix(IsMaxPlusMatrix, mat);
358
+ Matrix(IsMaxPlusMatrix, [[-infinity, -infinity, 3], [0, 1, 3], [4, 1, 0]])
359
+ gap> mat := Matrix(IsProjectiveMaxPlusMatrix, [[-1, 2, 1],
360
+ > [-2, -1, 1],
361
+ > [1, 1, 2]]);;
362
+ gap> AsMatrix(IsMaxPlusMatrix, mat);
363
+ Matrix(IsMaxPlusMatrix, [[-1, 2, 1], [-2, -1, 1], [1, 1, 2]])
364
+ gap> mat := Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 3],
365
+ > [0, 1, 3],
366
+ > [4, 1, 0]], 10);;
367
+ gap> AsMatrix(IsProjectiveMaxPlusMatrix, mat);
368
+ Matrix(IsProjectiveMaxPlusMatrix, [[-infinity, -infinity, 3], [0, 1, 3],
369
+ [4, 1, 0]])
370
+ gap> mat := Matrix(IsNTPMatrix, [[1, 2, 2],
371
+ > [0, 2, 0],
372
+ > [1, 3, 0]], 4, 5);;
373
+ gap> Matrix(Integers, mat);
374
+ <3x3-matrix over Integers>
375
+ gap> mat := Matrix(IsMinPlusMatrix, [[0, 1, 3], [1, 1, 6], [0, 4, 2]]);;
376
+ gap> mat := AsMatrix(IsTropicalMinPlusMatrix, mat, 2);
377
+ Matrix(IsTropicalMinPlusMatrix, [[0, 1, 2], [1, 1, 2], [0, 2, 2]], 2)
378
+ gap> mat := AsMatrix(IsTropicalMinPlusMatrix, mat, 1);
379
+ Matrix(IsTropicalMinPlusMatrix, [[0, 1, 1], [1, 1, 1], [0, 1, 1]], 1)
380
+ gap> mat := Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 3],
381
+ > [0, 1, 3],
382
+ > [4, 1, 0]], 10);;
383
+ gap> AsMatrix(IsTropicalMaxPlusMatrix, mat, 4);
384
+ Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 3], [0, 1, 3],
385
+ [4, 1, 0]], 4)
386
+ gap> mat := Matrix(IsProjectiveMaxPlusMatrix,
387
+ > [[-infinity, -infinity, 3],
388
+ > [0, 1, 3],
389
+ > [4, 1, 0]]);;
390
+ gap> AsMatrix(IsTropicalMaxPlusMatrix, mat, 1);
391
+ Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 1], [0, 1, 1],
392
+ [1, 1, 0]], 1)
393
+ gap> mat := Matrix(IsMaxPlusMatrix, [[-infinity, -infinity, 3],
394
+ > [0, 1, 3],
395
+ > [4, 1, 0]]);;
396
+ gap> AsMatrix(IsTropicalMaxPlusMatrix, mat, 10);
397
+ Matrix(IsTropicalMaxPlusMatrix, [[-infinity, -infinity, 3], [0, 1, 3],
398
+ [4, 1, 0]], 10)
399
+ gap> AsMatrix(IsProjectiveMaxPlusMatrix, mat);
400
+ Matrix(IsProjectiveMaxPlusMatrix, [[-infinity, -infinity, 3], [0, 1, 3],
401
+ [4, 1, 0]])
402
+ gap> mat := Matrix(IsNTPMatrix, [[0, 1, 0],
403
+ > [1, 3, 1],
404
+ > [1, 0, 1]], 10, 10);;
405
+ gap> mat := AsMatrix(IsNTPMatrix, mat, 5, 6);
406
+ Matrix(IsNTPMatrix, [[0, 1, 0], [1, 3, 1], [1, 0, 1]], 5, 6)
407
+ gap> mat := AsMatrix(IsNTPMatrix, mat, 2, 6);
408
+ Matrix(IsNTPMatrix, [[0, 1, 0], [1, 3, 1], [1, 0, 1]], 2, 6)
409
+ gap> mat := AsMatrix(IsNTPMatrix, mat, 2, 1);
410
+ Matrix(IsNTPMatrix, [[0, 1, 0], [1, 2, 1], [1, 0, 1]], 2, 1)
411
+ gap> mat := Matrix(Integers, mat);
412
+ <3x3-matrix over Integers>
413
+ gap> AsMatrix(IsNTPMatrix, mat, 1, 2);
414
+ Matrix(IsNTPMatrix, [[0, 1, 0], [1, 2, 1], [1, 0, 1]], 1, 2)
415
+
416
+ # semiringmat: ELM_LIST, 1/1
417
+ gap> mat := Matrix(Integers, [[0, 1, 0], [1, 2, 1], [1, 0, 1]]);;
418
+ gap> mat[1];
419
+ <plist vector over Integers of length 3>
420
+ gap> mat[4];
421
+ Error, List Element: <list>[4] must have an assigned value
422
+
423
+ # semiringmat, pickling
424
+ gap> S := FullTropicalMaxPlusMonoid(2, 10);
425
+ <monoid of 2x2 tropical max-plus matrices with 69 generators>
426
+ gap> filename := Filename(DirectoryTemporary(), "fulltrop.gz");;
427
+ gap> WriteGenerators(filename, [S]);
428
+ IO_OK
429
+ gap> S = Semigroup(ReadGenerators(filename)[1]);
430
+ true
431
+
432
+ # semiringmat, unpickling boolean mats
433
+ gap> S := FullBooleanMatMonoid(4);
434
+ <monoid of 4x4 boolean matrices with 7 generators>
435
+ gap> filename := Filename(DirectoryTemporary(), "fulltrop.gz");;
436
+ gap> WriteGenerators(filename, [S]);
437
+ IO_OK
438
+ gap> S = Semigroup(ReadGenerators(filename)[1]);
439
+ true
440
+ gap> Exec("rm ", filename);
441
+
442
+ # semiringmat, IsGeneratorsOfSemigroup
443
+ gap> coll := [Matrix(Integers, [[-1, -1, 0, 3, 0], [-1, 1, 3, 0, 0],
444
+ > [-1, 0, 0, -1, 0], [0, 4, 4, 2, -1], [1, 1, 0, 3, 0]]),
445
+ > Matrix(Integers, [[-3, 0, 0, 4, 0, 2], [-3, 1, 0, 0, 0, 4],
446
+ > [0, 1, 2, -3, 3, -1], [-2, 0, 0, 3, -1, 1], [0, -3, 3, -1, -1, 1],
447
+ > [1, 1, -2, 0, 0, 0]])];;
448
+ gap> IsGeneratorsOfSemigroup(coll);
449
+ false
450
+ gap> IsGeneratorsOfSemigroup([coll[1]]);
451
+ true
452
+
453
+ # semiringmat, TraceMat for Integer matrices
454
+ gap> m := Matrix(Integers, [[1, 2, 3], [4, 5, 6], [7, 8, -9]]);;
455
+ gap> TraceMat(m);
456
+ -3
457
+
458
+ # Test AsTransformation
459
+ gap> mat := Matrix(IsMaxPlusMatrix, [[-2, 2], [0, -1]]);;
460
+ gap> AsTransformation(mat);
461
+ fail
462
+ gap> mat := Matrix(IsMaxPlusMatrix, [[-infinity, 0], [-infinity, 0]]);;
463
+ gap> AsTransformation(mat);
464
+ Transformation( [ 2, 2 ] )
465
+
466
+ # Test AsMatrix
467
+ gap> mat := AsMatrix(IsMaxPlusMatrix, Transformation([2, 2]));
468
+ Matrix(IsMaxPlusMatrix, [[-infinity, 0], [-infinity, 0]])
469
+
470
+ # Test IsGeneratorsOfSemigroup
471
+ gap> S := Semigroup(Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10));
472
+ <commutative semigroup of 2x2 tropical max-plus matrices with 1 generator>
473
+ gap> IsGeneratorsOfSemigroup(DClass(S, S.1));
474
+ true
475
+ gap> coll := [Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10),
476
+ > Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 11)];;
477
+ gap> IsGeneratorsOfSemigroup(coll);
478
+ false
479
+ gap> coll := [Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10),
480
+ > Matrix(IsTropicalMinPlusMatrix, [[2, 2], [0, 1]], 10)];;
481
+ gap> IsGeneratorsOfSemigroup(coll);
482
+ false
483
+ gap> coll := [Matrix(IsTropicalMaxPlusMatrix, [[2]], 10),
484
+ > Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10)];;
485
+ gap> IsGeneratorsOfSemigroup(coll);
486
+ false
487
+ gap> coll := [Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10),
488
+ > Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 9, 10)];;
489
+ gap> IsGeneratorsOfSemigroup(coll);
490
+ false
491
+ gap> coll := [Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10),
492
+ > Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 9)];;
493
+ gap> IsGeneratorsOfSemigroup(coll);
494
+ false
495
+
496
+ # Test Matrix for a finite field
497
+ gap> mat := Matrix(GF(3), [[Z(3)]]);
498
+ [ [ Z(3) ] ]
499
+ gap> Matrix(GF(3), mat);
500
+ [ [ Z(3) ] ]
501
+
502
+ # Test RandomMatrix for a finite field
503
+ gap> mat := RandomMatrix(GF(3), 3, 2);;
504
+ gap> Rank(mat);
505
+ 2
506
+ gap> mat := RandomMatrix(GF(3), 3, [2, 3]);;
507
+ gap> Rank(mat) in [2, 3];
508
+ true
509
+
510
+ # Test OneImmutable, fails
511
+ gap> coll := [Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10),
512
+ > Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 9)];;
513
+ gap> OneImmutable(coll);
514
+ fail
515
+
516
+ # Test InverseMutable, fails
517
+ gap> InverseMutable(Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10));
518
+ fail
519
+
520
+ # Test InverseImmutable, fails
521
+ gap> InverseImmutable(Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10));
522
+ fail
523
+
524
+ # Test TraceMat for a finite field matrix
525
+ gap> mat := Matrix(GF(4), [[Z(4), Z(4) ^ 2], [0 * Z(4), Z(4)]]);;
526
+ gap> TraceMat(mat);
527
+ 0*Z(2)
528
+
529
+ # Test DimensionOfMatrixOverSemiringCollection, for a list
530
+ gap> coll := [Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10),
531
+ > Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 9)];;
532
+ gap> DimensionOfMatrixOverSemiringCollection(coll);
533
+ 2
534
+ gap> coll := [Matrix(IsTropicalMaxPlusMatrix, [[2]], 10),
535
+ > Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10)];;
536
+ gap> DimensionOfMatrixOverSemiringCollection(coll);
537
+ Error, the argument <coll> must be a collection of matrices of equal dimension
538
+
539
+ # Test DimensionOfMatrixOverSemiringCollection, for a semigroup
540
+ gap> S := Semigroup(Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10));;
541
+ gap> DimensionOfMatrixOverSemiringCollection(S);
542
+ 2
543
+
544
+ # Test String
545
+ gap> mat := Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10);;
546
+ gap> String(mat);
547
+ "Matrix(IsNTPMatrix, [ [ 2, 2 ], [ 0, 1 ] ], 10, 10)"
548
+ gap> mat = EvalString(String(mat));
549
+ true
550
+ gap> mat := Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10);;
551
+ gap> String(mat);
552
+ "Matrix(IsTropicalMaxPlusMatrix, [ [ 2, 2 ], [ 0, 1 ] ], 10)"
553
+ gap> mat = EvalString(String(mat));
554
+ true
555
+
556
+ # Test IsBound
557
+ gap> mat := Matrix(IsNTPMatrix, [[2, 2], [0, 1]], 10, 10);;
558
+ gap> IsBound(mat[10]);
559
+ false
560
+ gap> IsBound(mat[1]);
561
+ true
562
+ gap> IsBound(mat[3]);
563
+ false
564
+
565
+ # Test \<
566
+ gap> Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10) <
567
+ > Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 11);
568
+ true
569
+ gap> Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10) <
570
+ > Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10);
571
+ false
572
+
573
+ # Test Matrix for a finite field and list consisting of an empty list
574
+ gap> Matrix(GF(3), [[]]);
575
+ [ [ ] ]
576
+
577
+ # Pickling
578
+ gap> filename := Concatenation(SEMIGROUPS.PackageDir,
579
+ > "/tst/standard/elements/semiringmat.tst");;
580
+ gap> f := IO_File(filename, "r");;
581
+ gap> x := Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10);
582
+ Matrix(IsTropicalMaxPlusMatrix, [[2, 2], [0, 1]], 10)
583
+ gap> IO_Unpicklers.MOSR(f);
584
+ IO_Error
585
+ gap> IO_Pickle(f, x);
586
+ IO_Error
587
+
588
+ # RandomMatrix
589
+ gap> RandomMatrix(Integers, -1);
590
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
591
+ Error, no 2nd choice method found for `RandomMatrix' on 2 arguments
592
+ gap> RandomMatrix(Integers, -1, 2);
593
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
594
+ Error, no 2nd choice method found for `RandomMatrix' on 3 arguments
595
+ gap> RandomMatrix(Integers, -1, [2]);
596
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
597
+ Error, no 2nd choice method found for `RandomMatrix' on 3 arguments
598
+
599
+ #
600
+ gap> SEMIGROUPS.StopTest();
601
+ gap> STOP_TEST("Semigroups package: standard/elements/semiringmat.tst");
@@ -0,0 +1,58 @@
1
+ #############################################################################
2
+ ##
3
+ #W standard/elements/trans.tst
4
+ #Y Copyright (C) 2016-2022 James D. Mitchell
5
+ ##
6
+ ## Licensing information can be found in the README file of this package.
7
+ ##
8
+ #############################################################################
9
+ ##
10
+
11
+ #@local f
12
+ gap> START_TEST("Semigroups package: standard/elements/trans.tst");
13
+ gap> LoadPackage("semigroups", false);;
14
+
15
+ # Set info levels and user preferences
16
+ gap> SEMIGROUPS.StartTest();
17
+
18
+ # Test CanonicalTransformation
19
+ gap> f := Transformation([10, 8, 4, 6, 4, 5, 3, 8, 8, 2]);;
20
+ gap> CanonicalTransformation(f);
21
+ Transformation( [ 6, 8, 2, 7, 4, 5, 5, 10, 10, 10 ] )
22
+ gap> CanonicalTransformation(CanonicalTransformation(f));
23
+ Transformation( [ 6, 8, 2, 7, 4, 5, 5, 10, 10, 10 ] )
24
+ gap> Number(Set(FullTransformationMonoid(5),
25
+ > x -> CanonicalTransformation(x, 5)));
26
+ 47
27
+ gap> CanonicalTransformation(IdentityTransformation);
28
+ IdentityTransformation
29
+ gap> CanonicalTransformation(IdentityTransformation, 2);
30
+ IdentityTransformation
31
+ gap> CanonicalTransformation(Transformation([1, 3, 2]), 2);
32
+ Error, the second argument (an integer) must be at least the degree of the fir\
33
+ st argument (a transformation)
34
+
35
+ # Test TransformationByImageAndKernel
36
+ gap> TransformationByImageAndKernel([1 .. 4],
37
+ > [[1, 2, 3], [4, 5], [6, 8], [7]]);
38
+ Transformation( [ 1, 1, 1, 2, 2, 3, 4, 3 ] )
39
+ gap> TransformationByImageAndKernel([1 .. 4], [[1, 2], [4, 5], [6, 8], [7]]);
40
+ Error, the union of the second argument (a partition) must be [1 .. 7]
41
+ gap> TransformationByImageAndKernel([1 .. 4],
42
+ > [[1, 2], [4, 5], [6, -1], [7]]);
43
+ Error, the argument must be a list of lists of pos ints
44
+ gap> TransformationByImageAndKernel([1 .. 4],
45
+ > [[1, 2], [4, 5], "a", [7]]);
46
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
47
+ Error, no 1st choice method found for `TransformationByImageAndKernel' on 2 ar\
48
+ guments
49
+ gap> TransformationByImageAndKernel([1 .. 4], "a");
50
+ Error, no method found! For debugging hints type ?Recovery from NoMethodFound
51
+ Error, no 1st choice method found for `TransformationByImageAndKernel' on 2 ar\
52
+ guments
53
+ gap> TransformationByImageAndKernel([1 .. 4], [[1 .. 4]]);
54
+ fail
55
+
56
+ #
57
+ gap> SEMIGROUPS.StopTest();
58
+ gap> STOP_TEST("Semigroups package: standard/elements/trans.tst");