diff --git a/gap/semigroups/semipperm.gi b/gap/semigroups/semipperm.gi index 2f64bb321..daca60314 100644 --- a/gap/semigroups/semipperm.gi +++ b/gap/semigroups/semipperm.gi @@ -170,11 +170,10 @@ InstallMethod(IsomorphismPartialPermSemigroup, "for a group with adjoined zero", [IsMagmaWithZeroAdjoined and IsZeroGroup], function(S) - local zero, inj_zm, inv_zm, grp, one, iso, inv, T, iso_pp, inv_pp; + local zero, inj_zm, grp, one, iso, inv, T, iso_pp, inv_pp; zero := MultiplicativeZero(S); inj_zm := UnderlyingInjectionZeroMagma(S); - inv_zm := InverseGeneralMapping(inj_zm); grp := Source(inj_zm); if IsTrivial(grp) then @@ -206,7 +205,7 @@ function(S) if x = zero then return EmptyPartialPerm(); fi; - return (x ^ inv_zm) ^ iso_pp; + return PreImagesRepresentativeNC(inj_zm, x) ^ iso_pp; end; inv := function(x) diff --git a/tst/standard/semigroups/semicons.tst b/tst/standard/semigroups/semicons.tst index 34986b2d0..5751831bc 100644 --- a/tst/standard/semigroups/semicons.tst +++ b/tst/standard/semigroups/semicons.tst @@ -1133,7 +1133,8 @@ gap> m1 := function(trans) gap> H[2][1] := SemigroupHomomorphismByFunction(L[5], L[2], m1);; gap> m1 := function(magelem) > local p; -> p := magelem ^ InverseGeneralMapping(UnderlyingInjectionZeroMagma(L[2])); +> p := PreImagesRepresentative(UnderlyingInjectionZeroMagma(L[2]), +> magelem); > if p = fail then > return Transformation([1, 1, 1]); > elif p in AlternatingGroup(3) then