Skip to content

GapFroidurePin is sometimes called when it would be better to call LibsemigroupsFroidurePin #1168

@Joseph-Edwards

Description

@Joseph-Edwards

The following is a presentation for the Abacus-Jones monoid:

AbacusJonesMonoid := function(n, d)
    local fm, x, rels, id, ts, os, t, i, j, diff, o;
    fm := FreeMonoid(2 * n - 1);
    x := GeneratorsOfMonoid(fm);
    id := Identity(fm);
    rels := [];

    ts := x{[1 .. n - 1]};
    os := x{[n .. 2 * n - 1]};

    for t in ts do
        Add(rels, [t * t, t]);
    od;

    for i in [1 .. n - 1] do
        for j in [1 .. n - 1] do
            diff := AbsoluteValue(i - j);
            if diff > 1 then
                Add(rels, [ts[i] * ts[j], ts[j] * ts[i]]);
            elif diff = 1 then
                Add(rels, [ts[i] * ts[j] * ts[i], ts[i]]);
            fi;
        od;
    od;

    for o in os do
        Add(rels, [o ^ d, id]);
    od;

    for i in [1 .. n - 1] do
        for j in [i + 1 .. n] do
            Add(rels, [os[i] * os[j], os[j] * os[i]]);
        od;
    od;

    for i in [1 .. n - 1] do
        Add(rels, [ts[i] * os[i], ts[i] * os[i + 1]]);
        Add(rels, [os[i] * ts[i], os[i + 1] * ts[i]]);
    od;

    for i in [1 .. n] do
        for j in [1 .. n - 1] do
          if i <> j and i <> j + 1 then
            Add(rels, [os[i] * ts[j], ts[j] * os[i]]);
          fi;
        od;
    od;

    for i in [1 .. n - 1] do
        for j in [1 .. d - 1] do
          Add(rels, [ts[i] * os[i] ^ j * ts[i], ts[i]]);
        od;
    od;
    return fm / rels;

end;

When I construct AbacusJonesMonoid(5, 4) and try to enumerate its elements, GapFroidurePin is used rather than LibsemigroupsFroidurePin. This probably relates to our filters giving the libsemigroups method a priority that is too low.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugLabel for issues or PR which report or fix bugsresolved-pending-releaseA label for issues that are resolved pending a release.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions