passagemath-gap-pkg-semigroups 10.6.30__cp312-abi3-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.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1158 -0
- gap/pkg/semigroups/config.status +1131 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.abi3.so +0 -0
|
@@ -0,0 +1,1815 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
#W testinstall.tst
|
|
4
|
+
#Y Copyright (C) 2011-17 James D. Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#@local B, C, D, F, G, H, I, L, LL, M, M0, P, R, R1, R2, S, T, U, V, W, acting
|
|
12
|
+
#@local bug, c, cong, contain, ec, es, f, file, g, gens, gns, hom, i, id, inv
|
|
13
|
+
#@local iso, iter, latt, log, looking, lookingfor, map, mat, max, n, number, o
|
|
14
|
+
#@local pair, pairs, r, regular, rel, rels, s, s1, s2, sgns, slist, small, t
|
|
15
|
+
#@local tab, tuples, u, x, y, z
|
|
16
|
+
gap> START_TEST("Semigroups package: testinstall.tst");
|
|
17
|
+
gap> LoadPackage("semigroups", false);;
|
|
18
|
+
|
|
19
|
+
# Set info levels and user preferences
|
|
20
|
+
gap> SEMIGROUPS.StartTest();
|
|
21
|
+
|
|
22
|
+
# TestInstall3
|
|
23
|
+
gap> S := Semigroup(Transformation([2, 3, 4, 1, 1, 1]));;
|
|
24
|
+
gap> IsMonoidAsSemigroup(S);
|
|
25
|
+
true
|
|
26
|
+
gap> IsMonoid(S);
|
|
27
|
+
false
|
|
28
|
+
gap> iso := IsomorphismTransformationMonoid(S);;
|
|
29
|
+
gap> IsCommutativeSemigroup(Range(iso));
|
|
30
|
+
true
|
|
31
|
+
gap> IsMonogenicSemigroup(Range(iso));
|
|
32
|
+
true
|
|
33
|
+
gap> RespectsMultiplication(iso);
|
|
34
|
+
true
|
|
35
|
+
gap> ForAll(S, x -> (x ^ iso) ^ InverseGeneralMapping(iso) = x);
|
|
36
|
+
true
|
|
37
|
+
|
|
38
|
+
# TestInstall4
|
|
39
|
+
gap> S := Semigroup(Transformation([1, 1, 1]), Transformation([3, 1, 2]));
|
|
40
|
+
<transformation semigroup of degree 3 with 2 generators>
|
|
41
|
+
gap> IsSimpleSemigroup(S);
|
|
42
|
+
false
|
|
43
|
+
|
|
44
|
+
# TestInstall5
|
|
45
|
+
gap> S := SingularTransformationSemigroup(6);
|
|
46
|
+
<regular transformation semigroup ideal of degree 6 with 1 generator>
|
|
47
|
+
gap> Size(S);
|
|
48
|
+
45936
|
|
49
|
+
|
|
50
|
+
# TestInstall6
|
|
51
|
+
gap> S := Semigroup(IdentityTransformation, rec(acting := true));;
|
|
52
|
+
gap> LambdaOrb(S);
|
|
53
|
+
<open orbit, 1 points with Schreier tree with log>
|
|
54
|
+
gap> Enumerate(last);
|
|
55
|
+
<closed orbit, 2 points with Schreier tree with log>
|
|
56
|
+
|
|
57
|
+
# TestInstall7
|
|
58
|
+
gap> gens := [Transformation([1, 3, 2, 3]),
|
|
59
|
+
> Transformation([1, 4, 1, 2]),
|
|
60
|
+
> Transformation([3, 4, 2, 2]),
|
|
61
|
+
> Transformation([4, 1, 2, 1])];;
|
|
62
|
+
gap> S := Monoid(gens);;
|
|
63
|
+
gap> Size(S); NrRClasses(S); NrLClasses(S); NrDClasses(S);
|
|
64
|
+
69
|
|
65
|
+
17
|
|
66
|
+
21
|
|
67
|
+
9
|
|
68
|
+
gap> NrIdempotents(S); NrRegularDClasses(S); IsRegularSemigroup(S);
|
|
69
|
+
22
|
|
70
|
+
6
|
|
71
|
+
false
|
|
72
|
+
gap> x := Transformation([1, 3, 4, 1]);;
|
|
73
|
+
gap> x in S;
|
|
74
|
+
false
|
|
75
|
+
gap> x := Transformation([1, 1, 3, 1]);;
|
|
76
|
+
gap> x in S;
|
|
77
|
+
true
|
|
78
|
+
gap> T := Semigroup(gens{[1 .. 3]});
|
|
79
|
+
<transformation semigroup of degree 4 with 3 generators>
|
|
80
|
+
gap> ForAll(T, x -> x in S);
|
|
81
|
+
true
|
|
82
|
+
gap> Size(T);
|
|
83
|
+
60
|
|
84
|
+
|
|
85
|
+
# TestInstall8: Issue 2
|
|
86
|
+
gap> S := Semigroup(Transformation([4, 4, 4, 4]));;
|
|
87
|
+
gap> AsList(S);
|
|
88
|
+
[ Transformation( [ 4, 4, 4, 4 ] ) ]
|
|
89
|
+
|
|
90
|
+
# TestInstall9: Issue 3
|
|
91
|
+
gap> S := Semigroup(Transformation([3, 5, 5, 5, 3]),
|
|
92
|
+
> Transformation([5, 5, 2, 1, 5]));;
|
|
93
|
+
gap> x := Transformation([3, 3, 5, 3, 3]);;
|
|
94
|
+
gap> IsRegularSemigroupElement(S, x);
|
|
95
|
+
true
|
|
96
|
+
gap> x := Transformation([5, 5, 5, 5, 5]);;
|
|
97
|
+
gap> IsRegularSemigroupElement(S, x);
|
|
98
|
+
true
|
|
99
|
+
gap> x := Transformation([3, 5, 5, 5, 3]);;
|
|
100
|
+
gap> IsRegularSemigroupElement(S, x);
|
|
101
|
+
true
|
|
102
|
+
gap> IsRegularSemigroup(S);
|
|
103
|
+
false
|
|
104
|
+
gap> x := Transformation([5, 5, 2, 1, 5]);;
|
|
105
|
+
gap> IsRegularSemigroupElement(S, x);
|
|
106
|
+
false
|
|
107
|
+
|
|
108
|
+
# TestInstall10: Issue 9
|
|
109
|
+
gap> gens := [Transformation([1, 2, 3, 9, 5, 11, 7, 8, 9, 10, 11, 12]),
|
|
110
|
+
> Transformation([1, 2, 3, 9, 5, 11, 9, 8, 9, 8, 11, 12]),
|
|
111
|
+
> Transformation([1, 2, 5, 7, 8, 11, 9, 12, 9, 12, 11, 10]),
|
|
112
|
+
> Transformation([1, 2, 8, 9, 5, 11, 9, 8, 9, 10, 11, 12]),
|
|
113
|
+
> Transformation([1, 2, 8, 11, 12, 7, 11, 8, 11, 10, 9, 12]),
|
|
114
|
+
> Transformation([1, 2, 10, 9, 12, 11, 9, 10, 9, 8, 11, 12]),
|
|
115
|
+
> Transformation([1, 2, 12, 4, 10, 6, 7, 12, 9, 12, 11, 10]),
|
|
116
|
+
> Transformation([1, 5, 3, 11, 5, 9, 11, 8, 11, 10, 9, 12]),
|
|
117
|
+
> Transformation([1, 5, 8, 6, 12, 7, 11, 10, 11, 10, 9, 12]),
|
|
118
|
+
> Transformation([1, 5, 8, 11, 12, 7, 11, 8, 11, 10, 9, 12]),
|
|
119
|
+
> Transformation([1, 5, 12, 7, 8, 11, 9, 12, 9, 12, 11, 10]),
|
|
120
|
+
> Transformation([1, 8, 3, 9, 5, 11, 9, 8, 9, 10, 11, 12]),
|
|
121
|
+
> Transformation([1, 8, 5, 7, 8, 11, 9, 12, 9, 12, 11, 10]),
|
|
122
|
+
> Transformation([1, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),
|
|
123
|
+
> Transformation([1, 12, 10, 9, 12, 11, 7, 10, 4, 10, 6, 12]),
|
|
124
|
+
> Transformation([2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11]),
|
|
125
|
+
> Transformation([3, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11]),
|
|
126
|
+
> Transformation([5, 6, 7, 8, 11, 12, 10, 9, 10, 9, 12, 11]),
|
|
127
|
+
> Transformation([5, 6, 11, 8, 7, 12, 10, 11, 10, 11, 12, 9]),
|
|
128
|
+
> Transformation([5, 7, 10, 11, 9, 5, 11, 8, 11, 8, 12, 9]),
|
|
129
|
+
> Transformation([5, 10, 7, 5, 10, 11, 12, 9, 12, 9, 11, 8]),
|
|
130
|
+
> Transformation([7, 3, 11, 9, 8, 5, 9, 11, 9, 11, 5, 3]),
|
|
131
|
+
> Transformation([7, 5, 8, 6, 12, 7, 11, 10, 11, 10, 9, 12]),
|
|
132
|
+
> Transformation([7, 12, 11, 10, 5, 9, 10, 11, 8, 11, 9, 12]),
|
|
133
|
+
> Transformation([9, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),
|
|
134
|
+
> Transformation([9, 11, 8, 5, 11, 9, 12, 3, 5, 8, 9, 11]),
|
|
135
|
+
> Transformation([11, 7, 9, 5, 10, 11, 12, 9, 12, 9, 11, 8])];;
|
|
136
|
+
gap> S := Semigroup(gens);;
|
|
137
|
+
gap> NrDClasses(S);
|
|
138
|
+
232
|
|
139
|
+
gap> Size(S);
|
|
140
|
+
11858
|
|
141
|
+
gap> NrRClasses(S);
|
|
142
|
+
1455
|
|
143
|
+
gap> NrLClasses(S);
|
|
144
|
+
690
|
|
145
|
+
gap> NrHClasses(S);
|
|
146
|
+
5356
|
|
147
|
+
gap> NrIdempotents(S);
|
|
148
|
+
300
|
|
149
|
+
gap> Sum(List(GreensDClasses(S), NrRClasses)) = NrRClasses(S);
|
|
150
|
+
true
|
|
151
|
+
gap> ForAll(Concatenation(List(GreensDClasses(S), RClassReps)),
|
|
152
|
+
> x -> x in S);
|
|
153
|
+
true
|
|
154
|
+
|
|
155
|
+
# TestInstall12
|
|
156
|
+
gap> gens := [Transformation([1, 2, 3, 5, 4, 6, 7, 8]),
|
|
157
|
+
> Transformation([4, 4, 3, 1, 5, 6, 3, 8]),
|
|
158
|
+
> Transformation([3, 6, 1, 7, 3, 4, 8, 3]),
|
|
159
|
+
> Transformation([1, 2, 3, 4, 5, 3, 7, 8]),
|
|
160
|
+
> Transformation([1, 2, 3, 4, 1, 6, 7, 8]),
|
|
161
|
+
> Transformation([8, 8, 3, 4, 5, 7, 6, 1])];;
|
|
162
|
+
gap> s := Monoid(gens);
|
|
163
|
+
<transformation monoid of degree 8 with 6 generators>
|
|
164
|
+
gap> t := ClosureSemigroup(s, [Transformation([4, 4, 3, 1, 5, 6, 3, 8])]);
|
|
165
|
+
<transformation monoid of degree 8 with 6 generators>
|
|
166
|
+
gap> Size(t) = Size(Semigroup(Generators(t)));
|
|
167
|
+
true
|
|
168
|
+
|
|
169
|
+
# TestInstall13
|
|
170
|
+
gap> S := Semigroup(Transformation([1, 2, 3, 4, 5, 6, 7, 8, 9]),
|
|
171
|
+
> Transformation([1, 2, 3, 4, 5, 6, 7, 9, 8]),
|
|
172
|
+
> Transformation([7, 2, 8, 4, 5, 6, 1, 9, 8]),
|
|
173
|
+
> Transformation([5, 5, 3, 4, 1, 6, 7, 8, 9]),
|
|
174
|
+
> Transformation([5, 7, 3, 4, 1, 6, 7, 8, 9]),
|
|
175
|
+
> Transformation([1, 2, 8, 6, 5, 4, 7, 9, 8]),
|
|
176
|
+
> Transformation([1, 8, 6, 2, 7, 8, 8, 9, 5]),
|
|
177
|
+
> Transformation([1, 2, 3, 8, 8, 7, 7, 9, 5]),
|
|
178
|
+
> Transformation([1, 2, 3, 1, 8, 7, 7, 5, 9]),
|
|
179
|
+
> Transformation([7, 7, 2, 7, 8, 8, 9, 5, 1]),
|
|
180
|
+
> Transformation([7, 2, 5, 2, 8, 8, 1, 9, 5]),
|
|
181
|
+
> Transformation([7, 2, 8, 1, 8, 7, 1, 9, 5]),
|
|
182
|
+
> Transformation([1, 1, 4, 8, 9, 9, 8, 5, 7]),
|
|
183
|
+
> Transformation([1, 1, 1, 2, 5, 5, 7, 8, 9]),
|
|
184
|
+
> Transformation([1, 2, 1, 1, 8, 7, 7, 5, 9]),
|
|
185
|
+
> Transformation([1, 2, 8, 8, 8, 2, 7, 9, 5]),
|
|
186
|
+
> Transformation([7, 2, 7, 1, 8, 8, 1, 5, 9]),
|
|
187
|
+
> Transformation([8, 8, 2, 8, 5, 5, 9, 7, 1]),
|
|
188
|
+
> Transformation([1, 2, 1, 1, 5, 5, 7, 8, 9]),
|
|
189
|
+
> Transformation([5, 5, 4, 5, 8, 8, 9, 7, 1]),
|
|
190
|
+
> Transformation([1, 2, 8, 8, 8, 1, 7, 9, 5]),
|
|
191
|
+
> Transformation([7, 2, 7, 2, 5, 5, 1, 8, 9]),
|
|
192
|
+
> rec(acting := true));;
|
|
193
|
+
gap> x := Transformation([7, 7, 4, 2, 1, 8, 8, 9, 5]);;
|
|
194
|
+
gap> D := DClass(S, Transformation([1, 8, 6, 2, 7, 8, 8, 9, 5]));;
|
|
195
|
+
gap> L := LClass(D, x);
|
|
196
|
+
<Green's L-class: Transformation( [ 7, 7, 4, 2, 1, 8, 8, 9, 5 ] )>
|
|
197
|
+
gap> LL := LClass(S, x);
|
|
198
|
+
<Green's L-class: Transformation( [ 7, 7, 4, 2, 1, 8, 8, 9, 5 ] )>
|
|
199
|
+
gap> List(HClassReps(LL), x -> x in LL);
|
|
200
|
+
[ true, true, true, true ]
|
|
201
|
+
gap> List(HClassReps(L), x -> x in L);
|
|
202
|
+
[ true, true, true, true ]
|
|
203
|
+
gap> L = LL;
|
|
204
|
+
true
|
|
205
|
+
gap> LL < L;
|
|
206
|
+
false
|
|
207
|
+
gap> L < LL;
|
|
208
|
+
false
|
|
209
|
+
gap> Elements(L) = Elements(LL);
|
|
210
|
+
true
|
|
211
|
+
gap> Size(L); Size(LL);
|
|
212
|
+
8
|
|
213
|
+
8
|
|
214
|
+
gap> DClassOfLClass(LL) = DClassOfLClass(L);
|
|
215
|
+
true
|
|
216
|
+
gap> DClassOfLClass(L) = D;
|
|
217
|
+
true
|
|
218
|
+
gap> NrHClasses(L); NrHClasses(LL);
|
|
219
|
+
4
|
|
220
|
+
4
|
|
221
|
+
gap> HClassReps(L);
|
|
222
|
+
[ Transformation( [ 1, 8, 4, 2, 7, 8, 8, 9, 5 ] ),
|
|
223
|
+
Transformation( [ 7, 7, 4, 2, 1, 8, 8, 9, 5 ] ),
|
|
224
|
+
Transformation( [ 1, 8, 4, 2, 7, 8, 8, 5 ] ),
|
|
225
|
+
Transformation( [ 7, 7, 4, 2, 1, 8, 8, 5 ] ) ]
|
|
226
|
+
gap> HClassReps(LL);
|
|
227
|
+
[ Transformation( [ 1, 8, 4, 2, 7, 8, 8, 9, 5 ] ),
|
|
228
|
+
Transformation( [ 7, 7, 4, 2, 1, 8, 8, 9, 5 ] ),
|
|
229
|
+
Transformation( [ 1, 8, 4, 2, 7, 8, 8, 5 ] ),
|
|
230
|
+
Transformation( [ 7, 7, 4, 2, 1, 8, 8, 5 ] ) ]
|
|
231
|
+
gap> Idempotents(L);
|
|
232
|
+
[ ]
|
|
233
|
+
gap> Idempotents(LL);
|
|
234
|
+
[ ]
|
|
235
|
+
gap> IsRegularDClass(D);
|
|
236
|
+
false
|
|
237
|
+
gap> Size(S);
|
|
238
|
+
6982
|
|
239
|
+
gap> Set(HClasses(L)) = Set(HClasses(LL));
|
|
240
|
+
true
|
|
241
|
+
gap> SchutzenbergerGroup(L);
|
|
242
|
+
Group([ (5,9), (1,7) ])
|
|
243
|
+
gap> g := SchutzenbergerGroup(LL);
|
|
244
|
+
Group([ (5,9), (1,7) ])
|
|
245
|
+
|
|
246
|
+
# TestInstall14: IsomorphismTransformationSemigroup/Monoid
|
|
247
|
+
gap> G := Group([(5, 9), (1, 7)]);;
|
|
248
|
+
gap> IsomorphismTransformationSemigroup(G);;
|
|
249
|
+
gap> S := Range(last);
|
|
250
|
+
<transformation group of degree 9 with 2 generators>
|
|
251
|
+
gap> IsGroupAsSemigroup(S);
|
|
252
|
+
true
|
|
253
|
+
gap> Generators(S);
|
|
254
|
+
[ Transformation( [ 1, 2, 3, 4, 9, 6, 7, 8, 5 ] ),
|
|
255
|
+
Transformation( [ 7, 2, 3, 4, 5, 6, 1 ] ) ]
|
|
256
|
+
gap> T := Range(IsomorphismTransformationMonoid(G));
|
|
257
|
+
<transformation group of degree 9 with 2 generators>
|
|
258
|
+
gap> Generators(T);
|
|
259
|
+
[ Transformation( [ 1, 2, 3, 4, 9, 6, 7, 8, 5 ] ),
|
|
260
|
+
Transformation( [ 7, 2, 3, 4, 5, 6, 1 ] ) ]
|
|
261
|
+
gap> H := Range(IsomorphismPermGroup(T));
|
|
262
|
+
Group([ (), (5,9), (1,7) ])
|
|
263
|
+
|
|
264
|
+
# TestInstall15: Issue 22 - takes about 49ms
|
|
265
|
+
gap> x := Transformation([2, 12, 10, 7, 6, 11, 8, 3, 4, 5, 1, 11]);;
|
|
266
|
+
gap> S := FullTransformationSemigroup(12);;
|
|
267
|
+
gap> S := Semigroup(S, rec(acting := true, regular := true));;
|
|
268
|
+
gap> InversesOfSemigroupElement(S, x);
|
|
269
|
+
[ Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 3, 3, 6, 2 ] ),
|
|
270
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 7, 3, 6, 2 ] ),
|
|
271
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 6, 3, 6, 2 ] ),
|
|
272
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 2, 3, 6, 2 ] ),
|
|
273
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 4, 3, 6, 2 ] ),
|
|
274
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 11, 3, 6, 2 ] ),
|
|
275
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 1, 3, 6, 2 ] ),
|
|
276
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 5, 3, 6, 2 ] ),
|
|
277
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 10, 3, 6, 2 ] ),
|
|
278
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 9, 3, 6, 2 ] ),
|
|
279
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 8, 3, 6, 2 ] ),
|
|
280
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 3, 3, 12, 2 ] ),
|
|
281
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 7, 3, 12, 2 ] ),
|
|
282
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 12, 3, 12, 2 ] ),
|
|
283
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 2, 3, 12, 2 ] ),
|
|
284
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 4, 3, 12, 2 ] ),
|
|
285
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 11, 3, 12, 2 ] ),
|
|
286
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 1, 3, 12, 2 ] ),
|
|
287
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 5, 3, 12, 2 ] ),
|
|
288
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 10, 3, 12, 2 ] ),
|
|
289
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 9, 3, 12, 2 ] ),
|
|
290
|
+
Transformation( [ 11, 1, 8, 9, 10, 5, 4, 7, 8, 3, 12, 2 ] ) ]
|
|
291
|
+
|
|
292
|
+
# TestInstall16
|
|
293
|
+
gap> file := Concatenation(PackageInfo("semigroups")[1]!.InstallationPath,
|
|
294
|
+
> "/data/tst/testinstall.pickle");;
|
|
295
|
+
gap> ReadGenerators(file, 1);
|
|
296
|
+
[ <identity partial perm on [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]>,
|
|
297
|
+
<identity partial perm on [ 1, 2, 3, 4, 5, 6, 7, 9 ]>,
|
|
298
|
+
<identity partial perm on [ 1, 2, 3, 4, 5, 6, 9 ]>,
|
|
299
|
+
<identity partial perm on [ 1, 2, 3, 4, 5, 9 ]>,
|
|
300
|
+
<identity partial perm on [ 1, 2, 3, 4, 9 ]>,
|
|
301
|
+
<identity partial perm on [ 1, 2, 3, 9 ]>,
|
|
302
|
+
<identity partial perm on [ 1, 2, 9 ]>, <identity partial perm on [ 1, 9 ]>
|
|
303
|
+
]
|
|
304
|
+
|
|
305
|
+
# TestInstall17
|
|
306
|
+
gap> S := InverseSemigroup(
|
|
307
|
+
> PartialPermNC([1, 2], [3, 1]),
|
|
308
|
+
> PartialPermNC([1, 2, 3], [1, 3, 4]),
|
|
309
|
+
> PartialPermNC([1, 2, 3], [2, 4, 1]),
|
|
310
|
+
> PartialPermNC([1, 3, 4], [3, 4, 1]));;
|
|
311
|
+
gap> Size(S); NrRClasses(S); NrLClasses(S); NrDClasses(S);
|
|
312
|
+
116
|
|
313
|
+
14
|
|
314
|
+
14
|
|
315
|
+
4
|
|
316
|
+
gap> NrIdempotents(S); NrRegularDClasses(S); IsRegularSemigroup(S);
|
|
317
|
+
14
|
|
318
|
+
4
|
|
319
|
+
true
|
|
320
|
+
gap> ForAll(S, x -> x in S);
|
|
321
|
+
true
|
|
322
|
+
gap> T := InverseSemigroup(Generators(S){[1 .. 3]});
|
|
323
|
+
<inverse partial perm semigroup of rank 4 with 3 generators>
|
|
324
|
+
gap> ForAll(T, x -> x in S);
|
|
325
|
+
true
|
|
326
|
+
gap> Size(T);
|
|
327
|
+
98
|
|
328
|
+
|
|
329
|
+
# TestInstall18
|
|
330
|
+
gap> S := InverseSemigroup(PartialPermNC([1, 3, 5, 6, 7], [9, 1, 5, 3, 8]),
|
|
331
|
+
> PartialPermNC([1, 2, 3, 5, 6, 7, 9, 10],
|
|
332
|
+
> [4, 10, 5, 6, 7, 1, 3, 2]));;
|
|
333
|
+
gap> x := PartialPermNC([3, 4, 5, 6], [1, 3, 6, 5]);;
|
|
334
|
+
gap> D := DClass(S, x);;
|
|
335
|
+
gap> F := InjectionPrincipalFactor(D);; G := InverseGeneralMapping(F);;
|
|
336
|
+
gap> (x ^ F) ^ G = x;
|
|
337
|
+
true
|
|
338
|
+
gap> ForAll(D, x -> (x ^ F) ^ G = x);
|
|
339
|
+
true
|
|
340
|
+
|
|
341
|
+
# TestInstall18a
|
|
342
|
+
gap> S := InverseSemigroup(PartialPermNC([1, 3, 5, 6, 7], [9, 1, 5, 3, 8]),
|
|
343
|
+
> PartialPermNC([1, 2, 3, 5, 6, 7, 9, 10],
|
|
344
|
+
> [4, 10, 5, 6, 7, 1, 3, 2]));;
|
|
345
|
+
gap> D := DClass(S, PartialPerm([2, 10], [2, 10]));
|
|
346
|
+
<Green's D-class: <identity partial perm on [ 2, 10 ]>>
|
|
347
|
+
gap> F := IsomorphismReesMatrixSemigroup(D);;
|
|
348
|
+
gap> G := InverseGeneralMapping(F);;
|
|
349
|
+
gap> ForAll(D, x -> (x ^ F) ^ G = x);
|
|
350
|
+
true
|
|
351
|
+
|
|
352
|
+
# TestInstall19: from JS' MultiplicativeZero.tst
|
|
353
|
+
gap> S := InverseMonoid(PartialPerm([1, 2, 3, 4]),
|
|
354
|
+
> PartialPerm([1, 3, 2, 4]),
|
|
355
|
+
> PartialPerm([1, 2, 0, 0]),
|
|
356
|
+
> PartialPerm([1, 0, 0, 4]));;
|
|
357
|
+
gap> x := PartialPerm([1, 0, 0, 0]);;
|
|
358
|
+
gap> x in S;
|
|
359
|
+
true
|
|
360
|
+
gap> ForAll(S, y -> x * y = x and y * x = x);
|
|
361
|
+
true
|
|
362
|
+
gap> x;
|
|
363
|
+
<identity partial perm on [ 1 ]>
|
|
364
|
+
gap> MultiplicativeZero(S);
|
|
365
|
+
<identity partial perm on [ 1 ]>
|
|
366
|
+
|
|
367
|
+
# TestInstall20: from JS' PartialPermInjective.tst
|
|
368
|
+
gap> PartialPerm([0, 0, 1, 2]);
|
|
369
|
+
[3,1][4,2]
|
|
370
|
+
|
|
371
|
+
# TestInstall21: from JS' RestricterPartialPerm.tst
|
|
372
|
+
gap> x := PartialPerm([2 .. 7], [1 .. 6]);
|
|
373
|
+
> RestrictedPartialPerm(x, [2 .. 7]);
|
|
374
|
+
[7,6,5,4,3,2,1]
|
|
375
|
+
[7,6,5,4,3,2,1]
|
|
376
|
+
|
|
377
|
+
# TestInstall22: from JS' SizeInverseMonoid.tst
|
|
378
|
+
gap> S := InverseMonoid(PartialPerm([1, 2, 3, 4, 5, 6, 7, 8],
|
|
379
|
+
> [1, 6, 3, 4, 8, 2, 7, 5]),
|
|
380
|
+
> PartialPerm([1, 2, 3, 4, 5, 6, 7, 8],
|
|
381
|
+
> [1, 2, 7, 4, 8, 6, 3, 5]),
|
|
382
|
+
> PartialPerm([1, 4, 5, 8], [1, 4, 5, 8]),
|
|
383
|
+
> PartialPerm([1, 2, 4, 6], [1, 2, 4, 6]),
|
|
384
|
+
> PartialPerm([1, 3, 4, 7], [1, 3, 4, 7]),
|
|
385
|
+
> PartialPerm([1], [1]));;
|
|
386
|
+
gap> [Size(S), Size(AsSet(S))];
|
|
387
|
+
[ 12, 12 ]
|
|
388
|
+
|
|
389
|
+
# TestInstall23: from JS' email
|
|
390
|
+
gap> S := InverseMonoid(PartialPerm([1, 3, 2]), PartialPerm([1]));;
|
|
391
|
+
gap> [Size(S), Size(AsSet(S))];
|
|
392
|
+
[ 3, 3 ]
|
|
393
|
+
gap> Elements(S);
|
|
394
|
+
[ <identity partial perm on [ 1 ]>, <identity partial perm on [ 1, 2, 3 ]>,
|
|
395
|
+
(1)(2,3) ]
|
|
396
|
+
|
|
397
|
+
# TestInstall24
|
|
398
|
+
gap> S := FreeInverseSemigroup(3);
|
|
399
|
+
<free inverse semigroup on the generators [ x1, x2, x3 ]>
|
|
400
|
+
gap> Size(S);
|
|
401
|
+
infinity
|
|
402
|
+
gap> x := S.1;
|
|
403
|
+
x1
|
|
404
|
+
gap> y := S.2;
|
|
405
|
+
x2
|
|
406
|
+
gap> z := S.3;
|
|
407
|
+
x3
|
|
408
|
+
gap> u := x ^ 5 * y ^ 3 * z;
|
|
409
|
+
x1*x1*x1*x1*x1*x2*x2*x2*x3
|
|
410
|
+
gap> u ^ -1;
|
|
411
|
+
x3^-1*x2^-1*x2^-1*x2^-1*x1^-1*x1^-1*x1^-1*x1^-1*x1^-1
|
|
412
|
+
gap> x ^ 2 * y = x ^ 2 * y;
|
|
413
|
+
true
|
|
414
|
+
gap> x * x ^ -1 = y * y ^ -1;
|
|
415
|
+
false
|
|
416
|
+
|
|
417
|
+
# TestInstall25: Issue 27 in the new numbering...
|
|
418
|
+
gap> S := Semigroup(List(GeneratorsOfSemigroup(FullTransformationSemigroup(3)),
|
|
419
|
+
> x -> AsTransformation(x, 4)));;
|
|
420
|
+
gap> IsFullTransformationSemigroup(S);
|
|
421
|
+
true
|
|
422
|
+
gap> IdentityTransformation in S;
|
|
423
|
+
true
|
|
424
|
+
|
|
425
|
+
# TestInstall26: Issue 23 in the new numbering...
|
|
426
|
+
gap> S := FullTransformationSemigroup(3);;
|
|
427
|
+
gap> x := Transformation([4, 3, 1, 2]);;
|
|
428
|
+
gap> ClosureSemigroup(S, x);
|
|
429
|
+
<transformation monoid of degree 4 with 4 generators>
|
|
430
|
+
|
|
431
|
+
# TestInstall27: Issue 36 in the new numbering...
|
|
432
|
+
gap> S := Semigroup(IdentityTransformation);
|
|
433
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
434
|
+
gap> SmallGeneratingSet(S);
|
|
435
|
+
[ IdentityTransformation ]
|
|
436
|
+
|
|
437
|
+
# TestInstall28: MaximalSubsemigroups of Rees 0-matrix semigroups
|
|
438
|
+
gap> G := Group((1, 2), (3, 4));;
|
|
439
|
+
gap> mat := [[(), ()], [(), 0], [(), (1, 2)]];;
|
|
440
|
+
gap> R := ReesZeroMatrixSemigroup(G, mat);;
|
|
441
|
+
gap> max := MaximalSubsemigroups(R);;
|
|
442
|
+
gap> Length(max);
|
|
443
|
+
6
|
|
444
|
+
gap> IsDuplicateFreeList(max);
|
|
445
|
+
true
|
|
446
|
+
gap> ForAll(MaximalSubsemigroups(R), U -> IsMaximalSubsemigroup(R, U));
|
|
447
|
+
true
|
|
448
|
+
|
|
449
|
+
# TestInstall29: ClosureSemigroup with an element of higher degree
|
|
450
|
+
gap> S := Semigroup(Transformation([1, 3, 3, 2]),
|
|
451
|
+
> Transformation([4, 1, 4, 2]),
|
|
452
|
+
> Transformation([4, 2, 3, 3]),
|
|
453
|
+
> Transformation([4, 4, 4, 4]));;
|
|
454
|
+
gap> Size(S);
|
|
455
|
+
130
|
|
456
|
+
gap> x := Transformation([3, 5, 1, 5, 2]);;
|
|
457
|
+
gap> T := ClosureSemigroup(S, x);;
|
|
458
|
+
gap> Size(T);
|
|
459
|
+
1619
|
|
460
|
+
|
|
461
|
+
# TestInstall30: bug with Elements and IsomorphismPermGroup for group H-class
|
|
462
|
+
gap> R := ReesZeroMatrixSemigroup(Group(()),
|
|
463
|
+
> [[(), (), ()], [(), 0, 0], [(), 0, 0]]);
|
|
464
|
+
<Rees 0-matrix semigroup 3x3 over Group(())>
|
|
465
|
+
gap> R := ReesZeroMatrixSubsemigroup(R, [2, 3], Group(()), [2, 3]);
|
|
466
|
+
<Rees 0-matrix semigroup 2x2 over Group(())>
|
|
467
|
+
gap> H := First(HClasses(R), IsGroupHClass);
|
|
468
|
+
<Green's H-class: 0>
|
|
469
|
+
gap> Elements(H);
|
|
470
|
+
[ 0 ]
|
|
471
|
+
gap> f := IsomorphismPermGroup(H);;
|
|
472
|
+
gap> g := InverseGeneralMapping(f);;
|
|
473
|
+
gap> Elements(H)[1] ^ f;
|
|
474
|
+
()
|
|
475
|
+
gap> () ^ g;
|
|
476
|
+
0
|
|
477
|
+
|
|
478
|
+
# TestInstall31: Issue 47: bug in ClosureSemigroup caused which assumed
|
|
479
|
+
# that if the rank of an R-class rep was greater than the maximum rank of the
|
|
480
|
+
# collection being added, then we hadn't seen an R-class rep with the same
|
|
481
|
+
# rho-value before.
|
|
482
|
+
gap> S := Semigroup([Transformation([1, 2, 4, 6, 1, 6]),
|
|
483
|
+
> Transformation([1, 6, 1, 1, 6, 5]),
|
|
484
|
+
> Transformation([2, 6, 2, 4, 3, 2]),
|
|
485
|
+
> Transformation([4, 1, 3, 6, 1, 5]),
|
|
486
|
+
> Transformation([4, 1, 4, 2, 4, 2]),
|
|
487
|
+
> Transformation([6, 6, 4, 6, 1, 1])]);
|
|
488
|
+
<transformation semigroup of degree 6 with 6 generators>
|
|
489
|
+
gap> T := Semigroup([Transformation([1, 5, 3, 4, 5]),
|
|
490
|
+
> Transformation([6, 4, 3, 5, 4, 1]),
|
|
491
|
+
> Transformation([1, 2, 4, 6, 1, 6]),
|
|
492
|
+
> Transformation([1, 5, 1, 6, 3, 1]),
|
|
493
|
+
> Transformation([4, 1, 6, 5, 4, 5]),
|
|
494
|
+
> Transformation([2, 6, 2, 4, 3, 2]),
|
|
495
|
+
> Transformation([2, 1, 2, 4, 4, 2]),
|
|
496
|
+
> Transformation([4, 5, 4, 4, 5, 3]),
|
|
497
|
+
> Transformation([4, 4, 4, 5, 4, 3]),
|
|
498
|
+
> Transformation([6, 1, 6, 6, 4, 6]),
|
|
499
|
+
> Transformation([5, 6, 6, 6, 6, 1]),
|
|
500
|
+
> Transformation([4, 4, 5, 4, 3, 3])]);
|
|
501
|
+
<transformation semigroup of degree 6 with 12 generators>
|
|
502
|
+
gap> IsMaximalSubsemigroup(S, T);
|
|
503
|
+
true
|
|
504
|
+
gap> T := Semigroup(T, rec(small := true));;
|
|
505
|
+
gap> IsMaximalSubsemigroup(S, T);
|
|
506
|
+
true
|
|
507
|
+
|
|
508
|
+
# TestInstall32: From Jack Schmidt 06/02/14 by email
|
|
509
|
+
gap> S := InverseMonoid(
|
|
510
|
+
> PartialPerm(
|
|
511
|
+
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
512
|
+
> 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
|
513
|
+
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 30, 29, 32, 31,
|
|
514
|
+
> 26, 25, 28, 27, 18, 17, 20, 19, 22, 21, 24, 23]),
|
|
515
|
+
> PartialPerm(
|
|
516
|
+
> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
517
|
+
> 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
|
|
518
|
+
> [1, 10, 16, 7, 5, 14, 4, 11, 9, 2, 8, 15, 13, 6, 12, 3, 17, 22, 32, 27,
|
|
519
|
+
> 21, 18, 28, 31, 25, 30, 20, 23, 29, 26, 24, 19]),
|
|
520
|
+
> PartialPerm([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
|
|
521
|
+
> [1, 2, 3, 4, 16, 15, 13, 14, 10, 9, 12, 11, 7, 8, 6, 5]),
|
|
522
|
+
> PartialPerm([1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22, 25, 26, 29, 30],
|
|
523
|
+
> [1, 17, 5, 29, 9, 21, 13, 25, 30, 14, 26, 6, 18, 10, 22, 2]),
|
|
524
|
+
> PartialPerm([1, 2, 5, 6, 9, 10, 13, 14, 19, 20, 23, 24, 27, 28, 31, 32],
|
|
525
|
+
> [1, 10, 5, 14, 9, 2, 13, 6, 19, 24, 23, 20, 27, 32, 31, 28]),
|
|
526
|
+
> PartialPerm([1, 6, 9, 14, 18, 22, 25, 29],
|
|
527
|
+
> [1, 6, 9, 14, 18, 22, 25, 29]),
|
|
528
|
+
> PartialPerm([1, 5, 9, 13, 19, 23, 27, 31],
|
|
529
|
+
> [1, 5, 9, 13, 19, 23, 27, 31]),
|
|
530
|
+
> PartialPerm([1, 6, 9, 14, 17, 21, 26, 30],
|
|
531
|
+
> [1, 6, 9, 14, 17, 21, 26, 30]));;
|
|
532
|
+
gap> ForAll(S, x -> ForAll(LClass(S, x), y -> y in S));
|
|
533
|
+
true
|
|
534
|
+
|
|
535
|
+
# TestInstall33: From Jack Schmidt 07/02/14 by email
|
|
536
|
+
gap> AsSet(InverseMonoid(PartialPerm([1, 2]), PartialPerm([1])));
|
|
537
|
+
[ <identity partial perm on [ 1 ]>, <identity partial perm on [ 1, 2 ]> ]
|
|
538
|
+
|
|
539
|
+
# TestInstall34: Issue #57 (problem in INV_KER_TRANS)
|
|
540
|
+
gap> S := Semigroup(Transformation([1, 1, 1]),
|
|
541
|
+
> Transformation([1, 1, 4, 4, 5]));;
|
|
542
|
+
gap> Size(S);
|
|
543
|
+
2
|
|
544
|
+
gap> IsMonogenicSemigroup(S);
|
|
545
|
+
false
|
|
546
|
+
|
|
547
|
+
# TestInstall35: Issue pointed out by WAW caused by
|
|
548
|
+
# IsInvLambdaOrb being inherited from the argument of ClosureSemigroup
|
|
549
|
+
# by its output, when the output wasn't an InverseOp semigroup...
|
|
550
|
+
gap> S := Semigroup(Bipartition([[1, -2], [2, -3], [3, -1]]),
|
|
551
|
+
> Bipartition([[1, 2, -2], [3, -1, -3]]),
|
|
552
|
+
> Bipartition([[1, -1, -3], [2, -2], [3]]),
|
|
553
|
+
> Bipartition([[1, 3, -1], [2, -2], [-3]]));;
|
|
554
|
+
gap> gens := [Bipartition([[1, 3, -1], [2, -2], [-3]]),
|
|
555
|
+
> Bipartition([[1, -1, -3], [2, -2], [3]]),
|
|
556
|
+
> Bipartition([[1, 2, -2], [3, -1, -3]])];;
|
|
557
|
+
gap> V := SemigroupIdealByGenerators(S, gens);;
|
|
558
|
+
gap> tuples := [Bipartition([[1, -1], [2, -2], [3, -3]])];;
|
|
559
|
+
gap> Semigroup(V, tuples, rec(small := true));;
|
|
560
|
+
|
|
561
|
+
# TestInstall36: Issue pointed out by WAW, caused by typo in ClosureSemigroup
|
|
562
|
+
# (the parent of an R-class was set to be the subsemigroup not the new parent
|
|
563
|
+
# semigroup)
|
|
564
|
+
gap> for i in [1 .. 6] do
|
|
565
|
+
> V := Semigroup([PartialPerm([1, 2, 4, 5, 6], [1, 5, 3, 4, 6]),
|
|
566
|
+
> PartialPerm([1, 2, 4, 5, 6], [2, 1, 5, 4, 3]),
|
|
567
|
+
> PartialPerm([1, 3, 4, 5, 6], [1, 4, 5, 2, 6]),
|
|
568
|
+
> PartialPerm([1, 2, 3, 4, 5], [2, 1, 6, 5, 4]),
|
|
569
|
+
> PartialPerm([1, 2, 3, 6], [4, 3, 2, 6]),
|
|
570
|
+
> PartialPerm([1, 2, 4, 6], [2, 1, 5, 3]),
|
|
571
|
+
> PartialPerm([1, 2, 3, 6], [5, 2, 1, 3]),
|
|
572
|
+
> PartialPerm([2, 3, 4, 6], [3, 2, 1, 6]),
|
|
573
|
+
> PartialPerm([1, 2, 6], [3, 2, 6])],
|
|
574
|
+
> rec(small := true));
|
|
575
|
+
> IsInverseSemigroup(V);
|
|
576
|
+
> od;
|
|
577
|
+
|
|
578
|
+
# TestInstall37: Issue #63 (problem with Monoid and InverseMonoid when one
|
|
579
|
+
# of the arguments is a monoid).
|
|
580
|
+
gap> S := Semigroup(PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]));
|
|
581
|
+
<trivial partial perm group of rank 5 with 1 generator>
|
|
582
|
+
gap> T := Monoid(S, PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3]));;
|
|
583
|
+
gap> Length(GeneratorsOfMonoid(T)) = 2;
|
|
584
|
+
true
|
|
585
|
+
gap> One(S) in T;
|
|
586
|
+
true
|
|
587
|
+
gap> One(S) = One(T);
|
|
588
|
+
false
|
|
589
|
+
gap> GeneratorsOfSemigroup(T) =
|
|
590
|
+
> [PartialPerm([1, 2, 3, 4, 5, 6]),
|
|
591
|
+
> PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
592
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3])];
|
|
593
|
+
true
|
|
594
|
+
gap> GeneratorsOfMonoid(T) =
|
|
595
|
+
> [PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
596
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3])];
|
|
597
|
+
true
|
|
598
|
+
gap> S := InverseSemigroup(PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]));;
|
|
599
|
+
gap> T := InverseMonoid(S, PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3]));;
|
|
600
|
+
gap> Length(GeneratorsOfInverseMonoid(T)) = 2;
|
|
601
|
+
true
|
|
602
|
+
gap> GeneratorsOfMonoid(T) =
|
|
603
|
+
> [PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
604
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3]),
|
|
605
|
+
> PartialPerm([1, 2, 3, 4, 5], [4, 1, 6, 3, 2])];
|
|
606
|
+
true
|
|
607
|
+
gap> GeneratorsOfSemigroup(T) =
|
|
608
|
+
> [PartialPerm([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]),
|
|
609
|
+
> PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
610
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3]),
|
|
611
|
+
> PartialPerm([1, 2, 3, 4, 5], [4, 1, 6, 3, 2])];
|
|
612
|
+
true
|
|
613
|
+
gap> GeneratorsOfInverseMonoid(T) =
|
|
614
|
+
> [PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
615
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3])];
|
|
616
|
+
true
|
|
617
|
+
gap> GeneratorsOfInverseSemigroup(T) =
|
|
618
|
+
> [PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
619
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3]),
|
|
620
|
+
> PartialPerm([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6])];
|
|
621
|
+
true
|
|
622
|
+
gap> One(S) in T;
|
|
623
|
+
true
|
|
624
|
+
|
|
625
|
+
# TestInstall38: Issue 33 (problem with Rees factor semigroups)
|
|
626
|
+
gap> I := SemigroupIdealByGenerators(FullTransformationSemigroup(4),
|
|
627
|
+
> [Transformation([1, 2, 2, 2])]);;
|
|
628
|
+
gap> cong := ReesCongruenceOfSemigroupIdeal(I);;
|
|
629
|
+
gap> hom := HomomorphismQuotientSemigroup(cong);;
|
|
630
|
+
gap> T := Range(hom);;
|
|
631
|
+
gap> IsSemigroup(T);
|
|
632
|
+
true
|
|
633
|
+
gap> Size(T);
|
|
634
|
+
169
|
|
635
|
+
gap> u := Image(hom, Transformation([1, 1, 1, 1]));
|
|
636
|
+
<2-sided congruence class of Transformation( [ 1, 2, 2, 2 ] )>
|
|
637
|
+
gap> t := Image(hom, Transformation([2, 1, 2, 3]));
|
|
638
|
+
<2-sided congruence class of Transformation( [ 2, 1, 2, 3 ] )>
|
|
639
|
+
gap> u * t;
|
|
640
|
+
<2-sided congruence class of Transformation( [ 1, 2, 2, 2 ] )>
|
|
641
|
+
gap> t * u;
|
|
642
|
+
<2-sided congruence class of Transformation( [ 1, 2, 2, 2 ] )>
|
|
643
|
+
gap> S := Semigroup(u, t);
|
|
644
|
+
<semigroup with 2 generators>
|
|
645
|
+
gap> Size(S);
|
|
646
|
+
2
|
|
647
|
+
|
|
648
|
+
# TestInstall39: Issue 56
|
|
649
|
+
# (Monoid/InverseMonoid removes One inappropriately sometimes)
|
|
650
|
+
gap> M := InverseMonoid(PartialPerm([1, 2]), PartialPerm([1]));
|
|
651
|
+
<inverse partial perm monoid of rank 2 with 2 generators>
|
|
652
|
+
gap> One(M) in M;
|
|
653
|
+
true
|
|
654
|
+
gap> AsSet(M);
|
|
655
|
+
[ <identity partial perm on [ 1 ]>, <identity partial perm on [ 1, 2 ]> ]
|
|
656
|
+
gap> M := InverseMonoid(PartialPerm([1, 2]), PartialPerm([1]));
|
|
657
|
+
<inverse partial perm monoid of rank 2 with 2 generators>
|
|
658
|
+
gap> AsSet(M);
|
|
659
|
+
[ <identity partial perm on [ 1 ]>, <identity partial perm on [ 1, 2 ]> ]
|
|
660
|
+
|
|
661
|
+
# TestInstall40: Issue 4 in Orb (logs are not properly updated if the
|
|
662
|
+
# enumeration stops early because we find something we are looking for)
|
|
663
|
+
gap> gens := [PartialPerm([1, 2, 4, 5, 6], [1, 2, 4, 5, 6]),
|
|
664
|
+
> PartialPerm([1, 2, 3, 4, 6], [2, 5, 4, 1, 3])];;
|
|
665
|
+
gap> o := Orb([gens[1]], [0], OnPosIntSetsPartialPerm, rec(log := true,
|
|
666
|
+
> lookingfor := function(o, x) return x = [1, 2, 4, 5, 6]; end));
|
|
667
|
+
<open orbit, 1 points looking for sth. with log>
|
|
668
|
+
gap> Enumerate(o);
|
|
669
|
+
<open orbit, 2 points looking for sth. with log>
|
|
670
|
+
gap> o!.looking := false;
|
|
671
|
+
false
|
|
672
|
+
gap> Enumerate(o);
|
|
673
|
+
<closed orbit, 2 points with log>
|
|
674
|
+
gap> o!.logind;
|
|
675
|
+
[ 1, 0 ]
|
|
676
|
+
gap> o!.logpos;
|
|
677
|
+
3
|
|
678
|
+
gap> o!.log;
|
|
679
|
+
[ -1, 2 ]
|
|
680
|
+
gap> AddGeneratorsToOrbit(o, [gens[2]]);
|
|
681
|
+
<closed orbit, 12 points with log>
|
|
682
|
+
|
|
683
|
+
# TestInstall41: Issue 72
|
|
684
|
+
# (problem with IsomorphismTransformationSemigroup when applied to a
|
|
685
|
+
# binary relation monoid)
|
|
686
|
+
gap> B := Monoid(BinaryRelationOnPoints([[2], [1, 2], [1, 3]]),
|
|
687
|
+
> BinaryRelationOnPoints([[3], [1, 2], [1, 3]]),
|
|
688
|
+
> BinaryRelationOnPoints([[1, 2, 3], [1, 2], [3]]));;
|
|
689
|
+
gap> Size(B);
|
|
690
|
+
16
|
|
691
|
+
gap> IsMonoid(B);
|
|
692
|
+
true
|
|
693
|
+
gap> iso := IsomorphismTransformationSemigroup(B);;
|
|
694
|
+
gap> T := Range(iso);
|
|
695
|
+
<transformation monoid of degree 6 with 3 generators>
|
|
696
|
+
gap> Size(T);
|
|
697
|
+
16
|
|
698
|
+
gap> IsMonoid(T);
|
|
699
|
+
true
|
|
700
|
+
|
|
701
|
+
# TestInstall42: Issue 82 (couldn't take quotients by ideals!)
|
|
702
|
+
gap> S := Monoid(
|
|
703
|
+
> Transformation([3, 3, 3, 3]), Transformation([2, 4, 2, 4]),
|
|
704
|
+
> Transformation([2, 3, 2, 3]), Transformation([4, 1, 4, 3]),
|
|
705
|
+
> Transformation([1, 4, 4, 1]), Transformation([2, 2, 3, 1]),
|
|
706
|
+
> Transformation([2, 4, 3, 4]), Transformation([2, 2, 1, 2]),
|
|
707
|
+
> Transformation([2, 2, 1, 3]), Transformation([1, 2, 2, 3]),
|
|
708
|
+
> Transformation([2, 4, 3, 2]), Transformation([2, 3, 3, 3]));;
|
|
709
|
+
gap> I := SemigroupIdeal(S, S.3);;
|
|
710
|
+
gap> IsRegularSemigroup(I);
|
|
711
|
+
true
|
|
712
|
+
gap> S / I;;
|
|
713
|
+
|
|
714
|
+
# TestInstall43: Issue 89
|
|
715
|
+
gap> S := Semigroup(Transformation([2, 1, 3, 1, 4, 3]),
|
|
716
|
+
> Transformation([2, 2, 2, 2, 1, 2]),
|
|
717
|
+
> Transformation([5, 3, 4, 3, 5]),
|
|
718
|
+
> Transformation([6, 4, 1, 4, 5, 3]),
|
|
719
|
+
> Transformation([6, 5, 2, 6, 3, 4]));;
|
|
720
|
+
gap> NrIdempotents(S) = Number(HClasses(S), IsGroupHClass);
|
|
721
|
+
true
|
|
722
|
+
|
|
723
|
+
# TestInstall44: Issue 96 (problem with using the partial order of D-classes
|
|
724
|
+
# as an isomorphism invariant)
|
|
725
|
+
gap> S := Semigroup(Transformation([1, 2, 1]),
|
|
726
|
+
> Transformation([1, 2, 3, 2]),
|
|
727
|
+
> Transformation([2, 2, 2]),
|
|
728
|
+
> Transformation([4, 2, 1, 4]));;
|
|
729
|
+
gap> T := Semigroup(Transformation([1, 2, 3, 1]),
|
|
730
|
+
> Transformation([2, 2, 3, 1]),
|
|
731
|
+
> Transformation([2, 3, 3, 1]),
|
|
732
|
+
> Transformation([1, 3, 3]),
|
|
733
|
+
> Transformation([2, 3, 3, 3]),
|
|
734
|
+
> Transformation([3, 2, 3, 3]));;
|
|
735
|
+
gap> IsIsomorphicSemigroup(S, T);
|
|
736
|
+
true
|
|
737
|
+
gap> SmallestMultiplicationTable(S) = SmallestMultiplicationTable(T);
|
|
738
|
+
true
|
|
739
|
+
|
|
740
|
+
# TestInstall46: Issue 98
|
|
741
|
+
# (incorrect definition of partition monoid on 1 point)
|
|
742
|
+
gap> GeneratorsOfSemigroup(PartitionMonoid(1));
|
|
743
|
+
[ <block bijection: [ 1, -1 ]>, <bipartition: [ 1 ], [ -1 ]> ]
|
|
744
|
+
|
|
745
|
+
# TestInstall47: Issue 101 (incorrect method for
|
|
746
|
+
# DegreeOfTransformationSemigroup for a transformation group with 0 generators)
|
|
747
|
+
gap> G := GroupOfUnits(FullTransformationSemigroup(1));;
|
|
748
|
+
gap> G;
|
|
749
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
750
|
+
|
|
751
|
+
# TestInstall48: Issue 101
|
|
752
|
+
# (incorrect method for AsPartialPerm for a perm and zero)
|
|
753
|
+
gap> G := GroupOfUnits(Semigroup(PartialPerm([])));;
|
|
754
|
+
gap> G;
|
|
755
|
+
<trivial partial perm group of rank 0 with 1 generator>
|
|
756
|
+
|
|
757
|
+
# TestInstall49: Issue 103
|
|
758
|
+
# (problem with Enumerate(LambdaOrb(I)) when T is an inverse semigroup but
|
|
759
|
+
# doesn't know it at the start)
|
|
760
|
+
gap> S := POI(5);;
|
|
761
|
+
gap> T := Semigroup(S, PartialPerm([1, 2, 3, 4, 5], [2, 3, 4, 5, 1]));;
|
|
762
|
+
gap> I := SemigroupIdeal(T, [PartialPerm([1, 2, 4, 5], [1, 2, 3, 5])]);;
|
|
763
|
+
gap> IsInverseSemigroup(I);
|
|
764
|
+
true
|
|
765
|
+
gap> Size(I);
|
|
766
|
+
626
|
|
767
|
+
|
|
768
|
+
# TestInstall50: Issue 105 (CyclesOfPartialPerm returned nonsense)
|
|
769
|
+
gap> x := PartialPerm([1, 2, 3, 4, 5, 8, 10], [3, 1, 4, 2, 5, 6, 7]);;
|
|
770
|
+
gap> CyclesOfPartialPerm(x);
|
|
771
|
+
[ [ 5 ], [ 1, 3, 4, 2 ] ]
|
|
772
|
+
|
|
773
|
+
# TestInstall51: Issue 107
|
|
774
|
+
# (problems with Green's classes of ideals, and inverse semigroups)
|
|
775
|
+
gap> S := Monoid(PartialPermNC([1], [1]),
|
|
776
|
+
> PartialPermNC([1], [2]),
|
|
777
|
+
> PartialPermNC([2], [1]));;
|
|
778
|
+
gap> I := SemigroupIdeal(S, PartialPermNC([], []));;
|
|
779
|
+
gap> GeneratorsOfSemigroup(I);
|
|
780
|
+
[ <empty partial perm> ]
|
|
781
|
+
|
|
782
|
+
# TestInstall52: Issue 107 (problems with Green's classes of ideals, and
|
|
783
|
+
# inverse semigroups)
|
|
784
|
+
gap> S := [SymmetricInverseMonoid(2)];;
|
|
785
|
+
gap> S[2] := MaximalSubsemigroups(S[1]);;
|
|
786
|
+
gap> S[3] := List(S[2], MaximalSubsemigroups);;
|
|
787
|
+
|
|
788
|
+
# TestInstall53: Issue 109 (problem with IsReesZeroMatrixSemigroup on the
|
|
789
|
+
# subsemigroup generated by 0)
|
|
790
|
+
gap> R1 := ReesZeroMatrixSemigroup(Group(()), [[()]]);;
|
|
791
|
+
gap> R2 := Semigroup(MultiplicativeZero(R1));;
|
|
792
|
+
gap> IsReesZeroMatrixSubsemigroup(R2);
|
|
793
|
+
true
|
|
794
|
+
gap> IsReesZeroMatrixSemigroup(R2);
|
|
795
|
+
false
|
|
796
|
+
|
|
797
|
+
# TestInstall54: FreeBand
|
|
798
|
+
gap> S := FreeBand("a", "b", "c", "d", "e");
|
|
799
|
+
<free band on the generators [ a, b, c, d, e ]>
|
|
800
|
+
gap> iter := Iterator(S);
|
|
801
|
+
<iterator>
|
|
802
|
+
gap> for i in [1 .. 100] do
|
|
803
|
+
> NextIterator(iter);
|
|
804
|
+
> od;
|
|
805
|
+
gap> x := NextIterator(iter);
|
|
806
|
+
ece
|
|
807
|
+
gap> for i in [1 .. 10] do
|
|
808
|
+
> NextIterator(iter);
|
|
809
|
+
> od;
|
|
810
|
+
gap> y := NextIterator(iter);
|
|
811
|
+
abce
|
|
812
|
+
gap> x * y;
|
|
813
|
+
eceaceababce
|
|
814
|
+
gap> x ^ 2;
|
|
815
|
+
ece
|
|
816
|
+
gap> y ^ 2;
|
|
817
|
+
abce
|
|
818
|
+
|
|
819
|
+
# TestInstall55: Issue 110 (MaximalSubsemigroups for an non-regular RZMS)
|
|
820
|
+
gap> S := ReesZeroMatrixSemigroup(Group(()), [[(), 0], [0, ()]]);;
|
|
821
|
+
gap> S := Semigroup(RMSElement(S, 2, (), 2),
|
|
822
|
+
> RMSElement(S, 1, (), 2));;
|
|
823
|
+
gap> max := MaximalSubsemigroups(S);;
|
|
824
|
+
gap> Length(max);
|
|
825
|
+
2
|
|
826
|
+
gap> IsDuplicateFreeList(max);
|
|
827
|
+
true
|
|
828
|
+
gap> ForAll(max, x -> IsMaximalSubsemigroup(S, x));
|
|
829
|
+
true
|
|
830
|
+
|
|
831
|
+
# TestInstall56: Issue 122 (Problem with XClassType for inverse ideals)
|
|
832
|
+
gap> S := Semigroup(
|
|
833
|
+
> PartialPerm([1, 2, 3, 4], [2, 3, 4, 1]),
|
|
834
|
+
> PartialPerm([1, 2, 3, 4], [2, 1, 3, 4]),
|
|
835
|
+
> PartialPerm([1, 3], [2, 3]), rec(acting := true));;
|
|
836
|
+
gap> x := PartialPerm([], []);;
|
|
837
|
+
gap> I := SemigroupIdeal(S, x);;
|
|
838
|
+
gap> L := GreensLClassOfElement(I, x);
|
|
839
|
+
<Green's L-class: <empty partial perm>>
|
|
840
|
+
gap> SchutzenbergerGroup(L);
|
|
841
|
+
Group(())
|
|
842
|
+
|
|
843
|
+
# TestInstall57: Issue 123 (Incorrect method for IsZeroSemigroup for
|
|
844
|
+
# non-acting semigroup)
|
|
845
|
+
gap> x := Transformation([1, 1, 2, 3]);;
|
|
846
|
+
gap> S := Semigroup(x);;
|
|
847
|
+
gap> I := SemigroupIdeal(S, x);;
|
|
848
|
+
gap> IsZeroSemigroup(S);
|
|
849
|
+
false
|
|
850
|
+
gap> IsZeroSemigroup(Semigroup(x, rec(acting := false)));
|
|
851
|
+
false
|
|
852
|
+
gap> IsZeroSemigroup(I);
|
|
853
|
+
false
|
|
854
|
+
|
|
855
|
+
# TestInstall58: Issue 121:
|
|
856
|
+
# MultiplicativeZero for full transformation monoid on one point
|
|
857
|
+
gap> T := Transformation([1]);;
|
|
858
|
+
gap> S := Semigroup(T);;
|
|
859
|
+
gap> MultiplicativeZero(S) = T;
|
|
860
|
+
true
|
|
861
|
+
gap> gens := [Transformation([1, 2, 1]), Transformation([1, 2, 2])];;
|
|
862
|
+
gap> S := Semigroup(gens);;
|
|
863
|
+
gap> IsRectangularBand(S) and not IsTrivial(S);
|
|
864
|
+
true
|
|
865
|
+
gap> MultiplicativeZero(S);
|
|
866
|
+
fail
|
|
867
|
+
|
|
868
|
+
# TestInstall59: Issue 88:
|
|
869
|
+
# Something called by `JoinIrreducibleDClasses` of an acting semigroup ideal
|
|
870
|
+
# of a bipartition semigroup calls `GeneratorsOfSemigroup`
|
|
871
|
+
gap> S := InverseMonoid(DualSymmetricInverseMonoid(6), rec(acting := true));;
|
|
872
|
+
gap> x := Bipartition([[1, 2, -3], [3, -1, -2], [4, -4],
|
|
873
|
+
> [5, -5], [6, -6]]);;
|
|
874
|
+
gap> I := SemigroupIdeal(S, x);
|
|
875
|
+
<inverse bipartition semigroup ideal of degree 6 with 1 generator>
|
|
876
|
+
gap> JoinIrreducibleDClasses(I);
|
|
877
|
+
[ <Green's D-class: <block bijection: [ 1, 2, 3, 4, 6, -1, -2, -3, -4, -6 ],
|
|
878
|
+
[ 5, -5 ]>> ]
|
|
879
|
+
gap> I;
|
|
880
|
+
<inverse block bijection semigroup ideal of degree 6 with 1 generator>
|
|
881
|
+
gap> S := InverseMonoid(DualSymmetricInverseMonoid(3));;
|
|
882
|
+
gap> x := Bipartition([[1, 2, -1, -2], [3, -3]]);;
|
|
883
|
+
gap> I := SemigroupIdeal(S, x);
|
|
884
|
+
<inverse bipartition semigroup ideal of degree 3 with 1 generator>
|
|
885
|
+
gap> JoinIrreducibleDClasses(I);
|
|
886
|
+
[ <Green's D-class: <block bijection: [ 1, 2, -1, -2 ], [ 3, -3 ]>> ]
|
|
887
|
+
|
|
888
|
+
# TestInstall60: Issue 94:
|
|
889
|
+
# EquivalenceClasses of trivial congruence returns empty list
|
|
890
|
+
gap> S := FullTransformationSemigroup(6);;
|
|
891
|
+
gap> R := PrincipalFactor(MinimalDClass(S));
|
|
892
|
+
<Rees matrix semigroup 1x6 over Group(())>
|
|
893
|
+
gap> cong := SemigroupCongruenceByGeneratingPairs(R, []);;
|
|
894
|
+
gap> EquivalenceClasses(cong);
|
|
895
|
+
[ <2-sided congruence class of (1,(),1)>,
|
|
896
|
+
<2-sided congruence class of (1,(),2)>,
|
|
897
|
+
<2-sided congruence class of (1,(),3)>,
|
|
898
|
+
<2-sided congruence class of (1,(),4)>,
|
|
899
|
+
<2-sided congruence class of (1,(),5)>,
|
|
900
|
+
<2-sided congruence class of (1,(),6)> ]
|
|
901
|
+
|
|
902
|
+
# TestInstall61: Issue 95:
|
|
903
|
+
# No zero class in semigroup congruence EquivalenceClasses (generating pairs)
|
|
904
|
+
gap> P := [[(), 0, (1, 3), (1, 3), 0, (), 0],
|
|
905
|
+
> [(), (1, 3), 0, 0, (1, 3), (), 0], [(), (1, 3), 0, (), 0, 0, ()],
|
|
906
|
+
> [0, (), (1, 3), (1, 3), (), 0, 0], [0, 0, 0, (), (), (1, 3), ()],
|
|
907
|
+
> [(), 0, (1, 3), 0, (), 0, ()]];;
|
|
908
|
+
gap> R := ReesZeroMatrixSemigroup(Group([(1, 3)]), P);;
|
|
909
|
+
gap> x := ReesZeroMatrixSemigroupElement(R, 1, (1, 3), 1);;
|
|
910
|
+
gap> y := ReesZeroMatrixSemigroupElement(R, 1, (), 1);;
|
|
911
|
+
gap> cong := SemigroupCongruenceByGeneratingPairs(R, [[x, y]]);;
|
|
912
|
+
gap> c := Set(EquivalenceClasses(cong));
|
|
913
|
+
[ <2-sided congruence class of (1,(),1)>,
|
|
914
|
+
<2-sided congruence class of (1,(),2)>,
|
|
915
|
+
<2-sided congruence class of (1,(),3)>,
|
|
916
|
+
<2-sided congruence class of (1,(),4)>,
|
|
917
|
+
<2-sided congruence class of (1,(),5)>,
|
|
918
|
+
<2-sided congruence class of (1,(),6)>,
|
|
919
|
+
<2-sided congruence class of (2,(),1)>,
|
|
920
|
+
<2-sided congruence class of (3,(),1)>,
|
|
921
|
+
<2-sided congruence class of (4,(),1)>,
|
|
922
|
+
<2-sided congruence class of (5,(),1)>,
|
|
923
|
+
<2-sided congruence class of (6,(),1)>,
|
|
924
|
+
<2-sided congruence class of (7,(),1)>, <2-sided congruence class of 0>,
|
|
925
|
+
<2-sided congruence class of (2,(),2)>,
|
|
926
|
+
<2-sided congruence class of (2,(),3)>,
|
|
927
|
+
<2-sided congruence class of (2,(),4)>,
|
|
928
|
+
<2-sided congruence class of (2,(),5)>,
|
|
929
|
+
<2-sided congruence class of (2,(),6)>,
|
|
930
|
+
<2-sided congruence class of (3,(),2)>,
|
|
931
|
+
<2-sided congruence class of (3,(),3)>,
|
|
932
|
+
<2-sided congruence class of (3,(),4)>,
|
|
933
|
+
<2-sided congruence class of (3,(),5)>,
|
|
934
|
+
<2-sided congruence class of (3,(),6)>,
|
|
935
|
+
<2-sided congruence class of (4,(),2)>,
|
|
936
|
+
<2-sided congruence class of (4,(),3)>,
|
|
937
|
+
<2-sided congruence class of (4,(),4)>,
|
|
938
|
+
<2-sided congruence class of (4,(),5)>,
|
|
939
|
+
<2-sided congruence class of (4,(),6)>,
|
|
940
|
+
<2-sided congruence class of (5,(),2)>,
|
|
941
|
+
<2-sided congruence class of (5,(),3)>,
|
|
942
|
+
<2-sided congruence class of (5,(),4)>,
|
|
943
|
+
<2-sided congruence class of (5,(),5)>,
|
|
944
|
+
<2-sided congruence class of (5,(),6)>,
|
|
945
|
+
<2-sided congruence class of (6,(),2)>,
|
|
946
|
+
<2-sided congruence class of (6,(),3)>,
|
|
947
|
+
<2-sided congruence class of (6,(),4)>,
|
|
948
|
+
<2-sided congruence class of (6,(),5)>,
|
|
949
|
+
<2-sided congruence class of (6,(),6)>,
|
|
950
|
+
<2-sided congruence class of (7,(),2)>,
|
|
951
|
+
<2-sided congruence class of (7,(),3)>,
|
|
952
|
+
<2-sided congruence class of (7,(),4)>,
|
|
953
|
+
<2-sided congruence class of (7,(),5)>,
|
|
954
|
+
<2-sided congruence class of (7,(),6)> ]
|
|
955
|
+
gap> ForAny(c, x -> MultiplicativeZero(R) in x);
|
|
956
|
+
true
|
|
957
|
+
|
|
958
|
+
# TestInstall62: Issue 119:
|
|
959
|
+
# Bug in NrEquivalenceClasses for Rees congruences
|
|
960
|
+
gap> I := SemigroupIdealByGenerators(FullTransformationSemigroup(4),
|
|
961
|
+
> [Transformation([1, 2, 2, 2])]);
|
|
962
|
+
<regular transformation semigroup ideal of degree 4 with 1 generator>
|
|
963
|
+
gap> cong := ReesCongruenceOfSemigroupIdeal(I);
|
|
964
|
+
<Rees congruence of <regular transformation semigroup ideal of degree 4 with
|
|
965
|
+
1 generator> over <full transformation monoid of degree 4>>
|
|
966
|
+
gap> NrEquivalenceClasses(cong);
|
|
967
|
+
169
|
|
968
|
+
|
|
969
|
+
# TestInstall65: Issue 126:
|
|
970
|
+
gap> mat := [
|
|
971
|
+
> [(), 0, 0, 0, 0],
|
|
972
|
+
> [0, (3, 4), 0, 0, 0],
|
|
973
|
+
> [0, 0, (), 0, 0],
|
|
974
|
+
> [0, 0, 0, (1, 2), 0],
|
|
975
|
+
> [0, 0, 0, 0, (1, 2)(3, 4)]];;
|
|
976
|
+
gap> R := ReesZeroMatrixSemigroup(Group([(1, 2), (3, 4)]), mat);;
|
|
977
|
+
gap> gens := [
|
|
978
|
+
> MultiplicativeZero(R),
|
|
979
|
+
> RMSElement(R, 4, (), 4),
|
|
980
|
+
> RMSElement(R, 4, (1, 2)(3, 4), 4),
|
|
981
|
+
> RMSElement(R, 5, (1, 2)(3, 4), 5),
|
|
982
|
+
> RMSElement(R, 5, (1, 2), 5),
|
|
983
|
+
> RMSElement(R, 4, (1, 2), 4),
|
|
984
|
+
> RMSElement(R, 1, (1, 2), 1),
|
|
985
|
+
> RMSElement(R, 1, (3, 4), 1),
|
|
986
|
+
> RMSElement(R, 2, (3, 4), 2),
|
|
987
|
+
> RMSElement(R, 2, (1, 2), 2),
|
|
988
|
+
> RMSElement(R, 1, (1, 2), 1),
|
|
989
|
+
> RMSElement(R, 3, (), 3),
|
|
990
|
+
> RMSElement(R, 3, (1, 2), 3),
|
|
991
|
+
> RMSElement(R, 1, (1, 2), 1)];;
|
|
992
|
+
gap> U := Semigroup(gens);;
|
|
993
|
+
gap> Filtered(R, x -> x in U);;
|
|
994
|
+
gap> x := RMSElement(R, 1, (), 2);;
|
|
995
|
+
gap> x in U;
|
|
996
|
+
false
|
|
997
|
+
gap> IsInverseSemigroup(U);
|
|
998
|
+
true
|
|
999
|
+
gap> x in U;
|
|
1000
|
+
false
|
|
1001
|
+
|
|
1002
|
+
# TestInstall63: Issue 127:
|
|
1003
|
+
# Bug in Enumerate for an acting semigroup ideal that knows it is regular at its
|
|
1004
|
+
# point of creation.
|
|
1005
|
+
gap> S := Semigroup([[[Z(2) ^ 0, 0 * Z(2), 0 * Z(2), 0 * Z(2)],
|
|
1006
|
+
> [0 * Z(2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2)],
|
|
1007
|
+
> [0 * Z(2), 0 * Z(2), Z(2) ^ 0, 0 * Z(2)],
|
|
1008
|
+
> [0 * Z(2), 0 * Z(2), 0 * Z(2), Z(2) ^ 0]],
|
|
1009
|
+
> [[Z(2 ^ 2), Z(2) ^ 0, Z(2 ^ 2), Z(2) ^ 0],
|
|
1010
|
+
> [Z(2 ^ 2) ^ 2, Z(2 ^ 2), Z(2 ^ 2) ^ 2, Z(2 ^ 2)],
|
|
1011
|
+
> [Z(2) ^ 0, Z(2 ^ 2) ^ 2, Z(2) ^ 0, Z(2 ^ 2) ^ 2],
|
|
1012
|
+
> [Z(2) ^ 0, Z(2 ^ 2) ^ 2, Z(2) ^ 0, Z(2 ^ 2) ^ 2]],
|
|
1013
|
+
> [[0 * Z(2), Z(2 ^ 2) ^ 2, 0 * Z(2), Z(2) ^ 0],
|
|
1014
|
+
> [Z(2 ^ 2) ^ 2, Z(2) ^ 0, 0 * Z(2), Z(2) ^ 0],
|
|
1015
|
+
> [Z(2 ^ 2), Z(2) ^ 0, 0 * Z(2), 0 * Z(2)],
|
|
1016
|
+
> [Z(2 ^ 2) ^ 2, Z(2) ^ 0, 0 * Z(2), Z(2) ^ 0]]]);
|
|
1017
|
+
<monoid with 2 generators>
|
|
1018
|
+
gap> T := AsSemigroup(IsTransformationSemigroup, S);
|
|
1019
|
+
<transformation monoid of size 21, degree 21 with 2 generators>
|
|
1020
|
+
gap> Size(T);
|
|
1021
|
+
21
|
|
1022
|
+
gap> I := SemigroupIdeal(T, Idempotents(T));;
|
|
1023
|
+
gap> Size(I);
|
|
1024
|
+
21
|
|
1025
|
+
|
|
1026
|
+
# TestInstall64: Bug fixed by changeset 949553d
|
|
1027
|
+
gap> S := InverseSemigroup(PartialPerm([1], [2]), PartialPerm([2], [1]));
|
|
1028
|
+
<inverse partial perm semigroup of rank 2 with 2 generators>
|
|
1029
|
+
gap> Size(S);
|
|
1030
|
+
5
|
|
1031
|
+
gap> C := SemigroupCongruence(S, [S.1, S.1 * S.2]);
|
|
1032
|
+
<universal semigroup congruence over <0-simple inverse partial perm semigroup
|
|
1033
|
+
of size 5, rank 2 with 2 generators>>
|
|
1034
|
+
gap> IsUniversalSemigroupCongruence(C);
|
|
1035
|
+
true
|
|
1036
|
+
|
|
1037
|
+
# TestInstall65: Fixed bug where the GeneratorsOfMonoid were incorrectly set
|
|
1038
|
+
# for partial perm monoids/inverse monoids, due to removal of the One.
|
|
1039
|
+
gap> S := Semigroup(PartialPerm([1]), PartialPerm([]));
|
|
1040
|
+
<partial perm monoid of rank 1 with 2 generators>
|
|
1041
|
+
gap> S := Monoid(PartialPerm([1]), PartialPerm([]));
|
|
1042
|
+
<partial perm monoid of rank 1 with 2 generators>
|
|
1043
|
+
gap> S := InverseSemigroup(PartialPerm([1]), PartialPerm([]));
|
|
1044
|
+
<inverse partial perm monoid of rank 1 with 2 generators>
|
|
1045
|
+
gap> S := InverseMonoid(PartialPerm([1]), PartialPerm([]));
|
|
1046
|
+
<inverse partial perm monoid of rank 1 with 2 generators>
|
|
1047
|
+
|
|
1048
|
+
# TestInstall66: semigroups with 0 generators are not allowed in Semigroups,
|
|
1049
|
+
#i.e. this example shouldn't use Semigroups code and this is here to make sure
|
|
1050
|
+
#that it does not. This is from bugfix.tst.
|
|
1051
|
+
gap> AsGroup([-1, 1]);
|
|
1052
|
+
fail
|
|
1053
|
+
|
|
1054
|
+
# TestInstall67: semigroups with infinity generators are not allowed in
|
|
1055
|
+
# Semigroups, i.e. this example shouldn't use Semigroups code and this is here
|
|
1056
|
+
# to make sure that it does not. This is from bugfix.tst.
|
|
1057
|
+
gap> FreeMonoid(infinity, "m", []);
|
|
1058
|
+
<free monoid with infinity generators>
|
|
1059
|
+
|
|
1060
|
+
# TestInstall65: Issue #131
|
|
1061
|
+
gap> S := FullTransformationSemigroup(3);;
|
|
1062
|
+
gap> I := SemigroupIdeal(FullTransformationSemigroup(3),
|
|
1063
|
+
> Transformation([1, 1, 2]));;
|
|
1064
|
+
gap> T := S / I;;
|
|
1065
|
+
gap> One(T);
|
|
1066
|
+
<2-sided congruence class of IdentityTransformation>
|
|
1067
|
+
|
|
1068
|
+
# TestInstall66: Second bug in Issue #131
|
|
1069
|
+
gap> I := SemigroupIdeal(FullTransformationSemigroup(3),
|
|
1070
|
+
> Transformation([1, 1, 1]));;
|
|
1071
|
+
gap> hom := HomomorphismQuotientSemigroup(ReesCongruenceOfSemigroupIdeal(I));;
|
|
1072
|
+
gap> map := IsomorphismTransformationSemigroup(Range(hom));;
|
|
1073
|
+
|
|
1074
|
+
# Checking for correct non-removal of one from generating sets in
|
|
1075
|
+
# SemigroupByGenerators
|
|
1076
|
+
gap> S := Semigroup(PartialPerm([1]));
|
|
1077
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1078
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1079
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1080
|
+
gap> GeneratorsOfMonoid(S);
|
|
1081
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1082
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1083
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1084
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1085
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1086
|
+
gap> S := Semigroup(IdentityTransformation);
|
|
1087
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1088
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1089
|
+
[ IdentityTransformation ]
|
|
1090
|
+
gap> GeneratorsOfMonoid(S);
|
|
1091
|
+
[ IdentityTransformation ]
|
|
1092
|
+
|
|
1093
|
+
# Checking for correct non-removal of one from generating sets in
|
|
1094
|
+
# MonoidByGenerators
|
|
1095
|
+
gap> S := Monoid(PartialPerm([1]));
|
|
1096
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1097
|
+
gap> S := Monoid(PartialPerm([1]));
|
|
1098
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1099
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1100
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1101
|
+
gap> GeneratorsOfMonoid(S);
|
|
1102
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1103
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1104
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1105
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1106
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1107
|
+
gap> S := Monoid(IdentityTransformation);
|
|
1108
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1109
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1110
|
+
[ IdentityTransformation ]
|
|
1111
|
+
gap> GeneratorsOfMonoid(S);
|
|
1112
|
+
[ IdentityTransformation ]
|
|
1113
|
+
|
|
1114
|
+
# Checking for correct non-removal of one from generating sets in
|
|
1115
|
+
# InverseSemigroupByGenerators JDM
|
|
1116
|
+
gap> S := InverseSemigroup(PartialPerm([1]));
|
|
1117
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1118
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1119
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1120
|
+
gap> GeneratorsOfMonoid(S);
|
|
1121
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1122
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1123
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1124
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1125
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1126
|
+
gap> S := InverseSemigroup(IdentityTransformation);
|
|
1127
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1128
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1129
|
+
[ IdentityTransformation ]
|
|
1130
|
+
gap> GeneratorsOfMonoid(S);
|
|
1131
|
+
[ IdentityTransformation ]
|
|
1132
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1133
|
+
[ IdentityTransformation ]
|
|
1134
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1135
|
+
[ IdentityTransformation ]
|
|
1136
|
+
|
|
1137
|
+
# Checking for correct non-removal of one from generating sets in
|
|
1138
|
+
# InverseMonoidByGenerators JDM
|
|
1139
|
+
gap> S := InverseMonoid(PartialPerm([1]));
|
|
1140
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1141
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1142
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1143
|
+
gap> GeneratorsOfMonoid(S);
|
|
1144
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1145
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1146
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1147
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1148
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1149
|
+
gap> S := InverseMonoid(IdentityTransformation);
|
|
1150
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1151
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1152
|
+
[ IdentityTransformation ]
|
|
1153
|
+
gap> GeneratorsOfMonoid(S);
|
|
1154
|
+
[ IdentityTransformation ]
|
|
1155
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1156
|
+
[ IdentityTransformation ]
|
|
1157
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1158
|
+
[ IdentityTransformation ]
|
|
1159
|
+
|
|
1160
|
+
# Checking GroupByGenerators
|
|
1161
|
+
gap> S := Group(PartialPerm([1]));
|
|
1162
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
1163
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1164
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1165
|
+
gap> GeneratorsOfMonoid(S);
|
|
1166
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1167
|
+
gap> GeneratorsOfGroup(S);
|
|
1168
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1169
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1170
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1171
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1172
|
+
[ <identity partial perm on [ 1 ]> ]
|
|
1173
|
+
gap> S := Group(IdentityTransformation);;
|
|
1174
|
+
gap> IsGroup(S) and IsGroupAsSemigroup(S) and IsTrivial(S);
|
|
1175
|
+
true
|
|
1176
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1177
|
+
[ IdentityTransformation ]
|
|
1178
|
+
gap> GeneratorsOfMonoid(S);
|
|
1179
|
+
[ IdentityTransformation ]
|
|
1180
|
+
gap> GeneratorsOfGroup(S);
|
|
1181
|
+
[ IdentityTransformation ]
|
|
1182
|
+
gap> GeneratorsOfInverseSemigroup(S);
|
|
1183
|
+
[ IdentityTransformation ]
|
|
1184
|
+
gap> GeneratorsOfInverseMonoid(S);
|
|
1185
|
+
[ IdentityTransformation ]
|
|
1186
|
+
|
|
1187
|
+
# Test for Issue 136
|
|
1188
|
+
gap> S := Semigroup(PartialPerm([2, 0]));
|
|
1189
|
+
<commutative partial perm semigroup of rank 1 with 1 generator>
|
|
1190
|
+
gap> CyclesOfPartialPermSemigroup(S);
|
|
1191
|
+
[ ]
|
|
1192
|
+
|
|
1193
|
+
# AsXSemigroup for trivial transformation semigroup
|
|
1194
|
+
gap> S := Semigroup(IdentityTransformation);
|
|
1195
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1196
|
+
gap> AsSemigroup(IsTransformationSemigroup, S);
|
|
1197
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1198
|
+
gap> AsSemigroup(IsPartialPermSemigroup, S);
|
|
1199
|
+
<trivial partial perm group of rank 0 with 1 generator>
|
|
1200
|
+
gap> AsSemigroup(IsBipartitionSemigroup, S);
|
|
1201
|
+
<trivial block bijection group of degree 1 with 1 generator>
|
|
1202
|
+
gap> AsSemigroup(IsPBRSemigroup, S);
|
|
1203
|
+
<trivial pbr group of degree 1 with 1 generator>
|
|
1204
|
+
gap> AsSemigroup(IsBooleanMatSemigroup, S);
|
|
1205
|
+
<trivial group of 1x1 boolean matrices with 1 generator>
|
|
1206
|
+
|
|
1207
|
+
# Issue #138: InversesOfSemigroupElement for trivial transformation monoid
|
|
1208
|
+
gap> x := IdentityTransformation;;
|
|
1209
|
+
gap> InversesOfSemigroupElement(FullTransformationMonoid(1), x);
|
|
1210
|
+
[ IdentityTransformation ]
|
|
1211
|
+
|
|
1212
|
+
# GroupOfUnits error (Monoid used inappropriately instead of Semigroup)
|
|
1213
|
+
gap> S := Semigroup([Bipartition([[1], [-1]])]);
|
|
1214
|
+
<commutative bipartition semigroup of degree 1 with 1 generator>
|
|
1215
|
+
gap> Size(S);
|
|
1216
|
+
1
|
|
1217
|
+
gap> Size(GroupOfUnits(S));
|
|
1218
|
+
1
|
|
1219
|
+
gap> S := Semigroup(IdentityTransformation);
|
|
1220
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1221
|
+
gap> GroupOfUnits(S);
|
|
1222
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
1223
|
+
gap> Size(GroupOfUnits(S));
|
|
1224
|
+
1
|
|
1225
|
+
gap> S := Semigroup(Transformation([1, 1]));
|
|
1226
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
1227
|
+
gap> Size(GroupOfUnits(S));
|
|
1228
|
+
1
|
|
1229
|
+
|
|
1230
|
+
# IsInverseSemigroup fall back method was wrong.
|
|
1231
|
+
gap> S := Semigroup([Bipartition([[1, 2], [-1], [-2]]),
|
|
1232
|
+
> Bipartition([[1, -1], [2], [-2]]),
|
|
1233
|
+
> Bipartition([[1], [2, -1], [-2]]),
|
|
1234
|
+
> Bipartition([[1, -2], [2], [-1]]),
|
|
1235
|
+
> Bipartition([[1], [2, -2], [-1]]),
|
|
1236
|
+
> Bipartition([[1], [2], [-1], [-2]])]);;
|
|
1237
|
+
gap> IsInverseSemigroup(S);
|
|
1238
|
+
false
|
|
1239
|
+
gap> S := Semigroup(S, rec(acting := false));;
|
|
1240
|
+
gap> IsInverseSemigroup(S);
|
|
1241
|
+
false
|
|
1242
|
+
|
|
1243
|
+
# Bipartition semigroups of degree 0, Issue #139
|
|
1244
|
+
gap> AsSemigroup(IsBipartitionSemigroup, CyclicGroup(IsPermGroup, 1));
|
|
1245
|
+
<trivial block bijection group of degree 0 with 1 generator>
|
|
1246
|
+
gap> AsSemigroup(IsBipartitionSemigroup, Group(()));
|
|
1247
|
+
<trivial block bijection group of degree 0 with 1 generator>
|
|
1248
|
+
gap> Semigroup(Bipartition([]));
|
|
1249
|
+
<trivial block bijection group of degree 0 with 1 generator>
|
|
1250
|
+
gap> JonesMonoid(0);
|
|
1251
|
+
<trivial block bijection group of degree 0 with 1 generator>
|
|
1252
|
+
gap> PartitionMonoid(0);
|
|
1253
|
+
<trivial block bijection group of degree 0 with 1 generator>
|
|
1254
|
+
|
|
1255
|
+
# Fixed unconvert for matrix over semiring
|
|
1256
|
+
gap> S := FullTropicalMinPlusMonoid(2, 3);
|
|
1257
|
+
<monoid of 2x2 tropical min-plus matrices with 7 generators>
|
|
1258
|
+
gap> AsSemigroup(IsTransformationSemigroup, S);
|
|
1259
|
+
<transformation monoid of size 625, degree 625 with 7 generators>
|
|
1260
|
+
|
|
1261
|
+
# Test for not being allowed to generate a semigroup with bipartitions of
|
|
1262
|
+
# different degree
|
|
1263
|
+
gap> Semigroup(Bipartition([[-1, 1]]), Bipartition([]));
|
|
1264
|
+
Error, Usage: Semigroup(<gen>,...), Semigroup(<gens>), Semigroup(<D>),
|
|
1265
|
+
|
|
1266
|
+
# Test for not being allowed to generate a semigroup with matrices of
|
|
1267
|
+
# different dimensions
|
|
1268
|
+
gap> Semigroup(
|
|
1269
|
+
> Matrix(Integers, [[0, -3, 0, -2],
|
|
1270
|
+
> [-1, 1, -1, 0],
|
|
1271
|
+
> [0, 1, 0, 1],
|
|
1272
|
+
> [0, 0, 2, 0]]),
|
|
1273
|
+
> Matrix(Integers, [[4, 0, -2],
|
|
1274
|
+
> [1, -3, 0],
|
|
1275
|
+
> [5, -1, -4]]));
|
|
1276
|
+
Error, Usage: Semigroup(<gen>,...), Semigroup(<gens>), Semigroup(<D>),
|
|
1277
|
+
|
|
1278
|
+
# Test for Issue 141
|
|
1279
|
+
gap> S := Semigroup(Bipartition ([[1, 4], [2, 3], [-1, -4], [-2, -3]]),
|
|
1280
|
+
> Bipartition([[1, 2], [3, 4], [-1, -4], [-2, -3]]));;
|
|
1281
|
+
gap> PartialOrderOfDClasses(S);
|
|
1282
|
+
<immutable empty digraph with 1 vertex>
|
|
1283
|
+
|
|
1284
|
+
# Test for Issue 144
|
|
1285
|
+
gap> S := Semigroup(Bipartition([[1, 2], [-1], [-2]]),
|
|
1286
|
+
> Bipartition([[1, -1], [2], [-2]]),
|
|
1287
|
+
> Bipartition([[1], [2, -1], [-2]]),
|
|
1288
|
+
> Bipartition([[1, -2], [2], [-1]]),
|
|
1289
|
+
> Bipartition([[1], [2, -2], [-1]]),
|
|
1290
|
+
> Bipartition([[1], [2], [-1], [-2]]));;
|
|
1291
|
+
gap> IsInverseSemigroup(S);
|
|
1292
|
+
false
|
|
1293
|
+
gap> S := Semigroup(Bipartition([[1, 2], [-1], [-2]]),
|
|
1294
|
+
> Bipartition([[1, -1], [2], [-2]]),
|
|
1295
|
+
> Bipartition([[1], [2, -1], [-2]]),
|
|
1296
|
+
> Bipartition([[1, -2], [2], [-1]]),
|
|
1297
|
+
> Bipartition([[1], [2, -2], [-1]]),
|
|
1298
|
+
> Bipartition([[1], [2], [-1], [-2]]));;
|
|
1299
|
+
gap> NrDClasses(S);;
|
|
1300
|
+
gap> IsInverseSemigroup(S);
|
|
1301
|
+
false
|
|
1302
|
+
|
|
1303
|
+
# MaximalSubsemigroups, replacement test for manual example which becomes a
|
|
1304
|
+
#log because of the randomness in the generating sets here.
|
|
1305
|
+
gap> S := FullTransformationMonoid(4);;
|
|
1306
|
+
gap> Length(MaximalSubsemigroups(S)) = 9;
|
|
1307
|
+
true
|
|
1308
|
+
gap> ForAll(MaximalSubsemigroups(S), M -> M in
|
|
1309
|
+
> [Semigroup(Transformation([1, 4, 2, 3]),
|
|
1310
|
+
> Transformation([4, 2, 3, 4]),
|
|
1311
|
+
> Transformation([4, 3, 2, 1])),
|
|
1312
|
+
> Semigroup(Transformation([1, 1, 2, 3]),
|
|
1313
|
+
> Transformation([1, 2, 4, 3]),
|
|
1314
|
+
> Transformation([4, 2, 3, 4]),
|
|
1315
|
+
> Transformation([4, 3, 2, 1])),
|
|
1316
|
+
> Semigroup(Transformation([1, 1, 2, 3]),
|
|
1317
|
+
> Transformation([1, 3, 1, 2]),
|
|
1318
|
+
> Transformation([1, 4, 3, 2]),
|
|
1319
|
+
> Transformation([2, 1, 4, 3])),
|
|
1320
|
+
> Semigroup(Transformation([1, 3, 2]),
|
|
1321
|
+
> Transformation([2, 1, 3, 1]),
|
|
1322
|
+
> Transformation([3, 4, 1, 2]),
|
|
1323
|
+
> Transformation([3, 4, 1, 3])),
|
|
1324
|
+
> Semigroup(Transformation([1, 2, 4, 3]),
|
|
1325
|
+
> Transformation([1, 4, 2, 3]),
|
|
1326
|
+
> Transformation([2, 3, 1, 1]),
|
|
1327
|
+
> Transformation([2, 3, 1, 2]),
|
|
1328
|
+
> Transformation([4, 2, 3, 4])),
|
|
1329
|
+
> Semigroup(Transformation([1, 1, 2, 3]),
|
|
1330
|
+
> Transformation([1, 3, 2]),
|
|
1331
|
+
> Transformation([3, 1, 2]),
|
|
1332
|
+
> Transformation([4, 1, 2, 4])),
|
|
1333
|
+
> Semigroup(Transformation([2, 1]),
|
|
1334
|
+
> Transformation([2, 3, 1, 1]),
|
|
1335
|
+
> Transformation([4, 1, 2, 4]),
|
|
1336
|
+
> Transformation([4, 1, 3, 2])),
|
|
1337
|
+
> Semigroup(Transformation([2, 1, 3, 1]),
|
|
1338
|
+
> Transformation([3, 4, 1, 3]),
|
|
1339
|
+
> Transformation([4, 2, 1, 3]),
|
|
1340
|
+
> Transformation([4, 2, 3, 1])),
|
|
1341
|
+
> Semigroup(Transformation([2, 1]),
|
|
1342
|
+
> Transformation([2, 3, 4, 1]),
|
|
1343
|
+
> Transformation([3, 1, 3, 3]),
|
|
1344
|
+
> Transformation([4, 3, 3, 4]))]);
|
|
1345
|
+
true
|
|
1346
|
+
|
|
1347
|
+
# Test for not being allowed to generate a semigroup with bipartitions of
|
|
1348
|
+
# different degree
|
|
1349
|
+
gap> Semigroup(Bipartition([[-1, 1]]), Bipartition([]));
|
|
1350
|
+
Error, Usage: Semigroup(<gen>,...), Semigroup(<gens>), Semigroup(<D>),
|
|
1351
|
+
|
|
1352
|
+
# Issue 150: Bug in RepresentativeOfMinimalIdeal
|
|
1353
|
+
gap> S := Semigroup([PartialPerm([1, 2], [3, 2])]);;
|
|
1354
|
+
gap> RepresentativeOfMinimalIdeal(S);
|
|
1355
|
+
<identity partial perm on [ 2 ]>
|
|
1356
|
+
gap> IsZeroSimpleSemigroup(S);
|
|
1357
|
+
false
|
|
1358
|
+
|
|
1359
|
+
# Issue 152: Bug in IsomorphismPermGroup for non-perm transformations
|
|
1360
|
+
gap> S := Semigroup(Transformation([1, 3, 2, 1]),
|
|
1361
|
+
> Transformation([2, 1, 3, 2]));;
|
|
1362
|
+
gap> iso := IsomorphismPermGroup(S);;
|
|
1363
|
+
gap> inv := InverseGeneralMapping(iso);;
|
|
1364
|
+
gap> ForAll(S, x -> (x ^ iso) ^ inv = x);
|
|
1365
|
+
true
|
|
1366
|
+
|
|
1367
|
+
# Issue 160: Bug in IrreundantGeneratingSubset for a semigroup with a single
|
|
1368
|
+
# repeated generator
|
|
1369
|
+
gap> S := Semigroup([Transformation([1, 1]), Transformation([1, 1])]);
|
|
1370
|
+
<transformation semigroup of degree 2 with 2 generators>
|
|
1371
|
+
gap> IrredundantGeneratingSubset(S);
|
|
1372
|
+
[ Transformation( [ 1, 1 ] ) ]
|
|
1373
|
+
|
|
1374
|
+
# Issue 164: Bug in MatrixEntries for a Rees 0-matrix semigroup
|
|
1375
|
+
gap> S := Semigroup(SymmetricInverseMonoid(2));;
|
|
1376
|
+
gap> id := Identity(S);;
|
|
1377
|
+
gap> R := ReesZeroMatrixSemigroup(S, [[id], [0]]);;
|
|
1378
|
+
gap> MatrixEntries(R);
|
|
1379
|
+
[ 0, <identity partial perm on [ 1, 2 ]> ]
|
|
1380
|
+
|
|
1381
|
+
# Test for bug in kernel module
|
|
1382
|
+
gap> AsList(JonesMonoid(1));
|
|
1383
|
+
[ <block bijection: [ 1, -1 ]> ]
|
|
1384
|
+
|
|
1385
|
+
# Kernel-trace methods should only be selected for semigroups with inverse op
|
|
1386
|
+
gap> S := HallMonoid(2);;
|
|
1387
|
+
gap> latt := LatticeOfCongruences(S);;
|
|
1388
|
+
gap> IsIsomorphicDigraph(latt, DigraphFromDigraph6String("&C|E["));
|
|
1389
|
+
true
|
|
1390
|
+
gap> IsPartialOrderDigraph(latt);
|
|
1391
|
+
true
|
|
1392
|
+
|
|
1393
|
+
# Test bug in \in for high degree transformation semigroup
|
|
1394
|
+
gap> S := Semigroup(Transformation([4, 3, 2, 1]),
|
|
1395
|
+
> Transformation([3, 2, 3, 2]),
|
|
1396
|
+
> Transformation([1, 1, 2, 4]),
|
|
1397
|
+
> Transformation([1, 4, 3, 1]));;
|
|
1398
|
+
gap> T := Range(AntiIsomorphismTransformationSemigroup(S));;
|
|
1399
|
+
gap> M := MaximalSubsemigroups(T);;
|
|
1400
|
+
gap> T in M;
|
|
1401
|
+
false
|
|
1402
|
+
|
|
1403
|
+
# Test for Issue 217 (bug in \in for L-class of inverse semigroups)
|
|
1404
|
+
gap> S := InverseMonoid(PartialPerm([2, 3, 4, 5, 6], [1, 2, 3, 4, 5]),
|
|
1405
|
+
> PartialPerm([1, 2, 3, 4, 5], [1, 2, 3, 4, 6]),
|
|
1406
|
+
> PartialPerm([1, 2, 3, 4, 6], [1, 2, 3, 5, 6]),
|
|
1407
|
+
> PartialPerm([1, 2, 3, 5, 6], [1, 2, 4, 5, 6]),
|
|
1408
|
+
> PartialPerm([1, 2, 4, 5, 6], [1, 3, 4, 5, 6]),
|
|
1409
|
+
> PartialPerm([1, 3, 4, 5, 6], [2, 3, 4, 5, 6]),
|
|
1410
|
+
> PartialPerm([1, 2, 3, 4, 5, 6], [6, 5, 4, 3, 2, 1]));;
|
|
1411
|
+
gap> NrMaximalSubsemigroups(S);
|
|
1412
|
+
11
|
|
1413
|
+
gap> y := PartialPerm([1, 2, 3, 4, 5], [6, 5, 4, 2, 1]);;
|
|
1414
|
+
gap> D := DClass(S, y);;
|
|
1415
|
+
gap> y in D;
|
|
1416
|
+
true
|
|
1417
|
+
gap> ForAny(LClasses(D), L -> y in L);
|
|
1418
|
+
true
|
|
1419
|
+
gap> ForAll(LClasses(D), L -> ForAll(L, x -> x in L));
|
|
1420
|
+
true
|
|
1421
|
+
|
|
1422
|
+
# Bug in AsInverseSemigroupCongruenceByKernelTrace - abnormal trace
|
|
1423
|
+
gap> S := InverseSemigroup([PartialPerm([1, 2, 3], [5, 1, 2]),
|
|
1424
|
+
> PartialPerm([1, 2, 3, 4, 6], [3, 6, 4, 1, 5]),
|
|
1425
|
+
> PartialPerm([1, 2, 3, 4], [6, 1, 4, 2]),
|
|
1426
|
+
> PartialPerm([1, 3, 6], [4, 5, 2]),
|
|
1427
|
+
> PartialPerm([1, 3, 6], [1, 3, 6])]);;
|
|
1428
|
+
gap> pairs := [[PartialPerm([5], [1]), PartialPerm([], [])],
|
|
1429
|
+
> [PartialPerm([1, 2, 3, 4], [1, 2, 3, 4]),
|
|
1430
|
+
> PartialPerm([1, 3, 4, 6], [1, 3, 4, 6])]];;
|
|
1431
|
+
gap> cong := SemigroupCongruence(S, pairs);;
|
|
1432
|
+
gap> NrEquivalenceClasses(cong);
|
|
1433
|
+
32
|
|
1434
|
+
|
|
1435
|
+
# Bug in AsInverseSemigroupCongruenceByKernelTrace - abnormal kernel
|
|
1436
|
+
gap> S := InverseSemigroup([PartialPerm([1, 2], [1, 6]),
|
|
1437
|
+
> PartialPerm([1, 2, 4, 5], [1, 4, 5, 3]),
|
|
1438
|
+
> PartialPerm([1, 3, 4], [1, 2, 5]),
|
|
1439
|
+
> PartialPerm([1, 2, 3, 5, 6], [5, 1, 6, 2, 4]),
|
|
1440
|
+
> PartialPerm([1, 2, 3, 5, 6], [5, 4, 3, 1, 2])]);;
|
|
1441
|
+
gap> pairs := [[PartialPerm([2, 5, 6], [1, 6, 5]),
|
|
1442
|
+
> PartialPerm([2, 5, 6], [5, 1, 6])],
|
|
1443
|
+
> [PartialPerm([5], [2]), PartialPerm([1, 5], [5, 4])]];;
|
|
1444
|
+
gap> cong := SemigroupCongruence(S, pairs);;
|
|
1445
|
+
gap> NrEquivalenceClasses(cong);
|
|
1446
|
+
954
|
|
1447
|
+
|
|
1448
|
+
# Fix for Issue 230: bug in MaximalSubsemigroups
|
|
1449
|
+
gap> mat := [
|
|
1450
|
+
> [(), 0, 0, 0, 0, 0],
|
|
1451
|
+
> [0, (), 0, 0, 0, 0],
|
|
1452
|
+
> [0, 0, (), 0, 0, 0],
|
|
1453
|
+
> [0, 0, 0, (), 0, 0],
|
|
1454
|
+
> [0, 0, 0, 0, (), 0],
|
|
1455
|
+
> [0, 0, 0, 0, 0, ()]];;
|
|
1456
|
+
gap> R := ReesZeroMatrixSemigroup(Group([(1, 5, 4, 3, 2), (1, 5)(2, 4)]),
|
|
1457
|
+
> mat);;
|
|
1458
|
+
gap> contain := [
|
|
1459
|
+
> RMSElement(R, 1, (1, 5)(2, 4), 6),
|
|
1460
|
+
> RMSElement(R, 1, (), 6),
|
|
1461
|
+
> RMSElement(R, 2, (1, 2, 3, 4, 5), 1),
|
|
1462
|
+
> RMSElement(R, 2, (), 5),
|
|
1463
|
+
> RMSElement(R, 3, (), 2),
|
|
1464
|
+
> RMSElement(R, 3, (1, 3)(4, 5), 4),
|
|
1465
|
+
> RMSElement(R, 4, (), 3),
|
|
1466
|
+
> RMSElement(R, 4, (1, 3)(4, 5), 3),
|
|
1467
|
+
> RMSElement(R, 5, (1, 3)(4, 5), 4),
|
|
1468
|
+
> RMSElement(R, 5, (), 2),
|
|
1469
|
+
> RMSElement(R, 6, (1, 5, 4, 3, 2), 5),
|
|
1470
|
+
> RMSElement(R, 6, (), 1)];;
|
|
1471
|
+
gap> MaximalSubsemigroups(R, rec(number := true, contain := contain));
|
|
1472
|
+
1
|
|
1473
|
+
|
|
1474
|
+
# Fix issue with GeneratorsSmallest for a transformation semigroup generated by
|
|
1475
|
+
# the identity
|
|
1476
|
+
gap> S := Semigroup(IdentityTransformation);;
|
|
1477
|
+
gap> GeneratorsSmallest(S);
|
|
1478
|
+
[ IdentityTransformation ]
|
|
1479
|
+
|
|
1480
|
+
# Fix issue with duplicate generators and ClosureSemigroup
|
|
1481
|
+
gap> gens := [Transformation([1, 2, 1]),
|
|
1482
|
+
> IdentityTransformation,
|
|
1483
|
+
> Transformation([1, 2, 4, 6, 6, 5]),
|
|
1484
|
+
> Transformation([2, 1, 3, 5, 5]),
|
|
1485
|
+
> Transformation([5, 4, 4, 2, 1]),
|
|
1486
|
+
> Transformation([5, 4, 6, 2, 1, 6]),
|
|
1487
|
+
> Transformation([6, 6, 3, 4, 5, 1])];;
|
|
1488
|
+
gap> S := Semigroup(gens[1], gens[1]);;
|
|
1489
|
+
gap> Size(S);
|
|
1490
|
+
1
|
|
1491
|
+
gap> for x in gens do
|
|
1492
|
+
> S := ClosureSemigroup(S, x);
|
|
1493
|
+
> Size(S);
|
|
1494
|
+
> od;
|
|
1495
|
+
gap> Size(S);
|
|
1496
|
+
119
|
|
1497
|
+
gap> Size(Semigroup(S));
|
|
1498
|
+
119
|
|
1499
|
+
|
|
1500
|
+
# Test Issue #237 part 1
|
|
1501
|
+
gap> T := Semigroup([
|
|
1502
|
+
> Transformation([1, 2, 6, 4, 5, 6]),
|
|
1503
|
+
> Transformation([1, 2, 3, 4, 6, 6]),
|
|
1504
|
+
> Transformation([1, 2, 3, 6, 5, 6]),
|
|
1505
|
+
> Transformation([1, 6, 6, 4, 5, 6]),
|
|
1506
|
+
> Transformation([1, 6, 3, 4, 6, 6]),
|
|
1507
|
+
> Transformation([1, 6, 3, 6, 5, 6]),
|
|
1508
|
+
> Transformation([6, 2, 3, 6, 5, 6]),
|
|
1509
|
+
> Transformation([6, 2, 6, 4, 5, 6]),
|
|
1510
|
+
> Transformation([6, 2, 3, 4, 6, 6])]);;
|
|
1511
|
+
gap> x := Transformation([1, 6, 3, 6, 6, 6]);;
|
|
1512
|
+
gap> y := Transformation([6, 6, 3, 6, 6, 6]);;
|
|
1513
|
+
gap> IsIdempotent(x) and IsIdempotent(y) and x in T and y in T;
|
|
1514
|
+
true
|
|
1515
|
+
gap> I := IdempotentGeneratedSubsemigroup(T);;
|
|
1516
|
+
gap> IsGreensDGreaterThanFunc(I)(x, y);
|
|
1517
|
+
true
|
|
1518
|
+
gap> T := Semigroup(T);;
|
|
1519
|
+
gap> I := IdempotentGeneratedSubsemigroup(T);;
|
|
1520
|
+
gap> IsInverseSemigroup(I);
|
|
1521
|
+
true
|
|
1522
|
+
gap> IsGreensDGreaterThanFunc(I)(x, y);
|
|
1523
|
+
true
|
|
1524
|
+
|
|
1525
|
+
# Test Issue #237 part 2
|
|
1526
|
+
gap> T := Semigroup([
|
|
1527
|
+
> Transformation([1, 2, 6, 4, 5, 6]),
|
|
1528
|
+
> Transformation([1, 2, 3, 4, 6, 6]),
|
|
1529
|
+
> Transformation([1, 2, 3, 6, 5, 6]),
|
|
1530
|
+
> Transformation([1, 6, 6, 4, 5, 6]),
|
|
1531
|
+
> Transformation([1, 6, 3, 4, 6, 6]),
|
|
1532
|
+
> Transformation([1, 6, 3, 6, 5, 6]),
|
|
1533
|
+
> Transformation([6, 2, 3, 6, 5, 6]),
|
|
1534
|
+
> Transformation([6, 2, 6, 4, 5, 6]),
|
|
1535
|
+
> Transformation([6, 2, 3, 4, 6, 6])]);;
|
|
1536
|
+
gap> Set(PrimitiveIdempotents(T));
|
|
1537
|
+
[ Transformation( [ 1, 6, 6, 6, 6, 6 ] ),
|
|
1538
|
+
Transformation( [ 6, 2, 6, 6, 6, 6 ] ),
|
|
1539
|
+
Transformation( [ 6, 6, 3, 6, 6, 6 ] ),
|
|
1540
|
+
Transformation( [ 6, 6, 6, 4, 6, 6 ] ),
|
|
1541
|
+
Transformation( [ 6, 6, 6, 6, 5, 6 ] ) ]
|
|
1542
|
+
|
|
1543
|
+
# Issue 253: IsIdempotentGenerated
|
|
1544
|
+
|
|
1545
|
+
# Problem with IsIdempotentGenerated for ideals
|
|
1546
|
+
gap> S := Semigroup([Transformation([3, 2, 1]), Transformation([2, 2, 2])]);
|
|
1547
|
+
<transformation semigroup of degree 3 with 2 generators>
|
|
1548
|
+
gap> IsIdempotentGenerated(S);
|
|
1549
|
+
false
|
|
1550
|
+
gap> I := SemigroupIdeal(S, S.1 ^ 2);;
|
|
1551
|
+
gap> IsIdempotentGenerated(I);
|
|
1552
|
+
false
|
|
1553
|
+
gap> I = S;
|
|
1554
|
+
true
|
|
1555
|
+
|
|
1556
|
+
# Problem with IsIdempotentGenerated for Rees 0-matrix semigroups over
|
|
1557
|
+
# non-groups
|
|
1558
|
+
gap> mat := [[
|
|
1559
|
+
> Transformation([2, 3, 1]),
|
|
1560
|
+
> Transformation([2, 1]),
|
|
1561
|
+
> Transformation([1, 2, 1])]];;
|
|
1562
|
+
gap> R := ReesZeroMatrixSemigroup(FullTransformationMonoid(3), mat);
|
|
1563
|
+
<Rees 0-matrix semigroup 3x1 over <full transformation monoid of degree 3>>
|
|
1564
|
+
gap> IsIdempotentGenerated(R);
|
|
1565
|
+
false
|
|
1566
|
+
|
|
1567
|
+
# Issue #191: part 1 of semicong.tst (congruences on fp semigroups)
|
|
1568
|
+
gap> n := 3;;
|
|
1569
|
+
gap> f := FreeSemigroup(n);;
|
|
1570
|
+
gap> gns := GeneratorsOfSemigroup(f);;
|
|
1571
|
+
gap> rel := [];;
|
|
1572
|
+
gap> x := 0;;
|
|
1573
|
+
gap> for x in [1 .. Length(gns) - 1] do
|
|
1574
|
+
> Append(rel, List(gns, y -> [gns[x] * y, y * gns[x]]));
|
|
1575
|
+
> Add(rel, [gns[x] ^ (x + 1), gns[x]]);
|
|
1576
|
+
> Add(rel, [gns[x] * Last(gns), gns[x]]);
|
|
1577
|
+
> Add(rel, [Last(gns) * gns[x], gns[x]]);
|
|
1578
|
+
> od;
|
|
1579
|
+
gap> s := f / rel;;
|
|
1580
|
+
gap> sgns := GeneratorsOfSemigroup(s);;
|
|
1581
|
+
gap> c := SemigroupCongruenceByGeneratingPairs(s, [[sgns[1], sgns[2]]]);;
|
|
1582
|
+
gap> EquivalenceRelationPartition(c);
|
|
1583
|
+
[ [ s1, s2, s1*s2, s2^2, s1*s2^2 ] ]
|
|
1584
|
+
gap> ##
|
|
1585
|
+
gap> ## Check to see if elements are in the partition
|
|
1586
|
+
gap> ## true and false
|
|
1587
|
+
gap> ##
|
|
1588
|
+
gap> ec := EquivalenceClassOfElement(c, sgns[n]);;
|
|
1589
|
+
gap> Size(ec);
|
|
1590
|
+
1
|
|
1591
|
+
gap> ec := EquivalenceClassOfElement(c, sgns[n - 1]);;
|
|
1592
|
+
gap> sgns[n] in ec;
|
|
1593
|
+
false
|
|
1594
|
+
gap> Size(ec);
|
|
1595
|
+
5
|
|
1596
|
+
|
|
1597
|
+
# Infinite congruence classes: part 2 of semicong.tst (fp semigroups)
|
|
1598
|
+
gap> f := FreeSemigroup(2);;
|
|
1599
|
+
gap> s := f / [[f.1 ^ 3, f.1], [f.1 * f.2, f.1], [f.2 * f.1, f.1]];;
|
|
1600
|
+
gap> gns := GeneratorsOfSemigroup(s);;
|
|
1601
|
+
gap> c := SemigroupCongruenceByGeneratingPairs(s, [[gns[1], gns[1] ^ 2],
|
|
1602
|
+
> [gns[2], gns[2] ^ 2]]);;
|
|
1603
|
+
gap> ec := EquivalenceClassOfElement(c, gns[2]);;
|
|
1604
|
+
gap> gns[2] ^ 20 in ec;
|
|
1605
|
+
true
|
|
1606
|
+
gap> gns[2] ^ 40 in ec;
|
|
1607
|
+
true
|
|
1608
|
+
gap> ##
|
|
1609
|
+
gap> ## We should never get a full closure
|
|
1610
|
+
gap> ##
|
|
1611
|
+
gap> HasEquivalenceRelationPartition(c);
|
|
1612
|
+
false
|
|
1613
|
+
|
|
1614
|
+
# Issue 286: Bug in IsSynchronizingSemigroup
|
|
1615
|
+
gap> S := FullTransformationMonoid(10);
|
|
1616
|
+
<full transformation monoid of degree 10>
|
|
1617
|
+
gap> IsSynchronizingSemigroup(S);
|
|
1618
|
+
true
|
|
1619
|
+
|
|
1620
|
+
# Free semigroup congruence test from extreme/cong.tst
|
|
1621
|
+
gap> F := FreeSemigroup(1);;
|
|
1622
|
+
gap> x := GeneratorsOfSemigroup(F)[1];;
|
|
1623
|
+
gap> pair := [x ^ 2, x ^ 4];;
|
|
1624
|
+
gap> cong := SemigroupCongruence(F, pair);
|
|
1625
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
1626
|
+
[ s1 ]> with 1 generating pairs>
|
|
1627
|
+
gap> pair in cong;
|
|
1628
|
+
true
|
|
1629
|
+
gap> EquivalenceRelationLookup(cong);
|
|
1630
|
+
Error, the argument (a 2-sided congruence) must have finite range
|
|
1631
|
+
gap> EquivalenceClasses(cong);
|
|
1632
|
+
[ <2-sided congruence class of s1>, <2-sided congruence class of s1^2>,
|
|
1633
|
+
<2-sided congruence class of s1^3> ]
|
|
1634
|
+
gap> NrEquivalenceClasses(cong);
|
|
1635
|
+
3
|
|
1636
|
+
|
|
1637
|
+
# Issue 300: problem with InverseOfSemigroupElement for an acting monoid
|
|
1638
|
+
gap> S := Monoid(Transformation([1, 2, 4, 4]),
|
|
1639
|
+
> Transformation([4, 2, 3, 4]),
|
|
1640
|
+
> Transformation([1, 4, 3, 4]));;
|
|
1641
|
+
gap> IsEUnitaryInverseSemigroup(S);
|
|
1642
|
+
true
|
|
1643
|
+
|
|
1644
|
+
# Issue 167: IsomorphismSemigroups, for an RMS where an arg is not WholeFamily
|
|
1645
|
+
gap> R := ReesMatrixSemigroup(Group(()), [[(), ()], [(), ()]]);;
|
|
1646
|
+
gap> W := Semigroup(RMSElement(R, 2, (), 2));;
|
|
1647
|
+
gap> S := ReesMatrixSemigroup(Group(()), [[()]]);;
|
|
1648
|
+
gap> IsReesMatrixSemigroup(W);
|
|
1649
|
+
true
|
|
1650
|
+
gap> IsomorphismSemigroups(S, S);
|
|
1651
|
+
((), IdentityMapping( Group( [ () ] ) ), [ (), () ])
|
|
1652
|
+
gap> IsomorphismSemigroups(W, W) = IdentityMapping(W);
|
|
1653
|
+
true
|
|
1654
|
+
gap> IsomorphismSemigroups(W, S);
|
|
1655
|
+
CompositionMapping( ((), GroupHomomorphismByImages( Group( [ () ] ), Group(
|
|
1656
|
+
[ () ] ), [ ], [ ] ), [ (), () ]),
|
|
1657
|
+
<Rees matrix semigroup 1x1 over Group(())> ->
|
|
1658
|
+
<Rees matrix semigroup 1x1 over Group(())> )
|
|
1659
|
+
|
|
1660
|
+
# Issue 363: MultiplicativeNeutralElement, for an ideal
|
|
1661
|
+
gap> S := SingularFactorisableDualSymmetricInverseMonoid(3);
|
|
1662
|
+
<inverse bipartition semigroup ideal of degree 3 with 1 generator>
|
|
1663
|
+
gap> IsMonoidAsSemigroup(S);
|
|
1664
|
+
false
|
|
1665
|
+
|
|
1666
|
+
# Issue 377: IsInverseSemigroup
|
|
1667
|
+
gap> S := Semigroup([
|
|
1668
|
+
> Transformation([1, 1, 1, 2, 1, 5, 3]),
|
|
1669
|
+
> Transformation([1, 4, 4, 4, 6, 6, 6])],
|
|
1670
|
+
> rec(acting := false));;
|
|
1671
|
+
gap> IsInverseSemigroup(S);
|
|
1672
|
+
false
|
|
1673
|
+
gap> S := Semigroup([
|
|
1674
|
+
> PBR([[-1], [-1], [-3], [-1], [-3], [-3], [-2]],
|
|
1675
|
+
> [[1, 2, 4], [7], [3, 5, 6], [], [], [], []]),
|
|
1676
|
+
> PBR([[-1], [-2], [-3], [-4], [-5], [-5], [-4]],
|
|
1677
|
+
> [[1], [2], [3], [4, 7], [5, 6], [], []]),
|
|
1678
|
+
> PBR([[-1], [-2], [-3], [-6], [-6], [-6], [-6]],
|
|
1679
|
+
> [[1], [2], [3], [], [], [4, 5, 6, 7], []])]);;
|
|
1680
|
+
gap> IsInverseSemigroup(S);
|
|
1681
|
+
false
|
|
1682
|
+
|
|
1683
|
+
# Issue 371: GeneratorsOfSemigroup for a monoid
|
|
1684
|
+
gap> R := ReesMatrixSemigroup(Group(()), [[()]]);;
|
|
1685
|
+
gap> S := MonoidByAdjoiningIdentity(R);
|
|
1686
|
+
<commutative monoid with 1 generator>
|
|
1687
|
+
gap> GeneratorsOfSemigroup(S);
|
|
1688
|
+
[ ONE, (1,(),1) ]
|
|
1689
|
+
gap> Size(S);
|
|
1690
|
+
2
|
|
1691
|
+
gap> Elements(S);
|
|
1692
|
+
[ ONE, (1,(),1) ]
|
|
1693
|
+
|
|
1694
|
+
# Issue 393: StructureDescription method in Semigroups inappropriately selected
|
|
1695
|
+
gap> F := FreeGroup("r", "s");;
|
|
1696
|
+
gap> r := F.1;;
|
|
1697
|
+
gap> s := F.2;;
|
|
1698
|
+
gap> G := F / [s * r * s ^ (- 1) * r ^ (- 1)];;
|
|
1699
|
+
gap> StructureDescription(G) in ["C0 x C0", "Z x Z"];
|
|
1700
|
+
true
|
|
1701
|
+
|
|
1702
|
+
# Issue 389: NaturalPartialOrder
|
|
1703
|
+
gap> S := Semigroup(SymmetricInverseMonoid(3), rec(acting := true));;
|
|
1704
|
+
gap> es := IdempotentGeneratedSubsemigroup(S);;
|
|
1705
|
+
gap> NaturalPartialOrder(es);
|
|
1706
|
+
[ [ ], [ 1 ], [ 1 ], [ 1, 2, 3 ], [ 1 ], [ 1, 3, 5 ], [ 1, 2, 5 ],
|
|
1707
|
+
[ 1, 2, 3, 4, 5, 6, 7 ] ]
|
|
1708
|
+
gap> es := AsSemigroup(IsBlockBijectionSemigroup, es);;
|
|
1709
|
+
gap> NaturalPartialOrder(es);
|
|
1710
|
+
[ [ ], [ 1 ], [ 1 ], [ 1 ], [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ],
|
|
1711
|
+
[ 1, 2, 3, 4, 5, 6, 7 ] ]
|
|
1712
|
+
|
|
1713
|
+
# Issue 251
|
|
1714
|
+
gap> S := Monoid([
|
|
1715
|
+
> Transformation([2, 1]),
|
|
1716
|
+
> Transformation([3, 1, 2]),
|
|
1717
|
+
> Transformation([4, 2, 3, 4]),
|
|
1718
|
+
> Transformation([2, 2])]);;
|
|
1719
|
+
gap> slist := ShallowCopy(AsList(S));;
|
|
1720
|
+
gap> Sort(slist);
|
|
1721
|
+
gap> r := MultiplicativeNeutralElement(S);;
|
|
1722
|
+
gap> for s in S do
|
|
1723
|
+
> if not r * s in slist then
|
|
1724
|
+
> Print(s);
|
|
1725
|
+
> fi;
|
|
1726
|
+
> od;
|
|
1727
|
+
|
|
1728
|
+
# Issue 435 (inappropriate elements added during ClosureMonoid)
|
|
1729
|
+
gap> S := InverseMonoid(PartialPerm([1, 4], [1, 4]),
|
|
1730
|
+
> PartialPerm([1, 3, 4, 5], [1, 6, 4, 2]),
|
|
1731
|
+
> PartialPerm([1, 2, 4, 6], [1, 5, 4, 3]),
|
|
1732
|
+
> PartialPerm([1, 4], [4, 1]),
|
|
1733
|
+
> PartialPerm([1, 3, 4, 5], [1, 3, 4, 5]),
|
|
1734
|
+
> PartialPerm([1, 2, 4, 6], [1, 2, 4, 6]),
|
|
1735
|
+
> PartialPerm([1, 2, 3, 4, 5, 6, 7],
|
|
1736
|
+
> [1, 2, 3, 4, 5, 6, 7]));
|
|
1737
|
+
<inverse partial perm monoid of rank 7 with 7 generators>
|
|
1738
|
+
gap> I := IdempotentGeneratedSubsemigroup(S);
|
|
1739
|
+
<inverse partial perm monoid of rank 7 with 3 generators>
|
|
1740
|
+
gap> I = Semigroup(Idempotents(S));
|
|
1741
|
+
true
|
|
1742
|
+
gap> Size(I);
|
|
1743
|
+
4
|
|
1744
|
+
|
|
1745
|
+
# Issue 459: IsTrivial method broken for semigroups with 0 generators
|
|
1746
|
+
gap> M0 := Magma(FamilyObj([1]), []);;
|
|
1747
|
+
gap> IsTrivial(M0);
|
|
1748
|
+
false
|
|
1749
|
+
gap> Size(M0);
|
|
1750
|
+
0
|
|
1751
|
+
|
|
1752
|
+
# Issue 461: NrEquivalenceClasses gives incorrect answer
|
|
1753
|
+
gap> tab := [[1, 2, 3, 3], [2, 3, 1, 1], [3, 1, 2, 2], [3, 1, 2, 2]];;
|
|
1754
|
+
gap> S := SemigroupByMultiplicationTable(tab);;
|
|
1755
|
+
gap> cong := SemigroupCongruence(S, [[S.3, S.4]]);;
|
|
1756
|
+
gap> S.1 in EquivalenceClassOfElement(cong, S.3);
|
|
1757
|
+
false
|
|
1758
|
+
gap> NrEquivalenceClasses(cong);
|
|
1759
|
+
3
|
|
1760
|
+
gap> S.1 in EquivalenceClassOfElement(cong, S.3);
|
|
1761
|
+
false
|
|
1762
|
+
gap> IsUniversalSemigroupCongruence(cong);
|
|
1763
|
+
false
|
|
1764
|
+
|
|
1765
|
+
# Issues 676-677
|
|
1766
|
+
gap> S := FreeBand(2);;
|
|
1767
|
+
gap> cong := SemigroupCongruence(S, []);;
|
|
1768
|
+
gap> NonTrivialEquivalenceClasses(cong);
|
|
1769
|
+
[ ]
|
|
1770
|
+
|
|
1771
|
+
# Issue 680
|
|
1772
|
+
gap> F := FreeSemigroup(2);;
|
|
1773
|
+
gap> s1 := F.1;; s2 := F.2;;
|
|
1774
|
+
gap> rels := [[s2 * s1 * s2, s2 * s1], [s1, s1], [s2, s2],
|
|
1775
|
+
> [s1 * s2, s1 * s2], [s2 * s1, s2 * s1]];;
|
|
1776
|
+
gap> cong := SemigroupCongruence(F, rels);
|
|
1777
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
1778
|
+
[ s1, s2 ]> with 1 generating pairs>
|
|
1779
|
+
gap> NrEquivalenceClasses(cong);
|
|
1780
|
+
infinity
|
|
1781
|
+
gap> EquivalenceRelationPartitionWithSingletons(cong);
|
|
1782
|
+
Error, the argument (a congruence) must have finite range
|
|
1783
|
+
gap> EquivalenceRelationLookup(cong);
|
|
1784
|
+
Error, the argument (a 2-sided congruence) must have finite range
|
|
1785
|
+
|
|
1786
|
+
# Issue 788
|
|
1787
|
+
gap> S := GLM(2, 2);
|
|
1788
|
+
<general linear monoid 2x2 over GF(2)>
|
|
1789
|
+
gap> Matrix(GF(4), One(S));
|
|
1790
|
+
[ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ]
|
|
1791
|
+
gap> Size(Elements(S));
|
|
1792
|
+
16
|
|
1793
|
+
|
|
1794
|
+
# Issue 764, InjectionPrincipalFactor can error for D-classes of semigroups of
|
|
1795
|
+
# matrices over finite fields
|
|
1796
|
+
gap> S := Semigroup(
|
|
1797
|
+
> [Matrix(GF(3),
|
|
1798
|
+
> [[Z(3), Z(3), Z(3) ^ 0],
|
|
1799
|
+
> [0 * Z(3), Z(3), Z(3)],
|
|
1800
|
+
> [Z(3), 0 * Z(3), Z(3) ^ 0]]),
|
|
1801
|
+
> Matrix(GF(3),
|
|
1802
|
+
> [[Z(3), Z(3), 0 * Z(3)],
|
|
1803
|
+
> [Z(3) ^ 0, Z(3) ^ 0, 0 * Z(3)],
|
|
1804
|
+
> [Z(3) ^ 0, Z(3) ^ 0, 0 * Z(3)]])]);;
|
|
1805
|
+
gap> InjectionPrincipalFactor(DClass(S, S.1));;
|
|
1806
|
+
|
|
1807
|
+
# Issue 800, Quotient semigroup elements are not associative
|
|
1808
|
+
gap> T := FullTransformationMonoid(2);;
|
|
1809
|
+
gap> cong := SemigroupCongruence(T, []);;
|
|
1810
|
+
gap> IsAssociativeElement(Elements(T / cong)[1]);
|
|
1811
|
+
true
|
|
1812
|
+
|
|
1813
|
+
#
|
|
1814
|
+
gap> SEMIGROUPS.StopTest();
|
|
1815
|
+
gap> STOP_TEST("Semigroups package: testinstall.tst");
|