## bytable.gd RAQ Quasigroups, racks, and quandles by multiplication tables. ## Self-distributivity # Predicates on tables: DeclareProperty( "IsLeftSelfDistributiveTable", IsMatrix ); DeclareProperty( "IsRightSelfDistributiveTable", IsMatrix ); DeclareProperty( "IsElementwiseIdempotentTable", IsMatrix ); ## Attributes (typically used on the families of elements created from a ## multiplication table) to store sections and division tables DeclareAttribute("LeftPerms", HasMultiplicationTable); DeclareAttribute("RightPerms", HasMultiplicationTable); DeclareAttribute("LeftDivisionTable", HasMultiplicationTable); DeclareAttribute("RightDivisionTable", HasMultiplicationTable); ## Create Quasigroups and racks from multiplication tables DeclareGlobalFunction("LeftQuasigroupByMultiplicationTable"); DeclareGlobalFunction("LeftQuasigroupByMultiplicationTableNC"); DeclareGlobalFunction("LeftRackByMultiplicationTable"); DeclareGlobalFunction("LeftRackByMultiplicationTableNC"); DeclareGlobalFunction("LeftQuandleByMultiplicationTable"); DeclareGlobalFunction("LeftQuandleByMultiplicationTableNC"); DeclareGlobalFunction("RightQuasigroupByMultiplicationTable"); DeclareGlobalFunction("RightQuasigroupByMultiplicationTableNC"); DeclareGlobalFunction("RightRackByMultiplicationTable"); DeclareGlobalFunction("RightRackByMultiplicationTableNC"); DeclareGlobalFunction("RightQuandleByMultiplicationTable"); 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");