diff --git a/gap/structure.gi b/gap/structure.gi index 836e504..c6ad2f7 100644 --- a/gap/structure.gi +++ b/gap/structure.gi @@ -641,6 +641,33 @@ InstallOtherMethod(DirectProductOp, "for a list and non-quasigroup magma", return MagmaByGenerators(gens); end); +# Make sure that we can take quotients properly in the direct product +InstallOtherMethod(LeftQuotient, + IsIdenticalObj, + [IsDirectProductElement, IsDirectProductElement], + function (l,r) + local i, comps; + comps := []; + for i in [1..Length(l)] do + Add(comps, LeftQuotient(l![i],r![i])); + od; + return DirectProductElement(comps); +end); + +InstallOtherMethod(\/, + IsIdenticalObj, + [IsDirectProductElement, IsDirectProductElement], + function (l,r) + local i, comps; + comps := []; + for i in [1..Length(l)] do + Add(comps, l![i] / r![i]); + od; + return DirectProductElement(comps); +end); + + + ## Coversions among the structure types InstallMethod(AsLeftQuasigroup, "for a left quasigroup", [IsLeftQuasigroup], IdFunc);