Suppose that the finitely generated group \(G\) is given by a nilpotent sequence \((g_1,\dots,g_n)\). For \(g \in G\) and \(U \leq G\), we denote the conjugacy class of \(g\) under \(U\) by \(g^U = \{g^h \mid h \in U\}\) and the centralizer of \(g\) in \(U\) by \(C_U(g) = \{h \in U \mid g^h = g\}\).
Let \(\ll\) be the well-order \(0 \ll 1 \ll 2 \ll \dots \ll −1 \ll −2 \dots\) of \(\mathbb{Z}\). We extend the well-order to exponent vectors lexicographically; that is, \((e_1,\dots, e_n) \ll (f_1, \dots, f_n)\) if \(e_1 = f_1, \dots , e_{i−1} = f_{i−1}\) and \(e_i \ll f_i\) for some \(i \in {1,\dots,n} \). We order the elements of \(G\) via their exponent vectors; that is, \(g \ll h\) if \(e(g) \leq e(h)\). One of the main programs of this package is to compute the minimum element in \(g^U \) with respect to \(\ll\); this element is known as the canonical conjugacy representative of \(g\), which is denoted as \(\mathrm{Cano}_U(g)\). This program also computes the centralizer \(C_U(g)\). This package is supplementary to the article of Eick and Fernández Ayala [EF25].
‣ CentralizerNilGroup( G, elms ) | ( function ) |
Computes the centralizer of a given set of elements \(elms\) in \(G\).
‣ IsConjugateNilGroup( G, g, h ) | ( function ) |
Checks if two given elements \(g\) and \(h\) in \(G\) are conjugate. If so it returns the conjugating element.
‣ CanonicalConjugateElements( G, elms ) | ( function ) |
Computes the canonical conjugate representative of a given elements \(elms\) in \(G\). Returns a record containing the canonical conjugates, the conjugating elements to obtain the canonical conjugate and the centralizers of the given elements.
‣ IsCanonicalConjugateElements( G, elms ) | ( function ) |
Checks if a set of elements \(elms\) in \(G\) are conjugate using the canonical representative aproach. If so it returns a record containing the canonical conjugate representative, the conjugating elements and the centralizer.
‣ InfoConjugacyElements | ( info class ) |
Info class for the functions of canonical conjugates for elements.
Suppose that the finitely generated group \(G\) is given by a nilpotent sequence \((g_1,\dots,g_n)\). Given \(U, V \leq G\) we write \(U^V = \{U^g \mid g ∈ V \}\) for the conjugacy class of \(U\) under \(V\) and \(N_V(U) = \{g \in V \mid U^g = U\}\) for the corresponding normalizer. Let \(U \leq G\) be given by its basis \((u_1,\dots, u_n)\). Let \(N \leq N_G(U)\) and \(g \in N\). We define \(\mathrm{Cano}_N^U(g)\) as the unique reduced preimage of \(\mathrm{Cano}_{N/U}(gU)\) under the natural homomorphism \(N \rightarrow N/U\). Now we consider two subgroups \(W\) and \(V\) of \(G\), and write \(W_i = W \cap G_i \) for \(1 \leq i \leq n\). We define \(\mathrm{Cano}_V (W )\) inductively: suppose that \(U_{i+1} = \mathrm{Cano}_V (W_i+1)\) is given by a basis \(u_{i+1},\dots, u_n\) together with a conjugating element \(U_i+1 = W^v_{i+1}\) and its normalizer \(N = N_V (U_{i+1})\). Suppose that \(W_i < W_{i+1}\) and \(W_i = \langle w_i, W_{i+1}\rangle \). Let \(w_i^\prime\) be the normalized power of the conjugate \(w^v_i\). Set \(u_i = \mathrm{Cano}^{U_{i+1}}_N(w^\prime_i)\), then \((u_i,\dots, u_n)\) is a basis for a subgroup \(U_i\) of \(G_i\). We write \(\mathrm{Cano}_V (W )\) for the subgroup \(U_1\) eventually determined by an iterated process. One of the main programs of this package is to compute \(\mathrm{Cano}_V (W )\). This program also computes the normalizer of \( N_V(W) \).
‣ NormalizerNilGroup( G, U ) | ( function ) |
Computes the normalizer of a given subgroup \(U\) of \(G\).
‣ IsConjugateSubgroups( G, U, V ) | ( function ) |
Checks if two given subgroups \(U\) and \(V\) of \(G\) are conjugate. If so it returns the conjugating element.
‣ CanonicalConjugateSubgroup( G, U ) | ( function ) |
Computes the canonical conjugate representative of a given subgroup \(U\) of \(G\). Returns a record containing the canonical conjugate subgroup, the conjugating element and the normalizer of the given subgroup.
‣ IsCanonicalConjugateSubgroups( G, U, V ) | ( function ) |
Checks if two subgroup \(U,V\) of \(G\) are conjugate using the canonical representative aproach. If so it returns a record containing the canonical conjugate subgroup, the conjugating elements and the normalizer of the given subgroups.
‣ InfoConjugacySubgroups | ( info class ) |
Info class for the functions of canonical conjugates for subgroups.
‣ CanonicalConjugateList( G, list ) | ( function ) |
Given a list of elements of a nilpotent group \(G\), returns a list of canonical conjugacy representatives of the list and the positions of the elements that belong to the given canonical conjugacy class.
‣ IsConjugateList( G, list ) | ( function ) |
Given a list of elements of a nilpotent group \(G\), returns a list of conjugacy representatives of the list and the positions of the elements that belong to the given conjugacy class.
These algorithms are based on Eddie's work [Lo98].
‣ IntersectionSubgroupsNilGroups( G, U, V ) | ( function ) |
Given two subgroups \(U,V\) of a nilpotent group \(G\) computes the intersection of both subgroups.
‣ SubgroupProductPair( G, U, V ) | ( function ) |
Given two subgroups \(U,V\) of a nilpotent group \(G\), computes the subgroup product pair of both subgroups.
‣ ProductDecomposition( G, U, V, g ) | ( function ) |
Given two subgroups \(U,V\) of a nilpotent group \(G\) and an element \(g\) in \(G\) computes the decomposition of \(g\) with respect to the product pair of the two subgroups.
generated by GAPDoc2HTML