FlabbyResolutionBC.gap

Definition of $M_G$
Let $G$ be a finite subgroup of ${\rm GL}(n,\mathbb{Z})$. The $G$-lattice $M_G$ of rank $n$ is defined to be the $G$-lattice with a $\mathbb{Z}$-basis $\{u_1,\ldots,u_n\}$ on which $G$ acts by \begin{align} \sigma(u_i)=\sum_{j=1}^n a_{i,j}u_j \tag{1} \end{align} for any $ \sigma=[a_{i,j}]\in G$.

Hminus1

Hminus1(G)
returns the Tate cohomology group $\widehat H^{-1}(G,M_G)$ for a finite subgroup $G \leq {\rm GL}(n,\mathbb{Z})$.

H0

H0(G)
returns the Tate cohomology group $\widehat H^0(G,M_G)$ for a finite subgroup $G \leq {\rm GL}(n,\mathbb{Z})$.

H1

H1(G)
returns the cohomology group $H^1(G,M_G)$ for a finite subgroup $G \leq {\rm GL}(n,\mathbb{Z})$.

Sha1Omega

Sha1Omega(G)
returns $Sha^1_w(G,M_G)$.

Sha1OmegaTr

Sha1OmegaTr(G)
returns $Sha^1_w(G,(M_G)^\circ)$.

ShaOmega

ShaOmega(G,n)
returns $Sha^n_w(G,M_G)$ for $G$-lattice $M_G$.
This function needs HAP package in GAP.

ShaOmegaFromGroup

ShaOmegaFromGroup(M,n,G)
returns $Sha^n_w(G,M)$ for $G$-lattice $M$.
This function needs HAP package in GAP.

TorusInvariants

TorusInvariants(G)
returns $TI_G=[l_1,l_2,l_3,l_4]$ where \[ l_1=\begin{cases} 0& \textrm{if}\ \ [M_G]^{fl}=0,\\ 1& \textrm{if}\ \ [M_G]^{fl}\neq 0\ \textrm{but is invertible},\\ 2& \textrm{if}\ \ [M_G]^{fl}\ \textrm{is not invertible}, \end{cases}\] $l_2=H^1(G,[M_G]^{fl})\simeq Sha^1_w(G,[M_G]^{fl})$,
$l_3=Sha^1_w(G,(M_G)^\circ)\simeq Sha^2_w(G,([M_G]^{fl})^\circ)$,
$l_4=H^1(G,([M_G]^{fl})^{fl})\simeq Sha^2_w(G,[M_G]^{fl})$ via the command H1(G).

TorusInvariantsHAP

TorusInvariantsHap(G)
returns $TI_G=[l_1,l_2,l_3,l_4]$ where \[ l_1=\begin{cases} 0& \textrm{if}\ \ [M_G]^{fl}=0,\\ 1& \textrm{if}\ \ [M_G]^{fl}\neq 0\ \textrm{but is invertible},\\ 2& \textrm{if}\ \ [M_G]^{fl}\ \textrm{is not invertible}, \end{cases}\] $l_2=H^1(G,[M_G]^{fl})\simeq Sha^1_w(G,[M_G]^{fl})$,
$l_3=Sha^1_w(G,(M_G)^\circ)\simeq Sha^2_w(G,([M_G]^{fl})^\circ)$,
$l_4=Sha^2_w(G,[M_G]^{fl})$ via the command ShaOmegaFromGroup($[M_G]^{fl},2,G$).
This function needs HAP package in GAP.

ConjugacyClassesSubgroups2TorusInvariants

ConjugacyClassesSubgroups2TorusInvariants(G)
returns the records ConjugacyClassesSubgroups2 and TorusInvariants where
ConjugacyClassesSubgroups2 is the list $[g_1,\ldots,g_m]$ of conjugacy classes of subgroups of $G\leq {\rm GL}(n,\mathbb{Z})$ with the fixed ordering via the function ConjugacyClassesSubgroups2(G) ( [HY17, Section 4.1]) and
TorusInvariants is the list [TorusInvariants($g_1$)$,\ldots,$TorusInvariants($g_m$)] via the function TorusInvariants(G).

PossibilityOfStablyEquivalentSubdirectProducts

