add rack/quandle creators by perms
This commit is contained in:
parent
0231c423a3
commit
3e27eb52f6
@ -29,3 +29,15 @@ DeclareGlobalFunction("RightQuandleByMultiplicationTableNC");
|
||||
|
||||
## Property of a collection that its elements know their multiplication table
|
||||
DeclareProperty("IsBuiltFromMultiplicationTable", IsCollection);
|
||||
|
||||
## Create quasigroups etc by permutations
|
||||
DeclareGlobalFunction("LeftQuasigroupByPerms");
|
||||
DeclareGlobalFunction("LeftRackByPerms");
|
||||
DeclareGlobalFunction("LeftRackByPermsNC");
|
||||
DeclareGlobalFunction("LeftQuandleByPerms");
|
||||
DeclareGlobalFunction("LeftQuandleByPermsNC");
|
||||
DeclareGlobalFunction("RightQuasigroupByPerms");
|
||||
DeclareGlobalFunction("RightRackByPerms");
|
||||
DeclareGlobalFunction("RightRackByPermsNC");
|
||||
DeclareGlobalFunction("RightQuandleByPerms");
|
||||
DeclareGlobalFunction("RightQuandleByPermsNC");
|
||||
|
@ -151,6 +151,92 @@ InstallGlobalFunction(RightQuandleByMultiplicationTableNC,
|
||||
IsRightQuotientElement and IsRSelfDistElement and IsIdempotent)
|
||||
);
|
||||
|
||||
## Creators from permutations
|
||||
InstallGlobalFunction(LeftQuasigroupByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := LeftQuasigroupByMultiplicationTableNC(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)]));
|
||||
SetLeftPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(LeftRackByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := LeftRackByMultiplicationTable(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)]));
|
||||
SetLeftPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(LeftRackByPermsNC,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := LeftRackByMultiplicationTableNC(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)]));
|
||||
SetLeftPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(LeftQuandleByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := LeftQuandleByMultiplicationTable(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)]));
|
||||
SetLeftPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(LeftQuandleByPermsNC,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := LeftQuandleByMultiplicationTableNC(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)]));
|
||||
SetLeftPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(RightQuasigroupByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := RightQuasigroupByMultiplicationTableNC(
|
||||
TransposedMat(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)])));
|
||||
SetRightPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(RightRackByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := RightRackByMultiplicationTable(
|
||||
TransposedMat(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)])));
|
||||
SetRightPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(RightRackByPermsNC,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := RightRackByMultiplicationTableNC(
|
||||
TransposedMat(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)])));
|
||||
SetRightPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(RightQuandleByPerms,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := RightQuandleByMultiplicationTable(
|
||||
TransposedMat(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)])));
|
||||
SetRightPerms(Q, perms);
|
||||
end);
|
||||
|
||||
InstallGlobalFunction(RightQuandleByPermsNC,
|
||||
function(perms)
|
||||
local Q;
|
||||
Q := RightQuandleByMultiplicationTableNC(
|
||||
TransposedMat(
|
||||
CayleyTableByPerms(perms, [1..Length(perms)])));
|
||||
SetRightPerms(Q, perms);
|
||||
end);
|
||||
|
||||
## And define the operations
|
||||
|
||||
InstallOtherMethod(LeftQuotient,
|
||||
|
Loading…
Reference in New Issue
Block a user