passagemath-gap-pkg-semigroups 10.6.29__cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-unknown-linux-gnu-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1016 -0
- gap/pkg/semigroups/config.status +1132 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.29.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.libs/libsemigroups-8ea3c4e7.so.2.0.0 +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.abi3.so +0 -0
|
@@ -0,0 +1,774 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
##
|
|
3
|
+
## greens/acting-inverse.gi
|
|
4
|
+
## Copyright (C) 2013-2022 James D. Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
# This file contains methods for Green's classes and relations for acting
|
|
12
|
+
# semigroups in IsInverseActingSemigroupRep.
|
|
13
|
+
|
|
14
|
+
# See the start of greens/acting.gi for details of how to create Green's
|
|
15
|
+
# classes of acting semigroups.
|
|
16
|
+
|
|
17
|
+
# Methods here are similar to methods in acting-regular.gi but without any use
|
|
18
|
+
# of RhoAnything!
|
|
19
|
+
|
|
20
|
+
#############################################################################
|
|
21
|
+
## This file contains methods for Green's classes etc for acting semigroups.
|
|
22
|
+
## It is organized as follows:
|
|
23
|
+
##
|
|
24
|
+
## 1. Helper functions for the creation of Green's classes, and lambda-rho
|
|
25
|
+
## stuff.
|
|
26
|
+
##
|
|
27
|
+
## 2. Individual Green's classes (constructors, size, membership)
|
|
28
|
+
##
|
|
29
|
+
## 3. Collections of Green's classes (GreensXClasses, XClassReps, NrXClasses)
|
|
30
|
+
##
|
|
31
|
+
## 4. Idempotents and NrIdempotents
|
|
32
|
+
##
|
|
33
|
+
## 5. Iterators and enumerators
|
|
34
|
+
##
|
|
35
|
+
#############################################################################
|
|
36
|
+
|
|
37
|
+
#############################################################################
|
|
38
|
+
## 1. Helper functions for the creation of Green's classes . . .
|
|
39
|
+
#############################################################################
|
|
40
|
+
|
|
41
|
+
# The following is only for inverse semigroups rep!
|
|
42
|
+
|
|
43
|
+
SEMIGROUPS.DClassOfXClass := function(X)
|
|
44
|
+
local D;
|
|
45
|
+
D := SEMIGROUPS.CreateDClass(X);
|
|
46
|
+
SEMIGROUPS.CopyLambda(X, D);
|
|
47
|
+
SEMIGROUPS.RectifyLambda(D);
|
|
48
|
+
D!.rep := RightOne(D!.rep);
|
|
49
|
+
# so that lambda and rho are rectified!
|
|
50
|
+
return D;
|
|
51
|
+
end;
|
|
52
|
+
|
|
53
|
+
SEMIGROUPS.InverseRectifyRho := function(C)
|
|
54
|
+
local o, i, m;
|
|
55
|
+
|
|
56
|
+
o := LambdaOrb(C);
|
|
57
|
+
i := Position(o, RhoFunc(Parent(C))(C!.rep));
|
|
58
|
+
m := LambdaOrbSCCIndex(C);
|
|
59
|
+
|
|
60
|
+
if i <> OrbSCC(o)[m][1] then
|
|
61
|
+
C!.rep := LambdaOrbMult(o, m, i)[1] * C!.rep;
|
|
62
|
+
# don't set Representative in case we must also rectify Lambda
|
|
63
|
+
fi;
|
|
64
|
+
|
|
65
|
+
return;
|
|
66
|
+
end;
|
|
67
|
+
|
|
68
|
+
# same method for inverse ideals
|
|
69
|
+
|
|
70
|
+
InstallMethod(SchutzenbergerGroup,
|
|
71
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
72
|
+
[IsInverseActingRepGreensClass and IsGreensLClass],
|
|
73
|
+
function(L)
|
|
74
|
+
local o, m, p;
|
|
75
|
+
|
|
76
|
+
o := LambdaOrb(L);
|
|
77
|
+
m := LambdaOrbSCCIndex(L);
|
|
78
|
+
|
|
79
|
+
if not IsGreensClassNC(L) then
|
|
80
|
+
# go from the lambda-value in scc 1 to the lambda value of the rep of <l>
|
|
81
|
+
p := LambdaConjugator(Parent(L))(RightOne(LambdaOrbRep(o, m)), L!.rep);
|
|
82
|
+
return LambdaOrbSchutzGp(o, m) ^ p;
|
|
83
|
+
fi;
|
|
84
|
+
return LambdaOrbSchutzGp(o, m);
|
|
85
|
+
end);
|
|
86
|
+
|
|
87
|
+
#############################################################################
|
|
88
|
+
## 2. Individual classes . . .
|
|
89
|
+
#############################################################################
|
|
90
|
+
|
|
91
|
+
InstallMethod(DClassOfLClass,
|
|
92
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
93
|
+
[IsInverseActingRepGreensClass and IsGreensLClass], SEMIGROUPS.DClassOfXClass);
|
|
94
|
+
|
|
95
|
+
InstallMethod(DClassOfRClass,
|
|
96
|
+
"for an R-class of an inverse acting semigroup rep",
|
|
97
|
+
[IsInverseActingRepGreensClass and IsGreensRClass], SEMIGROUPS.DClassOfXClass);
|
|
98
|
+
|
|
99
|
+
InstallMethod(DClassOfHClass,
|
|
100
|
+
"for an H-class of an inverse acting semigroup rep",
|
|
101
|
+
[IsInverseActingRepGreensClass and IsGreensHClass], SEMIGROUPS.DClassOfXClass);
|
|
102
|
+
|
|
103
|
+
InstallMethod(LClassOfHClass,
|
|
104
|
+
"for an H-class of an inverse acting semigroup rep",
|
|
105
|
+
[IsInverseActingRepGreensClass and IsGreensHClass],
|
|
106
|
+
function(H)
|
|
107
|
+
local L;
|
|
108
|
+
L := SEMIGROUPS.CreateLClass(H);
|
|
109
|
+
SEMIGROUPS.CopyLambda(H, L);
|
|
110
|
+
SEMIGROUPS.InverseRectifyRho(L);
|
|
111
|
+
return L;
|
|
112
|
+
end);
|
|
113
|
+
|
|
114
|
+
# same method for inverse ideals
|
|
115
|
+
|
|
116
|
+
InstallMethod(GreensDClassOfElementNC,
|
|
117
|
+
"for an inverse acting semigroup rep, mult. element, and bool",
|
|
118
|
+
[IsInverseActingSemigroupRep,
|
|
119
|
+
IsMultiplicativeElement,
|
|
120
|
+
IsBool],
|
|
121
|
+
function(S, x, isGreensClassNC)
|
|
122
|
+
local D;
|
|
123
|
+
D := SEMIGROUPS.CreateDClass(S, x, isGreensClassNC);
|
|
124
|
+
SEMIGROUPS.SetLambda(D);
|
|
125
|
+
SEMIGROUPS.RectifyLambda(D);
|
|
126
|
+
D!.rep := RightOne(D!.rep);
|
|
127
|
+
return D;
|
|
128
|
+
end);
|
|
129
|
+
|
|
130
|
+
# same method for inverse ideals
|
|
131
|
+
|
|
132
|
+
InstallMethod(GreensLClassOfElementNC,
|
|
133
|
+
"for an inverse acting semigroup rep, mult. element, and bool",
|
|
134
|
+
[IsInverseActingSemigroupRep,
|
|
135
|
+
IsMultiplicativeElement,
|
|
136
|
+
IsBool],
|
|
137
|
+
function(S, x, isGreensClassNC)
|
|
138
|
+
local L;
|
|
139
|
+
L := SEMIGROUPS.CreateLClass(S, x, isGreensClassNC);
|
|
140
|
+
SEMIGROUPS.SetLambda(L);
|
|
141
|
+
SEMIGROUPS.InverseRectifyRho(L);
|
|
142
|
+
return L;
|
|
143
|
+
end);
|
|
144
|
+
|
|
145
|
+
# same method for inverse ideals
|
|
146
|
+
|
|
147
|
+
InstallMethod(GreensHClassOfElementNC,
|
|
148
|
+
"for an inverse acting semigroup rep, mult. element, and bool",
|
|
149
|
+
[IsInverseActingSemigroupRep,
|
|
150
|
+
IsMultiplicativeElement,
|
|
151
|
+
IsBool],
|
|
152
|
+
function(S, x, isGreensClassNC)
|
|
153
|
+
local H;
|
|
154
|
+
H := SEMIGROUPS.CreateHClass(S, x, isGreensClassNC);
|
|
155
|
+
SEMIGROUPS.SetLambda(H);
|
|
156
|
+
return H;
|
|
157
|
+
end);
|
|
158
|
+
|
|
159
|
+
# same method for inverse ideals
|
|
160
|
+
|
|
161
|
+
InstallMethod(GreensHClassOfElementNC,
|
|
162
|
+
Concatenation("for a Green's class of an inverse acting semigroup rep",
|
|
163
|
+
"mult. element, and bool"),
|
|
164
|
+
[IsInverseActingRepGreensClass,
|
|
165
|
+
IsMultiplicativeElement,
|
|
166
|
+
IsBool],
|
|
167
|
+
function(C, x, isGreensClassNC)
|
|
168
|
+
local H;
|
|
169
|
+
H := SEMIGROUPS.CreateHClass(C, x, isGreensClassNC);
|
|
170
|
+
SEMIGROUPS.CopyLambda(C, H);
|
|
171
|
+
if IsGreensLClass(C) then
|
|
172
|
+
SetLClassOfHClass(H, C);
|
|
173
|
+
elif IsGreensRClass(C) then
|
|
174
|
+
SetRClassOfHClass(H, C);
|
|
175
|
+
elif IsGreensDClass(C) then
|
|
176
|
+
SetDClassOfHClass(H, C);
|
|
177
|
+
fi;
|
|
178
|
+
return H;
|
|
179
|
+
end);
|
|
180
|
+
|
|
181
|
+
# same method for inverse ideals
|
|
182
|
+
|
|
183
|
+
InstallMethod(Size, "for a D-class of an inverse acting semigroup rep",
|
|
184
|
+
[IsInverseActingRepGreensClass and IsGreensDClass],
|
|
185
|
+
D -> Size(SchutzenbergerGroup(D)) * Length(LambdaOrbSCC(D)) ^ 2);
|
|
186
|
+
|
|
187
|
+
# same method for inverse ideals
|
|
188
|
+
|
|
189
|
+
InstallMethod(Size, "for an L-class of an inverse acting semigroup rep",
|
|
190
|
+
[IsInverseActingRepGreensClass and IsGreensLClass],
|
|
191
|
+
L -> Size(SchutzenbergerGroup(L)) * Length(LambdaOrbSCC(L)));
|
|
192
|
+
|
|
193
|
+
InstallMethod(\in,
|
|
194
|
+
"for a mult. element and D-class of an inverse acting semigroup rep",
|
|
195
|
+
[IsMultiplicativeElement, IsInverseActingRepGreensClass and IsGreensDClass],
|
|
196
|
+
function(x, D)
|
|
197
|
+
local S, rep, m, o, scc, l, schutz;
|
|
198
|
+
|
|
199
|
+
S := Parent(D);
|
|
200
|
+
rep := D!.rep;
|
|
201
|
+
|
|
202
|
+
if ElementsFamily(FamilyObj(S)) <> FamilyObj(x)
|
|
203
|
+
or (IsActingSemigroupWithFixedDegreeMultiplication(S) and
|
|
204
|
+
ActionDegree(x) <> ActionDegree(rep))
|
|
205
|
+
or ActionRank(S)(x) <> ActionRank(S)(rep) then
|
|
206
|
+
return false;
|
|
207
|
+
fi;
|
|
208
|
+
|
|
209
|
+
m := LambdaOrbSCCIndex(D);
|
|
210
|
+
o := LambdaOrb(D);
|
|
211
|
+
scc := OrbSCC(o);
|
|
212
|
+
l := Position(o, RhoFunc(S)(x));
|
|
213
|
+
|
|
214
|
+
if l = fail or OrbSCCLookup(o)[l] <> m then
|
|
215
|
+
return false;
|
|
216
|
+
elif l <> scc[m][1] then
|
|
217
|
+
x := LambdaOrbMult(o, m, l)[1] * x;
|
|
218
|
+
fi;
|
|
219
|
+
|
|
220
|
+
l := Position(o, LambdaFunc(S)(x));
|
|
221
|
+
if l = fail or OrbSCCLookup(o)[l] <> m then
|
|
222
|
+
return false;
|
|
223
|
+
elif l <> scc[m][1] then
|
|
224
|
+
x := x * LambdaOrbMult(o, m, l)[2];
|
|
225
|
+
fi;
|
|
226
|
+
|
|
227
|
+
schutz := LambdaOrbStabChain(o, m);
|
|
228
|
+
if schutz = true then
|
|
229
|
+
return true;
|
|
230
|
+
elif x = D!.rep then
|
|
231
|
+
return true;
|
|
232
|
+
elif schutz = false then
|
|
233
|
+
return false;
|
|
234
|
+
fi;
|
|
235
|
+
|
|
236
|
+
return SchutzGpMembership(S)(schutz, LambdaPerm(S)(rep, x));
|
|
237
|
+
end);
|
|
238
|
+
|
|
239
|
+
InstallMethod(\in,
|
|
240
|
+
"for a mult. element and L-class of an inverse acting semigroup rep",
|
|
241
|
+
[IsMultiplicativeElement,
|
|
242
|
+
IsInverseActingRepGreensClass and IsGreensLClass],
|
|
243
|
+
function(x, L)
|
|
244
|
+
local S, rep, o, m, scc, l, schutz;
|
|
245
|
+
|
|
246
|
+
S := Parent(L);
|
|
247
|
+
rep := Representative(L);
|
|
248
|
+
|
|
249
|
+
if ElementsFamily(FamilyObj(S)) <> FamilyObj(x)
|
|
250
|
+
or ActionRank(S)(x) <> ActionRank(S)(rep)
|
|
251
|
+
or (IsActingSemigroupWithFixedDegreeMultiplication(S) and
|
|
252
|
+
ActionDegree(x) <> ActionDegree(rep))
|
|
253
|
+
or LambdaFunc(S)(x) <> LambdaFunc(S)(rep) then
|
|
254
|
+
return false;
|
|
255
|
+
fi;
|
|
256
|
+
|
|
257
|
+
o := LambdaOrb(L);
|
|
258
|
+
m := LambdaOrbSCCIndex(L);
|
|
259
|
+
scc := OrbSCC(o);
|
|
260
|
+
l := Position(o, RhoFunc(S)(x));
|
|
261
|
+
schutz := LambdaOrbStabChain(o, m);
|
|
262
|
+
|
|
263
|
+
if l = fail or OrbSCCLookup(o)[l] <> m then
|
|
264
|
+
return false;
|
|
265
|
+
elif schutz = true then
|
|
266
|
+
return true;
|
|
267
|
+
elif l <> scc[m][1] then
|
|
268
|
+
x := LambdaOrbMult(o, m, l)[1] * x;
|
|
269
|
+
fi;
|
|
270
|
+
|
|
271
|
+
rep := L!.rep;
|
|
272
|
+
|
|
273
|
+
if x = rep then
|
|
274
|
+
return true;
|
|
275
|
+
elif schutz = false then
|
|
276
|
+
return false;
|
|
277
|
+
fi;
|
|
278
|
+
|
|
279
|
+
return SchutzGpMembership(S)(schutz, LambdaPerm(S)(rep ^ -1, x ^ -1));
|
|
280
|
+
end);
|
|
281
|
+
|
|
282
|
+
#############################################################################
|
|
283
|
+
## 3. Collections of classes, and reps
|
|
284
|
+
#############################################################################
|
|
285
|
+
|
|
286
|
+
# This is required since it is used elsewhere in the code that DClassReps of an
|
|
287
|
+
# inverse semigroup are all idempotents.
|
|
288
|
+
|
|
289
|
+
InstallMethod(DClassReps, "for an inverse acting semigroup rep",
|
|
290
|
+
[IsInverseActingSemigroupRep],
|
|
291
|
+
function(S)
|
|
292
|
+
local o, out, m;
|
|
293
|
+
o := LambdaOrb(S);
|
|
294
|
+
out := EmptyPlist(Length(OrbSCC(o)));
|
|
295
|
+
for m in [2 .. Length(OrbSCC(o))] do
|
|
296
|
+
out[m - 1] := RightOne(LambdaOrbRep(o, m));
|
|
297
|
+
od;
|
|
298
|
+
return out;
|
|
299
|
+
end);
|
|
300
|
+
|
|
301
|
+
# same method for inverse ideals
|
|
302
|
+
|
|
303
|
+
InstallMethod(GreensDClasses, "for an acting inverse semigroup rep",
|
|
304
|
+
[IsInverseActingSemigroupRep],
|
|
305
|
+
function(S)
|
|
306
|
+
local o, scc, out, CreateDClass, D, i;
|
|
307
|
+
|
|
308
|
+
o := LambdaOrb(S);
|
|
309
|
+
scc := OrbSCC(o);
|
|
310
|
+
out := EmptyPlist(Length(scc) - 1);
|
|
311
|
+
|
|
312
|
+
CreateDClass := SEMIGROUPS.CreateDClass;
|
|
313
|
+
|
|
314
|
+
for i in [2 .. Length(scc)] do
|
|
315
|
+
# don't use GreensDClassOfElementNC cos we don't need to rectify the
|
|
316
|
+
# rho-value
|
|
317
|
+
D := CreateDClass(S, RightOne(LambdaOrbRep(o, i)), false);
|
|
318
|
+
SetLambdaOrb(D, o);
|
|
319
|
+
SetLambdaOrbSCCIndex(D, i);
|
|
320
|
+
out[i - 1] := D;
|
|
321
|
+
od;
|
|
322
|
+
return out;
|
|
323
|
+
end);
|
|
324
|
+
|
|
325
|
+
# same method for inverse ideals
|
|
326
|
+
|
|
327
|
+
InstallMethod(GreensLClasses,
|
|
328
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
329
|
+
[IsInverseActingRepGreensClass
|
|
330
|
+
and IsGreensDClass],
|
|
331
|
+
function(D)
|
|
332
|
+
local reps, out, CreateLClass, CopyLambda, i;
|
|
333
|
+
|
|
334
|
+
reps := LClassReps(D);
|
|
335
|
+
out := EmptyPlist(Length(reps));
|
|
336
|
+
CreateLClass := SEMIGROUPS.CreateLClass;
|
|
337
|
+
CopyLambda := SEMIGROUPS.CopyLambda;
|
|
338
|
+
|
|
339
|
+
for i in [1 .. Length(reps)] do
|
|
340
|
+
# don't use GreensLClassOfElementNC cos we don't need to rectify the
|
|
341
|
+
# rho-value
|
|
342
|
+
out[i] := CreateLClass(D, reps[i], IsGreensClassNC(D));
|
|
343
|
+
CopyLambda(D, out[i]);
|
|
344
|
+
SetDClassOfLClass(out[i], D);
|
|
345
|
+
od;
|
|
346
|
+
return out;
|
|
347
|
+
end);
|
|
348
|
+
|
|
349
|
+
# same method for inverse ideals
|
|
350
|
+
|
|
351
|
+
InstallMethod(RClassReps, "for an acting inverse semigroup rep",
|
|
352
|
+
[IsInverseActingSemigroupRep],
|
|
353
|
+
S -> List(LClassReps(S), Inverse));
|
|
354
|
+
|
|
355
|
+
# same method for inverse ideals
|
|
356
|
+
|
|
357
|
+
InstallMethod(RClassReps,
|
|
358
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
359
|
+
[IsInverseActingRepGreensClass and IsGreensDClass],
|
|
360
|
+
D -> List(LClassReps(D), Inverse));
|
|
361
|
+
|
|
362
|
+
# same method for inverse ideals
|
|
363
|
+
|
|
364
|
+
InstallMethod(HClassReps,
|
|
365
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
366
|
+
[IsInverseActingRepGreensClass and IsGreensLClass],
|
|
367
|
+
function(L)
|
|
368
|
+
local S, o, m, scc, mults, rep, out, nr, i;
|
|
369
|
+
S := Parent(L);
|
|
370
|
+
o := LambdaOrb(L);
|
|
371
|
+
m := LambdaOrbSCCIndex(L);
|
|
372
|
+
scc := OrbSCC(o)[m];
|
|
373
|
+
mults := LambdaOrbMults(o, m);
|
|
374
|
+
rep := L!.rep;
|
|
375
|
+
out := EmptyPlist(Length(scc));
|
|
376
|
+
nr := 0;
|
|
377
|
+
for i in scc do
|
|
378
|
+
nr := nr + 1;
|
|
379
|
+
out[nr] := ConvertToExternalElement(S, mults[i][2] * rep);
|
|
380
|
+
od;
|
|
381
|
+
return out;
|
|
382
|
+
end);
|
|
383
|
+
|
|
384
|
+
InstallMethod(GreensHClasses,
|
|
385
|
+
"for a Green's class of an inverse acting semigroup rep",
|
|
386
|
+
[IsInverseActingRepGreensClass],
|
|
387
|
+
function(C)
|
|
388
|
+
local reps, out, setter, CreateHClass, CopyLambda, i;
|
|
389
|
+
|
|
390
|
+
if not (IsGreensLClass(C) or IsGreensRClass(C) or IsGreensDClass(C)) then
|
|
391
|
+
ErrorNoReturn("the argument is not a Green's L-, R-, or D-class");
|
|
392
|
+
fi;
|
|
393
|
+
|
|
394
|
+
reps := HClassReps(C);
|
|
395
|
+
out := [];
|
|
396
|
+
|
|
397
|
+
if IsGreensLClass(C) then
|
|
398
|
+
setter := SetLClassOfHClass;
|
|
399
|
+
elif IsGreensRClass(C) then
|
|
400
|
+
setter := SetRClassOfHClass;
|
|
401
|
+
elif IsGreensDClass(C) then
|
|
402
|
+
setter := SetDClassOfHClass;
|
|
403
|
+
fi;
|
|
404
|
+
|
|
405
|
+
CreateHClass := SEMIGROUPS.CreateHClass;
|
|
406
|
+
CopyLambda := SEMIGROUPS.CopyLambda;
|
|
407
|
+
|
|
408
|
+
for i in [1 .. Length(reps)] do
|
|
409
|
+
out[i] := CreateHClass(C, reps[i], IsGreensClassNC(C));
|
|
410
|
+
CopyLambda(C, out[i]);
|
|
411
|
+
setter(out[i], C);
|
|
412
|
+
od;
|
|
413
|
+
|
|
414
|
+
return out;
|
|
415
|
+
end);
|
|
416
|
+
|
|
417
|
+
# same method for inverse ideals
|
|
418
|
+
|
|
419
|
+
InstallMethod(NrRClasses, "for an acting inverse semigroup rep",
|
|
420
|
+
[IsInverseActingSemigroupRep], NrLClasses);
|
|
421
|
+
|
|
422
|
+
# same method for inverse ideals
|
|
423
|
+
|
|
424
|
+
InstallMethod(NrRClasses,
|
|
425
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
426
|
+
[IsInverseActingRepGreensClass and IsGreensDClass], NrLClasses);
|
|
427
|
+
|
|
428
|
+
# same method for inverse ideals
|
|
429
|
+
|
|
430
|
+
InstallMethod(NrHClasses,
|
|
431
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
432
|
+
[IsInverseActingRepGreensClass
|
|
433
|
+
and IsGreensDClass], D -> Length(LambdaOrbSCC(D)) ^ 2);
|
|
434
|
+
|
|
435
|
+
# same method for inverse ideals
|
|
436
|
+
|
|
437
|
+
InstallMethod(NrHClasses,
|
|
438
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
439
|
+
[IsInverseActingRepGreensClass
|
|
440
|
+
and IsGreensLClass], L -> Length(LambdaOrbSCC(L)));
|
|
441
|
+
|
|
442
|
+
# same method for inverse ideals
|
|
443
|
+
|
|
444
|
+
InstallMethod(NrHClasses, "for an acting inverse semigroup rep",
|
|
445
|
+
[IsInverseActingSemigroupRep],
|
|
446
|
+
S -> Sum(List(OrbSCC(Enumerate(LambdaOrb(S))), x -> Length(x) ^ 2)) - 1);
|
|
447
|
+
|
|
448
|
+
# same method for inverse ideals
|
|
449
|
+
|
|
450
|
+
InstallMethod(GroupHClassOfGreensDClass,
|
|
451
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
452
|
+
[IsInverseActingRepGreensClass and IsGreensDClass],
|
|
453
|
+
function(D)
|
|
454
|
+
local H;
|
|
455
|
+
H := GreensHClassOfElementNC(D, D!.rep);
|
|
456
|
+
SetIsGroupHClass(H, true);
|
|
457
|
+
return H;
|
|
458
|
+
end);
|
|
459
|
+
|
|
460
|
+
# same method for inverse ideals
|
|
461
|
+
|
|
462
|
+
InstallMethod(PartialOrderOfDClasses,
|
|
463
|
+
"for acting inverse semigroup rep",
|
|
464
|
+
[IsInverseActingSemigroupRep],
|
|
465
|
+
function(S)
|
|
466
|
+
local D, n, out, o, gens, lookup, lambdafunc, i, x, y;
|
|
467
|
+
|
|
468
|
+
D := GreensDClasses(S);
|
|
469
|
+
n := Length(D);
|
|
470
|
+
out := List([1 .. n], x -> EmptyPlist(n));
|
|
471
|
+
o := LambdaOrb(S);
|
|
472
|
+
gens := o!.gens;
|
|
473
|
+
lookup := OrbSCCLookup(o);
|
|
474
|
+
lambdafunc := LambdaFunc(S);
|
|
475
|
+
|
|
476
|
+
for i in [1 .. n] do
|
|
477
|
+
for x in gens do
|
|
478
|
+
for y in RClassReps(D[i]) do
|
|
479
|
+
y := ConvertToInternalElement(S, y);
|
|
480
|
+
AddSet(out[i], lookup[Position(o, lambdafunc(x * y))] - 1);
|
|
481
|
+
AddSet(out[i], lookup[Position(o, lambdafunc(Inverse(y) * x))] - 1);
|
|
482
|
+
od;
|
|
483
|
+
od;
|
|
484
|
+
od;
|
|
485
|
+
|
|
486
|
+
Perform(out, ShrinkAllocationPlist);
|
|
487
|
+
D := DigraphNC(IsMutableDigraph, out);
|
|
488
|
+
DigraphRemoveLoops(D);
|
|
489
|
+
MakeImmutable(D);
|
|
490
|
+
return D;
|
|
491
|
+
end);
|
|
492
|
+
|
|
493
|
+
#############################################################################
|
|
494
|
+
## 4. Idempotents . . .
|
|
495
|
+
#############################################################################
|
|
496
|
+
|
|
497
|
+
# same method for inverse ideals
|
|
498
|
+
|
|
499
|
+
InstallMethod(Idempotents, "for acting inverse semigroup rep",
|
|
500
|
+
[IsInverseActingSemigroupRep],
|
|
501
|
+
function(S)
|
|
502
|
+
local o, creator, r, out, i;
|
|
503
|
+
|
|
504
|
+
o := LambdaOrb(S);
|
|
505
|
+
Enumerate(o, infinity);
|
|
506
|
+
|
|
507
|
+
creator := IdempotentCreator(S);
|
|
508
|
+
r := Length(o);
|
|
509
|
+
out := EmptyPlist(r - 1);
|
|
510
|
+
|
|
511
|
+
for i in [2 .. r] do
|
|
512
|
+
out[i - 1] := ConvertToExternalElement(S, creator(o[i], o[i]));
|
|
513
|
+
od;
|
|
514
|
+
return out;
|
|
515
|
+
end);
|
|
516
|
+
|
|
517
|
+
# same method for inverse ideals
|
|
518
|
+
|
|
519
|
+
InstallMethod(Idempotents,
|
|
520
|
+
"for acting inverse semigroup rep and non-negative integer",
|
|
521
|
+
[IsInverseActingSemigroupRep, IsInt],
|
|
522
|
+
function(S, n)
|
|
523
|
+
local o, creator, out, rank, nr, i;
|
|
524
|
+
|
|
525
|
+
if n < 0 then
|
|
526
|
+
ErrorNoReturn("the 2nd argument (an int) is not non-negative");
|
|
527
|
+
elif HasIdempotents(S) then
|
|
528
|
+
return Filtered(Idempotents(S), x -> ActionRank(S)(x) = n);
|
|
529
|
+
fi;
|
|
530
|
+
|
|
531
|
+
o := Enumerate(LambdaOrb(S));
|
|
532
|
+
creator := IdempotentCreator(S);
|
|
533
|
+
out := EmptyPlist(Length(o) - 1);
|
|
534
|
+
rank := LambdaRank(S);
|
|
535
|
+
nr := 0;
|
|
536
|
+
|
|
537
|
+
for i in [2 .. Length(o)] do
|
|
538
|
+
if rank(o[i]) = n then
|
|
539
|
+
nr := nr + 1;
|
|
540
|
+
out[nr] := ConvertToExternalElement(S, creator(o[i], o[i]));
|
|
541
|
+
fi;
|
|
542
|
+
od;
|
|
543
|
+
return out;
|
|
544
|
+
end);
|
|
545
|
+
|
|
546
|
+
# same method for inverse ideals
|
|
547
|
+
|
|
548
|
+
InstallMethod(Idempotents,
|
|
549
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
550
|
+
[IsInverseActingRepGreensClass and IsGreensDClass],
|
|
551
|
+
function(D)
|
|
552
|
+
local S, creator, o;
|
|
553
|
+
S := Parent(D);
|
|
554
|
+
creator := IdempotentCreator(Parent(D));
|
|
555
|
+
o := LambdaOrb(D);
|
|
556
|
+
return List(LambdaOrbSCC(D),
|
|
557
|
+
x -> ConvertToExternalElement(S, creator(o[x], o[x])));
|
|
558
|
+
end);
|
|
559
|
+
|
|
560
|
+
# same method for inverse ideals
|
|
561
|
+
|
|
562
|
+
InstallMethod(Idempotents,
|
|
563
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
564
|
+
[IsInverseActingRepGreensClass and IsGreensLClass],
|
|
565
|
+
L -> [RightOne(Representative(L))]);
|
|
566
|
+
|
|
567
|
+
# same method for inverse ideals
|
|
568
|
+
|
|
569
|
+
InstallMethod(Idempotents,
|
|
570
|
+
"for an R-class of an inverse acting semigroup rep",
|
|
571
|
+
[IsInverseActingRepGreensClass and IsGreensRClass],
|
|
572
|
+
R -> [LeftOne(Representative(R))]);
|
|
573
|
+
|
|
574
|
+
# Number of idempotents . . .
|
|
575
|
+
|
|
576
|
+
# same method for inverse ideals
|
|
577
|
+
|
|
578
|
+
InstallMethod(NrIdempotents, "for an acting inverse semigroup rep",
|
|
579
|
+
[IsInverseActingSemigroupRep],
|
|
580
|
+
S -> Length(Enumerate(LambdaOrb(S))) - 1);
|
|
581
|
+
|
|
582
|
+
# same method for inverse ideals
|
|
583
|
+
|
|
584
|
+
InstallMethod(NrIdempotents,
|
|
585
|
+
"for a D-class of an inverse acting semigroup rep",
|
|
586
|
+
[IsInverseActingRepGreensClass and IsGreensDClass], NrLClasses);
|
|
587
|
+
|
|
588
|
+
# same method for inverse ideals
|
|
589
|
+
|
|
590
|
+
InstallMethod(NrIdempotents,
|
|
591
|
+
"for an L-class of an inverse acting semigroup rep",
|
|
592
|
+
[IsInverseActingRepGreensClass and IsGreensLClass], L -> 1);
|
|
593
|
+
|
|
594
|
+
# same method for inverse ideals
|
|
595
|
+
|
|
596
|
+
InstallMethod(NrIdempotents,
|
|
597
|
+
"for an R-class of an inverse acting semigroup rep",
|
|
598
|
+
[IsInverseActingRepGreensClass and IsGreensRClass], R -> 1);
|
|
599
|
+
|
|
600
|
+
#############################################################################
|
|
601
|
+
## 5. Iterators and enumerators . . .
|
|
602
|
+
#############################################################################
|
|
603
|
+
|
|
604
|
+
########################################################################
|
|
605
|
+
# 5.a. for all classes
|
|
606
|
+
########################################################################
|
|
607
|
+
|
|
608
|
+
InstallMethod(IteratorOfRClassReps, "for acting inverse semigroup rep",
|
|
609
|
+
[IsInverseActingSemigroupRep],
|
|
610
|
+
function(S)
|
|
611
|
+
local record, unwrap, o;
|
|
612
|
+
|
|
613
|
+
if HasRClassReps(S) then
|
|
614
|
+
return IteratorList(RClassReps(S));
|
|
615
|
+
fi;
|
|
616
|
+
|
|
617
|
+
record := rec();
|
|
618
|
+
record.parent := S;
|
|
619
|
+
|
|
620
|
+
unwrap := function(iter, i)
|
|
621
|
+
local S, o, rep, pos, mult;
|
|
622
|
+
S := iter!.parent;
|
|
623
|
+
o := LambdaOrb(S);
|
|
624
|
+
# <rep> has rho val corresponding to <i>
|
|
625
|
+
rep := Inverse(EvaluateWord(o, TraceSchreierTreeForward(o, i)));
|
|
626
|
+
|
|
627
|
+
# rectify the lambda value of <rep>
|
|
628
|
+
pos := Position(o, LambdaFunc(S)(rep));
|
|
629
|
+
mult := LambdaOrbMult(o, OrbSCCLookup(o)[i], pos)[2];
|
|
630
|
+
return ConvertToExternalElement(S, rep * mult);
|
|
631
|
+
end;
|
|
632
|
+
o := Enumerate(LambdaOrb(S));
|
|
633
|
+
return WrappedIterator(IteratorList([2 .. Length(o)]), unwrap, record);
|
|
634
|
+
end);
|
|
635
|
+
|
|
636
|
+
########################################################################
|
|
637
|
+
# 5.b. for individual classes
|
|
638
|
+
########################################################################
|
|
639
|
+
|
|
640
|
+
# Notes: the only purpose for this is the method for NumberElement. Otherwise
|
|
641
|
+
# use (if nothing much is known) IteratorOfRClasses or if everything is know
|
|
642
|
+
# just use RClasses.
|
|
643
|
+
|
|
644
|
+
InstallMethod(Enumerator, "for L-class of an inverse acting semigroup rep",
|
|
645
|
+
[IsGreensLClass and IsInverseActingRepGreensClass],
|
|
646
|
+
function(L)
|
|
647
|
+
local convert_out, convert_in, scc, enum;
|
|
648
|
+
|
|
649
|
+
convert_out := function(enum, tuple)
|
|
650
|
+
local L, S, act, result;
|
|
651
|
+
|
|
652
|
+
if tuple = fail then
|
|
653
|
+
return fail;
|
|
654
|
+
fi;
|
|
655
|
+
L := enum!.parent;
|
|
656
|
+
S := Parent(L);
|
|
657
|
+
act := StabilizerAction(S);
|
|
658
|
+
|
|
659
|
+
result := act(LambdaOrbMult(LambdaOrb(L),
|
|
660
|
+
LambdaOrbSCCIndex(L),
|
|
661
|
+
tuple[1])[2] * L!.rep,
|
|
662
|
+
tuple[2]);
|
|
663
|
+
return ConvertToExternalElement(S, result);
|
|
664
|
+
end;
|
|
665
|
+
|
|
666
|
+
convert_in := function(enum, elt)
|
|
667
|
+
local L, S, i, f;
|
|
668
|
+
|
|
669
|
+
L := enum!.parent;
|
|
670
|
+
S := Parent(L);
|
|
671
|
+
elt := ConvertToInternalElement(S, elt);
|
|
672
|
+
|
|
673
|
+
if LambdaFunc(S)(elt) <> LambdaFunc(S)(Representative(L)) then
|
|
674
|
+
return fail;
|
|
675
|
+
fi;
|
|
676
|
+
|
|
677
|
+
i := Position(LambdaOrb(L), RhoFunc(S)(elt));
|
|
678
|
+
if i = fail or OrbSCCLookup(LambdaOrb(L))[i] <> LambdaOrbSCCIndex(L) then
|
|
679
|
+
return fail;
|
|
680
|
+
fi;
|
|
681
|
+
|
|
682
|
+
f := LambdaOrbMult(LambdaOrb(L), LambdaOrbSCCIndex(L), i)[1] * elt;
|
|
683
|
+
|
|
684
|
+
return [i, LambdaPerm(S)(L!.rep, f)];
|
|
685
|
+
end;
|
|
686
|
+
|
|
687
|
+
scc := OrbSCC(LambdaOrb(L))[LambdaOrbSCCIndex(L)];
|
|
688
|
+
enum := EnumeratorOfCartesianProduct(scc, SchutzenbergerGroup(L));
|
|
689
|
+
return WrappedEnumerator(L, enum, convert_out, convert_in);
|
|
690
|
+
end);
|
|
691
|
+
|
|
692
|
+
InstallMethod(Enumerator, "for a D-class of an inverse acting semigroup",
|
|
693
|
+
[IsGreensDClass and IsInverseActingRepGreensClass],
|
|
694
|
+
function(D)
|
|
695
|
+
local convert_out, convert_in, o, scc, enum;
|
|
696
|
+
|
|
697
|
+
convert_out := function(enum, tuple)
|
|
698
|
+
local D, S, act, result;
|
|
699
|
+
|
|
700
|
+
if tuple = fail then
|
|
701
|
+
return fail;
|
|
702
|
+
fi;
|
|
703
|
+
D := enum!.parent;
|
|
704
|
+
S := Parent(D);
|
|
705
|
+
act := StabilizerAction(S);
|
|
706
|
+
result := act(LambdaOrbMult(LambdaOrb(D),
|
|
707
|
+
LambdaOrbSCCIndex(D),
|
|
708
|
+
tuple[1])[2] * D!.rep,
|
|
709
|
+
tuple[2]);
|
|
710
|
+
result := result * LambdaOrbMult(LambdaOrb(D),
|
|
711
|
+
LambdaOrbSCCIndex(D),
|
|
712
|
+
tuple[3])[1];
|
|
713
|
+
return ConvertToExternalElement(S, result);
|
|
714
|
+
end;
|
|
715
|
+
|
|
716
|
+
convert_in := function(enum, elt)
|
|
717
|
+
local D, S, k, l, f;
|
|
718
|
+
|
|
719
|
+
D := enum!.parent;
|
|
720
|
+
S := Parent(D);
|
|
721
|
+
elt := ConvertToInternalElement(S, elt);
|
|
722
|
+
|
|
723
|
+
k := Position(LambdaOrb(D), RhoFunc(S)(elt));
|
|
724
|
+
if k = fail or OrbSCCLookup(LambdaOrb(D))[k] <> LambdaOrbSCCIndex(D) then
|
|
725
|
+
return fail;
|
|
726
|
+
fi;
|
|
727
|
+
l := Position(LambdaOrb(D), LambdaFunc(S)(elt));
|
|
728
|
+
if l = fail or OrbSCCLookup(LambdaOrb(D))[l] <> LambdaOrbSCCIndex(D) then
|
|
729
|
+
return fail;
|
|
730
|
+
fi;
|
|
731
|
+
|
|
732
|
+
f := LambdaOrbMult(LambdaOrb(D), LambdaOrbSCCIndex(D), k)[1] * elt
|
|
733
|
+
* LambdaOrbMult(LambdaOrb(D), LambdaOrbSCCIndex(D), l)[2];
|
|
734
|
+
|
|
735
|
+
return [k, LambdaPerm(S)(D!.rep, f), l];
|
|
736
|
+
end;
|
|
737
|
+
|
|
738
|
+
o := Enumerate(LambdaOrb(D));
|
|
739
|
+
scc := OrbSCC(o)[LambdaOrbSCCIndex(D)];
|
|
740
|
+
enum := EnumeratorOfCartesianProduct(scc, SchutzenbergerGroup(D), scc);
|
|
741
|
+
|
|
742
|
+
return WrappedEnumerator(D, enum, convert_out, convert_in);
|
|
743
|
+
end);
|
|
744
|
+
|
|
745
|
+
InstallMethod(Iterator, "for an L-class of an inverse acting semigroup",
|
|
746
|
+
[IsInverseActingRepGreensClass and IsGreensLClass],
|
|
747
|
+
function(L)
|
|
748
|
+
local m, iter, unwrap, record;
|
|
749
|
+
|
|
750
|
+
if HasAsSSortedList(L) then
|
|
751
|
+
return IteratorList(AsSSortedList(L));
|
|
752
|
+
fi;
|
|
753
|
+
|
|
754
|
+
m := LambdaOrbSCCIndex(L);
|
|
755
|
+
iter := IteratorOfCartesianProduct(OrbSCC(LambdaOrb(L))[m],
|
|
756
|
+
Enumerator(SchutzenbergerGroup(L)));
|
|
757
|
+
|
|
758
|
+
unwrap := function(iter, x)
|
|
759
|
+
local L, S, result;
|
|
760
|
+
L := iter!.parent;
|
|
761
|
+
S := Parent(L);
|
|
762
|
+
result := StabilizerAction(S)(LambdaOrbMult(LambdaOrb(L),
|
|
763
|
+
LambdaOrbSCCIndex(L),
|
|
764
|
+
x[1])[2]
|
|
765
|
+
* L!.rep,
|
|
766
|
+
x[2]);
|
|
767
|
+
return ConvertToExternalElement(S, result);
|
|
768
|
+
end;
|
|
769
|
+
|
|
770
|
+
record := rec();
|
|
771
|
+
record.parent := L;
|
|
772
|
+
|
|
773
|
+
return WrappedIterator(iter, unwrap, record);
|
|
774
|
+
end);
|