Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2c0bd79
Compiles
james-d-mitchell Apr 7, 2025
bbeab76
More
james-d-mitchell Apr 8, 2025
a523edf
Add Presentation
Joseph-Edwards Sep 2, 2025
1f9a1d5
Update to_cpp congruence_kind
Joseph-Edwards Sep 2, 2025
da5b400
Add to_cpp for WordGraph
Joseph-Edwards Sep 2, 2025
6423446
Remove congruence_make_from_...
Joseph-Edwards Sep 2, 2025
086b2b0
Refactor Congruence and Presentation
Joseph-Edwards Sep 2, 2025
43a7332
Fixes
james-d-mitchell Dec 8, 2025
285eceb
tst/standard/attributes/attr.tst passes
james-d-mitchell Dec 8, 2025
c6946f2
Working on attributes/homomorph.tst
james-d-mitchell Dec 8, 2025
9b099db
standard/attributes/homomorph.tst passes
james-d-mitchell Dec 18, 2025
ac00158
More
james-d-mitchell Dec 19, 2025
a65a501
Lint
james-d-mitchell Dec 19, 2025
788df04
All standard/congs tests run
james-d-mitchell Dec 20, 2025
69f1b27
more working
james-d-mitchell Dec 20, 2025
fa976b9
TMP
james-d-mitchell Dec 20, 2025
22b35bc
TMP
james-d-mitchell Dec 27, 2025
6f71504
Standard tests pass
james-d-mitchell Dec 27, 2025
8cbd59c
Linting
james-d-mitchell Dec 27, 2025
4b6dfc7
Fix testinstall.tst
james-d-mitchell Jan 14, 2026
cf5a195
Remove docs and test for IteratorOfLClassReps which no longer exists
james-d-mitchell Jan 15, 2026
0dc93ae
Fix extreme tests
james-d-mitchell Jan 15, 2026
767378d
TODO -> DONE
james-d-mitchell Jan 15, 2026
80fb5bf
Format
james-d-mitchell Jan 15, 2026
d2363a3
Bump libsemigroups -> v3.4.0
james-d-mitchell Jan 15, 2026
4ab5495
Bump libsemigroups -> v3.4.0 in environment.yml
james-d-mitchell Jan 15, 2026
c7338dc
Fix overload_cast issue
Joseph-Edwards Jan 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .LIBSEMIGROUPS_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.7.4
3.4.0
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@
/src/pkgconfig.h.in
/src/semigroups-config.hpp
test-output.w
tags
*.in~
configure~
9 changes: 5 additions & 4 deletions GNUmakefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
KEXT_NAME = semigroups

KEXT_CXXFLAGS = @LIBSEMIGROUPS_CFLAGS@ -std=gnu++14 -O3
KEXT_CXXFLAGS = @LIBSEMIGROUPS_CFLAGS@ -std=gnu++17 -O3
KEXT_LDFLAGS = @LIBSEMIGROUPS_RPATH@ @LIBSEMIGROUPS_LIBS@

# configure settings
Expand Down Expand Up @@ -47,10 +47,11 @@ ifdef WITH_INCLUDED_LIBSEMIGROUPS
# FIXME(later) all the include paths should point into bin/include/ and not to
# the sources, or otherwise we should stop make installing into bin
ifdef LIBSEMIGROUPS_HPCOMBI_ENABLED
KEXT_CPPFLAGS += -Ilibsemigroups/extern/HPCombi/include
KEXT_CPPFLAGS += -Ilibsemigroups/extern/HPCombi/include/fallback
KEXT_CPPFLAGS += -Ilibsemigroups/third_party/HPCombi/include
KEXT_CPPFLAGS += -Ilibsemigroups/third_party/HPCombi/third_party/
endif
KEXT_CPPFLAGS += -Ilibsemigroups/extern/fmt-8.0.1/include
KEXT_CPPFLAGS += -Ilibsemigroups/third_party/fmt-11.1.4/include
KEXT_CPPFLAGS += -Ilibsemigroups/third_party/magic_enum-0.9.7/include
KEXT_CPPFLAGS += -Ilibsemigroups/include
endif
KEXT_CPPFLAGS += -DFMT_HEADER_ONLY
Expand Down
8 changes: 4 additions & 4 deletions doc/cong.xml
Original file line number Diff line number Diff line change
Expand Up @@ -556,10 +556,10 @@ gap> cong := SemigroupCongruence(S, [Transformation([1, 2, 1]),
> Transformation([2, 1, 2])]);;
gap> classes := NonTrivialEquivalenceClasses(cong);;
gap> Set(classes);
[ <2-sided congruence class of Transformation( [ 1, 2, 2 ] )>,
<2-sided congruence class of Transformation( [ 3, 1, 3 ] )>,
<2-sided congruence class of Transformation( [ 3, 1, 1 ] )>,
<2-sided congruence class of Transformation( [ 2, 1, 2 ] )>,
[ <2-sided congruence class of Transformation( [ 1, 2, 2 ] )>,
<2-sided congruence class of Transformation( [ 3, 1, 1 ] )>,
<2-sided congruence class of Transformation( [ 3, 1, 3 ] )>,
<2-sided congruence class of Transformation( [ 2, 1, 2 ] )>,
<2-sided congruence class of Transformation( [ 3, 3, 3 ] )> ]
gap> cong := RightSemigroupCongruence(S, [Transformation([1, 2, 1]),
> Transformation([2, 1, 2])]);;
Expand Down
1 change: 0 additions & 1 deletion doc/greens-generic.xml
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,6 @@ false]]></Example>
<ManSection><Heading>IteratorOfXClassReps</Heading>
<Oper Name = "IteratorOfDClassReps" Arg = "S"/>
<Oper Name = "IteratorOfHClassReps" Arg = "S"/>
<Oper Name = "IteratorOfLClassReps" Arg = "S"/>
<Returns>
An iterator.
</Returns>
Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ channels:
- conda-forge

dependencies:
- libsemigroups==2.7.4
- libsemigroups==3.4.0
4 changes: 2 additions & 2 deletions gap/congruences/conglatt.gi
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ SEMIGROUPS.PrincipalXCongruencesNC :=
keep := true;
newcong := SemigroupXCongruence(S, [new_pair]);
m := NrEquivalenceClasses(newcong);
newcongdiscrim := List(words, w -> CongruenceWordToClassIndex(newcong, w));
newcongdiscrim := List(words, w -> CongruenceReduce(newcong, w));
if not IsBound(congs[m]) then
congs[m] := [newcong];
congs_discrim[m] := [newcongdiscrim];
Expand Down Expand Up @@ -244,7 +244,7 @@ function(S, gen_congs, WrappedXCongruence)
all_congs := List(AsListCanonical(S), x -> x![1]);
else # The default
S := List(gen_congs, EquivalenceRelationLookup);
old_value := libsemigroups.should_report();
old_value := libsemigroups.reporting_enabled();
if InfoLevel(InfoSemigroups) = 4 then
libsemigroups.set_report(true);
fi;
Expand Down
6 changes: 6 additions & 0 deletions gap/libsemigroups/cong.gd
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,9 @@ DeclareOperation("CongruenceLessNC",
[CanUseLibsemigroupsCongruence,
IsMultiplicativeElement,
IsMultiplicativeElement]);

DeclareOperation("CongruenceReduce",
[CanUseLibsemigroupsCongruence, IsHomogeneousList]);
DeclareOperation("CongruenceReduce",
[CanUseLibsemigroupsCongruence, IsMultiplicativeElement]);

Loading
Loading