PossibilityOfStablyEquivalentSubdirectProducts(G,G',
ConjugacyClassesSubgroups2TorusInvariants(G),
ConjugacyClassesSubgroups2TorusInvariants(G'))
returns the list $l$ of the subdirect products $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$ up to $({\rm GL}(n_1,\mathbb{Z})\times {\rm GL}(n_2,\mathbb{Z}))$-conjugacy which satisfy $TI_{\varphi_1(H)}=TI_{\varphi_2(H)}$ for any $H\leq \widetilde{H}$ where $\widetilde{H}\leq G\times G^\prime$ is a subdirect product of $G$ and $G^\prime$ which acts on $M_G$ and $M_{G^\prime}$ through the surjections $\varphi_1: \widetilde{H} \rightarrow G$ and $\varphi_2: \widetilde{H} \rightarrow G^\prime$ respectively (indeed, this function computes it for $H$ up to conjugacy for the sake of saving time). In particular, if the length of the list $l$ is zero, then we find that $[M_G]^{fl}$ and $[M_{G^\prime}]^{fl}$ are not weak stably $k$-equivalent.

FlabbyResolutionLowRank

FlabbyResolutionLowRank(G).actionF
returns the matrix representation of the action of $G$ on $F$ where $F$ is a suitable flabby class of $M_G$ ($F]=[M_G]^{fl}$) with low rank by using backtracking techniques (see [HY17, Chapter 5], see also [HHY Algorithm 4.1 (3)]).

Each isomorphism class of irreducible permutation $\widetilde{H}$-lattices corresponds to a conjugacy class of subgroup $H$ of $\widetilde{H}$ by $H \leftrightarrow \mathbb{Z}[\widetilde{H}/H]$. Let $H_1=\{1\},\ldots,H_r=\widetilde{H}$ be all conjugacy classes of subgroups of $\widetilde{H}$ whose ordering corresponds to the GAP function ConjugacyClassesSubgroups2($\widetilde{H}$) (see [HY17, Section 4.1, page 42]).

We suppose that $[F]=[F^\prime]$ as $\widetilde{H}$-lattices. Then we have \begin{align} \left(\bigoplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus x_i}\right)\oplus F^{\oplus b_1} \ \simeq\ \left(\bigoplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus y_i}\right)\oplus F^{\prime\,\oplus b_1}\tag{2} \end{align} where $b_1=1$. We write the equation $(2)$ as \begin{align} \bigoplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i}\ \simeq\ (F-F^\prime)^{\oplus (-b_1)}\tag{3} \end{align} formally where $a_i=x_i-y_i\in\mathbb{Z}$. Then we may consider "$\,F-F^\prime\,$" formally in the sene of $(2)$. By computing some ${\rm GL}(n,\mathbb{Z})$-conjugacy class invariants, we will give a necessary condition for $[F]=[F^\prime]$.

Let $\{c_1,\ldots,c_r\}$ be a set of complete representatives of the conjugacy classes of $\widetilde{H}$. Let $A_i(c_j)$ be the matrix representation of the factor coset action of $c_j\in \widetilde{H}$ on $\mathbb{Z}[\widetilde{H}/H_i]$ and $B(c_j)$ be the matrix representation of the action of $c_j\in \widetilde{H}$ on $F-F^\prime$.

By $(3)$, for each $c_j\in \widetilde{H}$, we have \begin{align} \sum_{i=1}^r a_i\, {\rm tr}\, A_i(c_j)+ b_1\, {\rm tr}\, B(c_j)=0\tag{4} \end{align} where ${\rm tr}\,A$ is the trace of the matrix $A$. Similarly, we consider the rank of $H^0=\widehat Z^0$. For each $H_j$, we get \begin{align} \sum_{i=1}^r a_i\, {\rm rank}\ \widehat Z^0(H_j,\mathbb{Z}[\widetilde{H}/H_i]) +b_1\, {\rm rank}\ \widehat Z^0(H_j,F-F^\prime)=0.\tag{5} \end{align} Finally, we compute $\widehat H^0$. Let $Sy_p(A)$ be a $p$-Sylow subgroup of an abelian group $A$. $Sy_p(A)$ can be written as a direct product of cyclic groups uniquely. Let $n_{p,e}(Sy_p(A))$ be the number of direct summands of cyclic groups of order $p^e$. For each $H_j,p,e$, we get \begin{align} \sum_{i=1}^r a_i\, n_{p,e}(Sy_p(\widehat H^0(H_j,\mathbb{Z}[\widetilde{H}/H_i]))) +b_1\, n_{p,e}(Sy_p(\widehat H^0(H_j,F-F^\prime)))=0.\tag{6} \end{align} By the equalities $(4)$, $(5)$ and $(6)$, we may get a system of linear equations in $a_1,\dots,a_r,b_1$ over $\mathbb{Z}$. Namely, we have that $[F]=[F^\prime]$ as $\widetilde{H}$-lattices $\Longrightarrow$ there exist $a_1,\ldots,a_r\in\mathbb{Z}$ and $b_1=\pm 1$ which satisfy $(3)$ $\Longrightarrow$ this system of linear equations has an integer solution in $a_1,\ldots,a_r$ with $b_1=\pm 1$.

