passagemath-gap-pkg-semigroups 10.6.30__cp312-abi3-macosx_13_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1158 -0
- gap/pkg/semigroups/config.status +1131 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.abi3.so +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
## attributes/semifp.gd
|
|
4
|
+
## Copyright (C) 2022 James Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
DeclareAttribute("AntiIsomorphismDualFpSemigroup", IsFpSemigroup);
|
|
12
|
+
DeclareAttribute("AntiIsomorphismDualFpMonoid", IsFpMonoid);
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
## attributes/semifp.gi
|
|
4
|
+
## Copyright (C) 2017 Wilf A. Wilson
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
InstallMethod(IndecomposableElements, "for an fp semigroup", [IsFpSemigroup],
|
|
12
|
+
function(S)
|
|
13
|
+
local gens, rels, decomposable, uf, lens, pos1, pos2, t1, t2, x, rel;
|
|
14
|
+
|
|
15
|
+
if HasIsSurjectiveSemigroup(S) then
|
|
16
|
+
return [];
|
|
17
|
+
fi;
|
|
18
|
+
|
|
19
|
+
gens := GeneratorsOfSemigroup(FreeSemigroupOfFpSemigroup(S));
|
|
20
|
+
rels := RelationsOfFpSemigroup(S);
|
|
21
|
+
decomposable := BlistList(gens, []);
|
|
22
|
+
uf := PartitionDS(IsPartitionDS, Length(gens));
|
|
23
|
+
|
|
24
|
+
for rel in rels do
|
|
25
|
+
lens := List(rel, Length);
|
|
26
|
+
if lens[1] = 1 and lens[2] = 1 and rel[1] <> rel[2] then
|
|
27
|
+
# relation of the form x[i] = x[j]:
|
|
28
|
+
# a generator is repeated, so record this information using UF.
|
|
29
|
+
pos1 := Position(gens, rel[1]);
|
|
30
|
+
pos2 := Position(gens, rel[2]);
|
|
31
|
+
t1 := Representative(uf, pos1);
|
|
32
|
+
t2 := Representative(uf, pos2);
|
|
33
|
+
Unite(uf, pos1, pos2);
|
|
34
|
+
x := Representative(uf, pos1);
|
|
35
|
+
decomposable[x] := decomposable[t1] or decomposable[t2];
|
|
36
|
+
elif (lens[1] = 1 or lens[2] = 1) and rel[1] <> rel[2] then
|
|
37
|
+
# Relation gives non-trivial decomposition of some generator x[i]
|
|
38
|
+
pos1 := Position(gens, rel[Position(lens, 1)]);
|
|
39
|
+
decomposable[Representative(uf, pos1)] := true;
|
|
40
|
+
fi;
|
|
41
|
+
od;
|
|
42
|
+
return Set(Filtered(PartsOfPartitionDS(uf), x -> not decomposable[x[1]]),
|
|
43
|
+
x -> GeneratorsOfSemigroup(S)[x[1]]);
|
|
44
|
+
end);
|
|
45
|
+
|
|
46
|
+
InstallMethod(AntiIsomorphismDualFpSemigroup, "for an fp semigroup",
|
|
47
|
+
[IsFpSemigroup],
|
|
48
|
+
function(S)
|
|
49
|
+
local F, R, T, map, inv;
|
|
50
|
+
F := FreeSemigroupOfFpSemigroup(S);
|
|
51
|
+
R := List(RelationsOfFpSemigroup(S), x -> List(x, Reversed));
|
|
52
|
+
T := F / R;
|
|
53
|
+
map := function(x)
|
|
54
|
+
local word;
|
|
55
|
+
word := Reversed(UnderlyingElement(x));
|
|
56
|
+
return ElementOfFpSemigroup(FamilyObj(Representative(T)), word);
|
|
57
|
+
end;
|
|
58
|
+
inv := function(x)
|
|
59
|
+
local word;
|
|
60
|
+
word := Reversed(UnderlyingElement(x));
|
|
61
|
+
return ElementOfFpSemigroup(FamilyObj(Representative(S)), word);
|
|
62
|
+
end;
|
|
63
|
+
return MappingByFunction(S, T, map, inv);
|
|
64
|
+
end);
|
|
65
|
+
|
|
66
|
+
InstallMethod(AntiIsomorphismDualFpMonoid, "for an fp monoid",
|
|
67
|
+
[IsFpMonoid],
|
|
68
|
+
function(S)
|
|
69
|
+
local F, R, T, map, inv;
|
|
70
|
+
F := FreeMonoidOfFpMonoid(S);
|
|
71
|
+
R := List(RelationsOfFpMonoid(S), x -> List(x, Reversed));
|
|
72
|
+
T := F / R;
|
|
73
|
+
map := function(x)
|
|
74
|
+
local word;
|
|
75
|
+
word := Reversed(UnderlyingElement(x));
|
|
76
|
+
return ElementOfFpMonoid(FamilyObj(Representative(T)), word);
|
|
77
|
+
end;
|
|
78
|
+
inv := function(x)
|
|
79
|
+
local word;
|
|
80
|
+
word := Reversed(UnderlyingElement(x));
|
|
81
|
+
return ElementOfFpMonoid(FamilyObj(Representative(S)), word);
|
|
82
|
+
end;
|
|
83
|
+
return MappingByFunction(S, T, map, inv);
|
|
84
|
+
end);
|
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
# W translat.gd
|
|
4
|
+
# Y Copyright (C) 2015-22 Finn Smith
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
#! @Chapter Translations
|
|
12
|
+
|
|
13
|
+
#! In this chapter we describe the functionality in &SEMIGROUPS; for working
|
|
14
|
+
#! with translations of semigroups. The notation used (as well as a number of
|
|
15
|
+
#! results) is based on <Cite Key="Petrich1970aa"/>. Translations are of
|
|
16
|
+
#! interest mainly due to their role in ideal extensions. A description of
|
|
17
|
+
#! this role can also be found in <Cite Key="Petrich1970aa"/>. The
|
|
18
|
+
#! implementation of translations in this package is only applicable to
|
|
19
|
+
#! finite semigroups satisfying <Ref Filt="CanUseFroidurePin"/>.
|
|
20
|
+
#!
|
|
21
|
+
#! For a semigroup <M>S</M>, a transformation <M>\lambda</M> of <M>S</M>
|
|
22
|
+
#! (written on the left) is a left translation if for all <M>s, t</M> in
|
|
23
|
+
#! <M>S</M>, <M>\lambda (s)t = \lambda (st) </M>.
|
|
24
|
+
#! A right translation <M>\rho</M> (written on the right) is defined
|
|
25
|
+
#! dually.
|
|
26
|
+
#!
|
|
27
|
+
#! The set <M>L</M> of left translations of <M>S</M> is a semigroup under
|
|
28
|
+
#! composition of functions, as is the set <M>R</M> of right translations.
|
|
29
|
+
#! The associativity of <M>S</M> guarantees that left [right] multiplication by
|
|
30
|
+
#! any element <M>s</M> of <M>S</M> represents a left [right] translation;
|
|
31
|
+
#! this is the <E>inner</E> left [right] translation <M>\lambda_s</M>
|
|
32
|
+
#! [<M>\rho_s</M>]. The inner left [right] translations form an ideal in
|
|
33
|
+
#! <M>L</M> [<M>R</M>].
|
|
34
|
+
#!
|
|
35
|
+
#! A left translation <M>\lambda</M> and right translation <M>\rho</M> are
|
|
36
|
+
#! <E>linked</E> if for all <C>s, t</C> in <M>S</M>,
|
|
37
|
+
#! <M>s\lambda(t) = (s)\rho t</M>.
|
|
38
|
+
#! A pair of linked translations is called a <E>bitranslation</E>. The set of
|
|
39
|
+
#! all bitranslations forms a semigroup <M>H</M> called the <E>translational
|
|
40
|
+
#! hull</E> of <M>S</M> where the operation is componentwise. If the
|
|
41
|
+
#! components are inner translations corresponding to multiplication by
|
|
42
|
+
#! the same element, then the bitranslation is <E>inner</E>. The inner
|
|
43
|
+
#! bitranslations form an ideal of the translational hull.
|
|
44
|
+
#!
|
|
45
|
+
#! <Heading>
|
|
46
|
+
#! Translations of normalised Rees matrix semigroups
|
|
47
|
+
#! </Heading>
|
|
48
|
+
#! Translations of a normalized Rees matrix semigroup
|
|
49
|
+
#! <M>T</M> (see <Ref Attr = "RMSNormalization"/>) over a group <M>G</M>
|
|
50
|
+
#! can be represented through certain tuples, which can be computed
|
|
51
|
+
#! very efficiently compared to arbitrary translations. For left translations
|
|
52
|
+
#! these tuples consist of a function from the row indices of <M>T</M> to G and
|
|
53
|
+
#! a transformation on the row indices of <M>T</M>; the same is true of right
|
|
54
|
+
#! translations and columns. More specifically, given a normalised Rees matrix
|
|
55
|
+
#! semigroup <M>S</M> over a group <M>G</M> with sandwich matrix <M>P</M>, rows
|
|
56
|
+
#! <M>I</M> and columns <M>J</M>, the left translations are
|
|
57
|
+
#! characterised by pairs <M>(\theta, \chi)</M> where <M>\theta</M> is a
|
|
58
|
+
#! function from <M>I</M> to <M>G</M> and <M>\chi</M> is a transformation of
|
|
59
|
+
#! <M>I</M>. The left translation <M>\lambda</M> defined by
|
|
60
|
+
#! <M>(\theta, \chi)</M> acts on <M>S</M> via
|
|
61
|
+
#!
|
|
62
|
+
#! <Display Mode="M">
|
|
63
|
+
#! \lambda((i, a, \mu)) = ((i)\chi, (i)\theta \cdot a, \mu),
|
|
64
|
+
#! </Display>
|
|
65
|
+
#!
|
|
66
|
+
#! where <M>i \in I</M>, <M>a \in G</M>, and <M>\mu \in J</M>
|
|
67
|
+
#! Dually, right translations <M>\rho</M> are characterised by
|
|
68
|
+
#! pairs <M>(\omega, \psi)</M> where <M>\omega</M> is a function from
|
|
69
|
+
#! <M>J</M> to <M>G</M> and <M>\psi</M> is a transformation of
|
|
70
|
+
#! <M>J</M>, with action given by
|
|
71
|
+
#!
|
|
72
|
+
#! <Display Mode="M">
|
|
73
|
+
#! ((i, a, \mu))\rho = (i, a \cdot (\mu)\psi, (\mu)\psi).
|
|
74
|
+
#! </Display>
|
|
75
|
+
#!
|
|
76
|
+
#! Similarly, bitranslations <M>(\lambda, \rho)</M> of <M>S</M> can be
|
|
77
|
+
#! characterised by triples <M>(g, \chi, \psi)</M> such that <M>g \in G</M>,
|
|
78
|
+
#! <M>\chi</M> and <M>\psi</M> are transformations of <M>I, J</M> respectively,
|
|
79
|
+
#! and
|
|
80
|
+
#!
|
|
81
|
+
#! <Display Mode="M">
|
|
82
|
+
#! p_{\mu, (i)\chi} \cdot g \cdot p_{(1)\psi, i} =
|
|
83
|
+
#! p_{\mu, (1)\chi} \cdot g \cdot p_{(mu)\psi, i}.
|
|
84
|
+
#! </Display>
|
|
85
|
+
#!
|
|
86
|
+
#! The action of <M>\lambda</M> on <M>S</M> is then given by
|
|
87
|
+
#!
|
|
88
|
+
#! <Display Mode="M">
|
|
89
|
+
#! \lambda((i, a, \mu)) = ((i)\chi, b \cdot p_{(1)\psi, i} \cdot a, \mu),
|
|
90
|
+
#! </Display>
|
|
91
|
+
#!
|
|
92
|
+
#! and of <M>\rho</M> on <M>S</M> by
|
|
93
|
+
#!
|
|
94
|
+
#! <Display Mode="M">
|
|
95
|
+
#! ((i, a, \mu))\rho = (i, a \cdot p_{\mu, (1)\chi} \cdot b, (\mu)\psi).
|
|
96
|
+
#! </Display>
|
|
97
|
+
#!
|
|
98
|
+
#! Further details may be found in <Cite Key="Clifford1977aa"/>.
|
|
99
|
+
#!
|
|
100
|
+
#! @Section Methods for translations
|
|
101
|
+
|
|
102
|
+
#! @BeginGroup IsXTranslation
|
|
103
|
+
#! @GroupTitle IsXTranslation
|
|
104
|
+
#! @Description
|
|
105
|
+
#! All, and only, left [right] translations belong to <C>IsLeftTranslation</C>
|
|
106
|
+
#! [<C>IsRightTranslation</C>]. These are both subcategories of
|
|
107
|
+
#! <C>IsSemigroupTranslation</C>, which itself is a subcategory of
|
|
108
|
+
#! <C>IsAssociativeElement</C>.
|
|
109
|
+
#! @BeginExampleSession
|
|
110
|
+
#! gap> S := RectangularBand(3, 4);;
|
|
111
|
+
#! gap> l := Representative(LeftTranslations(S));;
|
|
112
|
+
#! gap> IsSemigroupTranslation(l);
|
|
113
|
+
#! true
|
|
114
|
+
#! gap> IsLeftTranslation(l);
|
|
115
|
+
#! true
|
|
116
|
+
#! gap> IsRightTranslation(l);
|
|
117
|
+
#! false
|
|
118
|
+
#! gap> l = One(LeftTranslations(S));
|
|
119
|
+
#! true
|
|
120
|
+
#! gap> l * l = l;
|
|
121
|
+
#! true
|
|
122
|
+
#! @EndExampleSession
|
|
123
|
+
DeclareCategory("IsSemigroupTranslation",
|
|
124
|
+
IsAssociativeElement and IsMultiplicativeElementWithOne);
|
|
125
|
+
DeclareCategory("IsLeftTranslation",
|
|
126
|
+
IsSemigroupTranslation);
|
|
127
|
+
DeclareCategory("IsRightTranslation",
|
|
128
|
+
IsSemigroupTranslation);
|
|
129
|
+
#! @EndGroup
|
|
130
|
+
|
|
131
|
+
#! @Description
|
|
132
|
+
#! All, and only, bitranslations belong to <C>IsBitranslation</C>. This is a
|
|
133
|
+
#! subcategory of <Ref Filt="IsAssociativeElement" BookName="ref"/>.
|
|
134
|
+
#! @BeginExampleSession
|
|
135
|
+
#! gap> G := Group((1, 2), (3, 4));;
|
|
136
|
+
#! gap> A := AsList(G);;
|
|
137
|
+
#! gap> mat := [[A[1], 0, A[1]],
|
|
138
|
+
#! > [A[2], A[2], A[4]]];;
|
|
139
|
+
#! gap> S := ReesZeroMatrixSemigroup(G, mat);;
|
|
140
|
+
#! gap> L := LeftTranslations(S);;
|
|
141
|
+
#! gap> R := RightTranslations(S);;
|
|
142
|
+
#! gap> l := OneOp(Representative(L));;
|
|
143
|
+
#! gap> r := OneOp(Representative(R));;
|
|
144
|
+
#! gap> H := TranslationalHull(S);;
|
|
145
|
+
#! gap> x := Bitranslation(H, l, r);;
|
|
146
|
+
#! gap> IsBitranslation(x);
|
|
147
|
+
#! true
|
|
148
|
+
#! gap> IsSemigroupTranslation(x);
|
|
149
|
+
#! false
|
|
150
|
+
#! @EndExampleSession
|
|
151
|
+
DeclareCategory("IsBitranslation",
|
|
152
|
+
IsAssociativeElement and IsMultiplicativeElementWithOne);
|
|
153
|
+
|
|
154
|
+
#! @BeginGroup IsXTranslationCollection
|
|
155
|
+
#! @GroupTitle IsXTranslationCollection
|
|
156
|
+
#! @Description
|
|
157
|
+
#! Every collection of left-, right-, or bi-translations belongs to the
|
|
158
|
+
#! respective category <Ref Filt="IsXTranslationCollection"/>.
|
|
159
|
+
DeclareCategoryCollections("IsSemigroupTranslation");
|
|
160
|
+
DeclareCategoryCollections("IsLeftTranslation");
|
|
161
|
+
DeclareCategoryCollections("IsRightTranslation");
|
|
162
|
+
DeclareCategoryCollections("IsBitranslation");
|
|
163
|
+
#! @EndGroup
|
|
164
|
+
|
|
165
|
+
#! @BeginGroup XPartOfBitranslation
|
|
166
|
+
#! @GroupTitle XPartOfBitranslation
|
|
167
|
+
#! @Returns a left or right translation
|
|
168
|
+
#! @Arguments h
|
|
169
|
+
#! @Description
|
|
170
|
+
#! For a Bitranslation <A>h</A> consisting of a linked pair <M>(l, r)</M>,
|
|
171
|
+
#! of left and right translations, `LeftPartOfBitranslation(<A>b</A>)` returns
|
|
172
|
+
#! the left translation `l`, and `RightPartOfBitranslation(<A>b</A>)` returns
|
|
173
|
+
#! the right translation `r`.
|
|
174
|
+
DeclareGlobalFunction("LeftPartOfBitranslation");
|
|
175
|
+
DeclareGlobalFunction("RightPartOfBitranslation");
|
|
176
|
+
#! @EndGroup
|
|
177
|
+
|
|
178
|
+
DeclareSynonym("IsTranslationsSemigroup",
|
|
179
|
+
IsSemigroup and IsSemigroupTranslationCollection);
|
|
180
|
+
DeclareSynonym("IsLeftTranslationsSemigroup",
|
|
181
|
+
IsSemigroup and IsLeftTranslationCollection);
|
|
182
|
+
DeclareSynonym("IsRightTranslationsSemigroup",
|
|
183
|
+
IsSemigroup and IsRightTranslationCollection);
|
|
184
|
+
DeclareSynonym("IsBitranslationsSemigroup",
|
|
185
|
+
IsSemigroup and IsBitranslationCollection);
|
|
186
|
+
|
|
187
|
+
#! @BeginGroup XTranslation
|
|
188
|
+
#! @GroupTitle XTranslation
|
|
189
|
+
#! @Returns a left or right translation
|
|
190
|
+
#! @Arguments T, x[, y]
|
|
191
|
+
#! @Description
|
|
192
|
+
#! For the semigroup <A>T</A> of left or right translations of a semigroup <M>
|
|
193
|
+
#! S</M> and <A>x</A> one of:
|
|
194
|
+
#! * a mapping on the underlying semigroup; note that in this case only the
|
|
195
|
+
#! values of the mapping on the `UnderlyingRepresentatives` of
|
|
196
|
+
#! <A>T</A> are checked and used, so mappings which do not define translations
|
|
197
|
+
#! can be used to create translations if they are valid on that subset of S;
|
|
198
|
+
#! * a list of indices representing the images of the
|
|
199
|
+
#! `UnderlyingRepresentatives` of <A>T</A>, where the ordering
|
|
200
|
+
#! is that of <Ref Oper="PositionCanonical"/> on <A>S</A>;
|
|
201
|
+
#! * (for `LeftTranslation`) a list of length `Length(Rows(S))`
|
|
202
|
+
#! containing elements of `UnderlyingSemigroup(S)`; in this case
|
|
203
|
+
#! <A>S</A> must be a normalised Rees matrix semigroup and `y` must be
|
|
204
|
+
#! a Transformation of `Rows(S)`;
|
|
205
|
+
#! * (for `RightTranslation`) a list of length `Length(Columns(S))`
|
|
206
|
+
#! containing elements of `UnderlyingSemigroup(S)`; in this case
|
|
207
|
+
#! <A>S</A> must be a normalised Rees matrix semigroup and `y` must be
|
|
208
|
+
#! a Transformation of `Columns(S)`;
|
|
209
|
+
#! `LeftTranslation` and `RightTranslation` return the corresponding
|
|
210
|
+
#! translations.
|
|
211
|
+
#! @BeginExampleSession
|
|
212
|
+
#! gap> S := RectangularBand(3, 4);;
|
|
213
|
+
#! gap> L := LeftTranslations(S);;
|
|
214
|
+
#! gap> s := AsList(S)[1];;
|
|
215
|
+
#! gap> map := MappingByFunction(S, S, x -> s * x);;
|
|
216
|
+
#! gap> l := LeftTranslation(L, map);
|
|
217
|
+
#! <left translation on <regular transformation semigroup of size 12,
|
|
218
|
+
#! degree 8 with 4 generators>>
|
|
219
|
+
#! gap> s ^ l;
|
|
220
|
+
#! Transformation( [ 1, 2, 1, 1, 5, 5, 5, 5 ] )
|
|
221
|
+
#! @EndExampleSession
|
|
222
|
+
DeclareOperation("LeftTranslation",
|
|
223
|
+
[IsLeftTranslationsSemigroup, IsGeneralMapping]);
|
|
224
|
+
DeclareOperation("RightTranslation",
|
|
225
|
+
[IsRightTranslationsSemigroup, IsGeneralMapping]);
|
|
226
|
+
#! @EndGroup
|
|
227
|
+
|
|
228
|
+
#! @Returns a bitranslation
|
|
229
|
+
#! @Arguments H, l, r
|
|
230
|
+
#! @Description
|
|
231
|
+
#! If <A>H</A> is a translational hull over a semigroup <M>S</M>, and <A>l</A>
|
|
232
|
+
#! and <A>r</A> are linked left and right translations respectively over
|
|
233
|
+
#! <M>S</M>, then this function returns the bitranslation
|
|
234
|
+
#! <M>(<A>l</A>, <A>r</A>)</M>. If <A>l</A> and <A>r</A> are not linked, then
|
|
235
|
+
#! an error is produced.
|
|
236
|
+
#! @BeginExampleSession
|
|
237
|
+
#! gap> G := Group((1, 2), (3, 4));;
|
|
238
|
+
#! gap> A := AsList(G);;
|
|
239
|
+
#! gap> mat := [[A[1], 0],
|
|
240
|
+
#! > [A[2], A[2]]];;
|
|
241
|
+
#! gap> S := ReesZeroMatrixSemigroup(G, mat);;
|
|
242
|
+
#! gap> L := LeftTranslations(S);;
|
|
243
|
+
#! gap> R := RightTranslations(S);;
|
|
244
|
+
#! gap> l := LeftTranslation(L, MappingByFunction(S, S, s -> S.1 * s));;
|
|
245
|
+
#! gap> r := RightTranslation(R, MappingByFunction(S, S, s -> s * S.1));;
|
|
246
|
+
#! gap> H := TranslationalHull(S);;
|
|
247
|
+
#! gap> x := Bitranslation(H, l, r);
|
|
248
|
+
#! <bitranslation on <regular semigroup of size 17, with 4 generators>>
|
|
249
|
+
#! @EndExampleSession
|
|
250
|
+
DeclareOperation("Bitranslation",
|
|
251
|
+
[IsBitranslationsSemigroup, IsLeftTranslation, IsRightTranslation]);
|
|
252
|
+
|
|
253
|
+
DeclareGlobalFunction("LeftTranslationNC");
|
|
254
|
+
DeclareGlobalFunction("RightTranslationNC");
|
|
255
|
+
DeclareGlobalFunction("BitranslationNC");
|
|
256
|
+
|
|
257
|
+
#! @BeginGroup UnderlyingSemigroup
|
|
258
|
+
#! @GroupTitle UnderlyingSemigroup
|
|
259
|
+
#! @Returns a semigroup
|
|
260
|
+
#! @Arguments S
|
|
261
|
+
#! @Description
|
|
262
|
+
#! Given a semigroup of translations or bitranslations, returns the
|
|
263
|
+
#! semigroup on which these translations act.
|
|
264
|
+
DeclareAttribute("UnderlyingSemigroup", IsTranslationsSemigroup);
|
|
265
|
+
DeclareAttribute("UnderlyingSemigroup", IsBitranslationsSemigroup);
|
|
266
|
+
#! @EndGroup
|
|
267
|
+
|
|
268
|
+
#! @BeginGroup XTranslationsSemigroupOfFamily
|
|
269
|
+
#! @GroupTitle XTranslationsSemigroupOfFamily
|
|
270
|
+
#! @Returns
|
|
271
|
+
#! the semigroup of left or right translations, or the translational hull
|
|
272
|
+
#! @Arguments fam
|
|
273
|
+
#! @Description
|
|
274
|
+
#! Given a family <A>fam</A> of left-, right- or bi-translations, returns
|
|
275
|
+
#! the translations semigroup or translational hull to which they belong.
|
|
276
|
+
#! @BeginExampleSession
|
|
277
|
+
#! gap> S := RectangularBand(3, 3);;
|
|
278
|
+
#! gap> L := LeftTranslations(S);;
|
|
279
|
+
#! gap> l := Representative(L);;
|
|
280
|
+
#! gap> LeftTranslationsSemigroupOfFamily(FamilyObj(l)) = L;
|
|
281
|
+
#! true
|
|
282
|
+
#! gap> H := TranslationalHull(S);;
|
|
283
|
+
#! gap> h := Representative(H);;
|
|
284
|
+
#! gap> TranslationalHullOfFamily(FamilyObj(h)) = H;
|
|
285
|
+
#! true
|
|
286
|
+
#! @EndExampleSession
|
|
287
|
+
DeclareAttribute("LeftTranslationsSemigroupOfFamily", IsFamily);
|
|
288
|
+
DeclareAttribute("RightTranslationsSemigroupOfFamily", IsFamily);
|
|
289
|
+
DeclareAttribute("TranslationalHullOfFamily", IsFamily);
|
|
290
|
+
#! @EndGroup
|
|
291
|
+
|
|
292
|
+
#! @BeginGroup TypeXTranslationSemigroupElements
|
|
293
|
+
#! @GroupTitle TypeXTranslationSemigroupElements
|
|
294
|
+
#! @Returns a type
|
|
295
|
+
#! @Description
|
|
296
|
+
#! Given a (bi)translations semigroup, returns the type of the elements that
|
|
297
|
+
#! it contains.
|
|
298
|
+
DeclareAttribute("TypeLeftTranslationsSemigroupElements",
|
|
299
|
+
IsLeftTranslationsSemigroup);
|
|
300
|
+
DeclareAttribute("TypeRightTranslationsSemigroupElements",
|
|
301
|
+
IsRightTranslationsSemigroup);
|
|
302
|
+
DeclareAttribute("TypeBitranslations", IsBitranslationsSemigroup);
|
|
303
|
+
#! @EndGroup
|
|
304
|
+
|
|
305
|
+
#! @BeginGroup XTranslations
|
|
306
|
+
#! @GroupTitle XTranslations
|
|
307
|
+
#! @Returns the semigroup of left or right translations
|
|
308
|
+
#! @Arguments S
|
|
309
|
+
#! @Description
|
|
310
|
+
#! Given a finite semigroup <A>S</A> satisfying <Ref Filt="CanUseFroidurePin"/>,
|
|
311
|
+
#! returns the semigroup of all left or right translations of <A>S</A>.
|
|
312
|
+
#! @BeginExampleSession
|
|
313
|
+
#! gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
|
|
314
|
+
#! > Transformation([3, 4, 1, 1, 4, 2])]);;
|
|
315
|
+
#! gap> L := LeftTranslations(S);
|
|
316
|
+
#! <the semigroup of left translations of <transformation semigroup of
|
|
317
|
+
#! degree 6 with 2 generators>>
|
|
318
|
+
#! gap> Size(L);
|
|
319
|
+
#! 361
|
|
320
|
+
#! @EndExampleSession
|
|
321
|
+
DeclareAttribute("LeftTranslations",
|
|
322
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
323
|
+
DeclareAttribute("RightTranslations",
|
|
324
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
325
|
+
#! @EndGroup
|
|
326
|
+
|
|
327
|
+
#! @Returns the translational hull
|
|
328
|
+
#! @Arguments S
|
|
329
|
+
#! @Description
|
|
330
|
+
#! Given a finite semigroup <A>S</A> satisfying <Ref Filt="CanUseFroidurePin"/>,
|
|
331
|
+
#! returns the translational hull of <A>S</A>.
|
|
332
|
+
#! @BeginExampleSession
|
|
333
|
+
#! gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
|
|
334
|
+
#! > Transformation([3, 4, 1, 1, 4, 2])]);;
|
|
335
|
+
#! gap> H := TranslationalHull(S);
|
|
336
|
+
#! <translational hull over <transformation semigroup of degree 6 with 2
|
|
337
|
+
#! generators>>
|
|
338
|
+
#! gap> Size(H);
|
|
339
|
+
#! 38
|
|
340
|
+
#! @EndExampleSession
|
|
341
|
+
DeclareAttribute("TranslationalHull",
|
|
342
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
343
|
+
|
|
344
|
+
#! @BeginGroup NrXTranslations
|
|
345
|
+
#! @GroupTitle NrXTranslations
|
|
346
|
+
#! @Returns the number of left-, right-, or bi-translations
|
|
347
|
+
#! @Arguments S
|
|
348
|
+
#! @Description
|
|
349
|
+
#! Given a finite semigroup <A>S</A> satisfying <Ref Filt="CanUseFroidurePin"/>,
|
|
350
|
+
#! returns the number of left-, right-, or bi-translations of <A>S</A>. This
|
|
351
|
+
#! is typically more efficient than calling `Size(LeftTranslations(<A>S</A>))`,
|
|
352
|
+
#! as the [bi]translations may not be produced.
|
|
353
|
+
#! @BeginExampleSession
|
|
354
|
+
#! gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5, 2]),
|
|
355
|
+
#! > Transformation([3, 4, 1, 1, 4, 2])]);;
|
|
356
|
+
#! gap> NrLeftTranslations(S);
|
|
357
|
+
#! 1444
|
|
358
|
+
#! gap> NrRightTranslations(S);
|
|
359
|
+
#! 398
|
|
360
|
+
#! gap> NrBitranslations(S);
|
|
361
|
+
#! 69
|
|
362
|
+
#! @EndExampleSession
|
|
363
|
+
DeclareAttribute("NrLeftTranslations",
|
|
364
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
365
|
+
DeclareAttribute("NrRightTranslations",
|
|
366
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
367
|
+
DeclareAttribute("NrBitranslations",
|
|
368
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
369
|
+
#! @EndGroup
|
|
370
|
+
|
|
371
|
+
#! @BeginGroup InnerXTranslations
|
|
372
|
+
#! @GroupTitle InnerXTranslations
|
|
373
|
+
#! @Returns the monoid of inner left or right translations
|
|
374
|
+
#! @Arguments S
|
|
375
|
+
#! @Description
|
|
376
|
+
#! For a finite semigroup <A>S</A> satisfying <Ref Filt="CanUseFroidurePin"/>,
|
|
377
|
+
#! <C>InnerLeftTranslations</C>(<A>S</A>)
|
|
378
|
+
#! returns the inner left translations of S (i.e. the translations
|
|
379
|
+
#! defined by left multiplication by a fixed element of <A>S</A>), and
|
|
380
|
+
#! <C>InnerRightTranslations</C>(<A>S</A>) returns the inner right translations
|
|
381
|
+
#! of <A>S</A> (i.e. the translations defined by right multiplication by
|
|
382
|
+
#! a fixed element of <A>S</A>).
|
|
383
|
+
#! @BeginExampleSession
|
|
384
|
+
#! gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
|
|
385
|
+
#! > Transformation([3, 4, 1, 1, 4, 2])]);;
|
|
386
|
+
#! gap> I := InnerLeftTranslations(S);
|
|
387
|
+
#! <left translations semigroup over <transformation semigroup
|
|
388
|
+
#! of size 22, degree 6 with 2 generators>>
|
|
389
|
+
#! gap> Size(I) <= Size(S);
|
|
390
|
+
#! true
|
|
391
|
+
#! @EndExampleSession
|
|
392
|
+
DeclareAttribute("InnerLeftTranslations",
|
|
393
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
394
|
+
DeclareAttribute("InnerRightTranslations",
|
|
395
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
396
|
+
#! @EndGroup
|
|
397
|
+
|
|
398
|
+
#! @Returns the inner translational hull
|
|
399
|
+
#! @Arguments S
|
|
400
|
+
#! @Description
|
|
401
|
+
#! Given a finite semigroup <A>S</A> satisfying <Ref Filt="CanUseFroidurePin"/>,
|
|
402
|
+
#! returns the inner translational hull of <A>S</A>, i.e. the bitranslations
|
|
403
|
+
#! whose left and right translation components are inner translations defined by
|
|
404
|
+
#! left and right multiplication by the same fixed element of <A>S</A>.
|
|
405
|
+
#! @BeginExampleSession
|
|
406
|
+
#! gap> S := Semigroup([Transformation([1, 4, 3, 3, 6, 5]),
|
|
407
|
+
#! > Transformation([3, 4, 1, 1, 4, 2])]);;
|
|
408
|
+
#! gap> I := InnerTranslationalHull(S);
|
|
409
|
+
#! <semigroup of bitranslations over <transformation semigroup
|
|
410
|
+
#! of size 22, degree 6 with 2 generators>>
|
|
411
|
+
#! gap> L := LeftTranslations(S);;
|
|
412
|
+
#! gap> R := RightTranslations(S);;
|
|
413
|
+
#! gap> H := TranslationalHull(S);;
|
|
414
|
+
#! gap> inners := [];;
|
|
415
|
+
#! gap> for s in S do
|
|
416
|
+
#! > l := LeftTranslation(L, MappingByFunction(S, S, x -> s * x));
|
|
417
|
+
#! > r := RightTranslation(R, MappingByFunction(S, S, x -> x * s));
|
|
418
|
+
#! > AddSet(inners, Bitranslation(H, l, r));
|
|
419
|
+
#! > od;
|
|
420
|
+
#! gap> Set(I) = inners;
|
|
421
|
+
#! true
|
|
422
|
+
#! @EndExampleSession
|
|
423
|
+
DeclareAttribute("InnerTranslationalHull",
|
|
424
|
+
IsSemigroup and CanUseFroidurePin and IsFinite);
|
|
425
|
+
|
|
426
|
+
InstallTrueMethod(IsFinite, IsLeftTranslationsSemigroup);
|
|
427
|
+
InstallTrueMethod(IsFinite, IsRightTranslationsSemigroup);
|
|
428
|
+
InstallTrueMethod(IsFinite, IsBitranslationsSemigroup);
|
|
429
|
+
|
|
430
|
+
InstallTrueMethod(CanUseGapFroidurePin, IsLeftTranslationsSemigroup);
|
|
431
|
+
InstallTrueMethod(CanUseGapFroidurePin, IsRightTranslationsSemigroup);
|
|
432
|
+
InstallTrueMethod(CanUseGapFroidurePin, IsBitranslationsSemigroup);
|
|
433
|
+
|
|
434
|
+
#! @Returns a set of representatives
|
|
435
|
+
#! @Arguments T
|
|
436
|
+
#! @Description
|
|
437
|
+
#! For efficiency, we typically store translations on a semigroup <M>S</M> as
|
|
438
|
+
#! their actions on a small subset of <M>S</M>. For left translations, this is a
|
|
439
|
+
#! set of representatives of the maximal &R;-classes of <M>S</M>; dually for
|
|
440
|
+
#! right translations we use representatives of the maximal &L;-classes. You can
|
|
441
|
+
#! use `UnderlyingRepresentatives` to access these representatives.
|
|
442
|
+
#! @BeginExampleSession
|
|
443
|
+
#! gap> G := Range(IsomorphismPermGroup(SmallGroup(12, 1)));;
|
|
444
|
+
#! gap> mat := [[G.1, G.2], [G.1, G.1],
|
|
445
|
+
#! > [G.2, G.3], [G.1 * G.2, G.1 * G.3]];;
|
|
446
|
+
#! gap> S := ReesMatrixSemigroup(G, mat);;
|
|
447
|
+
#! gap> L := LeftTranslations(S);;
|
|
448
|
+
#! gap> R := RightTranslations(S);;
|
|
449
|
+
#! gap> UnderlyingRepresentatives(L);
|
|
450
|
+
#! [ (1,(),1), (2,(),2) ]
|
|
451
|
+
#! gap> UnderlyingRepresentatives(R);
|
|
452
|
+
#! [ (1,(),1), (2,(),2), (1,(),3), (1,(),4) ]
|
|
453
|
+
#! @EndExampleSession
|
|
454
|
+
DeclareAttribute("UnderlyingRepresentatives", IsTranslationsSemigroup);
|
|
455
|
+
|
|
456
|
+
# Purposefully undocumented
|
|
457
|
+
DeclareAttribute("RepresentativeMultipliers", IsTranslationsSemigroup);
|
|
458
|
+
|
|
459
|
+
#! @Returns a set of elements
|
|
460
|
+
#! @Arguments t
|
|
461
|
+
#! @Description
|
|
462
|
+
#! Given a left or right translation <A>t</A> on a semigroup <M>S</M>, returns
|
|
463
|
+
#! the set of elements of <M>S</M> lying in the image of <A>t</A>.
|
|
464
|
+
#! @BeginExampleSession
|
|
465
|
+
#! gap> S := Semigroup([Transformation([1, 3, 3, 4]),
|
|
466
|
+
#! > Transformation([3, 4, 1, 2])]);;
|
|
467
|
+
#! gap> t := Set(LeftTranslations(S))[4];
|
|
468
|
+
#! <left translation on <transformation semigroup of size 8, degree 4
|
|
469
|
+
#! with 2 generators>>
|
|
470
|
+
#! gap> ImageSetOfTranslation(t);
|
|
471
|
+
#! [ Transformation( [ 1, 2, 3, 1 ] ), Transformation( [ 1, 3, 3, 1 ] ),
|
|
472
|
+
#! Transformation( [ 3, 1, 1, 3 ] ), Transformation( [ 3, 4, 1, 3 ] ) ]
|
|
473
|
+
#! @EndExampleSession
|
|
474
|
+
DeclareOperation("ImageSetOfTranslation", [IsSemigroupTranslation]);
|