Open james-d-mitchell opened 3 months ago
For example, with only Smallsemi loaded:
gap> S := SmallSemigroup(6, 2);; gap> IsSelfDualSemigroup(S); true
with Semigroups loaded:
gap> S := SmallSemigroup(6, 2);; gap> IsSelfDualSemigroup(S); false
The correct answer seems to be the one returned by Smallsemi, since:
gap> S := SmallSemigroup(6, 2);; gap> T := DualSemigroup(S);; gap> IsIsomorphicSemigroup(S, T); true
The issue is that the generators don't have to be mapped by the identity function from T to Range(map) in:
T
Range(map)
https://github.com/semigroups/Semigroups/blob/fa9344fa86f7578e6c1e763dc7fafb01f39b1757/gap/attributes/properties.gi#L1651-L1657
gap> S := SmallSemigroup(6, 2);; gap> OnTuples(GeneratorsOfSemigroup(S), map); [ m1, m2, m3, m4, m6, m5 ]
For example, with only Smallsemi loaded:
with Semigroups loaded:
The correct answer seems to be the one returned by Smallsemi, since:
The issue is that the generators don't have to be mapped by the identity function from
T
toRange(map)
in:https://github.com/semigroups/Semigroups/blob/fa9344fa86f7578e6c1e763dc7fafb01f39b1757/gap/attributes/properties.gi#L1651-L1657