In particular, if this system of linear equations has no integer solutions, then we conclude that $[F]\neq [F^\prime]$ as $\widetilde{H}$-lattices.

PossibilityOfStablyEquivalentFSubdirectProduct

PossibilityOfStablyEquivalentFSubdirectProduct(H~)
returns a basis $\mathcal{L}=\{l_1,\dots,l_s\}$ of the solution space $\{[a_1,\ldots,a_r,b_1]\mid a_i, b_1\in\mathbb{Z}\}$ of the system of linear equations which is obtained by the equalities $(4)$, $(5)$ and $(6)$ and gives all possibilities that establish the equation $(3)$ for a subdirect product $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$.

PossibilityOfStablyEquivalentMSubdirectProduct

PossibilityOfStablyEquivalentMSubdirectProduct(H~)
returns the same as PossibilityOfStablyEquivalentFSubdirectProduct(H~) but with respect to $M_G$ and $M_{G^\prime}$ instead of $F$ and $F^\prime$.

PossibilityOfStablyEquivalentFSubdirectProduct with "H2" option

PossibilityOfStablyEquivalentFSubdirectProduct(H~:H2)
returns the same as PossibilityOfStablyEquivalentFSubdirectProduct(H~) but using also the additional equality \begin{align} \sum_{i=1}^r a_i\, n_{p,e}(Sy_p(H^2(\widetilde{H},\mathbb{Z}[\widetilde{H}/H_i])))+b_1\, n_{p,e}(Sy_p(H^2(\widetilde{H},F-F^\prime)))=0\tag{7} \end{align} and the equalities $(4)$, $(5)$ and $(6)$.

PossibilityOfStablyEquivalentMSubdirectProduct with "H2" option

PossibilityOfStablyEquivalentMSubdirectProduct(H~:H2)
returns the same as PossibilityOfStablyEquivalentFSubdirectProduct(H~:H2) but with respect to $M_G$ and $M_{G^\prime}$ instead of $F$ and $F^\prime$.

In general, we will provide a method in order to confirm the isomorphism \begin{align} \left(\bigoplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i}\right)\oplus F^{\oplus b_1} \simeq \left(\bigoplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}}\right)\oplus F^{\prime\,\oplus b_1^{\prime}} \tag{8} \end{align} with $a_i,a_i^{\prime}\geq 0$, $b_1,b_1^\prime\geq 1$, although it is needed by trial and error.

Let $G_1$ (resp. $G_2$) be the matrix representation group of the action of $\widetilde{H}$ on the left-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})$ $\oplus$ $F^{\oplus b_1}$ (resp. the right-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})$ $\oplus$ $F^{\oplus b_1^{\prime}}$) of the isomorphism $(8)$. Let $\mathcal{P}=\{P_1,\dots,P_m\}$ be a basis of the solution space of $G_1P=PG_2$ where $m={\rm rank}_\mathbb{Z}$ ${\rm Hom}(G_1,G_2)$ $=$ ${\rm rank}_\mathbb{Z}$ ${\rm Hom}_{\widetilde{H}}(M_{G_1},M_{G_2})$. Our aim is to find the matrix $P$ which satisfies $G_1 P=P G_2$ by using computer effectively. If we can get a matrix $P$ with det $P=\pm 1$, then $G_1$ and $G_2$ are ${\rm GL}(n,\mathbb{Z})$-conjugate where $n$ is the rank of both sides of $(8)$ and hence the isomorphism $(8)$ established. This implies that the flabby class $[F^{\oplus b_1}]=[F^{\prime\,\oplus b_1^{\prime}}]$ as $\widetilde{H}$-lattices.

StablyEquivalentFCheckPSubdirectProduct

StablyEquivalentFCheckPSubdirectProduct(H~,l1,l2)
returns a basis $\mathcal{P}=\{P_1,\dots,P_m\}$ of the solution space of $G_1P=PG_2$ where $m={\rm rank}_\mathbb{Z}$ ${\rm Hom}(G_1,G_2)$ and $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) with the isomorphism $(8)$ for a subdirect product $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$, and lists $l_1=[a_1,\ldots,a_r,b_1]$, $l_2=[a_1^{\prime},\ldots,a_r^{\prime},b_1^{\prime}]$, if $P$ exists. If such $P$ does not exist, this returns [ ].

