Skip to content
Open
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
4 changes: 4 additions & 0 deletions doc/attr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1278,6 +1278,10 @@ Error, the semigroup is not finite]]></Example>
<Item>
<Ref Prop="IsReesZeroMatrixSemigroupElement" BookName="ref"/>.
</Item>
<Mark>elements of a free band</Mark>
<Item>
<Ref Prop="IsFreeBandElement"/>.
</Item>
</List>

See also <Ref Oper="OneInverseOfSemigroupElement"/>.
Expand Down
4 changes: 4 additions & 0 deletions gap/fp/freeband.gi
Original file line number Diff line number Diff line change
Expand Up @@ -504,3 +504,7 @@ function(_, hashlen)
return rec(func := SEMIGROUPS.HashFunctionForFreeBandElements,
data := hashlen);
end);

InstallMethod(OnePseudoInverseOfSemigroupElement,
"for a free band element",
[IsFreeBandElement], IdFunc);
8 changes: 8 additions & 0 deletions tst/standard/fp/freeband.tst
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,14 @@ Error, the generator names must be distinct
gap> FreeBand(["a", "x", "y", "x", "d"]);
Error, the generator names must be distinct

# OnePseudoInverseOfSemigroupElement
gap> S := FreeBand(5);
<free band on the generators [ x1, x2, x3, x4, x5 ]>
gap> z := S.1 * S.3 * S.2 * S.2 * S.5 * S.3;
x1x3x2x5x1x3x2x5x2x5x3
gap> OnePseudoInverseOfSemigroupElement(z);
x1x3x2x5x1x3x2x5x2x5x3

#
gap> SEMIGROUPS.StopTest();
gap> STOP_TEST("Semigroups package: standard/fp/freeband.tst");
Loading