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)$.