StablyEquivalentMCheckPSubdirectProduct

StablyEquivalentMCheckPSubdirectProduct(H~,l1,l2)
returns the same as StablyEquivalentFCheckPSubdirectProduct(H~,l1,l2) but with respect to $M_G$ and $M_{G^\prime}$ instead of $F$ and $F^\prime$.

StablyEquivalentFCheckMatSubdirectProduct

StablyEquivalentFCheckMatSubdirectProduct(H~,l1,l2,P)
returns true if $G_1P=PG_2$ and det $P=\pm 1$ where $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) with the isomorphism $(8)$ for a subdirect product $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$, and lists $l_1=[a_1,\ldots,a_r,b_1]$, $l_2=[a_1^{\prime},\ldots,a_r^{\prime},b_1^{\prime}]$. If not, this returns false.

StablyEquivalentMCheckMatSubdirectProduct

StablyEquivalentMCheckMatSubdirectProduct(H~,l1,l2,P)
returns the same as StablyEquivalentFCheckMatSubdirectProduct(H~,l1,l2,P) but with respect to $M_G$ and $M_{G^\prime}$ instead of $F$ and $F^\prime$.

StablyEquivalentFCheckGenSubdirectProduct

StablyEquivalentFCheckGenSubdirectProduct(H~,l1,l2)
returns the list $[\mathcal{M}_1,\mathcal{M}_2]$ where $\mathcal{M}_1=[g_1,\ldots,g_t]$ (resp. $\mathcal{M}_2=[g_1^{\prime},\ldots,g_t^{\prime}]$) is a list of the generators of $G_1$ (resp. $G_2$) which is the matrix representation group of the action of $\widetilde{H}$ on $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) with the isomorphism $(8)$ for a subdirect product $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$, and lists $l_1=[a_1,\ldots,a_r,b_1]$, $l_2=[a_1^{\prime},\ldots,a_r^{\prime},b_1^{\prime}]$.

StablyEquivalentMCheckGenSubdirectProduct

StablyEquivalentMCheckGenSubdirectProduct(H~,l1,l2)
returns the same as StablyEquivalentMCheckGenSubdirectProduct(H~,l1,l2) but with respect to $M_G$ and $M_{G^\prime}$ instead of $F$ and $F^\prime$.

By applying the function StablyEquivalentFCheckPSubdirectProduct, we get a basis $\mathcal{P}=\{P_1,\dots,P_m\}$ of the solution space of $G_1P=PG_2$ with det $P_i=\pm 1$ for some $1\leq i\leq m$ where $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on the left-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. the right-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) of the isomorphism $(8)$ and $m={\rm rank}_\mathbb{Z}$ ${\rm Hom}(G_1,G_2)$.

However, in general, we have that det $P_i\neq\pm 1$ for any $1\leq i\leq m$. In the general case, we should seek a matrix $P$ with det $P=\pm 1$ which is given as a linear combination $P=\sum_{i=1}^m c_i P_i$. This task is important for us and not easy in general even if we use a computer.

We made the following GAP algorithms which may find a matrix $P=\sum_{i=1}^m c_i P_i$ with $G_1P=PG_2$ and det $P=\pm 1$.

We will explain the algorithms below when the input $\mathcal{P}$ is obtained by StablyEquivalentFCheckPSubdirectProduct($\widetilde{H},l_1,l_2$) although it works in more general situations.

SearchPRowBlocks

SearchPRowBlocks(P)
returns the records bpBlocks and rowBlocks where bpBlocks (resp. rowBlocks) is the decomposition of the list $l=[1,\ldots,m]$ (resp. $l=[1,\ldots,n]$) with $m={\rm rank}_\mathbb{Z}$ ${\rm Hom}(G_1,G_2)$ (resp. $n={\rm size}$ $G_1$) according to the direct sum decomposition of $M_{G_1}$ for a basis $\mathcal{P}=\{P_1,\dots,P_m\}$ of the solution space of $G_1P=PG_2$ where $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on the left-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. the right-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) of the isomorphism $(8)$.

We write $B$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t$] and $R$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).rowBlocks[$t$].

SearchPFilterRowBlocks

