Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions .github/workflows/standard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
- v4.14
- v4.13
- v4.12
- further-pluralization

steps:
- uses: actions/checkout@v5
Expand All @@ -49,9 +50,16 @@ jobs:
override_cache_key: ${{ runner.os }}-${{ matrix.gap-version }}-64-${{ github.ref }}
override_cache_key_fallback: ${{ runner.os }}-${{ matrix.gap-version }}-64
- name: "Install GAP"
if: ${{ matrix.gap-version != 'further-pluralization' }}
uses: gap-actions/setup-gap@v3
with:
gap-version: ${{ matrix.gap-version }}
- name: "Install GAP"
if: ${{ matrix.gap-version == 'further-pluralization' }}
uses: gap-actions/setup-gap@v3
with:
gap-version: ${{ matrix.gap-version }}
repository: wilfwilson/gap
- name: "Install necessary GAP package clones"
shell: bash
run: |
Expand Down
12 changes: 12 additions & 0 deletions tst/standard/attributes/translat.tst
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,15 @@ gap> Size(GeneratorsOfSemigroup(H));
9

# Monogenic semigroups
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> S := MonogenicSemigroup(6, 3);
<commutative non-regular transformation semigroup of size 8, degree 9 with
1 generator>
#@else
gap> S := MonogenicSemigroup(6, 3);
<commutative non-regular transformation semigroup of size 8, degree 9 with 1
generator>
#@fi
gap> L := LeftTranslations(S);
<the semigroup of left translations of <commutative non-regular
transformation semigroup of size 8, degree 9 with 1 generator>>
Expand Down Expand Up @@ -126,9 +132,15 @@ gap> L := LeftTranslations(S);
<the semigroup of left translations of <regular semigroup with 4 generators>>
gap> Size(L);
81
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> R := RightTranslations(S);
<the semigroup of right translations of <0-simple regular semigroup with
4 generators>>
#@else
gap> R := RightTranslations(S);
<the semigroup of right translations of <0-simple regular semigroup with 4
generators>>
#@fi
gap> Size(R);
81
gap> S := ReesZeroMatrixSemigroup(G, mat);;
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/elements/bipart.tst
Original file line number Diff line number Diff line change
Expand Up @@ -497,9 +497,15 @@ gap> BipartitionByIntRep([1, 2, 3]);
Error, the degree of a bipartition must be even, found 3

