![]() |
Mackey
V3.3
A C++ library for computing RO(G) graded homology
|
The aim of this library is to solve the following problem:
Given inputs:
produce output:
The library can also compute Massey products \(\langle a,b,c\rangle\) for \(a,b,c\in H_{\star}\) with \(ab=bc=0\).
What enables this library to work is that free Mackey functors are determined on their bottom level by transferring:
\[\oplus_H\underline{R[G/H]}\]
where \(H\) ranges over (conjugacy classes of) subgroups of \(G\) (we allow repetitions).An application of this: box products of free Mackey functors are tensor products on the bottom level. This is not true for the higher levels, however we can obtain those by transferring. The same applies to duals.
Our approach that starts with \(C_*^e(X), C_*^e(S^V)\) and computes \(H_{\star}(X)\) can be summarized in the following diagram (in the case of \(G=C_4\)):
To fully computerize this approach we make the following modifications:
We multiply the additive generators of \(H_{\star}\) by performing the tensor/cross product on the chain level. This involves restricting and then inverting restrictions (which is possible since we have free Mackey functors). Diagrammatically:
We similarly compute Massey products in \(H_{\star}\) and the module structure of \(H_{\star}(X)\) over \(H_{\star}\).
Let us take \(G=C_{p^n}\) and \(R=\mathbf Z\).
While a Mackey functor is determined by the level-wise groups, transfers, restrictions and Weyl group actions, it is desirable to have a "universal" notation to concisely describe any Mackey functor.
\[a_0...a_n \sharp b_0...b_m\]
describes the Mackey functor \(M\):\[M(C_{p^n}/C_{p^i})=\begin{cases}\mathbf Z/a_i&\text{ if }a_i\neq 1\\ \mathbf Z&\text{ if }a_i= 1\end{cases} \\ Tr_{{p^i}}^{{p^{i+1}}}(x)=\begin{cases}x&\text{ if }i=b_j\text{ for some }j\\ 2x&\text{ else }\end{cases}\\ Res_{{p^i}}^{{p^{i+1}}}(x)=\begin{cases}2x&\text{ if }i=b_j\text{ for some }j\\x&\text{ else }\end{cases}\]
Here we assume \(0\leq b_0<\cdots<b_m<n\). The Weyl group actions are determined by the double coset formula.\[a_0...a_n \sharp b_0...b_m + \cdots + c_0...c_n\sharp d_0...d_l\]
Isomorphic Mackey functors can have different "universal" notations. To find if two different notations correspond to isomorphic Mackey functors (and are thus equivalent), it suffices to compute all different notations in each isomorphism class.
Given a Mackey functor \(M\) we compute its isomorphism class as follows:
For finitely generated (abelian) groups with only one \(\mathbf Z\) factor, there are only finitely many automorphisms and we can easily classify them all.
Starting with a small group of generators, the factorization process tries to write every other generator in terms of them.
It goes as follows:
\[\frac{ab}{cd}\text{ vs } \frac{a \frac{b}{c}}{d}\]
We also want to minimize the total length of the paths. This is done by a modified Dijkstra algorithm.\[\mathbf Z\{x,y\}/2y=\mathbf Z\oplus \mathbf Z/2= \mathbf Z\{x+y,y\}/2y\]
and we can't distinguish \(x\) from \(x+y\) as there is an automorphism of \(\mathbf Z\oplus \mathbf Z/2\) exchanging them.Another example: Over \(\mathbf F_2\) coefficients we can't distinguish the three generators of
\[\mathbf F_2\oplus \mathbf F_2\]
\[S^{2\sigma+\lambda}\wedge S^{-\lambda}=S^{\sigma}\wedge S^{\sigma}\wedge S^{\lambda}\wedge S^{-\lambda}S^{\sigma+\lambda}\wedge S^{\sigma -\lambda}\]
This is difficult to program generally and comes at a very high performance cost as we need more iterated box products.\[Tr:\mathbf Z\to \mathbf Z\{x,y\}/2y\\ Tr(1)=x\]
then we can distinguish \(x\) from \(x+y\) as only the former is a transfer.\[Res: \mathbf F_2\{x,y\}\to \mathbf F_2\\ Res(x)=0\text{ , }Res(y)=1\\ Tr:\mathbf F_2\to \mathbf F_2\{x,y\}\\ Tr(1)=0\]
in which case we cannot distinguish between \(y\) and \(x+y\).If we are only interested in the connectivity of the multiplication graph (whether or not everything is generated by Euler+orientation classes) then we don't need to make all identifications as connecting \(a\to x\) or \(a\to x+y\) gives graphs with the same number of components.
\[Tr(Res(x)y)=xTr(y)\]