SearchPFilterRowBlocks(P,B[t],R[t],j)
returns the lists $\{M_s\}$ where $M_s$ is the $n_t \times n$ matrix with all invariant factors $1$ which is of the form $M_s=\sum_{i\,\in\,B{\rm [}t{\rm ]}} c_i P_i^\prime$ $(c_i\in\{0,1\})$ at most $j$ non-zero $c_i$'s and $P_i^\prime$ is the submatrix of $P_i$ consists of $R$[$t$] rows with $n_t={\rm length}($$R$[$t$]$)$ for a basis $\mathcal{P}=\{P_1,\dots,P_m\}$ of the solution space of $G_1P=PG_2$ where $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on the left-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. the right-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) of the isomorphism $(8)$, $B$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t$], $R$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).rowBlocks[$t$]) and $j\geq 1$.
SearchPFilterRowBlocks(P,B[t],R[t],j,C)
returns the same as SearchPFilterRowBlocks(P,B[t],R[t],j) but with respect to $c_i\in C$ instead of $c_i\in\{0,1\}$ for the list $C$ of integers.

SearchPFilterRowBlocksRandomMT

SearchPFilterRowBlocksRandomMT(P,B[t],R[t],u)
returns the same as SearchPFilterRowBlocks(P,B[t],R[t],j) but with respect to random $u$ $c_i$'s via Mersenne Twister instead of at most $j$ non-zero $c_i$'s for integer $u\geq 1$.
SearchPFilterRowBlocksRandomMT(P,B[t],R[t],u,C)
returns the same as SearchPFilterRowBlocksRandomMT(P,B[t],R[t],u) but with respect to $c_i\in C$ instead of $c_i\in\{0,1\}$ for the list $C$ of integers.

SearchPMergeRowBlock

SearchPMergeRowBlock(m1,m2)
returns all concatenations of the matrices $M_s$ and $M_t$ vertically with all invariant factors $1$ (resp. a concatenation of the matrices $M_s$ and $M_t$ vertically with determinant $\pm 1$) for $m_1=\{M_s\}$ and $m_2=\{M_t\}$ where $M_s$ are $n_1\times n$ matrices and $M_t$ are $n_2\times n$ matrices with $n_1+n_2$ < $n$ (resp. $n_1+n_2=n$).

When there exists $t\in\mathbb{Z}$ such that $R$[$t$] $=\{j\}$, we can use:

SearchPLinear

SearchPLinear(M,P1)
returns the list $\{{\rm det}(M+P_i)\}_{i\,\in\,B{\rm [}t{\rm ]}}$ of integers for an $n\times n$ matrix $M$ which is obtained by inserting the zero row into the $j$-th row of $(n-1)\times n$ matrix $M_s=\sum_{i\,\not\in\,B{\rm [}t{\rm ]}} c_i P_i^\prime$ with all invariant factors $1$ and $\mathcal{P}_1=\{P_i\}_{i\,\in\, B{\rm [}t{\rm ]}}$ where $B$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t$], $P_i^\prime$ is the submatrix of $P_i$ deleting the $j$-th row, and $\mathcal{P}=\{P_1,\ldots,P_m\}$ is obtained by StablyEquivalentFCheckPSubdirectProduct($\widetilde{H}$,$l_1$,$l_2$) under the assumption that there exists $t\in\mathbb{Z}$ such that $R$[$t$] $=\{j\}$.

When there exist $t_1, t_2\in\mathbb{Z}$ such that $R$[$t_1$] $=\{j_1\}$, $R$[$t_2$] $=\{j_2\}$, we can use:

SearchPBilinear

SearchPBilinear(M,P1,P2)
returns the matrix $[{\rm det}(M+P_{i_1}+P_{i_2})]_{i_1\,\in\,B{\rm [}t_1{\rm ]},i_2\,\in\,B{\rm [}t_2{\rm ]}}$ for an $n\times n$ matrix $M$ which is obtained by inserting the two zero rows into the $j_1$-th row and the $j_2$-th row of $(n-2)\times n$ matrix $M_s=\sum_{i\,\not\in\,B{\rm [}t_1{\rm ]} \,\cup\,B{\rm [}t_2{\rm ]}} c_i P_i^\prime$ with all invariant factors $1$ and $\mathcal{P}_1=\{P_{i_1}\}_{i_1 \in B{\rm [}t_1{\rm ]}}$, $\mathcal{P}_2=\{P_{i_2}\}_{i_2 \in B{\rm [}t_2{\rm ]}}$, where $B$[$t_1$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t_1$], $B$[$t_2$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t_2$], $P_i^\prime$ is the submatrix of $P_i$ deleting the $j_1$-th and the $j_2$-th rows, and $\mathcal{P}=\{P_1,\ldots,P_m\}$ is obtained by StablyEquivalentFCheckPSubdirectProduct($\widetilde{H}$,$l_1$,$l_2$) under the assumption that there exist $t_1, t_2\in\mathbb{Z}$ such that $R$[$t_1$] $=\{j_1\}$ and $R$[$t_2$] $=\{j_2\}$.

