In this section we define skew braces and list some of their main properties [GV17].
A skew brace is a triple \((A,+,\circ)\), where \((A,+)\) and \((A,\circ)\) are two (not necessarily abelian) groups such that the compatibility \(a\circ (b+c)=a\circ b-a+a\circ c\) holds for all \(a,b,c\in A\). Ones proves that the map \(\lambda\colon (A,\circ)\to\mathrm{Aut}(A,+)\), \(a\mapsto\lambda_a(b)\), \(\lambda_a(b)=-a+a\circ b\), is a group homomorphism. Notation: For \(a,b\in A\), we write \(a*b=\lambda_a(b)-b\).
‣ IsSkewbrace ( arg ) | ( filter ) |
Returns: true
or false
‣ Skewbrace ( list ) | ( operation ) |
Returns: a skew brace
The argument list is a list of pairs of elements in a group. By Proposition 5.11 of [GV17], skew braces over an abelian group \(A\) are equivalent to pairs \((G,\pi)\), where \(G\) is a group and \(\pi\colon G\to A\) is a bijective \(1\)-cocycle, a finite skew brace can be constructed from the set \(\{(a_j,g_j):1\leq j\leq n\}\), where \(G=\{g_1,\dots,g_n\}\) and \(A=\{a_1,\dots,a_n\}\) are permutation groups. This function is used to construct skew braces.
gap> Skewbrace([[(),()]]); <brace of size 1> gap> Skewbrace([[(),()],[(1,2),(1,2)]]); <brace of size 2>
‣ SmallSkewbrace ( n, k ) | ( operation ) |
Returns: a skew brace
The function returns the k-th skew brace from the database of skew braces of order n.
gap> SmallSkewbrace(8,3); <brace of size 8>
‣ TrivialBrace ( abelian_group ) | ( operation ) |
Returns: a brace
This function returns the trivial brace over the abelian group abelian_group. Here abelian_group should be an abelian group!
gap> TrivialBrace(CyclicGroup(IsPermGroup, 5)); <brace of size 5>
‣ TrivialSkewbrace ( group ) | ( operation ) |
Returns: a skew brace
This function returns the trivial skew brace over group.
gap> TrivialSkewbrace(DihedralGroup(10)); <skew brace of size 10>
‣ SmallBrace ( n, k ) | ( operation ) |
Returns: a brace of abelian type
The function returns the k-th brace (of abelian type) from the database of braces of order n.
gap> SmallBrace(8,3); <brace of size 8>
‣ IdSkewbrace ( obj ) | ( attribute ) |
Returns: a list
The function returns [ n, k ] if the skew brace obj is isomorphic to SmallSkewbrace(n,k).
gap> IdSkewbrace(SmallSkewbrace(8,5)); [ 8, 5 ]
‣ IdBrace ( obj ) | ( attribute ) |
Returns: a list
The function returns [ n, k ] if the brace of abelian type obj is isomorphic to SmallBrace(n,k).
gap> IdBrace(SmallBrace(8,5)); [ 8, 5 ]
‣ IsomorphismSkewbraces ( obj1, obj2 ) | ( function ) |
Returns: an isomorphism of skew braces if obj1 and obj2 are isomorphic and fail otherwise.
If \(A\) and \(B\) are skew braces, a skew brace homomorphism is a map \(f\colon A\to B\) such that
\[f(a+b)=f(a)+f(b)\quad f(a\circ b)=f(a)\circ f(b)\]
hold for all \(a,b\in A\). A skew brace isomorphism is a bijective skew brace homomorphism. IsomorphismSkewbraces first computes all injective homomorphisms from \((A,+)\) to \((B,+)\) and then tries to find one \(f\) such that \(f(a\circ b)=f(a)\circ f(b)\) for all \(a,b\in A\).
‣ DirectProductSkewbraces ( obj1, obj2 ) | ( operation ) |
Returns: the direct product of obj1 and obj2
gap> br1 := SmallBrace(8,18);; gap> br2 := SmallBrace(12,2);; gap> br := DirectProductSkewbraces(br1,br2);; gap> IsLeftNilpotent(br); false gap> IsRightNilpotent(br); false gap> IsSolvable(br); true
‣ IsTwoSided ( obj ) | ( property ) |
Returns: true if the skew brace is two sided, false otherwise
A skew brace \(A\) is said to be two-sided if \((a+b)\circ c=a\circ c-c+b\circ c\) holds for all \(a,b,c\in A\).
gap> IsTwoSided(SmallSkewbrace(8,2)); false gap> IsTwoSided(SmallSkewbrace(8,4)); true
‣ IsClassical ( obj ) | ( property ) |
Returns: true if the skew brace is of abelian type, false otherwise
Let \(\mathcal{X}\) be a property of groups. A skew brace \(A\) is said to be of \(\mathcal{X}\)-type if its additive group belongs to \(\mathcal{X}\). In particular, skew braces of abelian type are those skew braces with abelian additive group. Such skew braces were introduced by Rump in [Rum07].
‣ IsTrivialSkewbrace ( obj ) | ( property ) |
Returns: true if the skew brace is trivial, false otherwise
The function returns true if the skew brace \(A\) is trivial, i.e., \(a\circ b=a+b\) for all \(a,b\in A\).
‣ Skewbrace2YB ( obj ) | ( attribute ) |
Returns: the set-theoretic solution associated with the skew brace obj
If \(A\) is a skew brace, the map \(r_A\colon A\times A\to A\times A\)
\[r_A(a,b)=(\lambda_a(b),\lambda_a(b)'\circ a\circ b)\]
is a non-degenerate set-theoretic solution of the Yang--Baxter equation. Furthermore, \(r_A\) is involutive if and only if \(A\) is of abelian type (i.e., the additive group of \(A\) is abelian).
gap> Skewbrace2YB(TrivialBrace(CyclicGroup(6))); <A set-theoretical solution of size 6>
‣ Brace2YB ( arg ) | ( attribute ) |
‣ SkewbraceSubset2YB ( obj ) | ( operation ) |
Returns: the set-theoretic solution associated with a given subset of a skew brace
gap> br := TrivialSkewbrace(SymmetricGroup(3));; gap> AsList(br); [ <()>, <(2,3)>, <(1,2)>, <(1,2,3)>, <(1,3,2)>, <(1,3)> ] gap> SkewbraceSubset2YB(br, last{[4,5]}); <A set-theoretical solution of size 2>
generated by GAPDoc2HTML