passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-musllinux_1_2_x86_64.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/x86_64-pc-linux-musl-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1068 -0
- gap/pkg/semigroups/config.status +1133 -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 +356 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +5 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.libs/libgcc_s-0cd532bd.so.1 +0 -0
- passagemath_gap_pkg_semigroups.libs/libsemigroups-f0b7066b.so.2.0.0 +0 -0
- passagemath_gap_pkg_semigroups.libs/libstdc++-5d72f927.so.6.0.33 +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,1112 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
#W standard/semigroups/semigrp.tst
|
|
4
|
+
#Y Copyright (C) 2015-2022 James D. Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#@local G, I, IsIsometryPP, M, S, T, U, acting, func, gens, i, j, k, l, n
|
|
12
|
+
#@local regular, small, x
|
|
13
|
+
gap> START_TEST("Semigroups package: standard/semigroups/semigrp.tst");
|
|
14
|
+
gap> LoadPackage("semigroups", false);;
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
gap> SEMIGROUPS.StartTest();;
|
|
18
|
+
|
|
19
|
+
# AsMonoid with 1 arg
|
|
20
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
21
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
22
|
+
gap> AsMonoid(S);
|
|
23
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
24
|
+
gap> T := AsSemigroup(IsBooleanMatSemigroup, S);;
|
|
25
|
+
gap> IsMonoid(T);
|
|
26
|
+
false
|
|
27
|
+
gap> IsMonoidAsSemigroup(T);
|
|
28
|
+
true
|
|
29
|
+
gap> AsMonoid(T);
|
|
30
|
+
<trivial group of 1x1 boolean matrices with 1 generator>
|
|
31
|
+
gap> S := AsSemigroup(IsFpSemigroup, S);
|
|
32
|
+
<fp semigroup with 1 generator and 1 relation of length 4>
|
|
33
|
+
gap> AsMonoid(S);;
|
|
34
|
+
gap> S := AsSemigroup(IsMaxPlusMatrixSemigroup, S);
|
|
35
|
+
<trivial group of 2x2 max-plus matrices with 1 generator>
|
|
36
|
+
gap> AsMonoid(S);
|
|
37
|
+
<trivial group of 1x1 max-plus matrices with 1 generator>
|
|
38
|
+
gap> S := AsSemigroup(IsMinPlusMatrixSemigroup, S);
|
|
39
|
+
<trivial group of 1x1 min-plus matrices with 1 generator>
|
|
40
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
41
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
42
|
+
gap> S := AsSemigroup(IsMinPlusMatrixSemigroup, S);
|
|
43
|
+
<commutative semigroup of 2x2 min-plus matrices with 1 generator>
|
|
44
|
+
gap> AsMonoid(S);
|
|
45
|
+
<trivial group of 1x1 min-plus matrices with 1 generator>
|
|
46
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
47
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
48
|
+
gap> S := AsSemigroup(IsProjectiveMaxPlusMatrixSemigroup, S);
|
|
49
|
+
<commutative semigroup of 2x2 projective max-plus matrices with 1 generator>
|
|
50
|
+
gap> AsMonoid(S);
|
|
51
|
+
<trivial group of 1x1 projective max-plus matrices with 1 generator>
|
|
52
|
+
gap> S := AsSemigroup(IsIntegerMatrixSemigroup, S);
|
|
53
|
+
<trivial group of 1x1 integer matrices with 1 generator>
|
|
54
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
55
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
56
|
+
gap> S := AsSemigroup(IsIntegerMatrixSemigroup, S);
|
|
57
|
+
<commutative semigroup of 2x2 integer matrices with 1 generator>
|
|
58
|
+
gap> AsMonoid(S);
|
|
59
|
+
<trivial group of 1x1 integer matrices with 1 generator>
|
|
60
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
61
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
62
|
+
gap> S := AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3, S);
|
|
63
|
+
<commutative semigroup of 2x2 tropical max-plus matrices with 1 generator>
|
|
64
|
+
gap> AsMonoid(S);
|
|
65
|
+
<trivial group of 1x1 tropical max-plus matrices with 1 generator>
|
|
66
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
67
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
68
|
+
gap> S := AsSemigroup(IsTropicalMinPlusMatrixSemigroup, 3, S);
|
|
69
|
+
<commutative semigroup of 2x2 tropical min-plus matrices with 1 generator>
|
|
70
|
+
gap> AsMonoid(S);
|
|
71
|
+
<trivial group of 1x1 tropical min-plus matrices with 1 generator>
|
|
72
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
73
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
74
|
+
gap> S := AsSemigroup(IsNTPMatrixSemigroup, 3, 3, S);
|
|
75
|
+
<commutative semigroup of 2x2 ntp matrices with 1 generator>
|
|
76
|
+
gap> AsMonoid(S);
|
|
77
|
+
<trivial group of 1x1 ntp matrices with 1 generator>
|
|
78
|
+
gap> S := Semigroup(Transformation([2, 2, 3, 4]));
|
|
79
|
+
<commutative transformation semigroup of degree 2 with 1 generator>
|
|
80
|
+
gap> S := AsSemigroup(IsPBRSemigroup, S);
|
|
81
|
+
<commutative pbr semigroup of degree 2 with 1 generator>
|
|
82
|
+
gap> AsMonoid(S);
|
|
83
|
+
<trivial pbr group of degree 1 with 1 generator>
|
|
84
|
+
|
|
85
|
+
# AsMonoid returns fail
|
|
86
|
+
gap> S := InverseSemigroup(
|
|
87
|
+
> [Bipartition([[1, -4], [2, -1], [3, -2], [4], [-3]]),
|
|
88
|
+
> Bipartition([[1, -3], [2], [3], [4, -1], [-2], [-4]])]);;
|
|
89
|
+
gap> AsMonoid(S);
|
|
90
|
+
fail
|
|
91
|
+
gap> S := AsSemigroup(IsTransformationSemigroup, S);;
|
|
92
|
+
gap> AsMonoid(S);
|
|
93
|
+
fail
|
|
94
|
+
gap> S := AsSemigroup(IsPartialPermSemigroup, S);;
|
|
95
|
+
gap> AsMonoid(S);
|
|
96
|
+
fail
|
|
97
|
+
gap> S := AsSemigroup(IsBooleanMatSemigroup, S);;
|
|
98
|
+
gap> AsMonoid(S);
|
|
99
|
+
fail
|
|
100
|
+
gap> S := AsSemigroup(IsFpSemigroup, S);;
|
|
101
|
+
gap> AsMonoid(S);
|
|
102
|
+
fail
|
|
103
|
+
gap> S := AsSemigroup(IsMaxPlusMatrixSemigroup, S);;
|
|
104
|
+
gap> AsMonoid(S);
|
|
105
|
+
fail
|
|
106
|
+
gap> S := AsSemigroup(IsMinPlusMatrixSemigroup, S);;
|
|
107
|
+
gap> AsMonoid(S);
|
|
108
|
+
fail
|
|
109
|
+
gap> S := AsSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3, S);;
|
|
110
|
+
gap> AsMonoid(S);
|
|
111
|
+
fail
|
|
112
|
+
gap> S := AsSemigroup(IsTropicalMinPlusMatrixSemigroup, 3, S);;
|
|
113
|
+
gap> AsMonoid(S);
|
|
114
|
+
fail
|
|
115
|
+
gap> S := AsSemigroup(IsProjectiveMaxPlusMatrixSemigroup, S);;
|
|
116
|
+
gap> AsMonoid(S);
|
|
117
|
+
fail
|
|
118
|
+
gap> S := AsSemigroup(IsIntegerMatrixSemigroup, S);;
|
|
119
|
+
gap> AsMonoid(S);
|
|
120
|
+
fail
|
|
121
|
+
gap> S := AsSemigroup(IsNTPMatrixSemigroup, 3, 3, S);;
|
|
122
|
+
gap> AsMonoid(S);
|
|
123
|
+
fail
|
|
124
|
+
gap> S := AsSemigroup(IsPBRSemigroup, S);;
|
|
125
|
+
gap> AsMonoid(S);
|
|
126
|
+
fail
|
|
127
|
+
gap> S := TrivialSemigroup(IsReesMatrixSemigroup);
|
|
128
|
+
<Rees matrix semigroup 1x1 over Group(())>
|
|
129
|
+
gap> AsMonoid(S);
|
|
130
|
+
fail
|
|
131
|
+
gap> S := ReesZeroMatrixSemigroup(Group(()), [[()]]);;
|
|
132
|
+
gap> AsMonoid(S);
|
|
133
|
+
fail
|
|
134
|
+
gap> S := GraphInverseSemigroup(Digraph([[2], []]));
|
|
135
|
+
<finite graph inverse semigroup with 2 vertices, 1 edge>
|
|
136
|
+
gap> AsMonoid(S);
|
|
137
|
+
fail
|
|
138
|
+
|
|
139
|
+
# ClosureSemigroup 1
|
|
140
|
+
gap> gens :=
|
|
141
|
+
> [Matrix(IsBooleanMat, [[0, 0, 0, 1, 0], [0, 1, 1, 1, 1], [1, 1, 1, 1, 0],
|
|
142
|
+
> [1, 0, 1, 1, 1], [0, 1, 0, 1, 1]]),
|
|
143
|
+
> Matrix(IsBooleanMat, [[1, 0, 1, 1, 1], [1, 1, 0, 0, 1], [0, 0, 1, 1, 1],
|
|
144
|
+
> [1, 1, 0, 0, 0], [0, 0, 1, 0, 1]]),
|
|
145
|
+
> Matrix(IsBooleanMat, [[0, 0, 0, 0, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1],
|
|
146
|
+
> [1, 0, 1, 0, 1], [1, 1, 1, 1, 0]]),
|
|
147
|
+
> Matrix(IsBooleanMat, [[1, 1, 1, 0, 0], [1, 0, 1, 0, 0], [0, 1, 1, 0, 1],
|
|
148
|
+
> [0, 0, 0, 1, 1], [1, 1, 1, 0, 0]]),
|
|
149
|
+
> Matrix(IsBooleanMat, [[0, 1, 0, 1, 0], [1, 0, 0, 1, 0], [1, 1, 0, 0, 0],
|
|
150
|
+
> [1, 0, 1, 1, 0], [0, 0, 1, 1, 0]])];;
|
|
151
|
+
gap> x := Matrix(IsBooleanMat, [[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 1, 0],
|
|
152
|
+
> [1, 0, 0, 1]]);;
|
|
153
|
+
gap> S := Semigroup(gens);
|
|
154
|
+
<semigroup of 5x5 boolean matrices with 5 generators>
|
|
155
|
+
gap> ClosureSemigroup(S, [x], SEMIGROUPS.OptionsRec(S));
|
|
156
|
+
Error, the 1st argument (a semigroup) and the 2nd argument (a list or coll.) c\
|
|
157
|
+
annot be used to generate a semigroup
|
|
158
|
+
gap> ClosureSemigroup(S, [IdentityTransformation],
|
|
159
|
+
> SEMIGROUPS.OptionsRec(S));
|
|
160
|
+
Error, the 1st argument (a semigroup) and the 2nd argument (a list or coll.) c\
|
|
161
|
+
annot be used to generate a semigroup
|
|
162
|
+
|
|
163
|
+
# ClosureSemigroup 2
|
|
164
|
+
gap> S := Semigroup(Transformation([2, 4, 3, 4]),
|
|
165
|
+
> Transformation([3, 3, 2, 3, 3]));;
|
|
166
|
+
gap> ClosureSemigroup(S,
|
|
167
|
+
> [ConstantTransformation(7, 7)],
|
|
168
|
+
> SEMIGROUPS.OptionsRec(S));
|
|
169
|
+
<transformation semigroup of degree 7 with 3 generators>
|
|
170
|
+
gap> Size(S) = Size(Semigroup(S));
|
|
171
|
+
true
|
|
172
|
+
gap> Size(S);
|
|
173
|
+
6
|
|
174
|
+
|
|
175
|
+
# ClosureSemigroup 3
|
|
176
|
+
gap> S := Semigroup(Transformation([2, 4, 3, 4]),
|
|
177
|
+
> Transformation([3, 3, 2, 3, 3]), rec(acting := false));;
|
|
178
|
+
gap> S := ClosureSemigroup(S,
|
|
179
|
+
> [ConstantTransformation(7, 7)],
|
|
180
|
+
> SEMIGROUPS.OptionsRec(S));
|
|
181
|
+
<transformation semigroup of degree 7 with 3 generators>
|
|
182
|
+
gap> Size(S) = Size(Semigroup(S));
|
|
183
|
+
true
|
|
184
|
+
gap> Size(S);
|
|
185
|
+
7
|
|
186
|
+
|
|
187
|
+
# ClosureSemigroup 3
|
|
188
|
+
gap> S := Semigroup(Transformation([2, 4, 3, 4]),
|
|
189
|
+
> Transformation([3, 3, 2, 3, 3]), rec(acting := false));;
|
|
190
|
+
gap> S := ClosureSemigroup(S,
|
|
191
|
+
> [Transformation([5, 5, 5, 4, 4])],
|
|
192
|
+
> SEMIGROUPS.OptionsRec(S));
|
|
193
|
+
<transformation semigroup of degree 5 with 3 generators>
|
|
194
|
+
gap> Size(S) = Size(Semigroup(S));
|
|
195
|
+
true
|
|
196
|
+
gap> Size(S);
|
|
197
|
+
14
|
|
198
|
+
|
|
199
|
+
# ClosureSemigroup 4
|
|
200
|
+
gap> S := FreeBand(3);
|
|
201
|
+
<free band on the generators [ x1, x2, x3 ]>
|
|
202
|
+
gap> T := Semigroup(S.1, S.2);
|
|
203
|
+
<semigroup with 2 generators>
|
|
204
|
+
gap> T := ClosureSemigroup(T, [S.3], SEMIGROUPS.OptionsRec(T));
|
|
205
|
+
<semigroup with 3 generators>
|
|
206
|
+
gap> Size(T);
|
|
207
|
+
159
|
|
208
|
+
gap> T = S;
|
|
209
|
+
true
|
|
210
|
+
|
|
211
|
+
# ClosureSemigroup 5
|
|
212
|
+
gap> S := Semigroup(PartialPerm([1]), rec(acting := false));
|
|
213
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
214
|
+
gap> S := ClosureSemigroup(S,
|
|
215
|
+
> [PartialPerm([3])],
|
|
216
|
+
> SEMIGROUPS.OptionsRec(S));
|
|
217
|
+
<partial perm semigroup of rank 1 with 2 generators>
|
|
218
|
+
gap> Size(S) = Size(Semigroup(S));
|
|
219
|
+
true
|
|
220
|
+
gap> Size(S);
|
|
221
|
+
3
|
|
222
|
+
|
|
223
|
+
# IsGeneratorsOfInverseSemigroup for a semigroup 1
|
|
224
|
+
gap> S := InverseMonoid(PartialPerm([1, 2, 3, 5, 6, 9], [8, 4, 6, 5, 3, 2]),
|
|
225
|
+
> PartialPerm([1, 3, 4, 5, 8, 9], [5, 8, 4, 1, 9, 7]),
|
|
226
|
+
> PartialPerm([1, 3, 5, 6, 8], [3, 7, 5, 4, 9]),
|
|
227
|
+
> PartialPerm([1, 2, 3, 5, 6, 7], [1, 10, 7, 8, 5, 9]));;
|
|
228
|
+
gap> IsGeneratorsOfInverseSemigroup(S);
|
|
229
|
+
true
|
|
230
|
+
|
|
231
|
+
# IsGeneratorsOfInverseSemigroup for a semigroup 2
|
|
232
|
+
gap> S := Monoid(
|
|
233
|
+
> Bipartition([[1, -8], [2, -4], [3, -6], [4], [5, -5],
|
|
234
|
+
> [6, -3], [7], [8], [9, -2], [10], [-1], [-7], [-9],
|
|
235
|
+
> [-10]]),
|
|
236
|
+
> Bipartition([[1, -5], [2], [3, -8], [4, -4],
|
|
237
|
+
> [5, -1], [6], [7], [8, -9], [9, -7], [10], [-2], [-3],
|
|
238
|
+
> [-6], [-10]]),
|
|
239
|
+
> Bipartition([[1, -3], [2], [3, -7], [4],
|
|
240
|
+
> [5, -5], [6, -4], [7], [8, -9], [9], [10], [-1], [-2],
|
|
241
|
+
> [-6], [-8], [-10]]),
|
|
242
|
+
> Bipartition([[1, -1], [2, -10], [3, -7], [4], [5, -8],
|
|
243
|
+
> [6, -5], [7, -9], [8], [9], [10], [-2], [-3], [-4],
|
|
244
|
+
> [-6]]),
|
|
245
|
+
> Bipartition([[1], [2, -9], [3, -6], [4, -2],
|
|
246
|
+
> [5, -5], [6, -3], [7], [8, -1], [9], [10], [-4], [-7],
|
|
247
|
+
> [-8], [-10]]),
|
|
248
|
+
> Bipartition([[1, -5], [2], [3], [4, -4],
|
|
249
|
+
> [5, -1], [6], [7, -9], [8, -3], [9, -8], [10], [-2],
|
|
250
|
+
> [-6], [-7], [-10]]),
|
|
251
|
+
> Bipartition([[1], [2], [3, -1], [4, -6], [5, -5], [6],
|
|
252
|
+
> [7, -3], [8], [9, -8], [10], [-2], [-4], [-7], [-9],
|
|
253
|
+
> [-10]]),
|
|
254
|
+
> Bipartition([[1, -1], [2], [3], [4], [5, -6],
|
|
255
|
+
> [6], [7, -3], [8, -5], [9, -7], [10, -2], [-4], [-8],
|
|
256
|
+
> [-9], [-10]]));;
|
|
257
|
+
gap> IsInverseActingSemigroupRep(S);
|
|
258
|
+
false
|
|
259
|
+
gap> IsGeneratorsOfInverseSemigroup(S);
|
|
260
|
+
true
|
|
261
|
+
gap> S := Semigroup(S);;
|
|
262
|
+
gap> IsInverseSemigroup(S);
|
|
263
|
+
true
|
|
264
|
+
gap> IsInverseActingSemigroupRep(S);
|
|
265
|
+
false
|
|
266
|
+
gap> IsGeneratorsOfInverseSemigroup(S);
|
|
267
|
+
true
|
|
268
|
+
gap> S := InverseSemigroup(S);;
|
|
269
|
+
gap> IsInverseActingSemigroupRep(S) or not IsActingSemigroup(S);
|
|
270
|
+
true
|
|
271
|
+
|
|
272
|
+
# Generators 1
|
|
273
|
+
gap> S := JonesMonoid(5);
|
|
274
|
+
<regular bipartition *-monoid of degree 5 with 4 generators>
|
|
275
|
+
gap> I := SemigroupIdeal(S, S.4);
|
|
276
|
+
<regular bipartition *-semigroup ideal of degree 5 with 1 generator>
|
|
277
|
+
gap> Generators(I);
|
|
278
|
+
[ <bipartition: [ 1, -1 ], [ 2, -2 ], [ 3, -3 ], [ 4, 5 ], [ -4, -5 ]> ]
|
|
279
|
+
|
|
280
|
+
# Generators 2
|
|
281
|
+
gap> S := Group(IdentityTransformation);;
|
|
282
|
+
gap> Generators(S);
|
|
283
|
+
[ IdentityTransformation ]
|
|
284
|
+
|
|
285
|
+
# Generators 3
|
|
286
|
+
gap> S := DualSymmetricInverseMonoid(3);
|
|
287
|
+
<inverse block bijection monoid of degree 3 with 3 generators>
|
|
288
|
+
gap> Generators(S);
|
|
289
|
+
[ <block bijection: [ 1, -2 ], [ 2, -3 ], [ 3, -1 ]>,
|
|
290
|
+
<block bijection: [ 1, -2 ], [ 2, -1 ], [ 3, -3 ]>,
|
|
291
|
+
<block bijection: [ 1, 2, -3 ], [ 3, -1, -2 ]> ]
|
|
292
|
+
|
|
293
|
+
# Generators 4
|
|
294
|
+
gap> S := DualSymmetricInverseMonoid(3);;
|
|
295
|
+
gap> S := InverseSemigroup(S.2, S.3);;
|
|
296
|
+
gap> HasGeneratorsOfInverseMonoid(S);
|
|
297
|
+
false
|
|
298
|
+
gap> Generators(S);
|
|
299
|
+
[ <block bijection: [ 1, -2 ], [ 2, -1 ], [ 3, -3 ]>,
|
|
300
|
+
<block bijection: [ 1, 2, -3 ], [ 3, -1, -2 ]> ]
|
|
301
|
+
gap> HasGeneratorsOfMonoid(S);
|
|
302
|
+
false
|
|
303
|
+
|
|
304
|
+
# Generators 5
|
|
305
|
+
gap> S := Monoid(Transformation([2, 2]), Transformation([2, 1, 2]));;
|
|
306
|
+
gap> Generators(S);
|
|
307
|
+
[ Transformation( [ 2, 2 ] ), Transformation( [ 2, 1, 2 ] ) ]
|
|
308
|
+
gap> GeneratorsOfSemigroup(S);
|
|
309
|
+
[ IdentityTransformation, Transformation( [ 2, 2 ] ),
|
|
310
|
+
Transformation( [ 2, 1, 2 ] ) ]
|
|
311
|
+
|
|
312
|
+
# SemigroupByGenerators 1
|
|
313
|
+
gap> S := Semigroup(AsSet(FullTransformationMonoid(3)), rec(small := true));
|
|
314
|
+
<transformation monoid of degree 3 with 3 generators>
|
|
315
|
+
|
|
316
|
+
# SemigroupByGenerators 2
|
|
317
|
+
gap> S := Semigroup(AsSet(FullBooleanMatMonoid(2)), rec(small := true));
|
|
318
|
+
<monoid of 2x2 boolean matrices with 3 generators>
|
|
319
|
+
|
|
320
|
+
# SemigroupByGenerators 4
|
|
321
|
+
gap> SetInfoLevel(InfoSemigroups, 2);
|
|
322
|
+
gap> S := Semigroup(AsSet(FullBooleanMatMonoid(2)), rec(small := true));
|
|
323
|
+
<monoid of 2x2 boolean matrices with 4 generators>
|
|
324
|
+
gap> SetInfoLevel(InfoSemigroups, 0);
|
|
325
|
+
|
|
326
|
+
# SemigroupByGenerators 5
|
|
327
|
+
gap> S := Semigroup(IdentityTransformation, Transformation([2, 1]),
|
|
328
|
+
> Transformation([2, 1]),
|
|
329
|
+
> rec(acting := false, small := true));
|
|
330
|
+
<commutative transformation monoid of degree 2 with 1 generator>
|
|
331
|
+
|
|
332
|
+
# SemigroupByGenerators 6
|
|
333
|
+
gap> S := Semigroup(BooleanMat([[1, 0], [0, 1]]),
|
|
334
|
+
> AsSet(FullBooleanMatMonoid(2)),
|
|
335
|
+
> rec(acting := false, small := true));
|
|
336
|
+
<monoid of 2x2 boolean matrices with 3 generators>
|
|
337
|
+
|
|
338
|
+
# SemigroupByGenerators 7
|
|
339
|
+
gap> S := Semigroup(PartialPerm([1, 2]), PartialPerm([1]));
|
|
340
|
+
<partial perm monoid of rank 2 with 2 generators>
|
|
341
|
+
|
|
342
|
+
# SemigroupByGenerators 8
|
|
343
|
+
gap> S := Semigroup(Transformation([2, 1]), Transformation([2, 1]),
|
|
344
|
+
> Transformation([1, 1, 2]),
|
|
345
|
+
> rec(small := true));
|
|
346
|
+
<transformation semigroup of degree 3 with 2 generators>
|
|
347
|
+
|
|
348
|
+
# SemigroupByGenerators 9
|
|
349
|
+
gap> SetInfoLevel(InfoSemigroups, 2);
|
|
350
|
+
gap> S := Semigroup(GeneratorsOfMonoid(FullBooleanMatMonoid(2)),
|
|
351
|
+
> rec(small := true));
|
|
352
|
+
<semigroup of 2x2 boolean matrices with 3 generators>
|
|
353
|
+
gap> SetInfoLevel(InfoSemigroups, 0);
|
|
354
|
+
|
|
355
|
+
# SemigroupByGenerators 10
|
|
356
|
+
gap> S := Semigroup(GeneratorsOfMonoid(FullTransformationMonoid(2)),
|
|
357
|
+
> rec(regular := true));;
|
|
358
|
+
gap> IsRegularSemigroup(S);
|
|
359
|
+
true
|
|
360
|
+
|
|
361
|
+
# RegularSemigroup 1
|
|
362
|
+
gap> S := RegularSemigroup(BrauerMonoid(4));;
|
|
363
|
+
gap> Size(S);
|
|
364
|
+
105
|
|
365
|
+
|
|
366
|
+
# RegularSemigroup 2
|
|
367
|
+
gap> S := RegularSemigroup(BrauerMonoid(4), rec());;
|
|
368
|
+
gap> Size(S);
|
|
369
|
+
105
|
|
370
|
+
|
|
371
|
+
# MonoidByGenerators 1
|
|
372
|
+
gap> S := Monoid(AsSet(FullTransformationMonoid(3)), rec(small := true));
|
|
373
|
+
<transformation monoid of degree 3 with 3 generators>
|
|
374
|
+
|
|
375
|
+
# MonoidByGenerators 2
|
|
376
|
+
gap> S := Monoid(AsSet(FullBooleanMatMonoid(2)), rec(small := true));
|
|
377
|
+
<monoid of 2x2 boolean matrices with 4 generators>
|
|
378
|
+
|
|
379
|
+
# MonoidByGenerators 3
|
|
380
|
+
gap> S := Monoid(BrauerMonoid(4), rec(regular := true));;
|
|
381
|
+
gap> Size(S);
|
|
382
|
+
105
|
|
383
|
+
|
|
384
|
+
# MonoidByGenerators 4
|
|
385
|
+
gap> SetInfoLevel(InfoSemigroups, 2);
|
|
386
|
+
gap> S := Monoid(AsSet(FullBooleanMatMonoid(2)), rec(small := true));;
|
|
387
|
+
gap> SetInfoLevel(InfoSemigroups, 0);
|
|
388
|
+
|
|
389
|
+
# MonoidByGenerators 5
|
|
390
|
+
gap> S := Monoid(IdentityTransformation, Transformation([2, 1]));
|
|
391
|
+
<commutative transformation monoid of degree 2 with 1 generator>
|
|
392
|
+
gap> S := Monoid(IdentityTransformation, Transformation([2, 1]),
|
|
393
|
+
> rec(acting := false));
|
|
394
|
+
<commutative transformation monoid of degree 2 with 1 generator>
|
|
395
|
+
|
|
396
|
+
# MonoidByGenerators 7
|
|
397
|
+
gap> S := Monoid(IdentityTransformation, Transformation([2, 1]),
|
|
398
|
+
> Transformation([2, 1]),
|
|
399
|
+
> rec(acting := false, small := true));
|
|
400
|
+
<commutative transformation monoid of degree 2 with 1 generator>
|
|
401
|
+
|
|
402
|
+
# MonoidByGenerators 8
|
|
403
|
+
gap> S := Monoid(PartialPerm([1, 2]), PartialPerm([1]));
|
|
404
|
+
<partial perm monoid of rank 2 with 2 generators>
|
|
405
|
+
|
|
406
|
+
# InverseSemigroupByGenerators 1
|
|
407
|
+
gap> InverseSemigroupByGenerators([Transformation([1, 1, 2])], rec());
|
|
408
|
+
Error, the 1st argument (a finite mult. elt. coll.) must satisfy IsGeneratorsO\
|
|
409
|
+
fInverseSemigroup
|
|
410
|
+
|
|
411
|
+
# InverseSemigroupByGenerators 2
|
|
412
|
+
gap> InverseSemigroup(PartialPerm([1, 2, 3]));
|
|
413
|
+
<trivial partial perm group of rank 3 with 1 generator>
|
|
414
|
+
|
|
415
|
+
# InverseSemigroupGenerators 3
|
|
416
|
+
gap> S := InverseSemigroup(PartialPerm([1]),
|
|
417
|
+
> PartialPerm([1], [2]),
|
|
418
|
+
> PartialPerm([2, 1]),
|
|
419
|
+
> rec(small := true));
|
|
420
|
+
<inverse partial perm semigroup of rank 2 with 2 generators>
|
|
421
|
+
|
|
422
|
+
# InverseSemigroupGenerators 4
|
|
423
|
+
gap> SetInfoLevel(InfoSemigroups, 2);
|
|
424
|
+
gap> S := InverseSemigroup(PartialPerm([1]),
|
|
425
|
+
> PartialPerm([1], [2]),
|
|
426
|
+
> PartialPerm([2, 1]),
|
|
427
|
+
> rec(small := true));
|
|
428
|
+
<inverse partial perm semigroup of rank 2 with 2 generators>
|
|
429
|
+
gap> SetInfoLevel(InfoSemigroups, 0);
|
|
430
|
+
|
|
431
|
+
# InverseMonoidByGenerators 1
|
|
432
|
+
gap> InverseMonoidByGenerators([Transformation([1, 1, 2])], rec());
|
|
433
|
+
Error, the 1st argument (a finite mult. elt. coll.) must satisfy IsGeneratorsO\
|
|
434
|
+
fInverseSemigroup
|
|
435
|
+
|
|
436
|
+
# InverseMonoidByGenerators 2
|
|
437
|
+
gap> InverseMonoid(PartialPerm([1, 2, 3]));
|
|
438
|
+
<trivial partial perm group of rank 3 with 1 generator>
|
|
439
|
+
|
|
440
|
+
# InverseMonoidGenerators 3
|
|
441
|
+
gap> S := InverseMonoid(PartialPerm([1]),
|
|
442
|
+
> PartialPerm([1], [2]),
|
|
443
|
+
> PartialPerm([2, 1]),
|
|
444
|
+
> rec(small := true));
|
|
445
|
+
<inverse partial perm monoid of rank 2 with 2 generators>
|
|
446
|
+
|
|
447
|
+
# InverseMonoidGenerators 4
|
|
448
|
+
gap> SetInfoLevel(InfoSemigroups, 2);
|
|
449
|
+
gap> S := InverseMonoid(PartialPerm([1]),
|
|
450
|
+
> PartialPerm([1], [2]),
|
|
451
|
+
> PartialPerm([2, 1]),
|
|
452
|
+
> rec(small := true));
|
|
453
|
+
<inverse partial perm monoid of rank 2 with 2 generators>
|
|
454
|
+
gap> SetInfoLevel(InfoSemigroups, 0);
|
|
455
|
+
|
|
456
|
+
# ClosureInverseSemigroup 1
|
|
457
|
+
gap> S := InverseSemigroup(Bipartition([[1, -4], [2, 3, -1], [4, -2, -3]]),
|
|
458
|
+
> Bipartition([[1, -2, -4], [2, -3], [3, 4, -1]]),
|
|
459
|
+
> Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]]),
|
|
460
|
+
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]]));
|
|
461
|
+
<inverse block bijection semigroup of degree 4 with 4 generators>
|
|
462
|
+
gap> Size(S);
|
|
463
|
+
64
|
|
464
|
+
gap> T := ClosureInverseSemigroup(S, [S.1, S.3 * S.4 ^ -1]);
|
|
465
|
+
<inverse block bijection semigroup of size 64, degree 4 with 4 generators>
|
|
466
|
+
gap> Size(T);
|
|
467
|
+
64
|
|
468
|
+
gap> S = T;
|
|
469
|
+
true
|
|
470
|
+
gap> IsIdenticalObj(S, T);
|
|
471
|
+
true
|
|
472
|
+
gap> T := ClosureInverseSemigroup(S,
|
|
473
|
+
> [Bipartition([[1, 2, 3, -1, -2, -4], [4, -3]])]);;
|
|
474
|
+
gap> T =
|
|
475
|
+
> InverseSemigroup(Bipartition([[1, -4], [2, 3, -1], [4, -2, -3]]),
|
|
476
|
+
> Bipartition([[1, -2, -4], [2, -3], [3, 4, -1]]),
|
|
477
|
+
> Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]]),
|
|
478
|
+
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]]),
|
|
479
|
+
> Bipartition([[1, 2, 3, -1, -2, -4], [4, -3]]));
|
|
480
|
+
true
|
|
481
|
+
gap> Size(T);
|
|
482
|
+
108
|
|
483
|
+
gap> S = T;
|
|
484
|
+
false
|
|
485
|
+
|
|
486
|
+
# ClosureInverseSemigroup 2
|
|
487
|
+
gap> S := SymmetricInverseMonoid(5);
|
|
488
|
+
<symmetric inverse monoid of degree 5>
|
|
489
|
+
gap> Size(S);
|
|
490
|
+
1546
|
|
491
|
+
gap> T := ClosureInverseSemigroup(S, PartialPerm([6]));;
|
|
492
|
+
gap> T =
|
|
493
|
+
> InverseSemigroup(PartialPerm([1, 2, 3, 4, 5], [2, 3, 4, 5, 1]),
|
|
494
|
+
> PartialPerm([1, 2, 3, 4, 5], [2, 1, 3, 4, 5]),
|
|
495
|
+
> PartialPerm([2, 3, 4, 5], [1, 2, 3, 4]),
|
|
496
|
+
> PartialPerm([1, 2, 3, 4, 5], [1, 2, 3, 4, 5]),
|
|
497
|
+
> PartialPerm([1], [6]));
|
|
498
|
+
true
|
|
499
|
+
gap> Size(T);
|
|
500
|
+
1557
|
|
501
|
+
gap> T := ClosureInverseSemigroup(S, PartialPerm([6]), rec());;
|
|
502
|
+
gap> T =
|
|
503
|
+
> InverseSemigroup(PartialPerm([1, 2, 3, 4, 5], [2, 3, 4, 5, 1]),
|
|
504
|
+
> PartialPerm([1, 2, 3, 4, 5], [2, 1, 3, 4, 5]),
|
|
505
|
+
> PartialPerm([2, 3, 4, 5], [1, 2, 3, 4]),
|
|
506
|
+
> PartialPerm([1, 2, 3, 4, 5], [1, 2, 3, 4, 5]),
|
|
507
|
+
> PartialPerm([1], [6]));
|
|
508
|
+
true
|
|
509
|
+
gap> Size(T);
|
|
510
|
+
1557
|
|
511
|
+
|
|
512
|
+
# ClosureInverseSemigroup 3
|
|
513
|
+
gap> S := InverseSemigroup(Bipartition([[1, -4], [2, 3, -1], [4, -2, -3]]),
|
|
514
|
+
> Bipartition([[1, -2, -4], [2, -3], [3, 4, -1]]),
|
|
515
|
+
> Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]]),
|
|
516
|
+
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]]));
|
|
517
|
+
<inverse block bijection semigroup of degree 4 with 4 generators>
|
|
518
|
+
gap> Size(S);
|
|
519
|
+
64
|
|
520
|
+
gap> T := ClosureInverseSemigroup(S, [], rec());
|
|
521
|
+
<inverse block bijection semigroup of size 64, degree 4 with 4 generators>
|
|
522
|
+
gap> Size(T);
|
|
523
|
+
64
|
|
524
|
+
gap> S = T;
|
|
525
|
+
true
|
|
526
|
+
gap> IsIdenticalObj(S, T);
|
|
527
|
+
true
|
|
528
|
+
|
|
529
|
+
# ClosureInverseSemigroup 4
|
|
530
|
+
gap> S := InverseSemigroup(Bipartition([[1, -4], [2, 3, -1], [4, -2, -3]]),
|
|
531
|
+
> Bipartition([[1, -2, -4], [2, -3], [3, 4, -1]]),
|
|
532
|
+
> Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]]),
|
|
533
|
+
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]]));
|
|
534
|
+
<inverse block bijection semigroup of degree 4 with 4 generators>
|
|
535
|
+
gap> Size(S);
|
|
536
|
+
64
|
|
537
|
+
gap> T := ClosureInverseSemigroup(S,
|
|
538
|
+
> [Bipartition([[1, 2, -2], [3, -1], [-3]])], rec());
|
|
539
|
+
Error, the 2nd argument (a finite mult. elt. coll.) must satisfy IsGeneratorsO\
|
|
540
|
+
fInverseSemigroup
|
|
541
|
+
gap> T := ClosureInverseSemigroup(S,
|
|
542
|
+
> [PartialPerm([])], rec());
|
|
543
|
+
Error, the 1st argument (a semigroup) and the 2nd argument (a mult. elt. coll.\
|
|
544
|
+
) cannot be used to generate an inverse semigroup
|
|
545
|
+
gap> T := ClosureInverseSemigroup(S,
|
|
546
|
+
> [Bipartition([[1, 2, -4], [3, 4, -2], [-1, -3]])], rec());
|
|
547
|
+
Error, the 2nd argument (a finite mult. elt. coll.) must satisfy IsGeneratorsO\
|
|
548
|
+
fInverseSemigroup
|
|
549
|
+
|
|
550
|
+
# ClosureInverseSemigroup 5
|
|
551
|
+
gap> S := InverseSemigroup(Bipartition([[1, -4], [2, 3, -1], [4, -2, -3]]),
|
|
552
|
+
> Bipartition([[1, -2, -4], [2, -3], [3, 4, -1]]),
|
|
553
|
+
> Bipartition([[1, 2, 3, 4, -1, -2, -3, -4]]),
|
|
554
|
+
> Bipartition([[1, 2, -4], [3, -3], [4, -1, -2]]));
|
|
555
|
+
<inverse block bijection semigroup of degree 4 with 4 generators>
|
|
556
|
+
gap> Size(S);
|
|
557
|
+
64
|
|
558
|
+
gap> T := ClosureInverseSemigroup(S, DualSymmetricInverseMonoid(4), rec());;
|
|
559
|
+
gap> IsMonoidAsSemigroup(T);
|
|
560
|
+
true
|
|
561
|
+
gap> Size(T) = Size(InverseSemigroup(T));
|
|
562
|
+
true
|
|
563
|
+
gap> Size(T);
|
|
564
|
+
339
|
|
565
|
+
|
|
566
|
+
# ClosureInverseSemigroup 6
|
|
567
|
+
gap> S := InverseSemigroup(Bipartition([[1, -1, -3], [2, 3, -2]]),
|
|
568
|
+
> Bipartition([[1, -3], [2, -2], [3, -1]]));;
|
|
569
|
+
gap> T := ClosureInverseSemigroup(S, DClass(PartitionMonoid(3),
|
|
570
|
+
> IdentityBipartition(3)));;
|
|
571
|
+
gap> Size(T);
|
|
572
|
+
25
|
|
573
|
+
|
|
574
|
+
# ClosureInverseSemigroupOrMonoidNC 1
|
|
575
|
+
gap> S := SymmetricInverseMonoid(5);
|
|
576
|
+
<symmetric inverse monoid of degree 5>
|
|
577
|
+
gap> I := SemigroupIdeal(S, S.3);
|
|
578
|
+
<inverse partial perm semigroup ideal of rank 5 with 1 generator>
|
|
579
|
+
gap> T := ClosureInverseSemigroup(I, [S.1], rec());;
|
|
580
|
+
gap> Size(T);
|
|
581
|
+
1431
|
|
582
|
+
gap> Size(S);
|
|
583
|
+
1546
|
|
584
|
+
gap> S.1;
|
|
585
|
+
(1,2,3,4,5)
|
|
586
|
+
|
|
587
|
+
# ClosureSemigroup 1
|
|
588
|
+
gap> S := Semigroup(
|
|
589
|
+
> [Matrix(IsBooleanMat, [[0, 1, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 0, 1, 0, 1],
|
|
590
|
+
> [1, 1, 0, 1, 0, 1, 1, 1], [0, 1, 1, 1, 1, 1, 0, 0],
|
|
591
|
+
> [1, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 0, 1],
|
|
592
|
+
> [0, 0, 0, 0, 1, 1, 0, 1], [1, 1, 1, 0, 1, 0, 1, 1]]),
|
|
593
|
+
> Matrix(IsBooleanMat, [[0, 1, 0, 1, 1, 1, 1, 1], [0, 1, 1, 1, 0, 0, 1, 0],
|
|
594
|
+
> [1, 0, 0, 0, 1, 1, 0, 1], [0, 0, 0, 1, 1, 1, 1, 1],
|
|
595
|
+
> [0, 0, 0, 1, 0, 1, 0, 1], [0, 0, 1, 0, 1, 1, 0, 0],
|
|
596
|
+
> [0, 1, 0, 1, 1, 0, 0, 0], [1, 1, 0, 0, 1, 0, 0, 0]]),
|
|
597
|
+
> Matrix(IsBooleanMat, [[0, 0, 1, 0, 0, 1, 1, 0], [0, 1, 0, 1, 0, 0, 1, 1],
|
|
598
|
+
> [1, 1, 1, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0, 1, 0],
|
|
599
|
+
> [1, 0, 0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 1, 0, 1],
|
|
600
|
+
> [1, 1, 1, 0, 1, 1, 0, 1], [1, 0, 1, 1, 1, 1, 0, 1]]),
|
|
601
|
+
> Matrix(IsBooleanMat, [[1, 0, 1, 0, 0, 1, 0, 1], [0, 0, 0, 0, 1, 1, 0, 1],
|
|
602
|
+
> [0, 0, 0, 1, 1, 1, 0, 1], [0, 0, 0, 1, 1, 0, 0, 1],
|
|
603
|
+
> [1, 0, 0, 1, 0, 1, 0, 1], [0, 1, 0, 1, 0, 0, 0, 1],
|
|
604
|
+
> [1, 0, 0, 0, 1, 0, 0, 0], [1, 1, 0, 1, 1, 0, 0, 1]]),
|
|
605
|
+
> Matrix(IsBooleanMat, [[1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 0, 0, 0, 1, 0, 0],
|
|
606
|
+
> [1, 1, 0, 0, 0, 1, 0, 0], [1, 0, 0, 1, 1, 1, 1, 0],
|
|
607
|
+
> [1, 1, 1, 1, 1, 1, 1, 1], [0, 1, 0, 1, 1, 1, 0, 0],
|
|
608
|
+
> [0, 1, 0, 0, 1, 0, 0, 1], [0, 1, 1, 1, 0, 0, 0, 1]]),
|
|
609
|
+
> Matrix(IsBooleanMat, [[1, 1, 1, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0],
|
|
610
|
+
> [0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 1, 1, 0, 0, 0, 1],
|
|
611
|
+
> [0, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 0, 0, 1],
|
|
612
|
+
> [0, 0, 1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 1, 0, 1, 1]]),
|
|
613
|
+
> Matrix(IsBooleanMat, [[0, 1, 0, 0, 0, 1, 1, 1], [0, 1, 0, 0, 0, 1, 0, 0],
|
|
614
|
+
> [0, 0, 0, 0, 0, 0, 1, 1], [0, 0, 1, 0, 1, 1, 0, 1],
|
|
615
|
+
> [0, 0, 0, 0, 1, 1, 1, 1], [1, 0, 0, 1, 1, 0, 0, 1],
|
|
616
|
+
> [1, 0, 0, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0]]),
|
|
617
|
+
> Matrix(IsBooleanMat, [[1, 0, 0, 1, 0, 1, 1, 1], [0, 1, 0, 0, 0, 1, 0, 1],
|
|
618
|
+
> [1, 0, 0, 0, 1, 0, 1, 1], [1, 0, 1, 0, 0, 1, 0, 0],
|
|
619
|
+
> [0, 0, 0, 1, 0, 1, 0, 0], [0, 1, 1, 0, 0, 0, 1, 0],
|
|
620
|
+
> [1, 1, 1, 1, 1, 0, 1, 0], [1, 1, 0, 0, 1, 1, 0, 0]]),
|
|
621
|
+
> Matrix(IsBooleanMat, [[1, 0, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 1, 1, 0, 0],
|
|
622
|
+
> [1, 0, 1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1],
|
|
623
|
+
> [1, 0, 1, 0, 1, 1, 1, 1], [1, 0, 0, 1, 0, 1, 0, 1],
|
|
624
|
+
> [0, 0, 1, 1, 1, 0, 0, 1], [0, 0, 1, 1, 0, 1, 0, 1]]),
|
|
625
|
+
> Matrix(IsBooleanMat, [[1, 1, 0, 1, 1, 0, 1, 1], [0, 0, 0, 0, 0, 1, 1, 1],
|
|
626
|
+
> [1, 1, 0, 1, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1, 1, 0],
|
|
627
|
+
> [0, 1, 0, 1, 1, 0, 0, 1], [0, 1, 0, 1, 1, 1, 0, 0],
|
|
628
|
+
> [1, 0, 1, 1, 1, 1, 1, 1], [0, 1, 0, 1, 1, 0, 0, 0]])]);
|
|
629
|
+
<semigroup of 8x8 boolean matrices with 10 generators>
|
|
630
|
+
gap> Size(S);
|
|
631
|
+
266
|
|
632
|
+
gap> x := Matrix(IsBooleanMat, [[0, 0, 0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 1, 1, 0, 0],
|
|
633
|
+
> [0, 0, 1, 0, 0, 0, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0],
|
|
634
|
+
> [1, 0, 0, 1, 1, 0, 0, 1], [0, 0, 0, 1, 1, 0, 1, 0],
|
|
635
|
+
> [1, 0, 0, 1, 0, 1, 1, 0], [1, 1, 1, 1, 0, 0, 0, 1]]);;
|
|
636
|
+
gap> T := ClosureSemigroup(S, [x, S.2]);
|
|
637
|
+
<semigroup of 8x8 boolean matrices with 11 generators>
|
|
638
|
+
gap> Size(T);
|
|
639
|
+
315
|
|
640
|
+
gap> Size(T) = Size(Semigroup(T));
|
|
641
|
+
true
|
|
642
|
+
gap> T := ClosureSemigroup(S, S.2);
|
|
643
|
+
<semigroup of size 266, 8x8 boolean matrices with 10 generators>
|
|
644
|
+
gap> Size(T);
|
|
645
|
+
266
|
|
646
|
+
gap> Size(T) = Size(Semigroup(T));
|
|
647
|
+
true
|
|
648
|
+
gap> IsIdenticalObj(S, T);
|
|
649
|
+
true
|
|
650
|
+
gap> T := ClosureSemigroup(S, x);
|
|
651
|
+
<semigroup of 8x8 boolean matrices with 11 generators>
|
|
652
|
+
gap> Size(T);
|
|
653
|
+
315
|
|
654
|
+
gap> Size(T) = Size(Semigroup(T));
|
|
655
|
+
true
|
|
656
|
+
gap> T := ClosureSemigroup(S, x, rec());
|
|
657
|
+
<semigroup of 8x8 boolean matrices with 11 generators>
|
|
658
|
+
gap> Size(T);
|
|
659
|
+
315
|
|
660
|
+
gap> Size(T) = Size(Semigroup(T));
|
|
661
|
+
true
|
|
662
|
+
|
|
663
|
+
# ClosureSemigroup 2
|
|
664
|
+
gap> S := FullTransformationMonoid(2);
|
|
665
|
+
<full transformation monoid of degree 2>
|
|
666
|
+
gap> T := ClosureSemigroup(S, FullTransformationMonoid(4));;
|
|
667
|
+
gap> Size(T);
|
|
668
|
+
256
|
|
669
|
+
gap> T = FullTransformationMonoid(4);
|
|
670
|
+
true
|
|
671
|
+
|
|
672
|
+
# ClosureSemigroup 3
|
|
673
|
+
gap> S := Semigroup(Bipartition([[1, 3, -3], [2], [-1, -2]]),
|
|
674
|
+
> Bipartition([[1, -3], [2, 3, -1], [-2]]));;
|
|
675
|
+
gap> T := ClosureSemigroup(S, IdentityBipartition(4));
|
|
676
|
+
Error, the 1st argument (a semigroup) and the 2nd argument (a list or coll.) c\
|
|
677
|
+
annot be used to generate a semigroup
|
|
678
|
+
|
|
679
|
+
# ClosureSemigroup 4
|
|
680
|
+
gap> S := Semigroup(Bipartition([[1, 3, -3], [2], [-1, -2]]),
|
|
681
|
+
> Bipartition([[1, -3], [2, 3, -1], [-2]]));;
|
|
682
|
+
gap> T := ClosureSemigroup(S, DClass(PartitionMonoid(3),
|
|
683
|
+
> IdentityBipartition(3)));;
|
|
684
|
+
gap> Size(T);
|
|
685
|
+
103
|
|
686
|
+
|
|
687
|
+
# SubsemigroupByProperty 1
|
|
688
|
+
gap> func := function(x)
|
|
689
|
+
> local n;
|
|
690
|
+
> n := DegreeOfTransformation(x);
|
|
691
|
+
> return 1 ^ x <> 1 and ForAll([1 .. n], y -> y = 1 or y ^ x = y);
|
|
692
|
+
> end;;
|
|
693
|
+
gap> T := SubsemigroupByProperty(FullTransformationSemigroup(3), func);
|
|
694
|
+
<transformation semigroup of size 2, degree 3 with 2 generators>
|
|
695
|
+
gap> T := SubsemigroupByProperty(FullTransformationSemigroup(4), func);
|
|
696
|
+
<transformation semigroup of size 3, degree 4 with 3 generators>
|
|
697
|
+
gap> T := SubsemigroupByProperty(FullTransformationSemigroup(5), func);
|
|
698
|
+
<transformation semigroup of size 4, degree 5 with 4 generators>
|
|
699
|
+
gap> func := x -> x ^ 2 = x;
|
|
700
|
+
function( x ) ... end
|
|
701
|
+
gap> T := SubsemigroupByProperty(FreeBand(2), func, 10);
|
|
702
|
+
<semigroup of size 6, with 2 generators>
|
|
703
|
+
|
|
704
|
+
# SubsemigroupByProperty 2
|
|
705
|
+
gap> func := function(x)
|
|
706
|
+
> return 1 ^ x > 3;
|
|
707
|
+
> end;;
|
|
708
|
+
gap> T := SubsemigroupByProperty(FullTransformationSemigroup(3), func);
|
|
709
|
+
fail
|
|
710
|
+
|
|
711
|
+
# InverseSubsemigroupByProperty 1
|
|
712
|
+
gap> IsIsometryPP := function(f)
|
|
713
|
+
> local n, i, j, k, l;
|
|
714
|
+
> n := RankOfPartialPerm(f);
|
|
715
|
+
> for i in [1 .. n - 1] do
|
|
716
|
+
> k := DomainOfPartialPerm(f)[i];
|
|
717
|
+
> for j in [i + 1 .. n] do
|
|
718
|
+
> l := DomainOfPartialPerm(f)[j];
|
|
719
|
+
> if not AbsInt(k ^ f - l ^ f) = AbsInt(k - l) then
|
|
720
|
+
> return false;
|
|
721
|
+
> fi;
|
|
722
|
+
> od;
|
|
723
|
+
> od;
|
|
724
|
+
> return true;
|
|
725
|
+
> end;;
|
|
726
|
+
gap> S := InverseSubsemigroupByProperty(SymmetricInverseSemigroup(5),
|
|
727
|
+
> IsIsometryPP);;
|
|
728
|
+
gap> Size(S);
|
|
729
|
+
142
|
|
730
|
+
|
|
731
|
+
# InverseSubsemigroupByProperty 2
|
|
732
|
+
gap> func := function(x)
|
|
733
|
+
> return 1 ^ x > 3;
|
|
734
|
+
> end;;
|
|
735
|
+
gap> T := InverseSubsemigroupByProperty(SymmetricInverseMonoid(3), func);
|
|
736
|
+
fail
|
|
737
|
+
|
|
738
|
+
# Random (for a semigroup with AsList)
|
|
739
|
+
gap> S := FullTransformationMonoid(4);;
|
|
740
|
+
gap> AsList(S);;
|
|
741
|
+
gap> Random(S);;
|
|
742
|
+
|
|
743
|
+
# SEMIGROUPS.DefaultRandomInverseSemigroup 1
|
|
744
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseSemigroup(IsTransformationSemigroup,
|
|
745
|
+
> [2, 4]);;
|
|
746
|
+
gap> IsInverseSemigroup(S) and IsTransformationSemigroup(S);
|
|
747
|
+
true
|
|
748
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseSemigroup(IsTropicalMaxPlusMatrixSemigroup,
|
|
749
|
+
> [2, 4, 10]);;
|
|
750
|
+
gap> IsInverseSemigroup(S) and IsTropicalMaxPlusMatrixSemigroup(S);
|
|
751
|
+
true
|
|
752
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseSemigroup(IsNTPMatrixSemigroup,
|
|
753
|
+
> [2, 4, 5, 6]);;
|
|
754
|
+
gap> IsInverseSemigroup(S) and IsNTPMatrixSemigroup(S);
|
|
755
|
+
true
|
|
756
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseSemigroup(IsNTPMatrixMonoid,
|
|
757
|
+
> [2, 4, 5, 6, 10]);;
|
|
758
|
+
Error, the 2nd argument must have length 2, 3, or 4
|
|
759
|
+
|
|
760
|
+
# SEMIGROUPS.DefaultRandomInverseMonoid 1
|
|
761
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseMonoid(IsTransformationMonoid,
|
|
762
|
+
> [2, 4]);;
|
|
763
|
+
gap> IsInverseMonoid(S) and IsTransformationMonoid(S);
|
|
764
|
+
true
|
|
765
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseMonoid(IsTropicalMaxPlusMatrixMonoid,
|
|
766
|
+
> [2, 4, 10]);;
|
|
767
|
+
gap> IsInverseMonoid(S) and IsTropicalMaxPlusMatrixMonoid(S);
|
|
768
|
+
true
|
|
769
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseMonoid(IsNTPMatrixMonoid,
|
|
770
|
+
> [2, 4, 5, 6]);;
|
|
771
|
+
gap> IsInverseMonoid(S) and IsNTPMatrixMonoid(S);
|
|
772
|
+
true
|
|
773
|
+
gap> S := SEMIGROUPS.DefaultRandomInverseMonoid(IsNTPMatrixMonoid,
|
|
774
|
+
> [2, 4, 5, 6, 10]);;
|
|
775
|
+
Error, the 2nd argument must have length 2, 3, or 4
|
|
776
|
+
|
|
777
|
+
# RandomSemigroup 1
|
|
778
|
+
gap> RandomSemigroup(2, 4);;
|
|
779
|
+
gap> RandomSemigroup(IsTransformationSemigroup, 2, 4);;
|
|
780
|
+
gap> RandomSemigroup(fail, 2, 4);;
|
|
781
|
+
Error, the 1st argument must be a filter
|
|
782
|
+
gap> RandomSemigroup(IsTransformationSemigroup);;
|
|
783
|
+
gap> RandomSemigroup(IsTropicalMinPlusMatrixSemigroup, 2, 4, 1);;
|
|
784
|
+
gap> RandomSemigroup(IsTropicalMinPlusMatrixSemigroup, 2, 4);;
|
|
785
|
+
gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 4);;
|
|
786
|
+
gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 4, 5, 6);;
|
|
787
|
+
gap> RandomSemigroup(IsNTPMatrixSemigroup, 2, 4, 5, "a");;
|
|
788
|
+
Error, the 5th argument (semiring period) must be a pos int
|
|
789
|
+
gap> RandomSemigroup(IsTransformationSemigroup, "a");;
|
|
790
|
+
Error, the 2nd argument (number of generators) must be a pos int
|
|
791
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup);;
|
|
792
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, 2);;
|
|
793
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, 2, 3);;
|
|
794
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, 2, 3, SymmetricGroup(3));;
|
|
795
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, 2, 3, SymmetricGroup(3), fail);;
|
|
796
|
+
Error, expected at most 3 arguments, found 4
|
|
797
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, 2, 3, DihedralGroup(2));;
|
|
798
|
+
Error, the 4th argument must be a permutation group
|
|
799
|
+
gap> RandomSemigroup(IsReesMatrixSemigroup, fail, 3, DihedralGroup(2));;
|
|
800
|
+
Error, the 2nd argument (number of rows) must be a positive integer
|
|
801
|
+
|
|
802
|
+
# RandomMonoid 1
|
|
803
|
+
gap> RandomMonoid(2, 4);;
|
|
804
|
+
gap> RandomMonoid(IsTransformationMonoid, 2, 4);;
|
|
805
|
+
gap> RandomMonoid(fail, 2, 4);;
|
|
806
|
+
Error, the 1st argument must be a filter
|
|
807
|
+
gap> RandomMonoid(IsTransformationMonoid);;
|
|
808
|
+
gap> RandomMonoid(IsTropicalMinPlusMatrixMonoid, 2, 4, 1);;
|
|
809
|
+
gap> RandomMonoid(IsTropicalMinPlusMatrixMonoid, 2, 4);;
|
|
810
|
+
gap> RandomMonoid(IsNTPMatrixMonoid, 2, 4);;
|
|
811
|
+
gap> RandomMonoid(IsNTPMatrixMonoid, 2, 4, 5, 6);;
|
|
812
|
+
gap> RandomMonoid(IsNTPMatrixMonoid, 2, 4, 5, "a");;
|
|
813
|
+
Error, the 5th argument (semiring period) must be a pos int
|
|
814
|
+
gap> RandomMonoid(IsTransformationMonoid, "a");;
|
|
815
|
+
Error, the 2nd argument (number of generators) must be a pos int
|
|
816
|
+
|
|
817
|
+
# RandomInverseSemigroup 1
|
|
818
|
+
gap> RandomInverseSemigroup(2, 4);;
|
|
819
|
+
gap> RandomInverseSemigroup(IsTransformationSemigroup, 2, 4);;
|
|
820
|
+
gap> RandomInverseSemigroup(fail, 2, 4);;
|
|
821
|
+
Error, the 1st argument must be a filter
|
|
822
|
+
gap> RandomInverseSemigroup(IsTransformationSemigroup);;
|
|
823
|
+
gap> RandomInverseSemigroup(IsTropicalMinPlusMatrixSemigroup, 2, 4, 1);;
|
|
824
|
+
gap> RandomInverseSemigroup(IsTropicalMinPlusMatrixSemigroup, 2, 4);;
|
|
825
|
+
gap> RandomInverseSemigroup(IsNTPMatrixSemigroup, 2, 4);;
|
|
826
|
+
gap> RandomInverseSemigroup(IsNTPMatrixSemigroup, 2, 4, 5, 6);;
|
|
827
|
+
gap> RandomInverseSemigroup(IsNTPMatrixSemigroup, 2, 4, 5, "a");;
|
|
828
|
+
Error, the 5th argument (semiring period) must be a pos int
|
|
829
|
+
gap> RandomInverseSemigroup(IsTransformationSemigroup, "a");;
|
|
830
|
+
Error, the 2nd argument (number of generators) must be a pos int
|
|
831
|
+
|
|
832
|
+
# RandomInverseMonoid 1
|
|
833
|
+
gap> RandomInverseMonoid(2, 4);;
|
|
834
|
+
gap> RandomInverseMonoid(IsTransformationMonoid, 2, 4);;
|
|
835
|
+
gap> RandomInverseMonoid(fail, 2, 4);;
|
|
836
|
+
Error, the 1st argument must be a filter
|
|
837
|
+
gap> RandomInverseMonoid(IsTransformationMonoid);;
|
|
838
|
+
gap> RandomInverseMonoid(IsTropicalMinPlusMatrixMonoid, 2, 4, 1);;
|
|
839
|
+
gap> RandomInverseMonoid(IsTropicalMinPlusMatrixMonoid, 2, 4);;
|
|
840
|
+
gap> RandomInverseMonoid(IsNTPMatrixMonoid, 2, 4);;
|
|
841
|
+
gap> RandomInverseMonoid(IsNTPMatrixMonoid, 2, 4, 5, 6);;
|
|
842
|
+
gap> RandomInverseMonoid(IsNTPMatrixMonoid, 2, 4, 5, "a");;
|
|
843
|
+
Error, the 5th argument (semiring period) must be a pos int
|
|
844
|
+
gap> RandomInverseMonoid(IsTransformationMonoid, "a");;
|
|
845
|
+
Error, the 2nd argument (number of generators) must be a pos int
|
|
846
|
+
|
|
847
|
+
# AsSemigroup 1
|
|
848
|
+
gap> S := Monoid(Transformation([3, 4, 2, 4]), Transformation([2, 4, 1, 4]),
|
|
849
|
+
> Transformation([4, 3, 1, 4]), Transformation([3, 1, 4, 4]));
|
|
850
|
+
<transformation monoid of degree 4 with 4 generators>
|
|
851
|
+
gap> T := AsSemigroup(IsTransformationSemigroup, S);
|
|
852
|
+
<transformation monoid of degree 4 with 4 generators>
|
|
853
|
+
gap> IsIdenticalObj(S, T);
|
|
854
|
+
true
|
|
855
|
+
|
|
856
|
+
# AsSemigroup 2
|
|
857
|
+
gap> S := Semigroup(
|
|
858
|
+
> [Transformation([7, 12, 8, 7, 18, 23, 11, 2, 12, 11, 1, 8, 7, 8, 1, 2, 17,
|
|
859
|
+
> 22, 35, 32, 22, 5, 27, 45, 42, 27, 6, 2, 1, 11, 12, 19, 35, 5, 32, 22,
|
|
860
|
+
> 32, 18, 19, 19, 18, 24, 45, 6, 42, 27, 42, 23, 24, 24, 23, 5, 35, 6, 45,
|
|
861
|
+
> 1]), Transformation([8, 11, 7, 8, 19, 24, 12, 1, 11, 12, 2, 7, 8, 7,
|
|
862
|
+
> 2, 1, 17, 32, 5, 22, 32, 35, 42, 6, 27, 42, 45, 1, 2, 12, 11, 18, 5, 35,
|
|
863
|
+
> 22, 32, 22, 19, 18, 18, 19, 23, 6, 45, 27, 42, 27, 24, 23, 23, 24, 35, 5,
|
|
864
|
+
> 45, 6, 2]), Transformation([9, 13, 15, 9, 20, 25, 28, 30, 13, 28, 3,
|
|
865
|
+
> 15, 9, 15, 3, 30, 17, 33, 36, 38, 33, 40, 43, 46, 48, 43, 50, 30, 3, 28,
|
|
866
|
+
> 13, 52, 36, 40, 38, 33, 38, 20, 52, 52, 20, 54, 46, 50, 48, 43, 48, 25,
|
|
867
|
+
> 54, 54, 25, 40, 36, 50, 46, 3]),
|
|
868
|
+
> Transformation([10, 14, 16, 10, 21, 26, 29, 31, 14, 29, 4, 16, 10, 16, 4,
|
|
869
|
+
> 31, 17, 34, 37, 39, 34, 41, 44, 47, 49, 44, 51, 31, 4, 29, 14, 53, 37,
|
|
870
|
+
> 41, 39, 34, 39, 21, 53, 53, 21, 55, 47, 51, 49, 44, 49, 26, 55, 55, 26,
|
|
871
|
+
> 41, 37, 51, 47, 4]), Transformation([1, 2, 17, 2, 5, 6, 7, 8, 17, 8,
|
|
872
|
+
> 11, 12, 17, 11, 17, 7, 17, 18, 19, 17, 19, 22, 23, 24, 17, 24, 27, 17,
|
|
873
|
+
> 12, 17, 1, 32, 17, 32, 35, 17, 5, 17, 22, 17, 35, 42, 17, 42, 45, 17, 6,
|
|
874
|
+
> 17, 27, 17, 45, 17, 18, 17, 23, 5]),
|
|
875
|
+
> Transformation([11, 8, 17, 17, 22, 27, 1, 12, 17, 17, 7, 2, 17, 17, 17,
|
|
876
|
+
> 17, 17, 5, 32, 17, 17, 18, 6, 42, 17, 17, 23, 17, 17, 17, 17, 35, 17,
|
|
877
|
+
> 17, 19, 17, 17, 17, 17, 17, 17, 45, 17, 17, 24, 17, 17, 17, 17, 17, 17,
|
|
878
|
+
> 17, 17, 17, 17, 6])]);
|
|
879
|
+
<transformation semigroup of degree 56 with 6 generators>
|
|
880
|
+
gap> AsSemigroup(IsReesZeroMatrixSemigroup, S);;
|
|
881
|
+
|
|
882
|
+
# AsMonoid 1
|
|
883
|
+
gap> S := Monoid(Transformation([3, 4, 2, 4]), Transformation([2, 4, 1, 4]),
|
|
884
|
+
> Transformation([4, 3, 1, 4]), Transformation([3, 1, 4, 4]));
|
|
885
|
+
<transformation monoid of degree 4 with 4 generators>
|
|
886
|
+
gap> T := AsMonoid(IsTransformationMonoid, S);
|
|
887
|
+
<transformation monoid of degree 4 with 4 generators>
|
|
888
|
+
gap> IsIdenticalObj(S, T);
|
|
889
|
+
true
|
|
890
|
+
gap> T := AsMonoid(IsPartialPermMonoid, S);;
|
|
891
|
+
gap> T := AsMonoid(IsFpMonoid, S);
|
|
892
|
+
<fp monoid with 4 generators and 45 relations of length 234>
|
|
893
|
+
gap> T := AsMonoid(IsBooleanMatMonoid, S);;
|
|
894
|
+
|
|
895
|
+
# ClosureSemigroup
|
|
896
|
+
gap> S := FullTransformationMonoid(5);;
|
|
897
|
+
gap> T := Semigroup(One(S));
|
|
898
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
899
|
+
gap> U := ClosureSemigroup(T, AsSet(S));;
|
|
900
|
+
gap> Length(GeneratorsOfSemigroup(U)) <= 20;
|
|
901
|
+
true
|
|
902
|
+
gap> T;
|
|
903
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
904
|
+
gap> gens :=
|
|
905
|
+
> [Matrix(GF(5 ^ 2), [[Z(5 ^ 2), Z(5 ^ 2) ^ 13],
|
|
906
|
+
> [0 * Z(5), Z(5 ^ 2) ^ 14]]),
|
|
907
|
+
> Matrix(GF(5 ^ 2), [[Z(5 ^ 2) ^ 21, Z(5) ^ 0],
|
|
908
|
+
> [Z(5) ^ 0, 0 * Z(5)]]),
|
|
909
|
+
> Matrix(GF(5 ^ 2), [[Z(5 ^ 2) ^ 23, Z(5 ^ 2) ^ 5],
|
|
910
|
+
> [Z(5 ^ 2) ^ 20, Z(5 ^ 2) ^ 20]])];;
|
|
911
|
+
gap> S := Semigroup(gens[1], rec(acting := true));
|
|
912
|
+
<commutative semigroup of 2x2 matrices over GF(5^2) with 1 generator>
|
|
913
|
+
gap> Size(S);
|
|
914
|
+
24
|
|
915
|
+
gap> S := ClosureSemigroup(S, gens[2]);
|
|
916
|
+
<semigroup of 2x2 matrices over GF(5^2) with 2 generators>
|
|
917
|
+
gap> Size(S);
|
|
918
|
+
124800
|
|
919
|
+
gap> S := ClosureSemigroup(S, gens[3]);
|
|
920
|
+
<semigroup of 2x2 matrices over GF(5^2) with 3 generators>
|
|
921
|
+
gap> Size(S);
|
|
922
|
+
374400
|
|
923
|
+
|
|
924
|
+
# IsGeneratorsOfInverseSemigroup
|
|
925
|
+
gap> S := Semigroup(SymmetricInverseMonoid(3), rec(acting := true));;
|
|
926
|
+
gap> IsGeneratorsOfInverseSemigroup(S);
|
|
927
|
+
true
|
|
928
|
+
gap> S := Semigroup(Transformation([1, 1]));;
|
|
929
|
+
gap> IsGeneratorsOfInverseSemigroup(S);
|
|
930
|
+
false
|
|
931
|
+
|
|
932
|
+
# ClosureMonoid
|
|
933
|
+
gap> S := Semigroup(PartialPerm([1]));;
|
|
934
|
+
gap> T := ClosureMonoid(S, [PartialPerm([2 .. 5])]);
|
|
935
|
+
<partial perm monoid of rank 5 with 2 generators>
|
|
936
|
+
gap> One(T);
|
|
937
|
+
<identity partial perm on [ 1, 2, 3, 4, 5 ]>
|
|
938
|
+
gap> T := ClosureSemigroup(S, [PartialPerm([2 .. 5])]);
|
|
939
|
+
<partial perm semigroup of rank 4 with 2 generators>
|
|
940
|
+
gap> One(T);
|
|
941
|
+
fail
|
|
942
|
+
gap> T := ClosureMonoid(SymmetricInverseMonoid(3), PartialPerm([1 .. 4]));
|
|
943
|
+
<partial perm monoid of rank 4 with 6 generators>
|
|
944
|
+
gap> T := ClosureMonoid(SymmetricInverseMonoid(3), PartialPerm([1 .. 4]),
|
|
945
|
+
> rec());
|
|
946
|
+
<partial perm monoid of rank 4 with 6 generators>
|
|
947
|
+
gap> Size(T);
|
|
948
|
+
35
|
|
949
|
+
gap> One(T);
|
|
950
|
+
<identity partial perm on [ 1, 2, 3, 4 ]>
|
|
951
|
+
gap> M := ClosureMonoid(SymmetricInverseMonoid(2), SymmetricInverseMonoid(3));;
|
|
952
|
+
gap> Size(M);
|
|
953
|
+
34
|
|
954
|
+
gap> M = SymmetricInverseMonoid(3);
|
|
955
|
+
true
|
|
956
|
+
gap> M := ClosureMonoid(POPI(3), DClass(M, PartialPerm([1 .. 3])));
|
|
957
|
+
<partial perm monoid of rank 3 with 4 generators>
|
|
958
|
+
gap> Size(M);
|
|
959
|
+
34
|
|
960
|
+
gap> M = SymmetricInverseMonoid(3);
|
|
961
|
+
true
|
|
962
|
+
gap> M := ClosureMonoid(OrderEndomorphisms(3),
|
|
963
|
+
> DClass(M, PartialPerm([1 .. 3])));
|
|
964
|
+
Error, the 1st argument (a monoid) and the 2nd argument (a mult. elt. with one\
|
|
965
|
+
coll.) cannot be used to generate a monoid
|
|
966
|
+
|
|
967
|
+
# IsTrivial immediate method for monoids
|
|
968
|
+
gap> S := Monoid(PartialPerm([1]));
|
|
969
|
+
<trivial partial perm group of rank 1 with 1 generator>
|
|
970
|
+
gap> S := Monoid(IdentityTransformation);
|
|
971
|
+
<trivial transformation group of degree 0 with 1 generator>
|
|
972
|
+
|
|
973
|
+
# InverseSemigroupByGenerators, CanUseFroidurePin semigroup
|
|
974
|
+
gap> S := InverseSemigroup(PartialPerm([2, 1, 3]), rec(acting := false));;
|
|
975
|
+
gap> S := InverseMonoid(PartialPerm([2, 1, 3]), rec(acting := false));;
|
|
976
|
+
|
|
977
|
+
# ClosureSemigroup for an empty list
|
|
978
|
+
gap> S := Semigroup(Transformation([1, 1]));;
|
|
979
|
+
gap> ClosureSemigroup(S, [], rec()) = S;
|
|
980
|
+
true
|
|
981
|
+
gap> IsIdenticalObj(ClosureSemigroup(S, [], rec()), S);
|
|
982
|
+
true
|
|
983
|
+
gap> S := Semigroup(Transformation([1, 1]));;
|
|
984
|
+
gap> ClosureSemigroupOrMonoidNC(Semigroup, S, [], rec()) = S;
|
|
985
|
+
true
|
|
986
|
+
gap> IsIdenticalObj(ClosureSemigroupOrMonoidNC(Semigroup, S, [], rec()), S);
|
|
987
|
+
true
|
|
988
|
+
gap> S := FreeBand(2);
|
|
989
|
+
<free band on the generators [ x1, x2 ]>
|
|
990
|
+
gap> ClosureSemigroupOrMonoidNC(Semigroup, S, [S.1], rec());
|
|
991
|
+
<free band on the generators [ x1, x2 ]>
|
|
992
|
+
gap> S := ReesZeroMatrixSemigroup(SymmetricGroup([1 .. 3]),
|
|
993
|
+
> [[(), ()], [(1, 2), ()], [(1, 2, 3), ()]]);
|
|
994
|
+
<Rees 0-matrix semigroup 2x3 over Sym( [ 1 .. 3 ] )>
|
|
995
|
+
gap> GeneratorsOfSemigroup(S);
|
|
996
|
+
[ (1,(1,2,3),1), (1,(1,2),1), (1,(),2), (1,(),3), (2,(),1), 0 ]
|
|
997
|
+
gap> T := Semigroup(S.1, S.2, rec(acting := false));
|
|
998
|
+
<subsemigroup of 2x3 Rees 0-matrix semigroup with 2 generators>
|
|
999
|
+
gap> ClosureSemigroupOrMonoidNC(Semigroup, T, [S.1, S.4, S.3], rec());
|
|
1000
|
+
<subsemigroup of 2x3 Rees 0-matrix semigroup with 4 generators>
|
|
1001
|
+
|
|
1002
|
+
# ClosureInverseMonoid
|
|
1003
|
+
gap> ClosureInverseMonoid(SymmetricInverseMonoid(3), PartialPerm([4 .. 6]))
|
|
1004
|
+
> = InverseMonoid(PartialPerm([1, 2, 3], [2, 3, 1]),
|
|
1005
|
+
> PartialPerm([1, 2, 3], [2, 1, 3]),
|
|
1006
|
+
> PartialPerm([2, 3], [1, 2]),
|
|
1007
|
+
> PartialPerm([1, 2, 3], [1, 2, 3]),
|
|
1008
|
+
> PartialPerm([1, 2, 3], [4, 5, 6]));
|
|
1009
|
+
true
|
|
1010
|
+
gap> ClosureInverseMonoid(SymmetricInverseMonoid(3), PartialPerm([4 .. 6]),
|
|
1011
|
+
> rec())
|
|
1012
|
+
> = InverseMonoid(PartialPerm([1, 2, 3], [2, 3, 1]),
|
|
1013
|
+
> PartialPerm([1, 2, 3], [2, 1, 3]),
|
|
1014
|
+
> PartialPerm([2, 3], [1, 2]),
|
|
1015
|
+
> PartialPerm([1, 2, 3], [1, 2, 3]),
|
|
1016
|
+
> PartialPerm([1, 2, 3], [4, 5, 6]));
|
|
1017
|
+
true
|
|
1018
|
+
gap> ClosureInverseMonoid(DualSymmetricInverseMonoid(3),
|
|
1019
|
+
> Bipartition([[1, 2, -2], [3, -1], [-3]]));
|
|
1020
|
+
Error, the 2nd argument (a finite mult. elt. coll.) must satisfy IsGeneratorsO\
|
|
1021
|
+
fInverseSemigroup
|
|
1022
|
+
gap> ClosureInverseMonoid(DualSymmetricInverseMonoid(3),
|
|
1023
|
+
> DualSymmetricInverseMonoid(4));
|
|
1024
|
+
Error, the 1st argument (a semigroup) and the 2nd argument (a mult. elt. coll.\
|
|
1025
|
+
) cannot be used to generate an inverse monoid
|
|
1026
|
+
gap> ClosureInverseMonoid(DualSymmetricInverseMonoid(3),
|
|
1027
|
+
> DClass(DualSymmetricInverseMonoid(3), IdentityBipartition(3)));
|
|
1028
|
+
<inverse block bijection monoid of degree 3 with 3 generators>
|
|
1029
|
+
gap> S := InverseMonoid(DualSymmetricInverseMonoid(3), rec(acting := false));
|
|
1030
|
+
<inverse block bijection monoid of degree 3 with 3 generators>
|
|
1031
|
+
gap> Size(ClosureInverseMonoid(S, DClass(S, IdentityBipartition(3))));
|
|
1032
|
+
25
|
|
1033
|
+
|
|
1034
|
+
# ClosureInverseMonoid for an empty list
|
|
1035
|
+
gap> S := InverseMonoid(PartialPerm([1]));;
|
|
1036
|
+
gap> ClosureInverseMonoid(S, [], rec()) = S;
|
|
1037
|
+
true
|
|
1038
|
+
gap> IsIdenticalObj(ClosureInverseMonoid(S, [], rec()), S);
|
|
1039
|
+
true
|
|
1040
|
+
gap> S := InverseMonoid(PartialPerm([1]));;
|
|
1041
|
+
gap> ClosureInverseSemigroupOrMonoidNC(InverseMonoid, S, [], rec()) = S;
|
|
1042
|
+
true
|
|
1043
|
+
gap> IsIdenticalObj(S,
|
|
1044
|
+
> ClosureInverseSemigroupOrMonoidNC(InverseMonoid, S, [], rec()));
|
|
1045
|
+
true
|
|
1046
|
+
gap> S := GraphInverseSemigroup(Digraph([[2], [], [2]]));
|
|
1047
|
+
<finite graph inverse semigroup with 3 vertices, 2 edges>
|
|
1048
|
+
gap> T := InverseSemigroup(S.1, S.2);
|
|
1049
|
+
<inverse semigroup with 2 generators>
|
|
1050
|
+
gap> ClosureInverseSemigroupOrMonoidNC(InverseSemigroup, T, [S.2, S.3, S.4], rec());
|
|
1051
|
+
<inverse semigroup with 3 generators>
|
|
1052
|
+
gap> G := SymmetricGroup([2 .. 5]);;
|
|
1053
|
+
gap> x := Digraph([[1], [1, 2], [1, 3], [1, 4], [1, 5]]);;
|
|
1054
|
+
gap> M := McAlisterTripleSemigroup(G, x, [1, 2]);;
|
|
1055
|
+
gap> T := InverseSemigroup(M.4, M.5, rec(acting := false));
|
|
1056
|
+
<McAlister triple subsemigroup over Sym( [ 2 .. 5 ] )>
|
|
1057
|
+
gap> ClosureInverseSemigroupOrMonoidNC(InverseMonoid, T, [M.2, M.1], rec());
|
|
1058
|
+
<McAlister triple subsemigroup over Sym( [ 2 .. 5 ] )>
|
|
1059
|
+
|
|
1060
|
+
# RandomSemigroup
|
|
1061
|
+
gap> RandomSemigroup(IsTropicalMaxPlusMatrixSemigroup, 3, 3, "a");
|
|
1062
|
+
Error, the 4th argument (semiring threshold) must be a pos int
|
|
1063
|
+
gap> RandomSemigroup(IsSemigroup, 3, 3, "a");
|
|
1064
|
+
Error, there must be at most 3 arguments
|
|
1065
|
+
gap> RandomSemigroup(IsSemigroup, 3, "a");
|
|
1066
|
+
Error, the 3rd argument (degree or dimension) must be a pos int
|
|
1067
|
+
|
|
1068
|
+
# AsSemigroup for a filter, ring, and semigroup
|
|
1069
|
+
gap> S := FullTransformationMonoid(3);;
|
|
1070
|
+
gap> AsSemigroup(IsMatrixOverFiniteFieldSemigroup, GF(3), S);
|
|
1071
|
+
<monoid of 3x3 matrices over GF(3) with 3 generators>
|
|
1072
|
+
gap> AsMonoid(IsMatrixOverFiniteFieldMonoid, GF(3), S);
|
|
1073
|
+
<monoid of 3x3 matrices over GF(3) with 3 generators>
|
|
1074
|
+
|
|
1075
|
+
# MinimalFactorization for too large monoids
|
|
1076
|
+
gap> S := FullTransformationMonoid(10);;
|
|
1077
|
+
gap> MinimalFactorization(S, S.3 * S.2);
|
|
1078
|
+
[ 4, 3 ]
|
|
1079
|
+
|
|
1080
|
+
# \<
|
|
1081
|
+
gap> S := FreeBand(2);
|
|
1082
|
+
<free band on the generators [ x1, x2 ]>
|
|
1083
|
+
gap> T := Semigroup(S.1, S.2);
|
|
1084
|
+
<semigroup with 2 generators>
|
|
1085
|
+
gap> S < T;
|
|
1086
|
+
false
|
|
1087
|
+
gap> T := Semigroup(S.2);
|
|
1088
|
+
<commutative semigroup with 1 generator>
|
|
1089
|
+
gap> T < S;
|
|
1090
|
+
false
|
|
1091
|
+
gap> S < T;
|
|
1092
|
+
true
|
|
1093
|
+
gap> T := Semigroup(S.1);
|
|
1094
|
+
<commutative semigroup with 1 generator>
|
|
1095
|
+
gap> T < S;
|
|
1096
|
+
true
|
|
1097
|
+
gap> S < T;
|
|
1098
|
+
false
|
|
1099
|
+
gap> S := GraphInverseSemigroup(CycleDigraph(2));
|
|
1100
|
+
<infinite graph inverse semigroup with 2 vertices, 2 edges>
|
|
1101
|
+
gap> S < S;
|
|
1102
|
+
false
|
|
1103
|
+
|
|
1104
|
+
# Issue 565 - no ClosureSemigroup method for non-libsemigroups types
|
|
1105
|
+
gap> S := FreeBand(3);
|
|
1106
|
+
<free band on the generators [ x1, x2, x3 ]>
|
|
1107
|
+
gap> Size(GeneratorsOfSemigroup(Semigroup(AsList(S), rec(small := true)))) < Size(S);
|
|
1108
|
+
true
|
|
1109
|
+
|
|
1110
|
+
#
|
|
1111
|
+
gap> SEMIGROUPS.StopTest();
|
|
1112
|
+
gap> STOP_TEST("Semigroups package: standard/semigroups/semigrp.tst");
|