When there exists $t\in\mathbb{Z}$ such that $R$[$t$] $=\{j_1,j_2\}$, we can use:

SearchPQuadratic

SearchPQuadratic(M,P1)
returns the matrix $[\frac{1}{2}({\rm det}(M+P_{i_1}+P_{i_2})-{\rm det}(M+P_{i_1})-{\rm det}(M+P_{i_2}))]_{i_1,i_2\,\in\,B{\rm [}t{\rm ]}}$ for an $n\times n$ matrix $M$ which is obtained by inserting the two zero rows into the $j_1$-th row and the $j_2$-th row of $(n-2)\times n$ matrix $M_s=\sum_{i\,\not\in\,B{\rm [}t{\rm ]}} c_i P_i^\prime$ with all invariant factors $1$ and $\mathcal{P}_1=\{P_i\}_{i \in B{\rm [}t{\rm ]}}$, where $B$[$t$] $=$ SearchPRowBlocks($\mathcal{P}$).bpBlocks[$t$], $P_i^\prime$ is the submatrix of $P_i$ deleting the $j_1$-th and $j_2$-th rows and $\mathcal{P}=\{P_1,\ldots,P_m\}$ is obtained by StablyEquivalentFCheckPSubdirectProduct($\widetilde{H}$,$l_1$,$l_2$) under the assumption that there exists $t\in\mathbb{Z}$ such that $R$[$t$] $=\{j_1,j_2\}$.

When $R$[$1$] $=\{1,\ldots,m\}$, we can use:

SearchP1

SearchP1(P)
returns a matrix $P=\sum_{i=1}^m c_i P_i$ with $c_i\in\{0,1\}$, $G_1P=PG_2$ and det $P=\pm 1$ where $G_1$ (resp. $G_2$) is the matrix representation group of the action of $\widetilde{H}$ on the left-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i})\oplus F^{\oplus b_1}$ (resp. the right-hand side $(\oplus_{i=1}^r \mathbb{Z}[\widetilde{H}/H_i]^{\oplus a_i^{\prime}})\oplus F^{\prime\,\oplus b_1^{\prime}}$) of the isomorphism $(8)$ for $\mathcal{P}=\{P_1,\ldots,P_m\}$ which is obtained by StablyEquivalentFCheckPSubdirectProduct($\widetilde{H}$,$l_1$,$l_2$) under the assumption that $R$[$1$]$=\{1,\ldots,m\}$.
SearchP1(P,C)
returns the same as SearchP1(P) but with respect to $c_i\in C$ instead of $c_i\in\{0,1\}$ for the list $C$ of integers.

Endomorphismring

Endomorphismring(G)
returns a $\mathbb{Z}$-basis of ${\rm End}_{\mathbb{Z}[G]}(M_G)$ for a finite subgroup $G$ of ${\rm GL}(n,\mathbb{Z})$.

IsCodimJacobsonEnd1

IsCodimJacobsonEnd1(G,p)
returns true (resp. false) if ${\rm dim}_{\mathbb{Z}/p\mathbb{Z}} (E/pE)\big/J(E/pE)=1$ (resp. $\neq 1$) where $E={\rm End}_{\mathbb{Z}[G]}(M_G)$ for a finite subgroup $G$ of ${\rm GL}(n,\mathbb{Z})$ and prime number $p$. If this returns true, then $M_G \otimes_\mathbb{Z} \mathbb{Z}_p$ is an indecomposable $\mathbb{Z}_p[G]$-lattice. In particular, $M_G$ is an indecomposable $G$-lattice (see [HY, Lemma 6.11]).

IdempotentsModp

IdempotentsModp(B,p)
returns all idempotents of $R/pR$ for a $\mathbb{Z}$-basis $B$ of a subring $R$ of $n\times n$ matrices $M(n,\mathbb{Z})$ over $\mathbb{Z}$ and prime number $p$. If this returns only the zero and the identity matrices when $R={\rm End}_{\mathbb{Z}[G]}(M_G)$, then $M_G \otimes_\mathbb{Z} \mathbb{Z}_p$ is an indecomposable $\mathbb{Z}_p[G]$-lattice. In particular, $M_G$ is an indecomposable $G$-lattice (see [HY, Lemma 6.10]).

