passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.
- 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-unknown-linux-gnu-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1016 -0
- gap/pkg/semigroups/config.status +1132 -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.29.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.libs/libsemigroups-8ea3c4e7.so.2.0.0 +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,739 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
#W standard/semigroups/semidp.tst
|
|
4
|
+
#Y Copyright (C) 2017-2022 Wilf A. Wilson
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#@local BruteForceHomomCheck, D, ProductCheck, S, T, e, embeds, gens, i, list
|
|
12
|
+
#@local nrfactors, p, projects, s, smap, t, tmap
|
|
13
|
+
gap> START_TEST("Semigroups package: standard/semigroups/semidp.tst");
|
|
14
|
+
gap> LoadPackage("semigroups", false);;
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
gap> SEMIGROUPS.StartTest();;
|
|
18
|
+
|
|
19
|
+
################################################################################
|
|
20
|
+
# Helper functions
|
|
21
|
+
################################################################################
|
|
22
|
+
|
|
23
|
+
# semifp: Embedding and Projection testers
|
|
24
|
+
gap> BruteForceHomomCheck := function(map)
|
|
25
|
+
> local s, t, smap, tmap, S;
|
|
26
|
+
> S := Source(map);
|
|
27
|
+
> for s in S do
|
|
28
|
+
> for t in S do
|
|
29
|
+
> smap := s ^ map;
|
|
30
|
+
> tmap := t ^ map;
|
|
31
|
+
> if smap * tmap <> (s * t) ^ map then
|
|
32
|
+
> return false;
|
|
33
|
+
> fi;
|
|
34
|
+
> od;
|
|
35
|
+
> od;
|
|
36
|
+
> return true;
|
|
37
|
+
> end;;
|
|
38
|
+
gap> ProductCheck := function(product, arguments, homom)
|
|
39
|
+
> local e, p, i;
|
|
40
|
+
> for i in [1 .. Length(arguments)] do
|
|
41
|
+
> e := Embedding(product, i);
|
|
42
|
+
> p := Projection(product, i);
|
|
43
|
+
> if arguments[i] <> Source(e)
|
|
44
|
+
> or arguments[i] <> Range(p)
|
|
45
|
+
> or (homom and not BruteForceHomomCheck(e))
|
|
46
|
+
> or (homom and not BruteForceHomomCheck(p))
|
|
47
|
+
> or not ForAll(arguments[i], s -> (s ^ e) ^ p = s) then
|
|
48
|
+
> return false;
|
|
49
|
+
> fi;
|
|
50
|
+
> od;
|
|
51
|
+
> return true;
|
|
52
|
+
> end;;
|
|
53
|
+
|
|
54
|
+
################################################################################
|
|
55
|
+
# Testing errors
|
|
56
|
+
################################################################################
|
|
57
|
+
|
|
58
|
+
# semidp: SEMIGROUPS.DirectProductOp, errors, 1
|
|
59
|
+
gap> SEMIGROUPS.DirectProductOp(fail, fail, fail, fail, fail);
|
|
60
|
+
Error, the 1st argument is not a non-empty list
|
|
61
|
+
gap> SEMIGROUPS.DirectProductOp([], fail, fail, fail, fail);
|
|
62
|
+
Error, the 1st argument is not a non-empty list
|
|
63
|
+
|
|
64
|
+
# semidp: DirectProductOp, for transformation semigroups, errors, 1
|
|
65
|
+
gap> DirectProductOp([], Monoid(Transformation([1, 1])));
|
|
66
|
+
Error, the 1st argument (a list) is not non-empty
|
|
67
|
+
gap> DirectProductOp([], Semigroup(Transformation([1, 1])));
|
|
68
|
+
Error, the 1st argument (a list) is not non-empty
|
|
69
|
+
gap> DirectProductOp([Semigroup(PartialPerm([1 .. 3]))],
|
|
70
|
+
> Monoid(Transformation([1, 1])));
|
|
71
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
72
|
+
ment (a list)
|
|
73
|
+
gap> DirectProductOp([Semigroup(PartialPerm([1 .. 3]))],
|
|
74
|
+
> Semigroup(Transformation([1, 1])));
|
|
75
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
76
|
+
ment (a list)
|
|
77
|
+
|
|
78
|
+
# semidp: DirectProductOp, for partial perm semigroups, errors, 1
|
|
79
|
+
gap> DirectProductOp([], Semigroup(PartialPerm([1 .. 3])));
|
|
80
|
+
Error, the 1st argument (a list) is not non-empty
|
|
81
|
+
gap> DirectProductOp([Semigroup(IdentityTransformation)],
|
|
82
|
+
> Semigroup(PartialPerm([1 .. 3])));
|
|
83
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
84
|
+
ment (a list)
|
|
85
|
+
|
|
86
|
+
# semidp: DirectProductOp, for bipartition semigroups, errors, 1
|
|
87
|
+
gap> DirectProductOp([], PartitionMonoid(1));
|
|
88
|
+
Error, the 1st argument (a list) is not non-empty
|
|
89
|
+
gap> DirectProductOp([PartitionMonoid(1)], PartitionMonoid(2));
|
|
90
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
91
|
+
ment (a list)
|
|
92
|
+
|
|
93
|
+
# semidp: DirectProductOp, for PBR semigroups, errors, 1
|
|
94
|
+
gap> DirectProductOp([], FullPBRMonoid(1));
|
|
95
|
+
Error, the 1st argument (a list) is not non-empty
|
|
96
|
+
gap> DirectProductOp([FullPBRMonoid(1)], FullPBRMonoid(2));
|
|
97
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
98
|
+
ment (a list)
|
|
99
|
+
|
|
100
|
+
# semidp: DirectProductOp, for a mix of semigroups, errors, 1
|
|
101
|
+
gap> S := ReesZeroMatrixSemigroup(Group([(1, 2)]), [[(), (1, 2)], [0, ()]]);
|
|
102
|
+
<Rees 0-matrix semigroup 2x2 over Group([ (1,2) ])>
|
|
103
|
+
gap> T := ReesMatrixSemigroup(SymmetricGroup(4), [[(1, 4, 3)], [()]]);
|
|
104
|
+
<Rees matrix semigroup 1x2 over Sym( [ 1 .. 4 ] )>
|
|
105
|
+
gap> DirectProductOp([], S);
|
|
106
|
+
Error, the 1st argument (a list) is not non-empty
|
|
107
|
+
gap> DirectProductOp([T], S);
|
|
108
|
+
Error, the 2nd argument is not one of the semigroups contained in the 1st argu\
|
|
109
|
+
ment (a list)
|
|
110
|
+
gap> DirectProductOp([S, T, FreeSemigroup(1)], S);
|
|
111
|
+
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
|
|
112
|
+
Error, no 2nd choice method found for `DirectProductOp' on 2 arguments
|
|
113
|
+
|
|
114
|
+
################################################################################
|
|
115
|
+
# Testing transformation semigroups
|
|
116
|
+
################################################################################
|
|
117
|
+
|
|
118
|
+
# semidp: DirectProduct, for transformation semigroups, 1
|
|
119
|
+
gap> S := ZeroSemigroup(IsTransformationSemigroup, 2);
|
|
120
|
+
<commutative non-regular transformation semigroup of size 2, degree 3 with 1
|
|
121
|
+
generator>
|
|
122
|
+
gap> D := DirectProduct(S);;
|
|
123
|
+
gap> ProductCheck(D, [S], true);
|
|
124
|
+
true
|
|
125
|
+
gap> S = D;
|
|
126
|
+
true
|
|
127
|
+
|
|
128
|
+
# semidp: DirectProduct, for transformation semigroups, 2
|
|
129
|
+
gap> S := ZeroSemigroup(IsTransformationSemigroup, 2);
|
|
130
|
+
<commutative non-regular transformation semigroup of size 2, degree 3 with 1
|
|
131
|
+
generator>
|
|
132
|
+
gap> D := DirectProduct(S, S, S);;
|
|
133
|
+
gap> IsRegularSemigroup(D);
|
|
134
|
+
false
|
|
135
|
+
gap> D;
|
|
136
|
+
<commutative non-regular transformation semigroup of size 8, degree 9 with 7
|
|
137
|
+
generators>
|
|
138
|
+
gap> HasIndecomposableElements(D);
|
|
139
|
+
true
|
|
140
|
+
gap> IndecomposableElements(D);
|
|
141
|
+
[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 8 ] ),
|
|
142
|
+
Transformation( [ 1, 1, 1, 4, 4, 5, 7, 7, 7 ] ),
|
|
143
|
+
Transformation( [ 1, 1, 1, 4, 4, 5, 7, 7, 8 ] ),
|
|
144
|
+
Transformation( [ 1, 1, 2, 4, 4, 4, 7, 7, 7 ] ),
|
|
145
|
+
Transformation( [ 1, 1, 2, 4, 4, 4, 7, 7, 8 ] ),
|
|
146
|
+
Transformation( [ 1, 1, 2, 4, 4, 5, 7, 7, 7 ] ),
|
|
147
|
+
Transformation( [ 1, 1, 2, 4, 4, 5, 7, 7, 8 ] ) ]
|
|
148
|
+
gap> HasMinimalSemigroupGeneratingSet(D);
|
|
149
|
+
true
|
|
150
|
+
gap> MinimalSemigroupGeneratingSet(D) = IndecomposableElements(D);
|
|
151
|
+
true
|
|
152
|
+
gap> ProductCheck(D, [S, S, S], true);
|
|
153
|
+
true
|
|
154
|
+
gap> D := Semigroup(D);
|
|
155
|
+
<transformation semigroup of degree 9 with 7 generators>
|
|
156
|
+
gap> IsZeroSemigroup(D) and Size(D) = 8;
|
|
157
|
+
true
|
|
158
|
+
gap> IndecomposableElements(D);
|
|
159
|
+
[ Transformation( [ 1, 1, 1, 4, 4, 4, 7, 7, 8 ] ),
|
|
160
|
+
Transformation( [ 1, 1, 1, 4, 4, 5, 7, 7, 7 ] ),
|
|
161
|
+
Transformation( [ 1, 1, 1, 4, 4, 5, 7, 7, 8 ] ),
|
|
162
|
+
Transformation( [ 1, 1, 2, 4, 4, 4, 7, 7, 7 ] ),
|
|
163
|
+
Transformation( [ 1, 1, 2, 4, 4, 4, 7, 7, 8 ] ),
|
|
164
|
+
Transformation( [ 1, 1, 2, 4, 4, 5, 7, 7, 7 ] ),
|
|
165
|
+
Transformation( [ 1, 1, 2, 4, 4, 5, 7, 7, 8 ] ) ]
|
|
166
|
+
|
|
167
|
+
# semidp: DirectProduct, for transformation semigroups, 3
|
|
168
|
+
gap> S := ZeroSemigroup(IsTransformationSemigroup, 3);
|
|
169
|
+
<commutative non-regular transformation semigroup of size 3, degree 4 with 2
|
|
170
|
+
generators>
|
|
171
|
+
gap> D := DirectProduct(S, S);;
|
|
172
|
+
gap> IsRegularSemigroup(D);
|
|
173
|
+
false
|
|
174
|
+
gap> D;
|
|
175
|
+
<commutative non-regular transformation semigroup of size 9, degree 8 with 8
|
|
176
|
+
generators>
|
|
177
|
+
gap> ProductCheck(D, [S, S], true);
|
|
178
|
+
true
|
|
179
|
+
gap> D := Semigroup(D);
|
|
180
|
+
<transformation semigroup of degree 8 with 8 generators>
|
|
181
|
+
gap> IsZeroSemigroup(D) and Size(D) = 9;
|
|
182
|
+
true
|
|
183
|
+
|
|
184
|
+
# semidp: DirectProduct, for transformation semigroups, 4
|
|
185
|
+
gap> S := FullTransformationMonoid(3);
|
|
186
|
+
<full transformation monoid of degree 3>
|
|
187
|
+
gap> D := DirectProduct(S, S);;
|
|
188
|
+
gap> IsRegularSemigroup(D);
|
|
189
|
+
true
|
|
190
|
+
gap> D;
|
|
191
|
+
<regular transformation monoid of size 729, degree 6 with 6 generators>
|
|
192
|
+
gap> ProductCheck(D, [S, S], false);
|
|
193
|
+
true
|
|
194
|
+
gap> HasIndecomposableElements(D);
|
|
195
|
+
true
|
|
196
|
+
gap> IndecomposableElements(D);
|
|
197
|
+
[ ]
|
|
198
|
+
gap> Set(GeneratorsOfMonoid(D));
|
|
199
|
+
[ Transformation( [ 1, 2, 1 ] ), Transformation( [ 1, 2, 3, 4, 5, 4 ] ),
|
|
200
|
+
Transformation( [ 1, 2, 3, 5, 4 ] ), Transformation( [ 1, 2, 3, 5, 6, 4 ] ),
|
|
201
|
+
Transformation( [ 2, 1 ] ), Transformation( [ 2, 3, 1 ] ) ]
|
|
202
|
+
gap> Size(D) = Size(S) ^ 2 and Size(D) = 27 ^ 2;
|
|
203
|
+
true
|
|
204
|
+
|
|
205
|
+
# semidp: DirectProduct, for transformation semigroups, 5
|
|
206
|
+
gap> S := Semigroup([
|
|
207
|
+
> Transformation([1, 2, 3, 3, 3]),
|
|
208
|
+
> Transformation([1, 1, 3, 3, 3])]);
|
|
209
|
+
<transformation semigroup of degree 5 with 2 generators>
|
|
210
|
+
gap> D := DirectProduct(S, S);;
|
|
211
|
+
gap> ProductCheck(D, [S, S], true);
|
|
212
|
+
true
|
|
213
|
+
|
|
214
|
+
# semidp: DirectProduct, for transformation semigroups, 6
|
|
215
|
+
gap> list := [
|
|
216
|
+
> Semigroup([Transformation([1, 2, 3, 3, 3])]),
|
|
217
|
+
> Semigroup([Transformation([2, 1])])];;
|
|
218
|
+
gap> D := DirectProduct(list);
|
|
219
|
+
<commutative transformation semigroup of degree 7 with 2 generators>
|
|
220
|
+
gap> ProductCheck(D, list, true);
|
|
221
|
+
true
|
|
222
|
+
gap> Elements(D);
|
|
223
|
+
[ Transformation( [ 1, 2, 3, 3, 3 ] ),
|
|
224
|
+
Transformation( [ 1, 2, 3, 3, 3, 7, 6 ] ) ]
|
|
225
|
+
gap> Size(D);
|
|
226
|
+
2
|
|
227
|
+
|
|
228
|
+
# semidp: DirectProduct, for transformation semigroups, 7
|
|
229
|
+
gap> list := [
|
|
230
|
+
> Semigroup([Transformation([2, 1])]),
|
|
231
|
+
> Semigroup([Transformation([1, 2, 3, 3, 3])])];;
|
|
232
|
+
gap> D := DirectProduct(list);
|
|
233
|
+
<commutative transformation semigroup of degree 7 with 2 generators>
|
|
234
|
+
gap> ProductCheck(D, list, true);
|
|
235
|
+
true
|
|
236
|
+
gap> Elements(D);
|
|
237
|
+
[ Transformation( [ 1, 2, 3, 4, 5, 5, 5 ] ),
|
|
238
|
+
Transformation( [ 2, 1, 3, 4, 5, 5, 5 ] ) ]
|
|
239
|
+
gap> Size(D);
|
|
240
|
+
2
|
|
241
|
+
|
|
242
|
+
# semidp: DirectProduct, for transformation semigroups, 8
|
|
243
|
+
gap> list := [
|
|
244
|
+
> Semigroup([Transformation([1, 2, 3, 3, 3])]),
|
|
245
|
+
> Semigroup([Transformation([2, 1])]),
|
|
246
|
+
> Semigroup([Transformation([1, 1, 2, 3, 4])])];;
|
|
247
|
+
gap> D := DirectProduct(list);;
|
|
248
|
+
gap> ProductCheck(D, list, true);
|
|
249
|
+
true
|
|
250
|
+
gap> Size(D);
|
|
251
|
+
8
|
|
252
|
+
gap> Elements(D);
|
|
253
|
+
[ Transformation( [ 1, 2, 3, 3, 3, 6, 7, 8, 8, 8, 8, 8 ] ),
|
|
254
|
+
Transformation( [ 1, 2, 3, 3, 3, 6, 7, 8, 8, 8, 8, 9 ] ),
|
|
255
|
+
Transformation( [ 1, 2, 3, 3, 3, 6, 7, 8, 8, 8, 9, 10 ] ),
|
|
256
|
+
Transformation( [ 1, 2, 3, 3, 3, 6, 7, 8, 8, 9, 10, 11 ] ),
|
|
257
|
+
Transformation( [ 1, 2, 3, 3, 3, 7, 6, 8, 8, 8, 8, 8 ] ),
|
|
258
|
+
Transformation( [ 1, 2, 3, 3, 3, 7, 6, 8, 8, 8, 8, 9 ] ),
|
|
259
|
+
Transformation( [ 1, 2, 3, 3, 3, 7, 6, 8, 8, 8, 9, 10 ] ),
|
|
260
|
+
Transformation( [ 1, 2, 3, 3, 3, 7, 6, 8, 8, 9, 10, 11 ] ) ]
|
|
261
|
+
|
|
262
|
+
################################################################################
|
|
263
|
+
# Testing partial perm semigroups
|
|
264
|
+
################################################################################
|
|
265
|
+
|
|
266
|
+
# semidp: DirectProduct, for partial perm semigroups, 1
|
|
267
|
+
gap> S := Semigroup([PartialPerm([3], [3]), PartialPerm([2], [1])]);;
|
|
268
|
+
gap> Size(S);
|
|
269
|
+
3
|
|
270
|
+
gap> D := DirectProduct(S);;
|
|
271
|
+
gap> ProductCheck(D, [S], true);
|
|
272
|
+
true
|
|
273
|
+
gap> S = D;
|
|
274
|
+
true
|
|
275
|
+
|
|
276
|
+
# semidp: DirectProduct, for partial perm semigroups, 2
|
|
277
|
+
gap> S := Semigroup([PartialPerm([3], [3]), PartialPerm([2], [1])]);;
|
|
278
|
+
gap> D := DirectProduct(S, S);;
|
|
279
|
+
gap> ProductCheck(D, [S, S], true);
|
|
280
|
+
true
|
|
281
|
+
gap> Size(Semigroup(D)) = 9;
|
|
282
|
+
true
|
|
283
|
+
|
|
284
|
+
# semidp: DirectProduct, for partial perm semigroups, 3
|
|
285
|
+
gap> T := SymmetricInverseMonoid(3);
|
|
286
|
+
<symmetric inverse monoid of degree 3>
|
|
287
|
+
gap> D := DirectProduct(T, T, T);
|
|
288
|
+
<inverse partial perm monoid of rank 9 with 9 generators>
|
|
289
|
+
gap> ProductCheck(D, [T, T, T], false);
|
|
290
|
+
true
|
|
291
|
+
gap> D := InverseMonoid(D);
|
|
292
|
+
<inverse partial perm monoid of rank 9 with 9 generators>
|
|
293
|
+
gap> Size(D) = Size(T) ^ 3;
|
|
294
|
+
true
|
|
295
|
+
|
|
296
|
+
# semidp: DirectProduct, for partial perm semigroups, 4
|
|
297
|
+
gap> S := ZeroSemigroup(IsPartialPermSemigroup, 3);
|
|
298
|
+
<commutative non-regular partial perm semigroup of size 3, rank 2 with 2
|
|
299
|
+
generators>
|
|
300
|
+
gap> T := SymmetricInverseMonoid(3);
|
|
301
|
+
<symmetric inverse monoid of degree 3>
|
|
302
|
+
gap> D := DirectProduct(S, T, S);;
|
|
303
|
+
gap> IsRegularSemigroup(D);
|
|
304
|
+
false
|
|
305
|
+
gap> D;
|
|
306
|
+
<non-regular partial perm semigroup of size 306, rank 7 with 272 generators>
|
|
307
|
+
gap> ProductCheck(D, [S, T, S], false);
|
|
308
|
+
true
|
|
309
|
+
|
|
310
|
+
# semidp: DirectProduct, for partial perm semigroups, 5
|
|
311
|
+
gap> T := SymmetricInverseMonoid(3);
|
|
312
|
+
<symmetric inverse monoid of degree 3>
|
|
313
|
+
gap> T := SemigroupIdeal(T, PartialPerm([1, 2]));;
|
|
314
|
+
gap> T := InverseSemigroup(T);;
|
|
315
|
+
gap> D := DirectProduct(T, T, T);;
|
|
316
|
+
gap> ProductCheck(D, [T, T, T], false);
|
|
317
|
+
true
|
|
318
|
+
gap> D := Semigroup(D);;
|
|
319
|
+
gap> Size(D) = Size(T) ^ 3;
|
|
320
|
+
true
|
|
321
|
+
|
|
322
|
+
# semidp: DirectProduct, for partial perm semigroups, 6
|
|
323
|
+
gap> S := DirectProduct(SymmetricInverseMonoid(3), SymmetricInverseMonoid(3));
|
|
324
|
+
<inverse partial perm monoid of rank 6 with 6 generators>
|
|
325
|
+
gap> Size(S) = 34 ^ 2;
|
|
326
|
+
true
|
|
327
|
+
|
|
328
|
+
# semidp: DirectProduct, for partial perm semigroups, 7
|
|
329
|
+
gap> S := Semigroup([PartialPerm([3], [3]), PartialPerm([2], [1])]);
|
|
330
|
+
<partial perm semigroup of rank 2 with 2 generators>
|
|
331
|
+
gap> Size(S);
|
|
332
|
+
3
|
|
333
|
+
gap> DirectProduct(S) = S;
|
|
334
|
+
true
|
|
335
|
+
|
|
336
|
+
# semidp: DirectProduct, for partial perm semigroups, 8
|
|
337
|
+
gap> S := Semigroup([PartialPerm([3], [3]), PartialPerm([2], [1])]);
|
|
338
|
+
<partial perm semigroup of rank 2 with 2 generators>
|
|
339
|
+
gap> T := DirectProduct(S, S);
|
|
340
|
+
<partial perm semigroup of size 9, rank 4 with 6 generators>
|
|
341
|
+
gap> ProductCheck(T, [S, S], true);
|
|
342
|
+
true
|
|
343
|
+
gap> T := Semigroup(T);
|
|
344
|
+
<partial perm semigroup of rank 4 with 6 generators>
|
|
345
|
+
gap> Size(T) = Size(S) ^ 2;
|
|
346
|
+
true
|
|
347
|
+
gap> D := DirectProduct(S, S, S);
|
|
348
|
+
<partial perm semigroup of size 27, rank 6 with 20 generators>
|
|
349
|
+
gap> ProductCheck(D, [S, S, S], false);
|
|
350
|
+
true
|
|
351
|
+
gap> D = DirectProduct(T, S);
|
|
352
|
+
true
|
|
353
|
+
gap> D := Semigroup(D);
|
|
354
|
+
<partial perm semigroup of rank 6 with 20 generators>
|
|
355
|
+
gap> Size(D) = Size(S) ^ 3;
|
|
356
|
+
true
|
|
357
|
+
|
|
358
|
+
# semidp: DirectProductOp, for partial perm semigroups, 9
|
|
359
|
+
gap> S := MonogenicSemigroup(IsPartialPermSemigroup, 5, 3);
|
|
360
|
+
<commutative non-regular partial perm semigroup of size 7, rank 7 with 1
|
|
361
|
+
generator>
|
|
362
|
+
gap> T := SymmetricInverseMonoid(3);
|
|
363
|
+
<symmetric inverse monoid of degree 3>
|
|
364
|
+
gap> D := DirectProduct(S, T);;
|
|
365
|
+
gap> IsRegularSemigroup(D);
|
|
366
|
+
false
|
|
367
|
+
gap> D;
|
|
368
|
+
<non-regular partial perm semigroup of size 238, rank 10 with 34 generators>
|
|
369
|
+
gap> ProductCheck(D, [S, T], false);
|
|
370
|
+
true
|
|
371
|
+
gap> D := Semigroup(D);
|
|
372
|
+
<partial perm semigroup of rank 10 with 34 generators>
|
|
373
|
+
gap> Size(D);
|
|
374
|
+
238
|
|
375
|
+
gap> Size(D) = Size(S) * Size(T);
|
|
376
|
+
true
|
|
377
|
+
|
|
378
|
+
################################################################################
|
|
379
|
+
# Testing bipartition semigroups
|
|
380
|
+
################################################################################
|
|
381
|
+
|
|
382
|
+
# semidp: DirectProductOp, for bipartition semigroups, 1
|
|
383
|
+
gap> S := Semigroup([
|
|
384
|
+
> Bipartition([[1, 3], [2, 4, -2], [5, -1, -3, -4], [-5]]),
|
|
385
|
+
> Bipartition([[1, 2, 3, 4, 5, -1, -5], [-2], [-3], [-4]]),
|
|
386
|
+
> Bipartition([[1, 2, 3, -1, -5], [4], [5, -2, -3, -4]])]);;
|
|
387
|
+
gap> T := Semigroup([
|
|
388
|
+
> Bipartition([[1, 3, 4, 5, 6, -1, -4], [2, -2, -3, -5, -6]]),
|
|
389
|
+
> Bipartition([[1, 2, 3, 4, 5, -5], [6, -1, -2, -3, -4], [-6]])]);;
|
|
390
|
+
gap> D := DirectProduct(S, T);
|
|
391
|
+
<bipartition semigroup of size 100, degree 11 with 46 generators>
|
|
392
|
+
gap> ProductCheck(D, [S, T], false);
|
|
393
|
+
true
|
|
394
|
+
gap> D := Semigroup(D);
|
|
395
|
+
<bipartition semigroup of degree 11 with 46 generators>
|
|
396
|
+
gap> Size(D);
|
|
397
|
+
100
|
|
398
|
+
gap> Size(S) * Size(T);
|
|
399
|
+
100
|
|
400
|
+
gap> D := DirectProduct(T, S);
|
|
401
|
+
<bipartition semigroup of size 100, degree 11 with 46 generators>
|
|
402
|
+
gap> ProductCheck(D, [T, S], false);
|
|
403
|
+
true
|
|
404
|
+
gap> D := Semigroup(D);
|
|
405
|
+
<bipartition semigroup of degree 11 with 46 generators>
|
|
406
|
+
gap> Size(D);
|
|
407
|
+
100
|
|
408
|
+
|
|
409
|
+
# semidp: DirectProductOp, for bipartition semigroups, 2
|
|
410
|
+
gap> S := ZeroSemigroup(IsBipartitionSemigroup, 3);
|
|
411
|
+
<commutative non-regular bipartition semigroup of size 3, degree 4 with 2
|
|
412
|
+
generators>
|
|
413
|
+
gap> T := ZeroSemigroup(IsBipartitionSemigroup, 5);
|
|
414
|
+
<commutative non-regular bipartition semigroup of size 5, degree 5 with 4
|
|
415
|
+
generators>
|
|
416
|
+
gap> D := DirectProduct(S, T);;
|
|
417
|
+
gap> IsRegularSemigroup(D);
|
|
418
|
+
false
|
|
419
|
+
gap> D;
|
|
420
|
+
<commutative non-regular bipartition semigroup of size 15, degree 9 with 14
|
|
421
|
+
generators>
|
|
422
|
+
gap> ProductCheck(D, [S, T], true);
|
|
423
|
+
true
|
|
424
|
+
gap> D := Semigroup(D);;
|
|
425
|
+
gap> IsZeroSemigroup(D) and Size(D) = Size(S) * Size(T);
|
|
426
|
+
true
|
|
427
|
+
gap> D := DirectProduct(T, S);;
|
|
428
|
+
gap> IsRegularSemigroup(D);
|
|
429
|
+
false
|
|
430
|
+
gap> D;
|
|
431
|
+
<commutative non-regular bipartition semigroup of size 15, degree 9 with 14
|
|
432
|
+
generators>
|
|
433
|
+
gap> ProductCheck(D, [T, S], true);
|
|
434
|
+
true
|
|
435
|
+
gap> D := Semigroup(D);
|
|
436
|
+
<bipartition semigroup of degree 9 with 14 generators>
|
|
437
|
+
gap> IsZeroSemigroup(D) and Size(D) = Size(S) * Size(T);
|
|
438
|
+
true
|
|
439
|
+
gap> D := DirectProduct(S, PartitionMonoid(2), T);;
|
|
440
|
+
gap> IsRegularSemigroup(D);
|
|
441
|
+
false
|
|
442
|
+
gap> D;
|
|
443
|
+
<non-regular bipartition semigroup of size 225, degree 11 with 210 generators>
|
|
444
|
+
gap> ProductCheck(D, [S, PartitionMonoid(2), T], false);
|
|
445
|
+
true
|
|
446
|
+
gap> D := Semigroup(D);
|
|
447
|
+
<bipartition semigroup of degree 11 with 210 generators>
|
|
448
|
+
gap> Size(D);
|
|
449
|
+
225
|
|
450
|
+
|
|
451
|
+
# semidp: DirectProductOp, for bipartition semigroups, 3
|
|
452
|
+
gap> S := PartitionMonoid(2);
|
|
453
|
+
<regular bipartition *-monoid of size 15, degree 2 with 3 generators>
|
|
454
|
+
gap> D := DirectProduct(S, S, S, S);;
|
|
455
|
+
gap> IsRegularSemigroup(D);
|
|
456
|
+
true
|
|
457
|
+
gap> D;
|
|
458
|
+
<regular bipartition monoid of size 50625, degree 8 with 12 generators>
|
|
459
|
+
gap> ProductCheck(D, [S, S, S, S], false);
|
|
460
|
+
true
|
|
461
|
+
gap> D := Monoid(D);
|
|
462
|
+
<bipartition monoid of degree 8 with 12 generators>
|
|
463
|
+
gap> Size(D) = 15 ^ 4;
|
|
464
|
+
true
|
|
465
|
+
|
|
466
|
+
# semidp: DirectProductOp, for bipartition semigroups, 4
|
|
467
|
+
gap> list := [
|
|
468
|
+
> Semigroup([
|
|
469
|
+
> Bipartition([[1, 2, 3, -3], [-1, -2]]),
|
|
470
|
+
> Bipartition([[1, 2, 3, -1, -2], [-3]])]),
|
|
471
|
+
> Semigroup([
|
|
472
|
+
> Bipartition([[1], [2, -2], [3, -3], [-1]]),
|
|
473
|
+
> Bipartition([[1, 2, -1, -2, -3], [3]])]),
|
|
474
|
+
> Semigroup([Bipartition([[1, 3, -1, -2, -3], [2]]),
|
|
475
|
+
> Bipartition([[1, 3, -1, -2], [2, -3]])])];;
|
|
476
|
+
gap> D := DirectProduct(list);;
|
|
477
|
+
gap> ProductCheck(D, list, true);
|
|
478
|
+
true
|
|
479
|
+
|
|
480
|
+
################################################################################
|
|
481
|
+
# Testing PBR semigroups
|
|
482
|
+
################################################################################
|
|
483
|
+
|
|
484
|
+
# semidp: DirectProductOp, for PBR semigroups, 1
|
|
485
|
+
gap> S := FullPBRMonoid(1);;
|
|
486
|
+
gap> D := DirectProduct(S);;
|
|
487
|
+
gap> IsRegularSemigroup(D);
|
|
488
|
+
true
|
|
489
|
+
gap> D;
|
|
490
|
+
<regular pbr monoid of size 16, degree 1 with 4 generators>
|
|
491
|
+
gap> ProductCheck(D, [S], true);
|
|
492
|
+
true
|
|
493
|
+
gap> D := DirectProduct(S, S);;
|
|
494
|
+
gap> IsRegularSemigroup(D);
|
|
495
|
+
true
|
|
496
|
+
gap> D;
|
|
497
|
+
<regular pbr monoid of size 256, degree 2 with 8 generators>
|
|
498
|
+
gap> ProductCheck(D, [S, S], false);
|
|
499
|
+
true
|
|
500
|
+
gap> Size(D);
|
|
501
|
+
256
|
|
502
|
+
|
|
503
|
+
# semidp: DirectProductOp, for PBR semigroups, 2
|
|
504
|
+
gap> list := [
|
|
505
|
+
> Semigroup([
|
|
506
|
+
> PBR([[1, 2], [-2, 1, 2]], [[-1, 1], [-2, -1, 1]]),
|
|
507
|
+
> PBR([[2], [-2, 1, 2]], [[1, 2], [-2, 1]])]),
|
|
508
|
+
> Semigroup([
|
|
509
|
+
> PBR([[-1, 1]], [[1]])]),
|
|
510
|
+
> Semigroup([
|
|
511
|
+
> PBR([[], [-2, -1]], [[], [2]]),
|
|
512
|
+
> PBR([[-2, -1], []], [[2], []])])];;
|
|
513
|
+
gap> D := DirectProduct(list);
|
|
514
|
+
<pbr semigroup of size 35, degree 5 with 15 generators>
|
|
515
|
+
gap> ProductCheck(D, list, true);
|
|
516
|
+
true
|
|
517
|
+
|
|
518
|
+
################################################################################
|
|
519
|
+
# Testing mixing semigroups
|
|
520
|
+
################################################################################
|
|
521
|
+
|
|
522
|
+
# semidp: DirectProductOp, for a mix of semigroups, 1
|
|
523
|
+
gap> S := [
|
|
524
|
+
> PartitionMonoid(1),
|
|
525
|
+
> FullTransformationMonoid(1),
|
|
526
|
+
> SymmetricInverseMonoid(1)];;
|
|
527
|
+
gap> D := DirectProductOp(S, S[1]);
|
|
528
|
+
<commutative transformation monoid of degree 4 with 2 generators>
|
|
529
|
+
gap> D := DirectProductOp(S, S[2]);
|
|
530
|
+
<commutative transformation monoid of degree 4 with 2 generators>
|
|
531
|
+
gap> D := DirectProductOp(S, S[3]);
|
|
532
|
+
<commutative transformation monoid of degree 4 with 2 generators>
|
|
533
|
+
gap> last = last2 and last2 = last3;
|
|
534
|
+
true
|
|
535
|
+
gap> ProductCheck(D, S, true);
|
|
536
|
+
true
|
|
537
|
+
gap> Size(D);
|
|
538
|
+
4
|
|
539
|
+
|
|
540
|
+
# semidp: DirectProductOp, for a mix of semigroups, 2
|
|
541
|
+
gap> S := [
|
|
542
|
+
> PartitionMonoid(1),
|
|
543
|
+
> FullPBRMonoid(1),
|
|
544
|
+
> FullTransformationMonoid(1),
|
|
545
|
+
> SymmetricInverseMonoid(1)];;
|
|
546
|
+
gap> D := DirectProductOp(S, S[2]);
|
|
547
|
+
<transformation monoid of degree 20 with 6 generators>
|
|
548
|
+
gap> ProductCheck(D, S, false);
|
|
549
|
+
true
|
|
550
|
+
|
|
551
|
+
# semidp: DirectProductOp, for a mix of semigroups, 3
|
|
552
|
+
gap> S := PartitionMonoid(1);;
|
|
553
|
+
gap> T := FullTransformationMonoid(1);;
|
|
554
|
+
gap> D := DirectProduct(S, T);;
|
|
555
|
+
gap> IsInverseSemigroup(D);
|
|
556
|
+
true
|
|
557
|
+
gap> D;
|
|
558
|
+
<commutative inverse transformation monoid of size 2, degree 2 with 1
|
|
559
|
+
generator>
|
|
560
|
+
gap> ProductCheck(D, [S, T], true);
|
|
561
|
+
true
|
|
562
|
+
gap> D := DirectProduct(T, S);;
|
|
563
|
+
gap> IsInverseMonoid(D);
|
|
564
|
+
true
|
|
565
|
+
gap> D;
|
|
566
|
+
<commutative inverse transformation monoid of size 2, degree 2 with 1
|
|
567
|
+
generator>
|
|
568
|
+
gap> ProductCheck(D, [T, S], true);
|
|
569
|
+
true
|
|
570
|
+
|
|
571
|
+
################################################################################
|
|
572
|
+
# Other special direct product functions
|
|
573
|
+
################################################################################
|
|
574
|
+
|
|
575
|
+
# Embedding
|
|
576
|
+
|
|
577
|
+
# semidp: Embedding, for a semigroup with direct product info, 1
|
|
578
|
+
gap> S := LeftZeroSemigroup(3);;
|
|
579
|
+
gap> Embedding(S, 1);
|
|
580
|
+
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
|
|
581
|
+
Error, no 1st choice method found for `Embedding' on 2 arguments
|
|
582
|
+
gap> D := DirectProduct(S, S, S);;
|
|
583
|
+
gap> Unbind(SemigroupDirectProductInfo(D).embeddings);
|
|
584
|
+
gap> Embedding(D, 4);
|
|
585
|
+
Error, the 2nd argument (a pos. int.) is not in the range [1 .. 3]
|
|
586
|
+
gap> Embedding(D, 1);
|
|
587
|
+
<transformation semigroup of size 3, degree 4 with 3 generators> ->
|
|
588
|
+
<transformation semigroup of size 27, degree 12 with 27 generators>
|
|
589
|
+
gap> Embedding(D, 1) = last;
|
|
590
|
+
true
|
|
591
|
+
gap> Unbind(SemigroupDirectProductInfo(D).embeddings[1]);
|
|
592
|
+
gap> Unbind(SemigroupDirectProductInfo(D).nrfactors);
|
|
593
|
+
gap> Embedding(D, 1);
|
|
594
|
+
Error, the direct product information for the 1st argument (a semigroup) is co\
|
|
595
|
+
rrupted, please re-create the object
|
|
596
|
+
gap> SemigroupDirectProductInfo(D).nrfactors := 3;;
|
|
597
|
+
gap> Embedding(D, 3);
|
|
598
|
+
<transformation semigroup of size 3, degree 4 with 3 generators> ->
|
|
599
|
+
<transformation semigroup of size 27, degree 12 with 27 generators>
|
|
600
|
+
gap> Unbind(SemigroupDirectProductInfo(D).embeddings[3]);
|
|
601
|
+
gap> Unbind(SemigroupDirectProductInfo(D).embedding);
|
|
602
|
+
gap> Embedding(D, 3);
|
|
603
|
+
Error, the direct product information for the 1st argument (a semigroup) is co\
|
|
604
|
+
rrupted, please re-create the object
|
|
605
|
+
|
|
606
|
+
# semidp: Embedding and Projection, for a semigroup with direct product info
|
|
607
|
+
gap> list := [
|
|
608
|
+
> Semigroup([
|
|
609
|
+
> Transformation([5, 1, 4, 1, 1]),
|
|
610
|
+
> Transformation([5, 3, 3, 4, 5]),
|
|
611
|
+
> Transformation([4, 1, 4, 5, 1])]),
|
|
612
|
+
> Semigroup([
|
|
613
|
+
> Transformation([6, 4, 4, 4, 6, 5, 2]),
|
|
614
|
+
> Transformation([6, 5, 1, 7, 5, 1, 7])]),
|
|
615
|
+
> Semigroup([
|
|
616
|
+
> Transformation([3, 2, 2]),
|
|
617
|
+
> Transformation([2, 1, 1]),
|
|
618
|
+
> Transformation([2, 1, 2])])];
|
|
619
|
+
[ <transformation semigroup of degree 5 with 3 generators>,
|
|
620
|
+
<transformation semigroup of degree 7 with 2 generators>,
|
|
621
|
+
<transformation semigroup of degree 3 with 3 generators> ]
|
|
622
|
+
gap> D := DirectProduct(list);;
|
|
623
|
+
gap> e := [];;
|
|
624
|
+
gap> e[1] := Embedding(D, 1);;
|
|
625
|
+
gap> e[2] := Embedding(D, 2);;
|
|
626
|
+
gap> e[3] := Embedding(D, 3);;
|
|
627
|
+
gap> p := [];;
|
|
628
|
+
gap> p[1] := Projection(D, 1);;
|
|
629
|
+
gap> p[2] := Projection(D, 2);;
|
|
630
|
+
gap> p[3] := Projection(D, 3);;
|
|
631
|
+
gap> ProductCheck(D, list, false);
|
|
632
|
+
true
|
|
633
|
+
gap> gens := List([1 .. 3],
|
|
634
|
+
> i -> List(GeneratorsOfSemigroup(list[i]), x -> x ^ e[i]));;
|
|
635
|
+
gap> embeds := List([1 .. 3], i -> Semigroup(gens[i]));
|
|
636
|
+
[ <transformation semigroup of degree 15 with 3 generators>,
|
|
637
|
+
<transformation semigroup of degree 15 with 2 generators>,
|
|
638
|
+
<transformation semigroup of degree 15 with 3 generators> ]
|
|
639
|
+
gap> ForAll([1 .. 3], i -> Size(list[i]) = Size(embeds[i]));
|
|
640
|
+
true
|
|
641
|
+
gap> projects := List([1 .. 3], i -> ImagesSet(p[i], embeds[i]));;
|
|
642
|
+
gap> ForAll([1 .. 3], i -> Size(list[i]) = Size(projects[i]));
|
|
643
|
+
true
|
|
644
|
+
|
|
645
|
+
# Projection
|
|
646
|
+
|
|
647
|
+
# semidp: Projection, for a semigroup with direct product info, 1
|
|
648
|
+
gap> S := RightZeroSemigroup(3);;
|
|
649
|
+
gap> Projection(S, 1);
|
|
650
|
+
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
|
|
651
|
+
Error, no 1st choice method found for `Projection' on 2 arguments
|
|
652
|
+
gap> D := DirectProduct(S, S, S);;
|
|
653
|
+
gap> Unbind(SemigroupDirectProductInfo(D).projections);
|
|
654
|
+
gap> Projection(D, 4);
|
|
655
|
+
Error, the 2nd argument (a pos. int.) is not in the range [1 .. 3]
|
|
656
|
+
gap> Projection(D, 1);
|
|
657
|
+
<transformation semigroup of size 27, degree 9 with 27 generators> ->
|
|
658
|
+
<transformation semigroup of size 3, degree 3 with 3 generators>
|
|
659
|
+
gap> Projection(D, 1) = last;
|
|
660
|
+
true
|
|
661
|
+
gap> Unbind(SemigroupDirectProductInfo(D).projections[1]);
|
|
662
|
+
gap> Unbind(SemigroupDirectProductInfo(D).nrfactors);
|
|
663
|
+
gap> Projection(D, 1);
|
|
664
|
+
Error, the direct product information for the 1st argument (a semigroup) is co\
|
|
665
|
+
rrupted, please re-create the object
|
|
666
|
+
gap> SemigroupDirectProductInfo(D).nrfactors := 3;;
|
|
667
|
+
gap> Projection(D, 3);
|
|
668
|
+
<transformation semigroup of size 27, degree 9 with 27 generators> ->
|
|
669
|
+
<transformation semigroup of size 3, degree 3 with 3 generators>
|
|
670
|
+
gap> Unbind(SemigroupDirectProductInfo(D).projections[3]);
|
|
671
|
+
gap> Unbind(SemigroupDirectProductInfo(D).projection);
|
|
672
|
+
gap> Projection(D, 3);
|
|
673
|
+
Error, the direct product information for the 1st argument (a semigroup) is co\
|
|
674
|
+
rrupted, please re-create the object
|
|
675
|
+
|
|
676
|
+
# Size
|
|
677
|
+
|
|
678
|
+
# semidp: Size, for a semigroup with direct product info, 1
|
|
679
|
+
gap> S := Semigroup(FullTransformationMonoid(2));;
|
|
680
|
+
gap> D := DirectProduct(S, S, S);;
|
|
681
|
+
gap> HasSize(D);
|
|
682
|
+
false
|
|
683
|
+
gap> Size(D) = Size(S) ^ 3;
|
|
684
|
+
true
|
|
685
|
+
gap> Size(D);
|
|
686
|
+
64
|
|
687
|
+
|
|
688
|
+
# semidp: Size, for a semigroup with direct product info, 2
|
|
689
|
+
gap> S := Monoid([Transformation([2, 1]), Transformation([1, 1])]);;
|
|
690
|
+
gap> Size(DirectProduct(S));
|
|
691
|
+
4
|
|
692
|
+
|
|
693
|
+
# IsCommutative
|
|
694
|
+
|
|
695
|
+
# semidp: IsCommutativeSemigroup, for a semigroup with direct product info, 1
|
|
696
|
+
gap> S := IdempotentGeneratedSubsemigroup(DualSymmetricInverseMonoid(4));;
|
|
697
|
+
gap> T := SymmetricInverseMonoid(1);;
|
|
698
|
+
gap> D := DirectProduct(S, T);;
|
|
699
|
+
gap> IsCommutativeSemigroup(D);
|
|
700
|
+
true
|
|
701
|
+
|
|
702
|
+
# semidp: IsCommutativeSemigroup, for a semigroup with direct product info, 2
|
|
703
|
+
gap> S := IdempotentGeneratedSubsemigroup(DualSymmetricInverseMonoid(4));;
|
|
704
|
+
gap> T := FullTransformationMonoid(2);;
|
|
705
|
+
gap> D := DirectProduct(S, T);;
|
|
706
|
+
gap> IsCommutativeSemigroup(D);
|
|
707
|
+
false
|
|
708
|
+
|
|
709
|
+
# semidp: IsCommutativeSemigroup, for a semigroup with direct product info, 3
|
|
710
|
+
gap> S := Monoid([Transformation([2, 1]), Transformation([1, 1])]);;
|
|
711
|
+
gap> IsCommutativeSemigroup(DirectProduct(S));
|
|
712
|
+
false
|
|
713
|
+
|
|
714
|
+
# semidp: DirectProduct, for a semigroup with repeated generators
|
|
715
|
+
gap> S := Semigroup([
|
|
716
|
+
> PBR([[-2, 1, 2], [-2, -1, 2]], [[-2, -1, 1, 2], [-2, -1, 1, 2]]),
|
|
717
|
+
> PBR([[-2, -1, 1, 2], [-2, -1, 1, 2]], [[-2, -1, 1, 2], [-2, -1, 1, 2]]),
|
|
718
|
+
> PBR([[-2, -1, 1, 2], [-2, -1, 1, 2]], [[-2, -1, 1, 2], [-2, -1, 1, 2]]),
|
|
719
|
+
> PBR([[-2, -1, 1, 2], [-1]], [[-2, 1], [-2, -1, 1, 2]]),
|
|
720
|
+
> PBR([[-2, 1], [-2, 2]], [[-2, -1], [-2, -1, 2]]),
|
|
721
|
+
> PBR([[-2, -1, 1, 2], [-2, -1, 2]], [[-2, -1, 1, 2], [-2, -1, 1, 2]]),
|
|
722
|
+
> PBR([[-1], [-2]], [[-2, 1], [2]])]);;
|
|
723
|
+
gap> Size(S);
|
|
724
|
+
15
|
|
725
|
+
gap> Size(Semigroup(DirectProduct(S, S)));
|
|
726
|
+
225
|
|
727
|
+
|
|
728
|
+
# semidp: DirectProduct, for very large semigroups
|
|
729
|
+
gap> S := FullTransformationMonoid(50);;
|
|
730
|
+
gap> S := DirectProduct(S, S, S);;
|
|
731
|
+
gap> Size(S);
|
|
732
|
+
700649232162408535461864791644958065640130970938257885878534141944895541342930\
|
|
733
|
+
300743319094181060791015625000000000000000000000000000000000000000000000000000\
|
|
734
|
+
000000000000000000000000000000000000000000000000000000000000000000000000000000\
|
|
735
|
+
000000000000000000000
|
|
736
|
+
|
|
737
|
+
#
|
|
738
|
+
gap> SEMIGROUPS.StopTest();
|
|
739
|
+
gap> STOP_TEST("Semigroups package: standard/semigroups/semidp.tst");
|