passagemath-gap-pkg-semigroups 10.6.30__cp310-cp310-macosx_13_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1158 -0
- gap/pkg/semigroups/config.status +1131 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.cpython-310-darwin.so +0 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
#W standard/ideals/ideals.tst
|
|
4
|
+
#Y Copyright (C) 2016-2022 James D. Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#@local A, I, J, S, T, acting, ideals, regular, x, y, z
|
|
12
|
+
gap> START_TEST("Semigroups package: standard/ideals/ideals.tst");
|
|
13
|
+
gap> LoadPackage("semigroups", false);;
|
|
14
|
+
|
|
15
|
+
# The tests in this file do not attempt to test every line in ideals.gi
|
|
16
|
+
# since that file needs to be completely rewritten.
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
gap> SEMIGROUPS.StartTest();
|
|
20
|
+
|
|
21
|
+
# Test SupersemigroupOfIdeal
|
|
22
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
23
|
+
gap> I := SemigroupIdeal(S,
|
|
24
|
+
> Matrix(IsBooleanMat,
|
|
25
|
+
> [[1, 1, 1], [1, 0, 1], [1, 1, 1]]));
|
|
26
|
+
<semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
27
|
+
gap> J := MinimalIdeal(I);
|
|
28
|
+
<simple semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
29
|
+
gap> SupersemigroupOfIdeal(I) = S;
|
|
30
|
+
true
|
|
31
|
+
gap> SupersemigroupOfIdeal(J) = S;
|
|
32
|
+
true
|
|
33
|
+
gap> Parent(J) = I;
|
|
34
|
+
true
|
|
35
|
+
|
|
36
|
+
# Test PrintString
|
|
37
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
38
|
+
gap> I := SemigroupIdeal(S,
|
|
39
|
+
> Matrix(IsBooleanMat,
|
|
40
|
+
> [[1, 1, 1], [1, 0, 1], [1, 1, 1]]));
|
|
41
|
+
<semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
42
|
+
gap> PrintString(I);
|
|
43
|
+
"\>\>SemigroupIdeal(\< \>Monoid( \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[0, 1\
|
|
44
|
+
, 0]\<, \<\>\>[1, 0, 0]\<, \<\>\>[0, 0, 1]\<\<]\<)\<\>\>\>Matrix(\<\>IsBoolean\
|
|
45
|
+
Mat\<, \>[\>\>[0, 1, 0]\<, \<\>\>[0, 0, 1]\<, \<\>\>[1, 0, 0]\<\<]\<)\<\<, \>\
|
|
46
|
+
\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\>[0, 1, 0]\<, \<\>\>[1\
|
|
47
|
+
, 0, 1]\<\<]\<)\<\<, \>\>\>Matrix(\<\>IsBooleanMat\<, \>[\>\>[1, 0, 0]\<, \<\>\
|
|
48
|
+
\>[0, 1, 0]\<, \<\>\>[0, 0, 0]\<\<]\<)\<\<\<\> )\<,\< \>\>\>Matrix(\<\>IsBoole\
|
|
49
|
+
anMat\<, \>[\>\>[1, 1, 1]\<, \<\>\>[1, 0, 1]\<, \<\>\>[1, 1, 1]\<\<]\<\< )\<"
|
|
50
|
+
|
|
51
|
+
# Test ViewString
|
|
52
|
+
gap> S := RegularBooleanMatMonoid(1);;
|
|
53
|
+
gap> I := MinimalIdeal(S);
|
|
54
|
+
<group of 1x1 boolean matrices>
|
|
55
|
+
gap> IsTrivial(I);
|
|
56
|
+
true
|
|
57
|
+
gap> I;
|
|
58
|
+
<trivial group of 1x1 boolean matrices>
|
|
59
|
+
gap> S := SymmetricInverseMonoid(3);;
|
|
60
|
+
gap> MinimalIdeal(S);
|
|
61
|
+
<partial perm group of rank 0>
|
|
62
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
63
|
+
gap> x := Matrix(IsBooleanMat, [[1, 1, 1], [1, 1, 1], [1, 1, 1]]);;
|
|
64
|
+
gap> I := SemigroupIdeal(S, x);
|
|
65
|
+
<semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
66
|
+
gap> IsZeroSimpleSemigroup(I);
|
|
67
|
+
true
|
|
68
|
+
gap> I;
|
|
69
|
+
<0-simple regular semigroup ideal of size 50, 3x3 boolean matrices with
|
|
70
|
+
1 generator>
|
|
71
|
+
gap> x := Matrix(IsBooleanMat, [[0, 1, 0], [1, 0, 1], [1, 1, 0]]);;
|
|
72
|
+
gap> I := SemigroupIdeal(S, x);
|
|
73
|
+
<semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
74
|
+
gap> IsRegularSemigroup(I);
|
|
75
|
+
false
|
|
76
|
+
gap> I;
|
|
77
|
+
<non-regular semigroup ideal of size 428, 3x3 boolean matrices with
|
|
78
|
+
1 generator>
|
|
79
|
+
gap> S := SymmetricInverseMonoid(3);;
|
|
80
|
+
gap> x := PartialPerm([1, 2]);;
|
|
81
|
+
gap> I := SemigroupIdeal(S, x);
|
|
82
|
+
<inverse partial perm semigroup ideal of rank 3 with 1 generator>
|
|
83
|
+
gap> I := SemigroupIdeal(S, S);
|
|
84
|
+
<inverse partial perm semigroup ideal of rank 3 with 5 generators>
|
|
85
|
+
gap> Size(I);
|
|
86
|
+
34
|
|
87
|
+
gap> I;
|
|
88
|
+
<inverse partial perm semigroup ideal of size 34, rank 3 with 5 generators>
|
|
89
|
+
gap> IsMonoid(I);
|
|
90
|
+
false
|
|
91
|
+
|
|
92
|
+
# Test \. (for accessing generators)
|
|
93
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
94
|
+
gap> I := SemigroupIdeal(S, S.1, S.2);;
|
|
95
|
+
gap> I.1 = S.1;
|
|
96
|
+
true
|
|
97
|
+
gap> I.2 = S.2;
|
|
98
|
+
true
|
|
99
|
+
gap> I.3;
|
|
100
|
+
Error, the 2nd argument (a positive integer) exceeds the number of generators \
|
|
101
|
+
of the 1st argument (an ideal)
|
|
102
|
+
|
|
103
|
+
# Test \= for semigroup ideals
|
|
104
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
105
|
+
gap> I := SemigroupIdeal(S, S.1, S.2);;
|
|
106
|
+
gap> J := SemigroupIdeal(S, S.1, S.2, S.3);;
|
|
107
|
+
gap> I = J;
|
|
108
|
+
true
|
|
109
|
+
gap> J = I;
|
|
110
|
+
true
|
|
111
|
+
gap> I := SemigroupIdeal(FullBooleanMatMonoid(3), S.1, S.2);;
|
|
112
|
+
gap> I = J;
|
|
113
|
+
false
|
|
114
|
+
|
|
115
|
+
# Test \= for semigroup and semigroup ideal
|
|
116
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
117
|
+
gap> I := SemigroupIdeal(S, S.1, S.2);;
|
|
118
|
+
gap> S = I;
|
|
119
|
+
true
|
|
120
|
+
gap> I = S;
|
|
121
|
+
true
|
|
122
|
+
gap> I := SemigroupIdeal(FullBooleanMatMonoid(3), S.1, S.2);;
|
|
123
|
+
gap> I = S;
|
|
124
|
+
false
|
|
125
|
+
gap> S = I;
|
|
126
|
+
false
|
|
127
|
+
gap> I := SemigroupIdeal(FullBooleanMatMonoid(3), S.1, S.2);;
|
|
128
|
+
gap> GeneratorsOfSemigroup(I);;
|
|
129
|
+
gap> I = S;
|
|
130
|
+
false
|
|
131
|
+
gap> S = I;
|
|
132
|
+
false
|
|
133
|
+
gap> S = MinimalIdeal(S);
|
|
134
|
+
false
|
|
135
|
+
|
|
136
|
+
# Test SemigroupIdeal (the function)
|
|
137
|
+
gap> SemigroupIdeal("a");
|
|
138
|
+
Error, there must be 2 or more arguments
|
|
139
|
+
gap> S := RegularBooleanMatMonoid(1);;
|
|
140
|
+
gap> SemigroupIdeal(S);
|
|
141
|
+
Error, there must be 2 or more arguments
|
|
142
|
+
gap> S := Semigroup([[Z(2)]]);
|
|
143
|
+
<trivial group with 1 generator>
|
|
144
|
+
gap> SemigroupIdeal(S, S.1);
|
|
145
|
+
<commutative inverse semigroup ideal with 1 generator>
|
|
146
|
+
gap> S := RegularBooleanMatMonoid(2);;
|
|
147
|
+
gap> I := SemigroupIdeal(S, [S.1, S.2]);
|
|
148
|
+
<semigroup ideal of 2x2 boolean matrices with 2 generators>
|
|
149
|
+
gap> J := SemigroupIdeal(S, I, S.3);
|
|
150
|
+
<semigroup ideal of 2x2 boolean matrices with 3 generators>
|
|
151
|
+
gap> I := SemigroupIdeal(S, [S.1, S.2], rec());
|
|
152
|
+
<semigroup ideal of 2x2 boolean matrices with 2 generators>
|
|
153
|
+
gap> I := SemigroupIdeal(S, MaximalDClasses(S)[1]);
|
|
154
|
+
<semigroup ideal of 2x2 boolean matrices with 2 generators>
|
|
155
|
+
gap> I := SemigroupIdeal(S, []);
|
|
156
|
+
Error, the 2nd argument is not a combination of generators, lists of generator\
|
|
157
|
+
s, nor semigroups
|
|
158
|
+
gap> SemigroupIdeal();
|
|
159
|
+
Error, there must be 2 or more arguments
|
|
160
|
+
gap> SemigroupIdeal(S, NullDigraph(2));
|
|
161
|
+
Error, invalid arguments
|
|
162
|
+
|
|
163
|
+
# Test SemigroupIdealByGenerators
|
|
164
|
+
gap> S := RegularBooleanMatMonoid(1);;
|
|
165
|
+
gap> T := RegularBooleanMatMonoid(2);;
|
|
166
|
+
gap> SemigroupIdeal(S, T.1);
|
|
167
|
+
Error, the 2nd argument (a mult. elt. coll.) do not all belong to the semigrou\
|
|
168
|
+
p
|
|
169
|
+
|
|
170
|
+
# Test SemigroupIdealByGeneratorsNC
|
|
171
|
+
gap> S := FullTransformationMonoid(3);;
|
|
172
|
+
gap> I := SemigroupIdeal(S, S.1, rec(regular := true));
|
|
173
|
+
<regular transformation semigroup ideal of degree 3 with 1 generator>
|
|
174
|
+
gap> S := GLM(3, 2);;
|
|
175
|
+
gap> I := SemigroupIdeal(S, S.3);
|
|
176
|
+
<regular semigroup ideal of 3x3 matrices over GF(2) with 1 generator>
|
|
177
|
+
gap> IsMatrixOverFiniteFieldSemigroup(I);
|
|
178
|
+
true
|
|
179
|
+
gap> S := PartitionMonoid(3);;
|
|
180
|
+
gap> I := SemigroupIdeal(S, S.3);
|
|
181
|
+
<regular bipartition *-semigroup ideal of degree 3 with 1 generator>
|
|
182
|
+
gap> HasIsStarSemigroup(I) and IsStarSemigroup(I);
|
|
183
|
+
true
|
|
184
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
185
|
+
gap> IsRegularSemigroup(S);
|
|
186
|
+
false
|
|
187
|
+
gap> I := SemigroupIdeal(S, S.1);
|
|
188
|
+
<semigroup ideal of 3x3 boolean matrices with 1 generator>
|
|
189
|
+
gap> S := Semigroup(FullTransformationMonoid(3));;
|
|
190
|
+
gap> I := SemigroupIdeal(S, S.1);;
|
|
191
|
+
|
|
192
|
+
# Test MinimalIdealGeneratingSet
|
|
193
|
+
gap> S := FullTransformationMonoid(3);;
|
|
194
|
+
gap> I := SemigroupIdeal(S, S);
|
|
195
|
+
<regular transformation semigroup ideal of degree 3 with 4 generators>
|
|
196
|
+
gap> MinimalIdealGeneratingSet(I);
|
|
197
|
+
[ IdentityTransformation ]
|
|
198
|
+
gap> I := SemigroupIdeal(S, S.1);
|
|
199
|
+
<regular transformation semigroup ideal of degree 3 with 1 generator>
|
|
200
|
+
gap> MinimalIdealGeneratingSet(I);
|
|
201
|
+
[ Transformation( [ 2, 3, 1 ] ) ]
|
|
202
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
203
|
+
gap> I := SemigroupIdeal(S,
|
|
204
|
+
> Matrix(IsBooleanMat, [[1, 1, 1], [1, 1, 0], [1, 0, 1]]),
|
|
205
|
+
> Matrix(IsBooleanMat, [[1, 1, 1], [1, 1, 0], [0, 0, 1]]),
|
|
206
|
+
> Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 1], [1, 0, 1]]),
|
|
207
|
+
> Matrix(IsBooleanMat, [[1, 1, 0], [1, 0, 0], [1, 0, 1]]),
|
|
208
|
+
> Matrix(IsBooleanMat, [[0, 0, 1], [0, 0, 1], [0, 1, 0]]),
|
|
209
|
+
> Matrix(IsBooleanMat, [[1, 0, 0], [0, 0, 0], [0, 0, 1]]),
|
|
210
|
+
> Matrix(IsBooleanMat, [[1, 0, 1], [0, 1, 1], [1, 1, 1]]),
|
|
211
|
+
> Matrix(IsBooleanMat, [[1, 1, 0], [0, 0, 1], [1, 1, 1]]),
|
|
212
|
+
> Matrix(IsBooleanMat, [[1, 0, 1], [0, 0, 0], [0, 1, 0]]),
|
|
213
|
+
> Matrix(IsBooleanMat, [[0, 1, 1], [0, 1, 1], [1, 0, 1]]));
|
|
214
|
+
<semigroup ideal of 3x3 boolean matrices with 10 generators>
|
|
215
|
+
gap> MinimalIdealGeneratingSet(I);
|
|
216
|
+
[ Matrix(IsBooleanMat, [[0, 1, 0], [1, 0, 1], [1, 1, 0]]),
|
|
217
|
+
Matrix(IsBooleanMat, [[1, 0, 0], [1, 1, 0], [1, 0, 1]]) ]
|
|
218
|
+
|
|
219
|
+
# Test InversesOfSemigroupElementNC
|
|
220
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
221
|
+
gap> I := SemigroupIdeal(S,
|
|
222
|
+
> Matrix(IsBooleanMat, [[1, 1, 1], [1, 1, 0], [1, 0, 1]]),
|
|
223
|
+
> Matrix(IsBooleanMat, [[1, 1, 1], [1, 1, 0], [0, 0, 1]]),
|
|
224
|
+
> Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 1], [1, 0, 1]]),
|
|
225
|
+
> Matrix(IsBooleanMat, [[1, 1, 0], [1, 0, 0], [1, 0, 1]]),
|
|
226
|
+
> Matrix(IsBooleanMat, [[0, 0, 1], [0, 0, 1], [0, 1, 0]]),
|
|
227
|
+
> Matrix(IsBooleanMat, [[1, 0, 0], [0, 0, 0], [0, 0, 1]]),
|
|
228
|
+
> Matrix(IsBooleanMat, [[1, 0, 1], [0, 1, 1], [1, 1, 1]]),
|
|
229
|
+
> Matrix(IsBooleanMat, [[1, 1, 0], [0, 0, 1], [1, 1, 1]]),
|
|
230
|
+
> Matrix(IsBooleanMat, [[1, 0, 1], [0, 0, 0], [0, 1, 0]]),
|
|
231
|
+
> Matrix(IsBooleanMat, [[0, 1, 1], [0, 1, 1], [1, 0, 1]]));;
|
|
232
|
+
gap> x := Matrix(IsBooleanMat, [[1, 0, 1], [0, 1, 0], [1, 0, 1]]);;
|
|
233
|
+
gap> AsSet(InversesOfSemigroupElement(I, x));
|
|
234
|
+
[ Matrix(IsBooleanMat, [[0, 0, 0], [0, 1, 0], [0, 0, 1]]),
|
|
235
|
+
Matrix(IsBooleanMat, [[0, 0, 0], [0, 1, 0], [1, 0, 0]]),
|
|
236
|
+
Matrix(IsBooleanMat, [[0, 0, 0], [0, 1, 0], [1, 0, 1]]),
|
|
237
|
+
Matrix(IsBooleanMat, [[0, 0, 1], [0, 1, 0], [0, 0, 0]]),
|
|
238
|
+
Matrix(IsBooleanMat, [[0, 0, 1], [0, 1, 0], [0, 0, 1]]),
|
|
239
|
+
Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 0], [0, 0, 0]]),
|
|
240
|
+
Matrix(IsBooleanMat, [[1, 0, 0], [0, 1, 0], [1, 0, 0]]),
|
|
241
|
+
Matrix(IsBooleanMat, [[1, 0, 1], [0, 1, 0], [0, 0, 0]]),
|
|
242
|
+
Matrix(IsBooleanMat, [[1, 0, 1], [0, 1, 0], [1, 0, 1]]) ]
|
|
243
|
+
|
|
244
|
+
# Test IsCommutativeSemigroup
|
|
245
|
+
gap> x := Transformation([13, 4, 1, 2, 14, 14, 7, 12, 4, 9, 2, 14, 5, 14, 13,
|
|
246
|
+
> 18, 15, 8, 18, 9]);;
|
|
247
|
+
gap> y := Transformation([13, 15, 7, 18, 4, 2, 8, 12, 10, 7, 8, 11, 12, 12, 17,
|
|
248
|
+
> 6, 13, 9, 16, 13]);;
|
|
249
|
+
gap> T := DirectProduct(Semigroup(x), Semigroup(y));
|
|
250
|
+
<commutative transformation semigroup of size 45, degree 40 with 13
|
|
251
|
+
generators>
|
|
252
|
+
gap> z := Transformation([14, 2, 14, 4, 14, 14, 7, 14, 2, 4, 4, 14, 14, 14, 14,
|
|
253
|
+
> 14, 14, 14, 14, 4, 32, 31, 28, 28, 31, 32, 32, 31, 31, 28, 32, 28, 31, 31, 28,
|
|
254
|
+
> 28, 32, 32, 31, 32]);;
|
|
255
|
+
gap> I := SemigroupIdeal(T, z);;
|
|
256
|
+
gap> IsCommutativeSemigroup(I);
|
|
257
|
+
true
|
|
258
|
+
gap> S := RegularBooleanMatMonoid(3);;
|
|
259
|
+
gap> I := SemigroupIdeal(S,
|
|
260
|
+
> [Matrix(IsBooleanMat, [[0, 1, 0], [1, 0, 1], [1, 1, 0]]),
|
|
261
|
+
> Matrix(IsBooleanMat, [[1, 0, 0], [1, 1, 0], [1, 0, 1]])]);;
|
|
262
|
+
gap> IsCommutativeSemigroup(I);
|
|
263
|
+
false
|
|
264
|
+
gap> T := Semigroup(T);
|
|
265
|
+
<transformation semigroup of degree 40 with 13 generators>
|
|
266
|
+
gap> I := SemigroupIdeal(T, z);;
|
|
267
|
+
gap> IsCommutativeSemigroup(I);
|
|
268
|
+
true
|
|
269
|
+
gap> T := Semigroup(T);
|
|
270
|
+
<transformation semigroup of degree 40 with 13 generators>
|
|
271
|
+
gap> I := SemigroupIdeal(T, z);;
|
|
272
|
+
gap> IsCommutativeSemigroup(T);
|
|
273
|
+
true
|
|
274
|
+
gap> IsCommutativeSemigroup(I);
|
|
275
|
+
true
|
|
276
|
+
|
|
277
|
+
#Test IsTrivial
|
|
278
|
+
gap> S := Semigroup(Matrix(IsBooleanMat, [[1, 1], [1, 1]]));
|
|
279
|
+
<commutative semigroup of 2x2 boolean matrices with 1 generator>
|
|
280
|
+
gap> I := SemigroupIdeal(S, S.1);
|
|
281
|
+
<commutative semigroup ideal of 2x2 boolean matrices with 1 generator>
|
|
282
|
+
gap> IsTrivial(S);
|
|
283
|
+
true
|
|
284
|
+
gap> IsTrivial(I);
|
|
285
|
+
true
|
|
286
|
+
|
|
287
|
+
# IsFactorisableInverseMonoid
|
|
288
|
+
gap> S := UniformBlockBijectionMonoid(4);
|
|
289
|
+
<inverse block bijection monoid of degree 4 with 3 generators>
|
|
290
|
+
gap> I := SemigroupIdeal(S, S.1);
|
|
291
|
+
<inverse bipartition semigroup ideal of degree 4 with 1 generator>
|
|
292
|
+
gap> IsFactorisableInverseMonoid(I);
|
|
293
|
+
true
|
|
294
|
+
gap> I := MinimalIdeal(I);
|
|
295
|
+
<bipartition group of degree 4>
|
|
296
|
+
gap> IsFactorisableInverseMonoid(I);
|
|
297
|
+
true
|
|
298
|
+
|
|
299
|
+
# IsFactorisableInverseMonoid
|
|
300
|
+
gap> S := SymmetricInverseMonoid(5);;
|
|
301
|
+
gap> I := MinimalIdeal(S);;
|
|
302
|
+
gap> IsFactorisableInverseMonoid(I);
|
|
303
|
+
true
|
|
304
|
+
gap> J := InverseMonoid(I);;
|
|
305
|
+
gap> I = J;
|
|
306
|
+
true
|
|
307
|
+
gap> IsFactorisableInverseMonoid(J);
|
|
308
|
+
true
|
|
309
|
+
|
|
310
|
+
# Test Ideals method
|
|
311
|
+
gap> S := Semigroup([Transformation([5, 3, 1, 5, 3]),
|
|
312
|
+
> Transformation([4, 3, 1, 5, 5]),
|
|
313
|
+
> Transformation([1, 5, 5, 4, 2])]);;
|
|
314
|
+
gap> ideals := Ideals(S);;
|
|
315
|
+
gap> Size(ideals);
|
|
316
|
+
17
|
|
317
|
+
gap> IsDuplicateFreeList(ideals);
|
|
318
|
+
true
|
|
319
|
+
gap> S := TrivialSemigroup(IsBlockBijectionSemigroup);;
|
|
320
|
+
gap> ideals := Ideals(S);;
|
|
321
|
+
gap> Size(ideals);
|
|
322
|
+
1
|
|
323
|
+
gap> Size(ideals[1]);
|
|
324
|
+
1
|
|
325
|
+
gap> A := AlternatingGroup(100);;
|
|
326
|
+
gap> ideals := Ideals(S);;
|
|
327
|
+
gap> Size(ideals);
|
|
328
|
+
1
|
|
329
|
+
gap> S := Semigroup([
|
|
330
|
+
> Bipartition([[1, 2, -1, -4], [3, -5], [4], [5, -2], [-3]]),
|
|
331
|
+
> Bipartition([[1, 2, 4, -3, -5], [3, -4], [5, -1, -2]]),
|
|
332
|
+
> Bipartition([[1, 2, 5, -3, -4], [3, 4, -1, -2], [-5]])]);;
|
|
333
|
+
gap> ideals := Ideals(S);;
|
|
334
|
+
gap> Size(ideals);
|
|
335
|
+
179
|
|
336
|
+
|
|
337
|
+
# MultiplicativeZero
|
|
338
|
+
gap> S := FreeSemigroup(2);;
|
|
339
|
+
gap> I := SemigroupIdeal(S, S.1);;
|
|
340
|
+
gap> IsTrivial(I);
|
|
341
|
+
false
|
|
342
|
+
gap> MultiplicativeZero(I);
|
|
343
|
+
fail
|
|
344
|
+
gap> S := FreeSemigroup(2);;
|
|
345
|
+
gap> I := SemigroupIdeal(S, S.2 * S.1);;
|
|
346
|
+
gap> MultiplicativeZero(I);
|
|
347
|
+
fail
|
|
348
|
+
gap> S := SymmetricInverseMonoid(3);;
|
|
349
|
+
gap> I := SemigroupIdeal(S, PartialPerm([2, 1]));;
|
|
350
|
+
gap> MultiplicativeZero(I);
|
|
351
|
+
<empty partial perm>
|
|
352
|
+
|
|
353
|
+
# IsMultiplicativeZero
|
|
354
|
+
gap> S := SingularTransformationMonoid(3);;
|
|
355
|
+
gap> S := Semigroup(S, rec(acting := false));;
|
|
356
|
+
gap> IsMultiplicativeZero(S, IdentityTransformation);
|
|
357
|
+
false
|
|
358
|
+
gap> GeneratorsOfSemigroup(S);;
|
|
359
|
+
gap> IsMultiplicativeZero(S, Transformation([1, 1, 1]));
|
|
360
|
+
false
|
|
361
|
+
gap> S := Semigroup(SymmetricInverseSemigroup(3), rec(acting := false));
|
|
362
|
+
<partial perm monoid of rank 3 with 4 generators>
|
|
363
|
+
gap> S := SemigroupIdeal(S, PartialPerm([2]),
|
|
364
|
+
> rec(acting := false));;
|
|
365
|
+
gap> GeneratorsOfSemigroup(S);;
|
|
366
|
+
gap> IsMultiplicativeZero(S, EmptyPartialPerm());
|
|
367
|
+
true
|
|
368
|
+
gap> IsMultiplicativeZero(S, PartialPerm([1, 2, 3]));
|
|
369
|
+
false
|
|
370
|
+
gap> S := SemigroupIdeal(SymmetricInverseSemigroup(3), PartialPerm([2]));;
|
|
371
|
+
gap> IsMultiplicativeZero(S, EmptyPartialPerm());
|
|
372
|
+
true
|
|
373
|
+
|
|
374
|
+
# SemigroupIdeal bad input
|
|
375
|
+
gap> SemigroupIdeal("bananas", "bananas");
|
|
376
|
+
Error, the 1st argument is not a semigroup
|
|
377
|
+
|
|
378
|
+
#
|
|
379
|
+
gap> SEMIGROUPS.StopTest();
|
|
380
|
+
gap> STOP_TEST("Semigroups package: standard/ideals/ideals.tst");
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
#W standard/libsemigroups/cong.tst
|
|
4
|
+
#Y Copyright (C) 2022 James Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#@local C, D, F, I, R, S, T, cong, hom, t, u
|
|
12
|
+
gap> START_TEST("Semigroups package: standard/libsemigroups/cong.tst");
|
|
13
|
+
gap> LoadPackage("semigroups", false);;
|
|
14
|
+
|
|
15
|
+
# Set info levels and user preferences
|
|
16
|
+
gap> SEMIGROUPS.StartTest();
|
|
17
|
+
|
|
18
|
+
# LibsemigroupsCongruenceConstructor for transf. semigroup
|
|
19
|
+
gap> S := Semigroup(Transformation([1, 1, 2]));
|
|
20
|
+
<commutative transformation semigroup of degree 3 with 1 generator>
|
|
21
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
22
|
+
function( arg1, arg2 ) ... end
|
|
23
|
+
gap> S := Semigroup(ConstantTransformation(17, 2));
|
|
24
|
+
<commutative transformation semigroup of degree 17 with 1 generator>
|
|
25
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
26
|
+
function( arg1, arg2 ) ... end
|
|
27
|
+
gap> S := Semigroup(ConstantTransformation(65537, 2));
|
|
28
|
+
<commutative transformation semigroup of degree 65537 with 1 generator>
|
|
29
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
30
|
+
function( arg1, arg2 ) ... end
|
|
31
|
+
|
|
32
|
+
# LibsemigroupsCongruenceConstructor for pperm semigroup
|
|
33
|
+
gap> S := Semigroup(PartialPerm([1, 2, 5]));
|
|
34
|
+
<commutative partial perm semigroup of rank 3 with 1 generator>
|
|
35
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
36
|
+
function( arg1, arg2 ) ... end
|
|
37
|
+
gap> S := Semigroup(PartialPerm([1 .. 17]));
|
|
38
|
+
<trivial partial perm group of rank 17 with 1 generator>
|
|
39
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
40
|
+
function( arg1, arg2 ) ... end
|
|
41
|
+
gap> S := Semigroup(PartialPerm([1 .. 65537]));
|
|
42
|
+
<trivial partial perm group of rank 65537 with 1 generator>
|
|
43
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
44
|
+
function( arg1, arg2 ) ... end
|
|
45
|
+
|
|
46
|
+
# LibsemigroupsCongruenceConstructor for a bmat semigroup
|
|
47
|
+
gap> S := Semigroup(Matrix(IsBooleanMat, [[0, 0], [0, 0]]),
|
|
48
|
+
> Matrix(IsBooleanMat, [[1, 1], [0, 1]]));
|
|
49
|
+
<semigroup of 2x2 boolean matrices with 2 generators>
|
|
50
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
51
|
+
function( arg1, arg2 ) ... end
|
|
52
|
+
gap> S := Semigroup(
|
|
53
|
+
> Matrix(IsBooleanMat, [[0, 0, 0, 1, 1, 1, 0, 1, 0], [0, 0, 1, 1, 0, 0, 1, 1, 0],
|
|
54
|
+
> [0, 1, 0, 1, 0, 1, 0, 1, 0], [1, 0, 0, 0, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 1, 0, 1, 1],
|
|
55
|
+
> [0, 0, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 1, 0, 0],
|
|
56
|
+
> [1, 0, 0, 1, 1, 1, 1, 0, 1]]));
|
|
57
|
+
<commutative semigroup of 9x9 boolean matrices with 1 generator>
|
|
58
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
59
|
+
function( arg1, arg2 ) ... end
|
|
60
|
+
|
|
61
|
+
# LibsemigroupsCongruenceConstructor for other matrix over semiring
|
|
62
|
+
gap> S := Semigroup(Matrix(IsMinPlusMatrix, [[-2, 2], [0, -1]]),
|
|
63
|
+
> Matrix(IsMinPlusMatrix, [[0, 0], [1, -3]]));
|
|
64
|
+
<semigroup of 2x2 min-plus matrices with 2 generators>
|
|
65
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
66
|
+
function( arg1, arg2 ) ... end
|
|
67
|
+
gap> S := Semigroup(Matrix(IsMaxPlusMatrix, [[-2, 2], [0, -1]]),
|
|
68
|
+
> Matrix(IsMaxPlusMatrix, [[0, 0], [1, -3]]));
|
|
69
|
+
<semigroup of 2x2 max-plus matrices with 2 generators>
|
|
70
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
71
|
+
function( arg1, arg2 ) ... end
|
|
72
|
+
|
|
73
|
+
# LibsemigroupsCongruenceConstructor for bipartition semigroup
|
|
74
|
+
gap> S := PartitionMonoid(2);
|
|
75
|
+
<regular bipartition *-monoid of size 15, degree 2 with 3 generators>
|
|
76
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
77
|
+
function( arg1, arg2 ) ... end
|
|
78
|
+
|
|
79
|
+
# LibsemigroupsCongruenceConstructor for pbr semigroup
|
|
80
|
+
gap> S := FullPBRMonoid(1);
|
|
81
|
+
<pbr monoid of degree 1 with 4 generators>
|
|
82
|
+
gap> LibsemigroupsCongruenceConstructor(S);
|
|
83
|
+
function( arg1, arg2 ) ... end
|
|
84
|
+
|
|
85
|
+
# LibsemigroupsCongruence for a congruence on a semigroup with CanUseLibsemigroupsFroidurePin
|
|
86
|
+
gap> S := FullBooleanMatMonoid(2);
|
|
87
|
+
<monoid of 2x2 boolean matrices with 3 generators>
|
|
88
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.3]]);
|
|
89
|
+
<2-sided semigroup congruence over <regular monoid
|
|
90
|
+
of size 16, 2x2 boolean matrices with 3 generators> with 1 generating pairs>
|
|
91
|
+
gap> LibsemigroupsCongruence(C);; # Can't test output because it contains the memory address
|
|
92
|
+
|
|
93
|
+
# LibsemigroupsCongruence for a congruence on a fp semigroup
|
|
94
|
+
gap> S := FreeSemigroup(2);
|
|
95
|
+
<free semigroup on the generators [ s1, s2 ]>
|
|
96
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
97
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
98
|
+
[ s1, s2 ]> with 1 generating pairs>
|
|
99
|
+
gap> LibsemigroupsCongruence(C);;
|
|
100
|
+
|
|
101
|
+
# LibsemigroupsCongruence for a congruence on a semigroup with CanUseGapFroidurePin
|
|
102
|
+
gap> S := FreeBand(2);
|
|
103
|
+
<free band on the generators [ x1, x2 ]>
|
|
104
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
105
|
+
<2-sided semigroup congruence over <free band on the generators
|
|
106
|
+
[ x1, x2 ]> with 1 generating pairs>
|
|
107
|
+
gap> LibsemigroupsCongruence(C);;
|
|
108
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.2]]);
|
|
109
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
110
|
+
1 generating pairs>
|
|
111
|
+
gap> LibsemigroupsCongruence(C);;
|
|
112
|
+
|
|
113
|
+
# CongruenceWordToClassIndex
|
|
114
|
+
gap> S := FreeBand(2);
|
|
115
|
+
<free band on the generators [ x1, x2 ]>
|
|
116
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.2]]);
|
|
117
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
118
|
+
1 generating pairs>
|
|
119
|
+
gap> CongruenceWordToClassIndex(C, [1, 2, 1, 2, 1, 2, 1, 1, 1, 1]);
|
|
120
|
+
1
|
|
121
|
+
gap> CongruenceWordToClassIndex(C, EvaluateWord([S.1, S.2],
|
|
122
|
+
> [1, 2, 1, 2, 1, 2, 1, 1, 1, 1]));
|
|
123
|
+
1
|
|
124
|
+
|
|
125
|
+
# CongruenceLessNC
|
|
126
|
+
gap> S := FreeBand(2);
|
|
127
|
+
<free band on the generators [ x1, x2 ]>
|
|
128
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.2]]);
|
|
129
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
130
|
+
1 generating pairs>
|
|
131
|
+
gap> CongruenceLessNC(C, S.1, S.2);
|
|
132
|
+
false
|
|
133
|
+
gap> EquivalenceRelationLookup(C);
|
|
134
|
+
[ 1, 1, 1, 1, 1, 1 ]
|
|
135
|
+
gap> CongruenceLessNC(C, S.2, S.1);
|
|
136
|
+
false
|
|
137
|
+
gap> NrEquivalenceClasses(C);
|
|
138
|
+
1
|
|
139
|
+
gap> C := RightSemigroupCongruence(S, [[S.1, S.2]]);
|
|
140
|
+
<right semigroup congruence over <free band on the generators
|
|
141
|
+
[ x1, x2 ]> with 1 generating pairs>
|
|
142
|
+
gap> CongruenceLessNC(C, S.1, S.2);
|
|
143
|
+
false
|
|
144
|
+
gap> EquivalenceRelationLookup(C);
|
|
145
|
+
[ 1, 1, 1, 1, 1, 1 ]
|
|
146
|
+
gap> CongruenceLessNC(C, S.2, S.1);
|
|
147
|
+
false
|
|
148
|
+
gap> S := FreeSemigroup(2);
|
|
149
|
+
<free semigroup on the generators [ s1, s2 ]>
|
|
150
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
151
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
152
|
+
[ s1, s2 ]> with 1 generating pairs>
|
|
153
|
+
gap> NrEquivalenceClasses(C);
|
|
154
|
+
infinity
|
|
155
|
+
gap> CongruenceLessNC(C, S.2, S.1);
|
|
156
|
+
false
|
|
157
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2], [S.1 * S.2, S.2 * S.1], [S.1 ^ 10, S.1]]);
|
|
158
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
159
|
+
[ s1, s2 ]> with 3 generating pairs>
|
|
160
|
+
gap> CongruenceLessNC(C, S.2, S.1);
|
|
161
|
+
false
|
|
162
|
+
gap> NrEquivalenceClasses(C);
|
|
163
|
+
9
|
|
164
|
+
|
|
165
|
+
# CongruenceTestMembershipNC
|
|
166
|
+
gap> S := FreeBand(2);
|
|
167
|
+
<free band on the generators [ x1, x2 ]>
|
|
168
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.2]]);
|
|
169
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
170
|
+
1 generating pairs>
|
|
171
|
+
gap> CongruenceTestMembershipNC(C, S.1 ^ 4, S.1 * S.2 ^ 3 * S.1 ^ 3 * S.2 ^ 2 * S.1 ^ 2);
|
|
172
|
+
true
|
|
173
|
+
gap> EquivalenceRelationLookup(C);
|
|
174
|
+
[ 1, 1, 1, 1, 1, 1 ]
|
|
175
|
+
gap> CongruenceTestMembershipNC(C, S.1 ^ 4, S.1 * S.2 ^ 3 * S.1 ^ 3 * S.2 ^ 2 * S.1 ^ 2);
|
|
176
|
+
true
|
|
177
|
+
gap> S := FreeSemigroup(2);
|
|
178
|
+
<free semigroup on the generators [ s1, s2 ]>
|
|
179
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
180
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
181
|
+
[ s1, s2 ]> with 1 generating pairs>
|
|
182
|
+
gap> CongruenceTestMembershipNC(C, S.1 ^ 4, S.1 * S.2 ^ 3 * S.1 ^ 3 * S.2 ^ 2 * S.1 ^ 2);
|
|
183
|
+
false
|
|
184
|
+
gap> CongruenceTestMembershipNC(C, S.1 ^ 4, S.1 * S.2 ^ 3);
|
|
185
|
+
true
|
|
186
|
+
|
|
187
|
+
# EquivalenceRelationPartition
|
|
188
|
+
gap> S := FreeBand(2);
|
|
189
|
+
<free band on the generators [ x1, x2 ]>
|
|
190
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.2]]);
|
|
191
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
192
|
+
1 generating pairs>
|
|
193
|
+
gap> EquivalenceRelationPartition(C);
|
|
194
|
+
[ [ x1, x2, x1x2, x2x1, x1x2x1, x2x1x2 ] ]
|
|
195
|
+
gap> T := AsSemigroup(IsBooleanMatSemigroup, S);
|
|
196
|
+
<semigroup of size 6, 7x7 boolean matrices with 2 generators>
|
|
197
|
+
gap> C := LeftSemigroupCongruence(T, [[T.1, T.2]]);
|
|
198
|
+
<left semigroup congruence over <semigroup of size 6, 7x7 boolean matrices
|
|
199
|
+
with 2 generators> with 1 generating pairs>
|
|
200
|
+
gap> EquivalenceRelationPartition(C);
|
|
201
|
+
[ [ Matrix(IsBooleanMat, [[1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
202
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
203
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0]]
|
|
204
|
+
),
|
|
205
|
+
Matrix(IsBooleanMat, [[0, 0, 1, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0],
|
|
206
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0],
|
|
207
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0]]
|
|
208
|
+
),
|
|
209
|
+
Matrix(IsBooleanMat, [[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0],
|
|
210
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0],
|
|
211
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0, 0]]
|
|
212
|
+
),
|
|
213
|
+
Matrix(IsBooleanMat, [[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
214
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
215
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0]]
|
|
216
|
+
),
|
|
217
|
+
Matrix(IsBooleanMat, [[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
218
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0],
|
|
219
|
+
[0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0]]
|
|
220
|
+
),
|
|
221
|
+
Matrix(IsBooleanMat, [[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0],
|
|
222
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0],
|
|
223
|
+
[0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 0]]
|
|
224
|
+
) ] ]
|
|
225
|
+
|
|
226
|
+
# \< for congruence classes
|
|
227
|
+
gap> S := FreeBand(2);
|
|
228
|
+
<free band on the generators [ x1, x2 ]>
|
|
229
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.1 ^ 10]]);
|
|
230
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
231
|
+
0 generating pairs>
|
|
232
|
+
gap> AsSSortedList(EquivalenceClasses(C));
|
|
233
|
+
[ <left congruence class of x1>, <left congruence class of x2>,
|
|
234
|
+
<left congruence class of x2x1>, <left congruence class of x1x2>,
|
|
235
|
+
<left congruence class of x1x2x1>, <left congruence class of x2x1x2> ]
|
|
236
|
+
gap> D := LeftSemigroupCongruence(S, [[S.1, S.2 ^ 10]]);
|
|
237
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
238
|
+
1 generating pairs>
|
|
239
|
+
gap> EquivalenceClasses(D)[1] < EquivalenceClasses(C)[1];
|
|
240
|
+
false
|
|
241
|
+
|
|
242
|
+
# \< method doesn't apply
|
|
243
|
+
gap> I := SemigroupIdealByGenerators(FullTransformationSemigroup(4),
|
|
244
|
+
> [Transformation([1, 2, 2, 2])]);;
|
|
245
|
+
gap> cong := ReesCongruenceOfSemigroupIdeal(I);;
|
|
246
|
+
gap> hom := HomomorphismQuotientSemigroup(cong);;
|
|
247
|
+
gap> T := Range(hom);;
|
|
248
|
+
gap> IsSemigroup(T);
|
|
249
|
+
true
|
|
250
|
+
gap> Size(T);
|
|
251
|
+
169
|
|
252
|
+
gap> u := Image(hom, Transformation([1, 1, 1, 1]));
|
|
253
|
+
<2-sided congruence class of Transformation( [ 1, 2, 2, 2 ] )>
|
|
254
|
+
gap> t := Image(hom, Transformation([2, 1, 2, 3]));
|
|
255
|
+
<2-sided congruence class of Transformation( [ 2, 1, 2, 3 ] )>
|
|
256
|
+
gap> u < t;
|
|
257
|
+
true
|
|
258
|
+
|
|
259
|
+
# EquivalenceClasses for a congruence with infinitely many classes
|
|
260
|
+
gap> S := FreeSemigroup(2);
|
|
261
|
+
<free semigroup on the generators [ s1, s2 ]>
|
|
262
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
263
|
+
<2-sided semigroup congruence over <free semigroup on the generators
|
|
264
|
+
[ s1, s2 ]> with 1 generating pairs>
|
|
265
|
+
gap> EquivalenceClasses(C);
|
|
266
|
+
Error, the argument (a congruence) must have a finite number of classes
|
|
267
|
+
gap> EquivalenceRelationLookup(C);
|
|
268
|
+
Error, the argument (a 2-sided congruence) must have finite range
|
|
269
|
+
|
|
270
|
+
# ImagesElm
|
|
271
|
+
gap> S := FreeBand(2);
|
|
272
|
+
<free band on the generators [ x1, x2 ]>
|
|
273
|
+
gap> C := LeftSemigroupCongruence(S, [[S.1, S.1 ^ 10]]);
|
|
274
|
+
<left semigroup congruence over <free band on the generators [ x1, x2 ]> with
|
|
275
|
+
0 generating pairs>
|
|
276
|
+
gap> ImagesElm(C, S.1);
|
|
277
|
+
[ x1 ]
|
|
278
|
+
gap> F := FreeSemigroup(2);
|
|
279
|
+
<free semigroup on the generators [ s1, s2 ]>
|
|
280
|
+
gap> R := [[F.1, F.2], [F.1 * F.2 * F.1, F.2 * F.1], [F.1 ^ 10, F.1]];
|
|
281
|
+
[ [ s1, s2 ], [ s1*s2*s1, s2*s1 ], [ s1^10, s1 ] ]
|
|
282
|
+
gap> S := F / R;
|
|
283
|
+
<fp semigroup with 2 generators and 3 relations of length 20>
|
|
284
|
+
gap> C := SemigroupCongruence(S, []);
|
|
285
|
+
<universal semigroup congruence over <trivial group with 2 generators>>
|
|
286
|
+
gap> ImagesElm(C, S.1 ^ 10);
|
|
287
|
+
[ s1 ]
|
|
288
|
+
|
|
289
|
+
#
|
|
290
|
+
gap> F := FreeSemigroup(3);
|
|
291
|
+
<free semigroup on the generators [ s1, s2, s3 ]>
|
|
292
|
+
gap> R := [[F.1 * F.2, F.2 * F.1], [F.1 * F.3, F.3 * F.1], [F.1 ^ 2, F.1],
|
|
293
|
+
> [F.1 * F.3, F.1], [F.3 * F.1, F.1], [F.2 * F.3, F.3 * F.2],
|
|
294
|
+
> [F.2 ^ 3, F.2], [F.2 * F.3, F.2], [F.3 * F.2, F.2]];
|
|
295
|
+
[ [ s1*s2, s2*s1 ], [ s1*s3, s3*s1 ], [ s1^2, s1 ], [ s1*s3, s1 ],
|
|
296
|
+
[ s3*s1, s1 ], [ s2*s3, s3*s2 ], [ s2^3, s2 ], [ s2*s3, s2 ], [ s3*s2, s2 ]
|
|
297
|
+
]
|
|
298
|
+
gap> S := F / R;
|
|
299
|
+
<fp semigroup with 3 generators and 9 relations of length 34>
|
|
300
|
+
gap> C := SemigroupCongruence(S, [[S.1, S.2]]);
|
|
301
|
+
<2-sided semigroup congruence over <fp semigroup with 3 generators and
|
|
302
|
+
9 relations of length 34> with 1 generating pairs>
|
|
303
|
+
gap> ImagesElm(C, S.1);
|
|
304
|
+
[ s1, s2, s1*s2, s2^2, s1*s2^2 ]
|
|
305
|
+
gap> ImagesElm(C, S.3);
|
|
306
|
+
[ s3 ]
|
|
307
|
+
|
|
308
|
+
#
|
|
309
|
+
gap> SEMIGROUPS.StopTest();
|
|
310
|
+
gap> STOP_TEST("Semigroups package: standard/libsemigroups/cong.tst");
|