ConjugacyClassesSubgroups2WSEC

ConjugacyClassesSubgroups2WSEC(G)
returns the records ConjugacyClassesSubgroups2 and WSEC where
ConjugacyClassesSubgroups2 is the list $[g_1,\ldots,g_m]$ of conjugacy classes of subgroups of $G\leq {\rm GL}(n,\mathbb{Z})$ $(n=3,4)$ with the fixed ordering via the function ConjugacyClassesSubgroups2($G$) (see [HY17, Section 4.1]) and
WSEC is the list $[w_1,\ldots,w_m]$ where $g_i$ is in the $w_i$-th weak stably $k$-equivalent class ${\rm WSEC}_{w_i}$ in dimension $n$.

MaximalInvariantNormalSubgroup

MaximalInvariantNormalSubgroup(G,ConjugacyClassesSubgroups2WSEC(G))
returns the maximal normal subgroup $N$ of $G$ which satisfies that $\pi(H_1)=\pi(H_2)$ implies $\psi(H_1)=\psi(H_2)$ for any $H_1,H_2\leq G$ where $\pi:G\rightarrow G/N$ is the natural homomorphism, $\psi : H_i\mapsto w_i$, and $H_i$ is in the $w_i$-th weak stably $k$-equivalent class ${\rm WSEC}_{w_i}$ in dimension $n$.

PossibilityOfStablyEquivalentSubdirectProducts with "WSEC" option

