passagemath-gap-pkg-semigroups 10.6.30__cp311-cp311-macosx_13_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-semigroups might be problematic. Click here for more details.
- gap/pkg/semigroups/CHANGELOG.md +1699 -0
- gap/pkg/semigroups/CONTRIBUTING.md +91 -0
- gap/pkg/semigroups/GNUmakefile +110 -0
- gap/pkg/semigroups/GNUmakefile.in +110 -0
- gap/pkg/semigroups/GPL +674 -0
- gap/pkg/semigroups/LICENSE +16 -0
- gap/pkg/semigroups/Makefile +26 -0
- gap/pkg/semigroups/Makefile.gappkg +225 -0
- gap/pkg/semigroups/PackageInfo.g +529 -0
- gap/pkg/semigroups/README.md +102 -0
- gap/pkg/semigroups/VERSIONS +112 -0
- gap/pkg/semigroups/aclocal.m4 +375 -0
- gap/pkg/semigroups/autogen.sh +25 -0
- gap/pkg/semigroups/bin/aarch64-apple-darwin23-default64-kv10/semigroups.so +0 -0
- gap/pkg/semigroups/config.guess +1807 -0
- gap/pkg/semigroups/config.log +1158 -0
- gap/pkg/semigroups/config.status +1131 -0
- gap/pkg/semigroups/config.sub +1960 -0
- gap/pkg/semigroups/configure +9742 -0
- gap/pkg/semigroups/configure.ac +71 -0
- gap/pkg/semigroups/data/doc/greens.pickle +1 -0
- gap/pkg/semigroups/data/gens/fullbool-8.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/fullbool.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/hall.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex-6.pickle.gz +0 -0
- gap/pkg/semigroups/data/gens/reflex.pickle.gz +0 -0
- gap/pkg/semigroups/data/tst/bipart4 +10 -0
- gap/pkg/semigroups/data/tst/pperm10 +1 -0
- gap/pkg/semigroups/data/tst/tables.gz +0 -0
- gap/pkg/semigroups/data/tst/testdata +1 -0
- gap/pkg/semigroups/data/tst/testinstall.pickle +1 -0
- gap/pkg/semigroups/data/tst/trans3 +7 -0
- gap/pkg/semigroups/data/tst/trans3-old +7 -0
- gap/pkg/semigroups/environment.yml +7 -0
- gap/pkg/semigroups/gap/attributes/acting.gd +15 -0
- gap/pkg/semigroups/gap/attributes/acting.gi +297 -0
- gap/pkg/semigroups/gap/attributes/attr.gd +91 -0
- gap/pkg/semigroups/gap/attributes/attr.gi +1214 -0
- gap/pkg/semigroups/gap/attributes/dual.gd +25 -0
- gap/pkg/semigroups/gap/attributes/dual.gi +209 -0
- gap/pkg/semigroups/gap/attributes/factor.gd +17 -0
- gap/pkg/semigroups/gap/attributes/factor.gi +453 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gd +84 -0
- gap/pkg/semigroups/gap/attributes/homomorph.gi +591 -0
- gap/pkg/semigroups/gap/attributes/inverse.gd +38 -0
- gap/pkg/semigroups/gap/attributes/inverse.gi +708 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gd +16 -0
- gap/pkg/semigroups/gap/attributes/isomorph.gi +377 -0
- gap/pkg/semigroups/gap/attributes/isorms.gd +49 -0
- gap/pkg/semigroups/gap/attributes/isorms.gi +1383 -0
- gap/pkg/semigroups/gap/attributes/maximal.gd +16 -0
- gap/pkg/semigroups/gap/attributes/maximal.gi +1876 -0
- gap/pkg/semigroups/gap/attributes/properties.gd +109 -0
- gap/pkg/semigroups/gap/attributes/properties.gi +1658 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gd +39 -0
- gap/pkg/semigroups/gap/attributes/rms-translat.gi +1078 -0
- gap/pkg/semigroups/gap/attributes/semifp.gd +12 -0
- gap/pkg/semigroups/gap/attributes/semifp.gi +84 -0
- gap/pkg/semigroups/gap/attributes/translat.gd +474 -0
- gap/pkg/semigroups/gap/attributes/translat.gi +1779 -0
- gap/pkg/semigroups/gap/congruences/cong.gd +154 -0
- gap/pkg/semigroups/gap/congruences/cong.gi +351 -0
- gap/pkg/semigroups/gap/congruences/conginv.gd +38 -0
- gap/pkg/semigroups/gap/congruences/conginv.gi +589 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gd +101 -0
- gap/pkg/semigroups/gap/congruences/conglatt.gi +886 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congpairs.gi +272 -0
- gap/pkg/semigroups/gap/congruences/congpart.gd +90 -0
- gap/pkg/semigroups/gap/congruences/congpart.gi +449 -0
- gap/pkg/semigroups/gap/congruences/congrees.gd +20 -0
- gap/pkg/semigroups/gap/congruences/congrees.gi +313 -0
- gap/pkg/semigroups/gap/congruences/congrms.gd +54 -0
- gap/pkg/semigroups/gap/congruences/congrms.gi +1467 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gd +28 -0
- gap/pkg/semigroups/gap/congruences/congsemigraph.gi +289 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gd +27 -0
- gap/pkg/semigroups/gap/congruences/congsimple.gi +236 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gd +20 -0
- gap/pkg/semigroups/gap/congruences/conguniv.gi +271 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gd +21 -0
- gap/pkg/semigroups/gap/congruences/congwordgraph.gi +250 -0
- gap/pkg/semigroups/gap/elements/bipart.gd +71 -0
- gap/pkg/semigroups/gap/elements/bipart.gi +995 -0
- gap/pkg/semigroups/gap/elements/blocks.gd +31 -0
- gap/pkg/semigroups/gap/elements/blocks.gi +134 -0
- gap/pkg/semigroups/gap/elements/boolmat.gd +74 -0
- gap/pkg/semigroups/gap/elements/boolmat.gi +726 -0
- gap/pkg/semigroups/gap/elements/elements.gd +11 -0
- gap/pkg/semigroups/gap/elements/elements.gi +121 -0
- gap/pkg/semigroups/gap/elements/ffmat.gd +71 -0
- gap/pkg/semigroups/gap/elements/ffmat.gi +311 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gd +131 -0
- gap/pkg/semigroups/gap/elements/maxplusmat.gi +782 -0
- gap/pkg/semigroups/gap/elements/pbr.gd +51 -0
- gap/pkg/semigroups/gap/elements/pbr.gi +740 -0
- gap/pkg/semigroups/gap/elements/pperm.gd +11 -0
- gap/pkg/semigroups/gap/elements/pperm.gi +14 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gd +136 -0
- gap/pkg/semigroups/gap/elements/semiringmat.gi +717 -0
- gap/pkg/semigroups/gap/elements/star.gd +21 -0
- gap/pkg/semigroups/gap/elements/star.gi +21 -0
- gap/pkg/semigroups/gap/elements/trans.gd +13 -0
- gap/pkg/semigroups/gap/elements/trans.gi +50 -0
- gap/pkg/semigroups/gap/fp/freeband.gd +22 -0
- gap/pkg/semigroups/gap/fp/freeband.gi +502 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gd +30 -0
- gap/pkg/semigroups/gap/fp/freeinverse.gi +465 -0
- gap/pkg/semigroups/gap/fp/tietze.gd +89 -0
- gap/pkg/semigroups/gap/fp/tietze.gi +1578 -0
- gap/pkg/semigroups/gap/fp/word.gd +15 -0
- gap/pkg/semigroups/gap/fp/word.gi +67 -0
- gap/pkg/semigroups/gap/greens/acting-inverse.gi +774 -0
- gap/pkg/semigroups/gap/greens/acting-regular.gi +553 -0
- gap/pkg/semigroups/gap/greens/acting.gd +81 -0
- gap/pkg/semigroups/gap/greens/acting.gi +2433 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gd +25 -0
- gap/pkg/semigroups/gap/greens/froidure-pin.gi +741 -0
- gap/pkg/semigroups/gap/greens/generic.gd +117 -0
- gap/pkg/semigroups/gap/greens/generic.gi +630 -0
- gap/pkg/semigroups/gap/ideals/acting.gd +17 -0
- gap/pkg/semigroups/gap/ideals/acting.gi +1155 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gd +11 -0
- gap/pkg/semigroups/gap/ideals/froidure-pin.gi +105 -0
- gap/pkg/semigroups/gap/ideals/ideals.gd +45 -0
- gap/pkg/semigroups/gap/ideals/ideals.gi +442 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gd +16 -0
- gap/pkg/semigroups/gap/ideals/lambda-rho.gi +614 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gd +24 -0
- gap/pkg/semigroups/gap/libsemigroups/cong.gi +431 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gd +16 -0
- gap/pkg/semigroups/gap/libsemigroups/fpsemi.gi +53 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gd +17 -0
- gap/pkg/semigroups/gap/libsemigroups/froidure-pin.gi +945 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gd +38 -0
- gap/pkg/semigroups/gap/libsemigroups/sims1.gi +308 -0
- gap/pkg/semigroups/gap/main/acting.gd +36 -0
- gap/pkg/semigroups/gap/main/acting.gi +779 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gd +72 -0
- gap/pkg/semigroups/gap/main/froidure-pin.gi +655 -0
- gap/pkg/semigroups/gap/main/graded.gd +26 -0
- gap/pkg/semigroups/gap/main/graded.gi +355 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gd +29 -0
- gap/pkg/semigroups/gap/main/lambda-rho.gi +514 -0
- gap/pkg/semigroups/gap/main/orbits.gd +24 -0
- gap/pkg/semigroups/gap/main/orbits.gi +512 -0
- gap/pkg/semigroups/gap/main/semiact.gd +20 -0
- gap/pkg/semigroups/gap/main/semiact.gi +821 -0
- gap/pkg/semigroups/gap/main/setup.gd +61 -0
- gap/pkg/semigroups/gap/main/setup.gi +1094 -0
- gap/pkg/semigroups/gap/obsolete.gd +9 -0
- gap/pkg/semigroups/gap/obsolete.gi +14 -0
- gap/pkg/semigroups/gap/options.g +55 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gd +12 -0
- gap/pkg/semigroups/gap/semigroups/grpperm.gi +177 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semibipart.gi +570 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gd +20 -0
- gap/pkg/semigroups/gap/semigroups/semiboolmat.gi +104 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gd +52 -0
- gap/pkg/semigroups/gap/semigroups/semicons.gi +1194 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semidp.gi +509 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gd +126 -0
- gap/pkg/semigroups/gap/semigroups/semieunit.gi +889 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gd +104 -0
- gap/pkg/semigroups/gap/semigroups/semiex.gi +1590 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gd +37 -0
- gap/pkg/semigroups/gap/semigroups/semiffmat.gi +565 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gd +28 -0
- gap/pkg/semigroups/gap/semigroups/semifp.gi +1364 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gd +40 -0
- gap/pkg/semigroups/gap/semigroups/semigraph.gi +292 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gd +165 -0
- gap/pkg/semigroups/gap/semigroups/semigrp.gi +1225 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gd +72 -0
- gap/pkg/semigroups/gap/semigroups/semimaxplus.gi +710 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gd +13 -0
- gap/pkg/semigroups/gap/semigroups/semintmat.gi +74 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semipbr.gi +139 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gd +27 -0
- gap/pkg/semigroups/gap/semigroups/semipperm.gi +711 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gd +14 -0
- gap/pkg/semigroups/gap/semigroups/semiquo.gi +97 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gd +16 -0
- gap/pkg/semigroups/gap/semigroups/semiringmat.gi +21 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gd +19 -0
- gap/pkg/semigroups/gap/semigroups/semirms.gi +977 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gd +49 -0
- gap/pkg/semigroups/gap/semigroups/semitrans.gi +909 -0
- gap/pkg/semigroups/gap/tools/display.gd +24 -0
- gap/pkg/semigroups/gap/tools/display.gi +749 -0
- gap/pkg/semigroups/gap/tools/io.gd +17 -0
- gap/pkg/semigroups/gap/tools/io.gi +543 -0
- gap/pkg/semigroups/gap/tools/iterators.gd +16 -0
- gap/pkg/semigroups/gap/tools/iterators.gi +253 -0
- gap/pkg/semigroups/gap/tools/utils.gd +19 -0
- gap/pkg/semigroups/gap/tools/utils.gi +756 -0
- gap/pkg/semigroups/gapbind14/.ccls +18 -0
- gap/pkg/semigroups/gapbind14/.clang-format +104 -0
- gap/pkg/semigroups/gapbind14/CPPLINT.cfg +5 -0
- gap/pkg/semigroups/gapbind14/LICENSE +674 -0
- gap/pkg/semigroups/gapbind14/README.md +76 -0
- gap/pkg/semigroups/gapbind14/demo/.gitignore +4 -0
- gap/pkg/semigroups/gapbind14/demo/LICENSE +293 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.gappkg +220 -0
- gap/pkg/semigroups/gapbind14/demo/Makefile.in +19 -0
- gap/pkg/semigroups/gapbind14/demo/PackageInfo.g +87 -0
- gap/pkg/semigroups/gapbind14/demo/README.md +17 -0
- gap/pkg/semigroups/gapbind14/demo/configure +34 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gd +19 -0
- gap/pkg/semigroups/gapbind14/demo/gap/gapbind_demo.gi +10 -0
- gap/pkg/semigroups/gapbind14/demo/init.g +16 -0
- gap/pkg/semigroups/gapbind14/demo/makedoc.g +10 -0
- gap/pkg/semigroups/gapbind14/demo/read.g +6 -0
- gap/pkg/semigroups/gapbind14/demo/src/gapbind_demo.cc +142 -0
- gap/pkg/semigroups/gapbind14/demo/tst/testall.g +12 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/cpp_fn.hpp +223 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gap_include.hpp +26 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/gapbind14.hpp +445 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_free_fn.hpp +420 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/tame_mem_fn.hpp +556 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_cpp.hpp +162 -0
- gap/pkg/semigroups/gapbind14/include/gapbind14/to_gap.hpp +158 -0
- gap/pkg/semigroups/gapbind14/src/.clang-format +108 -0
- gap/pkg/semigroups/gapbind14/src/gapbind14.cpp +334 -0
- gap/pkg/semigroups/init.g +150 -0
- gap/pkg/semigroups/m4/ax_append_flag.m4 +50 -0
- gap/pkg/semigroups/m4/ax_check_compile_flag.m4 +53 -0
- gap/pkg/semigroups/m4/ax_check_hpcombi.m4 +121 -0
- gap/pkg/semigroups/m4/ax_check_libsemigroup.m4 +68 -0
- gap/pkg/semigroups/m4/ax_compare_version.m4 +177 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx.m4 +1009 -0
- gap/pkg/semigroups/m4/ax_cxx_compile_stdcxx_14.m4 +34 -0
- gap/pkg/semigroups/m4/ax_prefix_config_h.m4 +203 -0
- gap/pkg/semigroups/m4/ax_pthread.m4 +522 -0
- gap/pkg/semigroups/m4/find_gap.m4 +94 -0
- gap/pkg/semigroups/makedoc.g +153 -0
- gap/pkg/semigroups/prerequisites.sh +62 -0
- gap/pkg/semigroups/read.g +105 -0
- gap/pkg/semigroups/release.toml +6 -0
- gap/pkg/semigroups/tst/extreme/README +2 -0
- gap/pkg/semigroups/tst/extreme/attrinv.tst +703 -0
- gap/pkg/semigroups/tst/extreme/bipart.tst +2803 -0
- gap/pkg/semigroups/tst/extreme/closure.tst +652 -0
- gap/pkg/semigroups/tst/extreme/cong.tst +286 -0
- gap/pkg/semigroups/tst/extreme/conginv.tst +43 -0
- gap/pkg/semigroups/tst/extreme/examples.tst +2449 -0
- gap/pkg/semigroups/tst/extreme/freeband.tst +37 -0
- gap/pkg/semigroups/tst/extreme/greens-acting-regular.tst +27 -0
- gap/pkg/semigroups/tst/extreme/greens-acting.tst +1999 -0
- gap/pkg/semigroups/tst/extreme/ideals.tst +858 -0
- gap/pkg/semigroups/tst/extreme/inverse.tst +1025 -0
- gap/pkg/semigroups/tst/extreme/maximal.tst +856 -0
- gap/pkg/semigroups/tst/extreme/misc.tst +4236 -0
- gap/pkg/semigroups/tst/extreme/monoid_pkg.tst +1488 -0
- gap/pkg/semigroups/tst/extreme/properties.tst +914 -0
- gap/pkg/semigroups/tst/extreme/semibipart.tst +2837 -0
- gap/pkg/semigroups/tst/extreme/semieunit.tst +49 -0
- gap/pkg/semigroups/tst/extreme/semiffmat.tst +353 -0
- gap/pkg/semigroups/tst/extreme/semigroups.tst +245 -0
- gap/pkg/semigroups/tst/extreme/semiiter.tst +58 -0
- gap/pkg/semigroups/tst/extreme/semirms.tst +1091 -0
- gap/pkg/semigroups/tst/extreme/transform.tst +305 -0
- gap/pkg/semigroups/tst/extreme/translat.tst +44 -0
- gap/pkg/semigroups/tst/standard/README +2 -0
- gap/pkg/semigroups/tst/standard/attributes/acting.tst +388 -0
- gap/pkg/semigroups/tst/standard/attributes/attr.tst +2404 -0
- gap/pkg/semigroups/tst/standard/attributes/dual.tst +308 -0
- gap/pkg/semigroups/tst/standard/attributes/factor.tst +629 -0
- gap/pkg/semigroups/tst/standard/attributes/homomorph.tst +1134 -0
- gap/pkg/semigroups/tst/standard/attributes/inverse.tst +1521 -0
- gap/pkg/semigroups/tst/standard/attributes/isomorph.tst +435 -0
- gap/pkg/semigroups/tst/standard/attributes/isorms.tst +1147 -0
- gap/pkg/semigroups/tst/standard/attributes/maximal.tst +853 -0
- gap/pkg/semigroups/tst/standard/attributes/properties.tst +2028 -0
- gap/pkg/semigroups/tst/standard/attributes/semifp.tst +53 -0
- gap/pkg/semigroups/tst/standard/attributes/translat.tst +796 -0
- gap/pkg/semigroups/tst/standard/congruences/cong.tst +1044 -0
- gap/pkg/semigroups/tst/standard/congruences/conginv.tst +292 -0
- gap/pkg/semigroups/tst/standard/congruences/conglatt.tst +421 -0
- gap/pkg/semigroups/tst/standard/congruences/congpairs.tst +1011 -0
- gap/pkg/semigroups/tst/standard/congruences/congrees.tst +288 -0
- gap/pkg/semigroups/tst/standard/congruences/congrms.tst +701 -0
- gap/pkg/semigroups/tst/standard/congruences/congsemigraph.tst +422 -0
- gap/pkg/semigroups/tst/standard/congruences/congsimple.tst +311 -0
- gap/pkg/semigroups/tst/standard/congruences/conguniv.tst +259 -0
- gap/pkg/semigroups/tst/standard/congruences/congwordgraph.tst +330 -0
- gap/pkg/semigroups/tst/standard/elements/bipart.tst +783 -0
- gap/pkg/semigroups/tst/standard/elements/blocks.tst +166 -0
- gap/pkg/semigroups/tst/standard/elements/boolmat.tst +608 -0
- gap/pkg/semigroups/tst/standard/elements/elements.tst +117 -0
- gap/pkg/semigroups/tst/standard/elements/ffmat.tst +349 -0
- gap/pkg/semigroups/tst/standard/elements/maxplusmat.tst +613 -0
- gap/pkg/semigroups/tst/standard/elements/pbr.tst +506 -0
- gap/pkg/semigroups/tst/standard/elements/pperm.tst +32 -0
- gap/pkg/semigroups/tst/standard/elements/semiringmat.tst +601 -0
- gap/pkg/semigroups/tst/standard/elements/trans.tst +58 -0
- gap/pkg/semigroups/tst/standard/fp/freeband.tst +311 -0
- gap/pkg/semigroups/tst/standard/fp/freeinverse.tst +147 -0
- gap/pkg/semigroups/tst/standard/fp/tietze.tst +780 -0
- gap/pkg/semigroups/tst/standard/fp/word.tst +106 -0
- gap/pkg/semigroups/tst/standard/greens/acting-inverse.tst +545 -0
- gap/pkg/semigroups/tst/standard/greens/acting-regular.tst +396 -0
- gap/pkg/semigroups/tst/standard/greens/acting.tst +2033 -0
- gap/pkg/semigroups/tst/standard/greens/froidure-pin.tst +1831 -0
- gap/pkg/semigroups/tst/standard/greens/generic.tst +1436 -0
- gap/pkg/semigroups/tst/standard/ideals/acting.tst +279 -0
- gap/pkg/semigroups/tst/standard/ideals/froidure-pin.tst +178 -0
- gap/pkg/semigroups/tst/standard/ideals/ideals.tst +380 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/cong.tst +310 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/froidure-pin.tst +778 -0
- gap/pkg/semigroups/tst/standard/libsemigroups/sims1.tst +379 -0
- gap/pkg/semigroups/tst/standard/main/acting.tst +411 -0
- gap/pkg/semigroups/tst/standard/main/froidure-pin.tst +392 -0
- gap/pkg/semigroups/tst/standard/main/semiact.tst +203 -0
- gap/pkg/semigroups/tst/standard/main/setup.tst +1144 -0
- gap/pkg/semigroups/tst/standard/obsolete.tst +19 -0
- gap/pkg/semigroups/tst/standard/options.tst +54 -0
- gap/pkg/semigroups/tst/standard/semigroups/grpperm.tst +581 -0
- gap/pkg/semigroups/tst/standard/semigroups/semibipart.tst +2635 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiboolmat.tst +1871 -0
- gap/pkg/semigroups/tst/standard/semigroups/semicons.tst +1173 -0
- gap/pkg/semigroups/tst/standard/semigroups/semidp.tst +739 -0
- gap/pkg/semigroups/tst/standard/semigroups/semieunit.tst +339 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiex.tst +2055 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiffmat.tst +746 -0
- gap/pkg/semigroups/tst/standard/semigroups/semifp.tst +2702 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigraph.tst +133 -0
- gap/pkg/semigroups/tst/standard/semigroups/semigrp.tst +1112 -0
- gap/pkg/semigroups/tst/standard/semigroups/semimaxplus.tst +654 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipbr.tst +2142 -0
- gap/pkg/semigroups/tst/standard/semigroups/semipperm.tst +2169 -0
- gap/pkg/semigroups/tst/standard/semigroups/semiquo.tst +278 -0
- gap/pkg/semigroups/tst/standard/semigroups/semirms.tst +3010 -0
- gap/pkg/semigroups/tst/standard/semigroups/semitrans.tst +2758 -0
- gap/pkg/semigroups/tst/standard/tools/display.tst +1040 -0
- gap/pkg/semigroups/tst/standard/tools/io.tst +363 -0
- gap/pkg/semigroups/tst/testinstall.tst +1815 -0
- gap/pkg/semigroups/tst/teststandard.g +22 -0
- gap/pkg/semigroups/tst/workspaces/load-workspace.tst +142 -0
- gap/pkg/semigroups/tst/workspaces/load.g +11 -0
- gap/pkg/semigroups/tst/workspaces/save-workspace.tst +166 -0
- gap/pkg/semigroups/tst/workspaces/save.g +14 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA +93 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/RECORD +354 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/WHEEL +6 -0
- passagemath_gap_pkg_semigroups-10.6.30.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_semigroups.dylibs/libsemigroups.2.dylib +0 -0
- sage/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/all__sagemath_gap_pkg_semigroups.py +1 -0
- sage/libs/gap_pkg_semigroups.cpython-311-darwin.so +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
## congruences/congpairs.gd
|
|
4
|
+
## Copyright (C) 2015-2022 Michael C. Young
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
##
|
|
10
|
+
## This file contains functions for any semigroup congruence with generating
|
|
11
|
+
## pairs; regardless of representation.
|
|
12
|
+
|
|
13
|
+
DeclareAttribute("GeneratingPairsOfLeftRightOrTwoSidedCongruence",
|
|
14
|
+
IsLeftRightOrTwoSidedCongruence);
|
|
15
|
+
|
|
16
|
+
DeclareOperation("AsSemigroupCongruenceByGeneratingPairs",
|
|
17
|
+
[IsSemigroupCongruence]);
|
|
18
|
+
DeclareOperation("AsRightSemigroupCongruenceByGeneratingPairs",
|
|
19
|
+
[IsRightSemigroupCongruence]);
|
|
20
|
+
DeclareOperation("AsLeftSemigroupCongruenceByGeneratingPairs",
|
|
21
|
+
[IsLeftSemigroupCongruence]);
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
## congruences/congpairs.gi
|
|
4
|
+
## Copyright (C) 2015-2022 Michael C. Young
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
#############################################################################
|
|
9
|
+
|
|
10
|
+
#############################################################################
|
|
11
|
+
## This file contains functions for any congruence of a semigroup with
|
|
12
|
+
## generating pairs, regardless of representation.
|
|
13
|
+
#############################################################################
|
|
14
|
+
|
|
15
|
+
InstallImmediateMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
16
|
+
IsMagmaCongruence and IsSemigroupCongruence
|
|
17
|
+
and HasGeneratingPairsOfMagmaCongruence,
|
|
18
|
+
0,
|
|
19
|
+
GeneratingPairsOfMagmaCongruence);
|
|
20
|
+
|
|
21
|
+
InstallImmediateMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
22
|
+
IsLeftMagmaCongruence and IsLeftSemigroupCongruence
|
|
23
|
+
and HasGeneratingPairsOfLeftMagmaCongruence,
|
|
24
|
+
0,
|
|
25
|
+
GeneratingPairsOfLeftMagmaCongruence);
|
|
26
|
+
|
|
27
|
+
InstallImmediateMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
28
|
+
IsRightMagmaCongruence and IsRightSemigroupCongruence
|
|
29
|
+
and HasGeneratingPairsOfRightMagmaCongruence,
|
|
30
|
+
0,
|
|
31
|
+
GeneratingPairsOfRightMagmaCongruence);
|
|
32
|
+
|
|
33
|
+
BindGlobal("SEMIGROUPS_ImmediateNoGeneratingPairs",
|
|
34
|
+
function(C)
|
|
35
|
+
if IsEmpty(GeneratingPairsOfMagmaCongruence(C)) then
|
|
36
|
+
return [];
|
|
37
|
+
fi;
|
|
38
|
+
TryNextMethod();
|
|
39
|
+
end);
|
|
40
|
+
|
|
41
|
+
InstallImmediateMethod(GeneratingPairsOfLeftMagmaCongruence,
|
|
42
|
+
IsMagmaCongruence and IsSemigroupCongruence
|
|
43
|
+
and HasGeneratingPairsOfMagmaCongruence,
|
|
44
|
+
0,
|
|
45
|
+
SEMIGROUPS_ImmediateNoGeneratingPairs);
|
|
46
|
+
|
|
47
|
+
InstallImmediateMethod(GeneratingPairsOfRightMagmaCongruence,
|
|
48
|
+
IsMagmaCongruence and IsSemigroupCongruence
|
|
49
|
+
and HasGeneratingPairsOfMagmaCongruence,
|
|
50
|
+
0,
|
|
51
|
+
SEMIGROUPS_ImmediateNoGeneratingPairs);
|
|
52
|
+
|
|
53
|
+
# Some types of congruences (such as CongruenceByKernelAndTrace) do not know
|
|
54
|
+
# their generating pairs by default, and hence we require the following methods
|
|
55
|
+
# in addition to the immediate methods above.
|
|
56
|
+
|
|
57
|
+
InstallMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
58
|
+
"for a right semigroup congruence",
|
|
59
|
+
[IsRightSemigroupCongruence],
|
|
60
|
+
GeneratingPairsOfRightMagmaCongruence);
|
|
61
|
+
|
|
62
|
+
InstallMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
63
|
+
"for a left semigroup congruence",
|
|
64
|
+
[IsLeftSemigroupCongruence],
|
|
65
|
+
GeneratingPairsOfLeftMagmaCongruence);
|
|
66
|
+
|
|
67
|
+
InstallMethod(GeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
68
|
+
"for a semigroup congruence",
|
|
69
|
+
[IsSemigroupCongruence],
|
|
70
|
+
GeneratingPairsOfMagmaCongruence);
|
|
71
|
+
|
|
72
|
+
InstallMethod(AsSemigroupCongruenceByGeneratingPairs,
|
|
73
|
+
"for semigroup congruence",
|
|
74
|
+
[IsSemigroupCongruence],
|
|
75
|
+
function(C)
|
|
76
|
+
local S, pairs;
|
|
77
|
+
S := Range(C);
|
|
78
|
+
pairs := GeneratingPairsOfMagmaCongruence(C);
|
|
79
|
+
return SemigroupCongruenceByGeneratingPairs(S, pairs);
|
|
80
|
+
end);
|
|
81
|
+
|
|
82
|
+
InstallMethod(AsRightSemigroupCongruenceByGeneratingPairs,
|
|
83
|
+
"for a right semigroup congruence",
|
|
84
|
+
[IsRightSemigroupCongruence],
|
|
85
|
+
function(C)
|
|
86
|
+
local S, pairs;
|
|
87
|
+
S := Range(C);
|
|
88
|
+
pairs := GeneratingPairsOfRightMagmaCongruence(C);
|
|
89
|
+
return RightSemigroupCongruenceByGeneratingPairs(S, pairs);
|
|
90
|
+
end);
|
|
91
|
+
|
|
92
|
+
InstallMethod(AsLeftSemigroupCongruenceByGeneratingPairs,
|
|
93
|
+
"for a left semigroup congruence",
|
|
94
|
+
[IsLeftSemigroupCongruence],
|
|
95
|
+
function(C)
|
|
96
|
+
local S, pairs;
|
|
97
|
+
S := Range(C);
|
|
98
|
+
pairs := GeneratingPairsOfLeftMagmaCongruence(C);
|
|
99
|
+
return LeftSemigroupCongruenceByGeneratingPairs(S, pairs);
|
|
100
|
+
end);
|
|
101
|
+
|
|
102
|
+
#############################################################################
|
|
103
|
+
# Properties of congruences
|
|
104
|
+
#############################################################################
|
|
105
|
+
|
|
106
|
+
InstallMethod(IsRightSemigroupCongruence,
|
|
107
|
+
"for a left semigroup congruence with known generating pairs",
|
|
108
|
+
[IsLeftSemigroupCongruence and HasGeneratingPairsOfLeftMagmaCongruence],
|
|
109
|
+
function(congl)
|
|
110
|
+
local pairs, cong2;
|
|
111
|
+
# Is this left congruence right-compatible?
|
|
112
|
+
# First, create the 2-sided congruence generated by these pairs.
|
|
113
|
+
pairs := GeneratingPairsOfLeftMagmaCongruence(congl);
|
|
114
|
+
cong2 := SemigroupCongruence(Range(congl), pairs);
|
|
115
|
+
|
|
116
|
+
# congl is right-compatible iff these describe the same relation
|
|
117
|
+
if congl = cong2 then
|
|
118
|
+
SetGeneratingPairsOfMagmaCongruence(congl, pairs);
|
|
119
|
+
SetIsSemigroupCongruence(congl, true);
|
|
120
|
+
return true;
|
|
121
|
+
else
|
|
122
|
+
SetIsSemigroupCongruence(congl, false);
|
|
123
|
+
return false;
|
|
124
|
+
fi;
|
|
125
|
+
end);
|
|
126
|
+
|
|
127
|
+
InstallMethod(IsLeftSemigroupCongruence,
|
|
128
|
+
"for a right semigroup congruence with known generating pairs",
|
|
129
|
+
[IsRightSemigroupCongruence and HasGeneratingPairsOfRightMagmaCongruence],
|
|
130
|
+
function(congr)
|
|
131
|
+
local pairs, cong2;
|
|
132
|
+
# Is this right congruence left-compatible?
|
|
133
|
+
# First, create the 2-sided congruence generated by these pairs.
|
|
134
|
+
pairs := GeneratingPairsOfRightMagmaCongruence(congr);
|
|
135
|
+
cong2 := SemigroupCongruence(Range(congr), pairs);
|
|
136
|
+
|
|
137
|
+
# congr is left-compatible iff these describe the same relation
|
|
138
|
+
if congr = cong2 then
|
|
139
|
+
SetGeneratingPairsOfMagmaCongruence(congr, pairs);
|
|
140
|
+
SetIsSemigroupCongruence(congr, true);
|
|
141
|
+
return true;
|
|
142
|
+
else
|
|
143
|
+
SetIsSemigroupCongruence(congr, false);
|
|
144
|
+
return false;
|
|
145
|
+
fi;
|
|
146
|
+
end);
|
|
147
|
+
|
|
148
|
+
InstallMethod(IsSemigroupCongruence,
|
|
149
|
+
"for a left semigroup congruence with known generating pairs",
|
|
150
|
+
[IsLeftSemigroupCongruence and HasGeneratingPairsOfLeftMagmaCongruence],
|
|
151
|
+
IsRightSemigroupCongruence);
|
|
152
|
+
|
|
153
|
+
# The method below matches more than one declaration of IsSemigroupCongruence,
|
|
154
|
+
# hence the Other
|
|
155
|
+
InstallOtherMethod(IsSemigroupCongruence,
|
|
156
|
+
"for a right semigroup congruence with known generating pairs",
|
|
157
|
+
[IsRightSemigroupCongruence and HasGeneratingPairsOfRightMagmaCongruence],
|
|
158
|
+
IsLeftSemigroupCongruence);
|
|
159
|
+
|
|
160
|
+
#############################################################################
|
|
161
|
+
# Printing and viewing of congruences
|
|
162
|
+
#############################################################################
|
|
163
|
+
|
|
164
|
+
InstallMethod(PrintObj,
|
|
165
|
+
"for left, right, or 2-sided congruences with known generating pairs",
|
|
166
|
+
[IsLeftRightOrTwoSidedCongruence
|
|
167
|
+
and HasGeneratingPairsOfLeftRightOrTwoSidedCongruence],
|
|
168
|
+
10,
|
|
169
|
+
function(C)
|
|
170
|
+
local string;
|
|
171
|
+
if not IsMagmaCongruence(C) then
|
|
172
|
+
# Don't need to check IsSemigroupCongruence because we check
|
|
173
|
+
# IsLeftRightOrTwoSidedCongruence above.
|
|
174
|
+
string := ShallowCopy(CongruenceHandednessString(C));
|
|
175
|
+
string[1] := UppercaseChar(string[1]);
|
|
176
|
+
else
|
|
177
|
+
string := "";
|
|
178
|
+
fi;
|
|
179
|
+
|
|
180
|
+
Print(string, "SemigroupCongruence( ");
|
|
181
|
+
PrintObj(Range(C));
|
|
182
|
+
Print(", ");
|
|
183
|
+
Print(GeneratingPairsOfLeftRightOrTwoSidedCongruence(C));
|
|
184
|
+
Print(" )");
|
|
185
|
+
end);
|
|
186
|
+
|
|
187
|
+
InstallMethod(ViewObj,
|
|
188
|
+
"for left, right, or 2-sided congruences with known generating pairs",
|
|
189
|
+
[IsLeftRightOrTwoSidedCongruence
|
|
190
|
+
and HasGeneratingPairsOfLeftRightOrTwoSidedCongruence],
|
|
191
|
+
9, # to beat the library method
|
|
192
|
+
function(C)
|
|
193
|
+
Print("<", CongruenceHandednessString(C), " semigroup congruence over ");
|
|
194
|
+
ViewObj(Range(C));
|
|
195
|
+
Print(" with ",
|
|
196
|
+
Size(GeneratingPairsOfLeftRightOrTwoSidedCongruence(C)),
|
|
197
|
+
" generating pairs>");
|
|
198
|
+
end);
|
|
199
|
+
|
|
200
|
+
########################################################################
|
|
201
|
+
# Comparison operators
|
|
202
|
+
########################################################################
|
|
203
|
+
|
|
204
|
+
InstallMethod(\=,
|
|
205
|
+
"for left, right, or 2-sided congruences with known generating pairs",
|
|
206
|
+
[IsLeftRightOrTwoSidedCongruence and
|
|
207
|
+
HasGeneratingPairsOfLeftRightOrTwoSidedCongruence,
|
|
208
|
+
IsLeftRightOrTwoSidedCongruence and
|
|
209
|
+
HasGeneratingPairsOfLeftRightOrTwoSidedCongruence],
|
|
210
|
+
function(lhop, rhop)
|
|
211
|
+
local lpairs, rpairs;
|
|
212
|
+
if CongruenceHandednessString(lhop) <> CongruenceHandednessString(rhop) then
|
|
213
|
+
TryNextMethod();
|
|
214
|
+
fi;
|
|
215
|
+
|
|
216
|
+
lpairs := GeneratingPairsOfLeftRightOrTwoSidedCongruence(lhop);
|
|
217
|
+
rpairs := GeneratingPairsOfLeftRightOrTwoSidedCongruence(rhop);
|
|
218
|
+
return Range(lhop) = Range(rhop)
|
|
219
|
+
and ForAll(lpairs, x -> x in rhop)
|
|
220
|
+
and ForAll(rpairs, x -> x in lhop);
|
|
221
|
+
end);
|
|
222
|
+
|
|
223
|
+
########################################################################
|
|
224
|
+
# Algebraic operators
|
|
225
|
+
########################################################################
|
|
226
|
+
|
|
227
|
+
BindGlobal("_JoinLeftRightOrTwoSidedCongruences",
|
|
228
|
+
function(XSemigroupCongruence, GeneratingPairsOfXCongruence, lhop, rhop)
|
|
229
|
+
local pairs;
|
|
230
|
+
if Range(lhop) <> Range(rhop) then
|
|
231
|
+
ErrorNoReturn("cannot form the join of congruences over ",
|
|
232
|
+
"different semigroups");
|
|
233
|
+
elif lhop = rhop then
|
|
234
|
+
return lhop;
|
|
235
|
+
fi;
|
|
236
|
+
pairs := Concatenation(GeneratingPairsOfXCongruence(lhop),
|
|
237
|
+
GeneratingPairsOfXCongruence(rhop));
|
|
238
|
+
return XSemigroupCongruence(Range(lhop), pairs);
|
|
239
|
+
end);
|
|
240
|
+
|
|
241
|
+
InstallMethod(JoinSemigroupCongruences,
|
|
242
|
+
"for a semigroup congruence with known generating pairs",
|
|
243
|
+
[IsSemigroupCongruence and HasGeneratingPairsOfMagmaCongruence,
|
|
244
|
+
IsSemigroupCongruence and HasGeneratingPairsOfMagmaCongruence],
|
|
245
|
+
function(lhop, rhop)
|
|
246
|
+
return _JoinLeftRightOrTwoSidedCongruences(SemigroupCongruence,
|
|
247
|
+
GeneratingPairsOfMagmaCongruence,
|
|
248
|
+
lhop,
|
|
249
|
+
rhop);
|
|
250
|
+
end);
|
|
251
|
+
|
|
252
|
+
InstallMethod(JoinLeftSemigroupCongruences,
|
|
253
|
+
"for a left semigroup congruence with known generating pairs",
|
|
254
|
+
[IsLeftSemigroupCongruence and HasGeneratingPairsOfLeftMagmaCongruence,
|
|
255
|
+
IsLeftSemigroupCongruence and HasGeneratingPairsOfLeftMagmaCongruence],
|
|
256
|
+
function(lhop, rhop)
|
|
257
|
+
return _JoinLeftRightOrTwoSidedCongruences(LeftSemigroupCongruence,
|
|
258
|
+
GeneratingPairsOfLeftMagmaCongruence,
|
|
259
|
+
lhop,
|
|
260
|
+
rhop);
|
|
261
|
+
end);
|
|
262
|
+
|
|
263
|
+
InstallMethod(JoinRightSemigroupCongruences,
|
|
264
|
+
"for a right semigroup congruence with known generating pairs",
|
|
265
|
+
[IsRightSemigroupCongruence and HasGeneratingPairsOfRightMagmaCongruence,
|
|
266
|
+
IsRightSemigroupCongruence and HasGeneratingPairsOfRightMagmaCongruence],
|
|
267
|
+
function(lhop, rhop)
|
|
268
|
+
return _JoinLeftRightOrTwoSidedCongruences(RightSemigroupCongruence,
|
|
269
|
+
GeneratingPairsOfRightMagmaCongruence,
|
|
270
|
+
lhop,
|
|
271
|
+
rhop);
|
|
272
|
+
end);
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
############################################################################
|
|
2
|
+
##
|
|
3
|
+
## congruences/congpart.gd
|
|
4
|
+
## Copyright (C) 2022 James D. Mitchell
|
|
5
|
+
##
|
|
6
|
+
## Licensing information can be found in the README file of this package.
|
|
7
|
+
##
|
|
8
|
+
############################################################################
|
|
9
|
+
##
|
|
10
|
+
## This file contains declarations for left, right, and two-sided congruences
|
|
11
|
+
## that can compute EquivalenceRelationPartition.
|
|
12
|
+
|
|
13
|
+
###############################################################################
|
|
14
|
+
###############################################################################
|
|
15
|
+
# The following are the fundamental attributes for a congruence in
|
|
16
|
+
# CanComputeEquivalenceRelationPartition. If defining a new type of congruence
|
|
17
|
+
# in this representation it is necessary to provide methods for the following:
|
|
18
|
+
#
|
|
19
|
+
# * one or both of EquivalenceRelationPartitionWithSingletons or
|
|
20
|
+
# EquivalenceRelationPartition (for congruences whose source/range is infinite,
|
|
21
|
+
# or otherwise when it is more convenient).
|
|
22
|
+
# * ImagesElm (for the calculation of the elements of an equivalence class)
|
|
23
|
+
# * CongruenceTestMembershipNC
|
|
24
|
+
#
|
|
25
|
+
# If the equivalence classes of a congruence have their own representation
|
|
26
|
+
# (because they too have better methods than the default ones), then it is also
|
|
27
|
+
# necessary to implement a method for:
|
|
28
|
+
#
|
|
29
|
+
# * EquivalenceClassOfElementNC.
|
|
30
|
+
#
|
|
31
|
+
# If the congruence is not natively implemented in terms of generating pairs,
|
|
32
|
+
# then it is also useful to provide methods for:
|
|
33
|
+
#
|
|
34
|
+
# * GeneratingPairsOfLeft/Right/MagmaCongruence
|
|
35
|
+
# * Left/Right/SemigroupCongruenceByGeneratingPairs
|
|
36
|
+
#
|
|
37
|
+
# to allow for conversion of the representation.
|
|
38
|
+
#
|
|
39
|
+
# The following attributes can be computed (by default, if no better
|
|
40
|
+
# method is known) from the EquivalenceRelationPartitionWithSingletons:
|
|
41
|
+
#
|
|
42
|
+
# * EquivalenceRelationPartition (if not implemented above)
|
|
43
|
+
# * EquivalenceRelationPartitionWithSingletons (if not implemented above)
|
|
44
|
+
# * EquivalenceRelationLookup
|
|
45
|
+
# * EquivalenceRelationCanonicalLookup
|
|
46
|
+
# * EquivalenceRelationCanonicalPartition
|
|
47
|
+
# * NonTrivialEquivalenceClasses
|
|
48
|
+
# * EquivalenceClasses
|
|
49
|
+
#
|
|
50
|
+
# If a congruence <C> knows its generating pairs, knows its source/range,
|
|
51
|
+
# CanUseFroidurePin(Range(C)) is true, and HasGeneratorsOfSemigroup(Range(C))
|
|
52
|
+
# is true, then <C> automatically satisfies CanUseLibsemigroupsCongruence
|
|
53
|
+
# (which is implies CanComputeEquivalenceRelationPartition). In this case the
|
|
54
|
+
# generating pairs are used to construct a libsemigroups Congruence object
|
|
55
|
+
# representing <C>, and this object will be used to perform many computations
|
|
56
|
+
# for <C>. If you never want to construct such a libsemigroups Congruence
|
|
57
|
+
# object representing for <C>, then an immediate method should be installed in
|
|
58
|
+
# libsemigroups/cong.gi explicitly excluding this type of congruence, and the
|
|
59
|
+
# mandatory methods listed above for CanComputeEquivalenceRelationPartition
|
|
60
|
+
# should be implemented.
|
|
61
|
+
#
|
|
62
|
+
# To define a new type of congruence that does not implement any of the above
|
|
63
|
+
# (i.e. that uses libsemigroups Congruence objects to compute
|
|
64
|
+
# EquivalenceRelationPartition), it's sufficient to ensure that the
|
|
65
|
+
# congruence's generating pairs are computed in the function where it is
|
|
66
|
+
# Objectified.
|
|
67
|
+
#
|
|
68
|
+
# There are some types of congruences in the Semigroups package which use both
|
|
69
|
+
# a specialised representation for some things, and use a libsemigroups
|
|
70
|
+
# Congruence object for others:
|
|
71
|
+
#
|
|
72
|
+
# * IsCongruenceByWangPair;
|
|
73
|
+
# * IsReesCongruence (when *not* constructed directly from an ideal).
|
|
74
|
+
#
|
|
75
|
+
# there are others that never use libsemigroups Congruence objects:
|
|
76
|
+
#
|
|
77
|
+
# * IsInverseSemigroupCongruenceByKernelTrace;
|
|
78
|
+
# * IsSimpleSemigroupCongruence;
|
|
79
|
+
# * IsRMSCongruenceByLinkedTriple;
|
|
80
|
+
# * IsUniversalSemigroupCongruence;
|
|
81
|
+
# * IsReesCongruence (when constructed directly from an ideal).
|
|
82
|
+
#
|
|
83
|
+
# and some that always do (congruences defined by generating pairs, not
|
|
84
|
+
# belonging to the previous types).
|
|
85
|
+
#
|
|
86
|
+
###############################################################################
|
|
87
|
+
###############################################################################
|
|
88
|
+
|
|
89
|
+
DeclareProperty("CanComputeEquivalenceRelationPartition",
|
|
90
|
+
IsLeftRightOrTwoSidedCongruence);
|