Add NC versions of quasigroup constructors to support uniform Print() syntax

This commit is contained in:
Glen Whitney 2017-10-19 02:26:18 +02:00
parent a70224afae
commit 25672bad38
2 changed files with 18 additions and 13 deletions

View File

@ -82,8 +82,10 @@ DeclareAttribute("RightDivisionTable", HasMultiplicationTable);
# And the builders # And the builders
DeclareGlobalFunction("LeftQuasigroupByMultiplicationTable"); DeclareGlobalFunction("LeftQuasigroupByMultiplicationTable");
DeclareGlobalFunction("LeftQuasigroupByMultiplicationTableNC");
DeclareGlobalFunction("LeftRackByMultiplicationTable"); DeclareGlobalFunction("LeftRackByMultiplicationTable");
DeclareGlobalFunction("LeftRackByMultiplicationTableNC"); DeclareGlobalFunction("LeftRackByMultiplicationTableNC");
DeclareGlobalFunction("RightQuasigroupByMultiplicationTable"); DeclareGlobalFunction("RightQuasigroupByMultiplicationTable");
DeclareGlobalFunction("RightQuasigroupByMultiplicationTableNC");
DeclareGlobalFunction("RightRackByMultiplicationTable"); DeclareGlobalFunction("RightRackByMultiplicationTable");
DeclareGlobalFunction("RightRackByMultiplicationTableNC"); DeclareGlobalFunction("RightRackByMultiplicationTableNC");

View File

@ -30,7 +30,7 @@ InstallGlobalFunction(LeftQuasigroup, function(arg)
fi; fi;
return CloneOfTypeByGenerators(IsLeftQuasigroup, fam, arg, return CloneOfTypeByGenerators(IsLeftQuasigroup, fam, arg,
GeneratorsOfLeftQuasigroup, GeneratorsOfLeftQuasigroup,
LeftQuasigroupByMultiplicationTable); LeftQuasigroupByMultiplicationTableNC);
end); end);
InstallGlobalFunction(LeftRack, function(arg) InstallGlobalFunction(LeftRack, function(arg)
@ -68,7 +68,7 @@ InstallGlobalFunction(RightQuasigroup, function(arg)
fi; fi;
return CloneOfTypeByGenerators(IsRightQuasigroup, fam, arg, return CloneOfTypeByGenerators(IsRightQuasigroup, fam, arg,
GeneratorsOfRightQuasigroup, GeneratorsOfRightQuasigroup,
RightQuasigroupByMultiplicationTable); RightQuasigroupByMultiplicationTableNC);
end); end);
InstallGlobalFunction(RightRack, function(arg) InstallGlobalFunction(RightRack, function(arg)
@ -116,26 +116,29 @@ InstallGlobalFunction(LeftQuasigroupByMultiplicationTable,
Error("Multiplication table <T> must have each row a permutation of ", Error("Multiplication table <T> must have each row a permutation of ",
"the same entries."); "the same entries.");
fi; fi;
return MagmaByMultiplicationTableCreatorNC( return LeftQuasigroupByMultiplicationTableNC(
CanonicalCayleyTableOfLeftQuasigroupTable(T), CanonicalCayleyTableOfLeftQuasigroupTable(T));
LeftQuasigroup,
IsLeftQuotientElement and IsMagmaByMultiplicationTableObj
);
end); end);
InstallGlobalFunction(LeftQuasigroupByMultiplicationTableNC,
T -> MagmaByMultiplicationTableCreatorNC(T, LeftQuasigroup,
IsLeftQuotientElement and IsMagmaByMultiplicationTableObj)
);
InstallGlobalFunction(RightQuasigroupByMultiplicationTable, InstallGlobalFunction(RightQuasigroupByMultiplicationTable,
function(T) function(T)
if not IsRightQuasigroupTable(T) then if not IsRightQuasigroupTable(T) then
Error("Multiplication table <T> must have each column a permutation of ", Error("Multiplication table <T> must have each row a permutation of ",
"the same entries."); "the same entries.");
fi; fi;
return MagmaByMultiplicationTableCreatorNC( return RightQuasigroupByMultiplicationTableNC(CanonicalCayleyTable(T));
CanonicalCayleyTable(T),
RightQuasigroup,
IsRightQuotientElement and IsMagmaByMultiplicationTableObj
);
end); end);
InstallGlobalFunction(RightQuasigroupByMultiplicationTableNC,
T -> MagmaByMultiplicationTableCreatorNC(T, RightQuasigroup,
IsRightQuotientElement and IsMagmaByMultiplicationTableObj)
);
InstallGlobalFunction(LeftRackByMultiplicationTable, InstallGlobalFunction(LeftRackByMultiplicationTable,
function(T) function(T)
if not IsLeftQuasigroupTable(T) then if not IsLeftQuasigroupTable(T) then