PossibilityOfStablyEquivalentSubdirectProducts(G,G',
ConjugacyClassesSubgroups2WSEC(G),
ConjugacyClassesSubgroups2WSEC(G'),["WSEC"])
returns the list $l$ of the subdirect products $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$ up to $({\rm GL}(n_1,\mathbb{Z})\times {\rm GL}(n_2,\mathbb{Z}))$-conjugacy which satisfy $w_1=w_2$ for any $H\leq \widetilde{H}$ where $\varphi_i(H)$ is in the $w_i$-th weak stably $k$-equivalent class ${\rm WSEC}_{w_i}$ in dimension $n$ $(n=3,4)$ and $\widetilde{H}\leq G\times G^\prime$ is a subdirect product of $G$ and $G^\prime$ which acts on $M_G$ and $M_{G^\prime}$ through the surjections $\varphi_1: \widetilde{H} \rightarrow G$ and $\varphi_2: \widetilde{H} \rightarrow G^\prime$ respectively (indeed, this function computes it for $H$ up to conjugacy for the sake of saving time).

IsomorphismFromSubdirectProduct

IsomorphismFromSubdirectProduct(H~)
returns the isomorphism $\sigma: G/N\rightarrow G^\prime/N^\prime$ which satisfies $\sigma(\varphi_1(h)N)=\varphi_2(h)N^\prime$ for any $h \in \widetilde{H}$ where $N=\varphi_1({\rm Ker}(\varphi_2))$ and $N^\prime=\varphi_2({\rm Ker}(\varphi_1))$ for a subdirect product $\widetilde{H}\leq G\times G^\prime$ of $G$ and $G^\prime$ with surjections $\varphi_1: \widetilde{H} \rightarrow G$ and $\varphi_2: \widetilde{H} \rightarrow G^\prime$.

AutGSubdirectProductsWSECInvariant

AutGSubdirectProductsWSECInvariant(G)
returns subdirect products $\widetilde{H}_m$ $=$ $\{(g,g^{\sigma_m})\mid g\in G, g^{\sigma_m}\in G^{\sigma_m}\}$ $(1\leq m\leq s)$ of $G$ and $G^{\sigma_m}$ where $\{\sigma_1,\ldots,\sigma_s\}$ is a complete set of representatives of the double coset $X\backslash Z/X$, \begin{align*} {\rm Inn}(G)\leq X\leq Y\leq Z\leq {\rm Aut}(G), \end{align*} \begin{align*} X&={\rm Aut}_{{\rm GL}(n,\mathbb{Z})}(G)=\{\sigma\in{\rm Aut}(G)\mid G\ {\rm and}\ G^\sigma\ {\rm are}\ {\rm conjugate}\ {\rm in} {\rm GL}(n,\mathbb{Z})\}\simeq N_{{\rm GL}(n,\mathbb{Z})}(G)/Z_{{\rm GL}(n,\mathbb{Z})}(G),\\ Y&=\{\sigma\in{\rm Aut}(G)\mid [M_G]^{fl}=[M_{G^\sigma}]^{fl}\ {\rm as}\ \widetilde{H}\textrm{-lattices}\ {\rm where}\ \widetilde{H}=\{(g,g^\sigma)\mid g\in G\}\simeq G\},\\ Z&=\{\sigma\in{\rm Aut}(G)\mid [M_H]^{fl}\sim [M_{H^\sigma}]^{fl}\ {\rm for}\ {\rm any}\ H\leq G\}, \end{align*} ${\rm Inn}(G)$ is the group of inner automorphisms on $G$, ${\rm Aut}(G)$ is the group of automorphisms on $G$, $N_{{\rm GL}(n,\mathbb{Z})}(G)$ is the normalizer of $G$ in ${\rm GL}(n,\mathbb{Z})$ and $Z_{{\rm GL}(n,\mathbb{Z})}(G)$ is the centralizer of $G$ in ${\rm GL}(n,\mathbb{Z})$.

AutGSubdirectProductsWSECInvariantGen

AutGSubdirectProductsWSECInvariantGen(G)
returns the same as AutGSubdirectProductsWSECInvariant($G$) but with respect to $\{\sigma_1,\ldots,\sigma_t\}$ where $\sigma_1,\ldots,\sigma_t\in Z$ are some minimal number of generators of the double cosets of $X\backslash Z/X$, i.e. minimal number of elements $\sigma_1,\ldots,\sigma_t\in Z$ which satisfy $\langle \sigma_1,\ldots,\sigma_t,x\mid x\in X\rangle=Z$, instead of a complete set of representatives of the double coset $X\backslash Z/X$. If this returns [], then we get $X=Y=Z$.

AutGLnZ

AutGLnZ(G)
returns \begin{align*} X={\rm Aut}_{{\rm GL}(n,\mathbb{Z})}(G)=\{\sigma\in{\rm Aut}(G)\mid G\ {\rm and}\ G^\sigma\ {\rm are}\ {\rm conjugate}\ {\rm in}\ {\rm GL}(n,\mathbb{Z})\}\simeq N_{{\rm GL}(n,\mathbb{Z})}(G)/Z_{{\rm GL}(n,\mathbb{Z})}(G). \end{align*}

N3WSECMembersTable

N3WSECMembersTable[r][i]
returns an integer $j$ which satisfies that $N_{3,j}$ is the $i$-th group in the weak stably $k$-equivalent class ${\rm WSEC}_r$.

N4WSECMembersTable

N4WSECMembersTable[r][i]
is the same as N3WSECMembersTable[r][i] but using $N_{4,j}$ instead of $N_{3,j}$.

I4WSECMembersTable

I4WSECMembersTable[r][i]
is the same as N3WSECMembersTable[r][i] but using $I_{4,j}$ instead of $N_{3,j}$.

AutGWSECINvariantSmallDegreeTest

AutGWSECINvariantSmallDegreeTest(G)
returns the list $l=[l_1,\ldots,l_s]$ $(l_1\leq \cdots\leq l_s$) of integers with the minimal $l_s,\ldots,l_1$ which satisfies $Z=Z^\prime$ where \begin{align*} Z&=\{\sigma\in{\rm Aut}(G)\mid [M_H]^{fl}\sim [M_{H^\sigma}]^{fl} \mbox{ for any } H\leq G\},\\ Z^\prime&=\{\sigma\in{\rm Aut}(G)\mid [M_H]^{fl}\sim [M_{H^\sigma}]^{fl} \mbox{ for any } H\leq G \mbox{ with } [G:H]\in l\} \end{align*} for $G\leq {\rm GL}(n,\mathbb{Z})$ $(n=3,4)$.

References

[HHY20] Sumito Hasegawa, Akinari Hoshi and Aiichi Yamasaki, Rationality problem for norm one tori in small dimensions, Math. Comp. 89 (2020) 923-940. AMS Extended version: arXiv:1811.02145.
[HY17] Akinari Hoshi and Aiichi Yamasaki, Rationality problem for algebraic tori, Mem. Amer. Math. Soc. 248 (2017) no. 1176, v+215 pp. AMS Preprint version: arXiv:1210.4525.
[HY] Akinari Hoshi and Aiichi Yamasaki, Birational classification for algebraic tori, arXiv:2112.02280.