# bipartition: BipartitionByIntRep 2/5
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> BipartitionByIntRep([1, 2, 3, "a"]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `BipartitionByIntRep' on 1 argument
#@else
gap> BipartitionByIntRep([1, 2, 3, "a"]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `BipartitionByIntRep' on 1 arguments
#@fi

# bipartition: BipartitionByIntRep 3/5
gap> BipartitionByIntRep([1, 2, 3, 5]);
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/elements/maxplusmat.tst
Original file line number Diff line number Diff line change
Expand Up @@ -454,9 +454,15 @@ false
# maxplusmat: RadialEigenvector for a max-plus matrix with SpectralRadius = 0
gap> RadialEigenvector(Matrix(IsMaxPlusMatrix, [[0, -3], [-2, -10]]));
[ 0, -2 ]
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> RadialEigenvector(Matrix(IsMaxPlusMatrix, [[3, -3], [-2, -10]]));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `RadialEigenvector' on 1 argument
#@else
gap> RadialEigenvector(Matrix(IsMaxPlusMatrix, [[3, -3], [-2, -10]]));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `RadialEigenvector' on 1 arguments
#@fi
gap> SpectralRadius(Matrix(IsMaxPlusMatrix, [[0, -3], [-2, -10]]));
0

Expand Down
24 changes: 24 additions & 0 deletions tst/standard/elements/pbr.tst
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,15 @@ gap> DegreeOfPBRCollection([x]);
2
gap> DegreeOfPBRCollection([y]);
3
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> DegreeOfPBRCollection([x, y]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DegreeOfPBRCollection' on 1 argument
#@else
gap> DegreeOfPBRCollection([x, y]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DegreeOfPBRCollection' on 1 arguments
#@fi
gap> coll := [x, y];;
gap> IsPBRCollection(coll);
false
Expand Down Expand Up @@ -317,27 +323,45 @@ gap> Inverse(x);
fail

# pbr, EmptyPBR, 1
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> EmptyPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `EmptyPBR' on 1 argument
#@else
gap> EmptyPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `EmptyPBR' on 1 arguments
#@fi
gap> EmptyPBR(1);
PBR([ [ ] ], [ [ ] ])
gap> EmptyPBR(2);
PBR([ [ ], [ ] ], [ [ ], [ ] ])

# pbr, IdentityPBR, 1
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> IdentityPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `IdentityPBR' on 1 argument
#@else
gap> IdentityPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `IdentityPBR' on 1 arguments
#@fi
gap> IdentityPBR(1);
PBR([ [ -1 ] ], [ [ 1 ] ])
gap> IdentityPBR(2);
PBR([ [ -1 ], [ -2 ] ], [ [ 1 ], [ 2 ] ])

# pbr, UniversalPBR, 1
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> UniversalPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `UniversalPBR' on 1 argument
#@else
gap> UniversalPBR(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `UniversalPBR' on 1 arguments
#@fi
gap> UniversalPBR(1);
PBR([ [ -1, 1 ] ], [ [ -1, 1 ] ])
gap> UniversalPBR(2);
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/ideals/ideals.tst
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,15 @@ gap> x := Transformation([13, 4, 1, 2, 14, 14, 7, 12, 4, 9, 2, 14, 5, 14, 13,
> 18, 15, 8, 18, 9]);;
gap> y := Transformation([13, 15, 7, 18, 4, 2, 8, 12, 10, 7, 8, 11, 12, 12, 17,
> 6, 13, 9, 16, 13]);;
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> T := DirectProduct(Semigroup(x), Semigroup(y));
<commutative transformation semigroup of size 45, degree 40 with
13 generators>
#@else
gap> T := DirectProduct(Semigroup(x), Semigroup(y));
<commutative transformation semigroup of size 45, degree 40 with 13
generators>
#@fi
gap> z := Transformation([14, 2, 14, 4, 14, 14, 7, 14, 2, 4, 4, 14, 14, 14, 14,
> 14, 14, 14, 14, 4, 32, 31, 28, 28, 31, 32, 32, 31, 31, 28, 32, 28, 31, 31, 28,
> 28, 32, 32, 31, 32]);;
Expand Down
12 changes: 12 additions & 0 deletions tst/standard/libsemigroups/froidure-pin.tst
Original file line number Diff line number Diff line change
Expand Up @@ -445,9 +445,15 @@ gap> S := Semigroup(Matrix(IsMaxPlusMatrix,
<commutative semigroup of 3x3 max-plus matrices with 1 generator>
gap> Enumerate(S, 8194);
<commutative semigroup of 3x3 max-plus matrices with 1 generator>
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> en := Enumerator(S);
<enumerator of <commutative semigroup of 3x3 max-plus matrices with
1 generator>>
#@else
gap> en := Enumerator(S);
<enumerator of <commutative semigroup of 3x3 max-plus matrices with 1
generator>>
#@fi
gap> en[100];
Matrix(IsMaxPlusMatrix, [[388, 394, 386], [394, 400, 392], [390, 396, 388]])
gap> PositionCanonical(S, en[100]);
Expand Down Expand Up @@ -585,9 +591,15 @@ true
gap> S := Semigroup(Matrix(IsMaxPlusMatrix,
> [[1, -infinity, 2], [-2, 4, -infinity], [1, 0, 3]]));
<commutative semigroup of 3x3 max-plus matrices with 1 generator>
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> N := EnumeratorCanonical(S);
<enumerator of <commutative semigroup of 3x3 max-plus matrices with
1 generator>>
#@else
gap> N := EnumeratorCanonical(S);
<enumerator of <commutative semigroup of 3x3 max-plus matrices with 1
generator>>
#@fi
gap> ForAll([1 .. 1000], x -> Position(N, N[x]) = x);
true
gap> ForAll([1 .. 1000], x -> N[x] in N);
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/semigroups/grpperm.tst
Original file line number Diff line number Diff line change
Expand Up @@ -395,9 +395,15 @@ gap> Range(map);
Group([ (1,3)(2,5)(4,6), (1,4,5)(2,6,3) ])

# IsomorphismPermGroup, infinite 1 / 1
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> IsomorphismPermGroup(FreeMonoid(3));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 argument
#@else
gap> IsomorphismPermGroup(FreeMonoid(3));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 arguments
#@fi

# IsomorphismPermGroup, for a block bijection semigroup
gap> S := Semigroup(Bipartition([[1, 2, -3, -4], [3, 4, -1, -2]]));;
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/semigroups/semifp.tst
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,15 @@ gap> IsomorphismFpMonoid(FreeMonoid(2));
<fp monoid with 2 generators and 0 relations of length 2>

# Test IsomorphismFpSemigroup, infinite
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> IsomorphismFpSemigroup(FreeInverseSemigroup(2));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 3rd choice method found for `IsomorphismFpSemigroup' on 1 argument
#@else
gap> IsomorphismFpSemigroup(FreeInverseSemigroup(2));
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 3rd choice method found for `IsomorphismFpSemigroup' on 1 arguments
#@fi

# BruteForceIsoCheck helper functions
gap> BruteForceIsoCheck := function(iso)
Expand Down
22 changes: 22 additions & 0 deletions tst/standard/semigroups/semipperm.tst
Original file line number Diff line number Diff line change
Expand Up @@ -2006,9 +2006,15 @@ true
# semipperm: IsomorphismPartialPermSemigroup, for a zero group, 3
gap> S := Range(InjectionZeroMagma(SL(2, 2)));
<SL(2,2) with 0 adjoined>
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> map := IsomorphismPartialPermSemigroup(S);
<SL(2,2) with 0 adjoined> -> <inverse partial perm monoid of rank 3 with
3 generators>
#@else
gap> map := IsomorphismPartialPermSemigroup(S);
<SL(2,2) with 0 adjoined> -> <inverse partial perm monoid of rank 3 with 3
generators>
#@fi
gap> Range(map);
<inverse partial perm monoid of rank 3 with 3 generators>
gap> BruteForceIsoCheck(map);
Expand Down Expand Up @@ -2138,11 +2144,19 @@ gap> DigraphOfActionOnPoints(S, 3);
# SmallerDegreePartialPermRepresentation for a non-partial perm semigroup
gap> S := UniformBlockBijectionMonoid(4);
<inverse block bijection monoid of degree 4 with 3 generators>
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> map := SmallerDegreePartialPermRepresentation(S);
CompositionMapping( <inverse partial perm monoid of size 131, rank 131 with
3 generators> -> <inverse partial perm monoid of rank 10 with 3 generators>,
<inverse block bijection monoid of size 131, degree 4 with 3 generators> ->
<inverse partial perm monoid of size 131, rank 131 with 3 generators> )
#@else
gap> map := SmallerDegreePartialPermRepresentation(S);
CompositionMapping( <inverse partial perm monoid of size 131, rank 131 with 3
generators> -> <inverse partial perm monoid of rank 10 with 3 generators>,
<inverse block bijection monoid of size 131, degree 4 with 3 generators> ->
<inverse partial perm monoid of size 131, rank 131 with 3 generators> )
#@fi
gap> S.1 ^ map in Range(map);
true

Expand All @@ -2154,11 +2168,19 @@ gap> C := SemigroupCongruence(S,
> Bipartition([[1, -1], [2, -2], [3, -3], [4, -4]])]);
<2-sided semigroup congruence over <inverse block bijection monoid
of size 339, degree 4 with 3 generators> with 1 generating pairs>
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> map := SmallerDegreePartialPermRepresentation(Source(C));
CompositionMapping( <inverse partial perm monoid of size 339, rank 339 with
3 generators> -> <inverse partial perm monoid of rank 14 with 3 generators>,
<inverse block bijection monoid of size 339, degree 4 with 3 generators> ->
<inverse partial perm monoid of size 339, rank 339 with 3 generators> )
#@else
gap> map := SmallerDegreePartialPermRepresentation(Source(C));
CompositionMapping( <inverse partial perm monoid of size 339, rank 339 with 3
generators> -> <inverse partial perm monoid of rank 14 with 3 generators>,
<inverse block bijection monoid of size 339, degree 4 with 3 generators> ->
<inverse partial perm monoid of size 339, rank 339 with 3 generators> )
#@fi
gap> List(GeneratingPairsOfSemigroupCongruence(C), x -> OnTuples(x, map));
[ [ <empty partial perm>,
<identity partial perm on
Expand Down
6 changes: 6 additions & 0 deletions tst/standard/semigroups/semirms.tst
Original file line number Diff line number Diff line change
Expand Up @@ -2910,9 +2910,15 @@ gap> S := Monoid([
> Transformation([2, 3, 3, 1]), Transformation([3, 2, 3, 1]),
> Transformation([3, 3, 1, 2]), Transformation([3, 4, 1, 1]),
> Transformation([4, 1, 2, 2]), Transformation([4, 2, 3, 3])]);;
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> R := ReesMatrixSemigroup(S, [[IdentityTransformation]]);
<Rees matrix semigroup 1x1 over <transformation monoid of degree 4 with
8 generators>>
#@else
gap> R := ReesMatrixSemigroup(S, [[IdentityTransformation]]);
<Rees matrix semigroup 1x1 over <transformation monoid of degree 4 with 8
generators>>
#@fi
gap> IsIdempotentGenerated(R);
true

Expand Down
9 changes: 9 additions & 0 deletions tst/standard/semigroups/semitrans.tst
Original file line number Diff line number Diff line change
Expand Up @@ -2585,12 +2585,21 @@ gap> ComponentsOfTransformationSemigroup(S);
gap> CyclesOfTransformationSemigroup(S);
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], [ 10, 11, 12 ] ]
gap> S := SemigroupIdeal(S, S.1);;
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> ComponentsOfTransformationSemigroup(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DigraphOfActionOnPoints' on 1 argument
gap> CyclesOfTransformationSemigroup(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DigraphOfActionOnPoints' on 1 argument
#@else
gap> ComponentsOfTransformationSemigroup(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DigraphOfActionOnPoints' on 1 arguments
gap> CyclesOfTransformationSemigroup(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `DigraphOfActionOnPoints' on 1 arguments
#@fi

# Test IsomorphismSemigroup for a semigroup of binary relations on points
gap> B := Monoid(BinaryRelationOnPoints([[2], [1, 2], [1, 3]]),
Expand Down
15 changes: 15 additions & 0 deletions tst/standard/tools/display.tst
Original file line number Diff line number Diff line change
Expand Up @@ -1017,6 +1017,20 @@ gap> DotLeftCayleyDigraph(FullTransformationMonoid(2));
[label=\"c\"]\n4 [label=\"cb\"]\n1 -> 1\n1 -> 2\n1 -> 3\n2 -> 2\n2 -> 1\n2 ->\
4\n3 -> 3\n3 -> 3\n3 -> 3\n4 -> 4\n4 -> 4\n4 -> 4\n}\n"
gap> S := LeftZeroSemigroup(27);;
#@if CompareVersionNumbers(ReplacedString(GAPInfo.Version, "dev", ""), "4.16")
gap> DotLeftCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `DotString' on 1 argument
gap> TikzLeftCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `TikzString' on 1 argument
gap> DotRightCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `DotString' on 1 argument
gap> TikzRightCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `TikzString' on 1 argument
#@else
gap> DotLeftCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `DotString' on 1 arguments
Expand All @@ -1029,6 +1043,7 @@ Error, no 2nd choice method found for `DotString' on 1 arguments
gap> TikzRightCayleyDigraph(S);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `TikzString' on 1 arguments
#@fi

# Unbind local variables, auto-generated by etc/tst-unbind-local-vars.py
gap> Unbind(S);
Expand Down
Loading