2
$\begingroup$

I am trying to use Magma to compute the corestriction of a second cohomology class, but I’m not sure how to interpret the output. The details and code are given below.

Consider the group $G = \mathrm{Sp}_4(\mathbb{F}_2)$ and its defining representation $M = \mathbb{F}_2^4$. Let $m = (1,0,0,0)$ be the first basis vector and let $H$ be the stabilizer of $m$ in $G$. I can compute using the code below that $H^2(G,M) = \mathbb{F}_2$ and $H^2(H,M) = \mathbb{F}_2^3$. I would like to compute the corestriction map $H^2(H,M) \rightarrow H^2(G,M)$ explicitly. For example, below I try to apply the existing functionality for corestriction to an explicit $2$-cocycle $z$ for $H$, which should give me a 2-cocycle $f$ for $G$. But if I try to evaluate $f$ at a random element of $G\times G$, I get an error, and if I try to identity the image of $f$ in $H^2(G,M)$, I also get an error. Is there a bug or am I simply not interpreting the output correctly?

Any pointers are appreciated!

Code and output:

> G:=Sp(4,2);
> M:=GModule(G);
> m:=M ! [1,0,0,0];
> H:=Stabilizer(G,m);
> GM:=CohomologyModule(G,M);
> HM:=Restriction(GM,H);
> //Calculate the cohomology groups:
> H2GM:=CohomologyGroup(GM,2);
> H2HM:=CohomologyGroup(HM,2);
> H2GM; H2HM;
Full Vector space of degree 1 over GF(2)
Full Vector space of degree 3 over GF(2)
> //Take a class in H2HM and try to compute its corestriction:
> h:=H2HM.1;
> z:=TwoCocycle(HM,h);
> f:=CorestrictCocycle(G,HM,z,2);
> Type(f);
UserProgram
> //Trying to make sense of the output f by evaluating it at an element of G\times G or interpreting as a cocycle gives errors:
> f([G.1,G.1]);

f(
    X: [ [1 0 1 1] [1 0 0 1] [0 1 0 1] [1 1 1 1],  [1 0 1 1] [1 0 0...
)
split(
    x: [1 0 1 1] [1 0 0 1] [0 1 0 1] [1 1 1 1],
    y: [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]
)
In file "/alt/applic/magma/2.28-10/package/Ring/FldAb/ClassField5.m", line 241, 
column 5:
>>     assert u in U;
       ^
Runtime error in assert: Assertion failed
> IdentifyTwoCocycle(GM,f);

IdentifyTwoCocycle(
    CM: Cohomology Module,
    TC: function(X) ... end function
)
IdentifyTwoCocycleSG(
    CM: Cohomology Module,
    TC: function(X) ... end function
)
EvaluateRelator(
    CM: Cohomology Module,
    TC: function(X) ... end function,
    w: [ 5, 5 ]
)
f(
    X: < [1 0 1 1] [1 0 0 1] [0 1 0 1] [1 1 1 1],  [1 1 1 1] [1 0 0...
)
split(
    x: [1 1 1 1] [1 0 0 1] [1 1 0 0] [1 0 1 1],
    y: [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]
)
In file "/alt/applic/magma/2.28-10/package/Ring/FldAb/ClassField5.m", line 241, 
column 5:
>>     assert u in U;
       ^
Runtime error in assert: Assertion failed
> 
$\endgroup$
7
  • $\begingroup$ I am not good with Magma functionalities, but I know an explicit formula for the corestriction map $${\rm cor}^2\colon C^2(H,M) \to C^2(G,M)$$ that you can easily implement in Magma. $\endgroup$ Commented Nov 6 at 17:15
  • $\begingroup$ Set $X=H\backslash G$. I think that in your example $X=M\smallsetminus \{0\}$. Choose a section $$ s\colon X\to G$$ of the natural projection $G\to X=H\backslash G$. Let $c\colon H\times H\to M$ be a 2-cochain for $H$. Then the value of ${\rm cor}^2(c)$ on $(g_1,g_2)\in G\times G$ is $$\sum_{x\in X} s(x)\cdot c\big(\,s(x) g_1 s(xg_1)^{-1},\, s(xg_1) g_2 s(x g_1 g_2)^{-1}\,\big).$$ $\endgroup$ Commented Nov 6 at 17:15
  • $\begingroup$ @MikhailBorovoi Thanks for your comments, they are very helpful. Do you have a reference for this formula? One subtle feature is that Magma views $G$-modules as acting on the right (as opposed to the traditional action on the left), so this might affect the formula. $\endgroup$
    – Jef
    Commented Nov 6 at 17:26
  • $\begingroup$ This is an inhomogeneous version of the formula for ${\rm cor}^n$ for all $n\ge 0$ in Section 3.6 of this preprint. This inhomogeneous formula will soon appear in the next version of this preprint in Appendix E. $\endgroup$ Commented Nov 6 at 17:36
  • $\begingroup$ Right action: Right! I will post a right-action version a bit later. $\endgroup$ Commented Nov 6 at 17:39

2 Answers 2

3
$\begingroup$

I based my quick answer (see comments above) on

https://magma.maths.usyd.edu.au/magma/handbook/text/814

which states:

Cocycles Before invoking the functions in this section, it is necessary to first invoke the function CohomologyGroup(CM, n) for the appropriate n.

For n = 0, 1 or 2, an n-cocycle is a function from Gn to the module M, where elements of Gn are represented as an n-tuple < g1, ..., gn > of group elements, for which a certain relation is satisfied. These relations are consistent with the Magma convention of the use of right actions, and so they are slightly different from those encountered in many textbooks, where left actions are more common.

0-, 1- and 2-cocycles z, o and t, respectively, satisfy the following relations for all g, h, ∈G. z(< >)g = z(< >); o(< gh >) = o(< g >)h + o(< h >); t(< gh, k >) + t(< g, h >)k = t(< g, hk >) + t(< h, k >) .

However, I no longer think this is the problem. Adding the lines

z:Maximal; f:Maximal; CorestrictCocycle:Maximal;

to Jef's code gives the following output

function(gtp) ... end function function(X) ... end function Intrinsic 'CorestrictCocycle'

Signatures:

Defined in file: /magma/package/Ring/FldAb/ClassField5.m, line 234, column
5:
(G::Grp, C::ModCoho, c::UserProgram, i::RngIntElt) -> UserProgram

    The image of the cocyle c of the cohomology module C under the
    cohomological corestriction.

In particular, the code for the command "CorestrictCocycle" comes from the machinery relating to class field theory https://magma.maths.usyd.edu.au/magma/handbook/class_field_theory

and hence it may not match Derek Holt's group cohomology code.

In fact I'm not sure that corestriction has been implemented in the generality Jef needs. Of course one can easily write some code to implement the transfer (cf. Mikhail Borovoi's answer); this will work if the index $[G:H]$ is small.

$\endgroup$
1
  • 2
    $\begingroup$ That's right, I didn't write the intrinsic $\mathtt {CorestrictCocycle}$ myself, and the code has several bugs, the most significant one being that left and right actions have been confused. I believe that I have now replaced it by a correct version, which I will install after testing it some more. $\endgroup$
    – Derek Holt
    Commented Nov 12 at 13:33
2
$\begingroup$

Since OP found my comments helpful, I post them as an answer to have an editable text.

Let $G$ be a group, $H\subset G$ be a subgroup of finite index, and $M$ be a right $H$-module. I know an explicit formula for the corestriction map $${\rm cor}^2\colon Z^2(H,M) \to Z^2(G,M)$$ that one can easily implement in Magma.

Consider the quotient $H\backslash G$; it is finite. Choose a section
$$ s\colon H\backslash G\to G$$ of the natural projection $G\to H\backslash G$.

Let $z\colon H\times H\to M$ be a 2-cocycle for $H$.
Then the value of ${\rm cor}^2(z)$ on $(g_1,g_2)\in G\times G$ is $$\sum_{x\in H\backslash G} z\big(\,s(x) g_1 s(xg_1)^{-1},\, s(xg_1) g_2 s(x g_1 g_2)^{-1}\,\big)\cdot s(x).$$

This is an inhomogeneous right-action version of the formula for ${\rm cor}^n$ for all n≥0 in Section 3.6 of Mikhail Borovoi and Tasho Kaletha, with an appendix by Vladimir Hinich, Galois cohomology of reductive groups over global fields.

EDIT: I add details. The formula in Section 3.6 of the preprint is: a homogeneous 2-cochain $c(h_0,h_1,h_2)$ of $H$ corestricts to the homogeneous cochain \begin{multline*} {\rm cor}(c)(g_0,g_1,g_2) =\\ \sum_{x\in H\backslash G}\!\! s(x)^{-1}\cdot c\big(\,s(x)g_0 s(xg_0)^{-1},\, s(x)g_1 s(xg_1)^{-1},\, s(x)g_2 s(xg_2)^{-1}\,\big). \end{multline*} We pass from the function $c(h_0,h_1,h_2)$ of three variables to a function $z(h_1,h_2)$ of two variables by substituting $$z(h_1,h_2)= c(1,h_1,h_1 h_2)$$ (and similarly for $G$) as explained in Section IV.2 (bottom of page 96) of the book Algebraic Number Theory edited by Cassels and Fröhlich. We obtain \begin{multline*} {\rm cor}(z)(g_1,g_2)= {\rm cor}(c)(1,g_1,g_1g_2) =\\ \sum_{x\in H\backslash G}\!\! s(x)^{-1}\cdot c\big(\,1,\, s(x)g_1 s(xg_1)^{-1},\, s(x)g_1 g_2 s(x g_1 g_2)^{-1}\,\big). \end{multline*}

We put $$h_1= s(x)g_1 s(xg_1)^{-1},\quad\ h_1h_2= s(x)g_1 g_2 s(x g_1 g_2)^{-1}.$$ Then $$ h_2= (s(x)g_1 s(xg_1)^{-1})^{-1} s(x)g_1 g_2 s(x g_1 g_2)^{-1}=s(xg_1)g_2 s(xg_1 g_2)^{-1}.$$ Thus $${\rm cor}(z)(g_1,g_2)=\sum_{x\in H\backslash G}\!\! s(x)^{-1}\cdot z\big(\,s(x) g_1 s(xg_1)^{-1},\, s(xg_1) g_2 s(x g_1 g_2)^{-1}\,\big).$$

We pass from the left action to the right action by putting $s(x)$ on the right instead of $s(x)^{-1}$ on the left.

EDIT of November 12, 2024: I passed from the left action to the right action carelessly. The version of Derek Holt, most probably correct, is as follows:

The value of ${\rm cor}^2(z)$ on $(g_1,g_2)\in G\times G$ is $$\sum_{x\in H\backslash G}\!\! z\big(\,s(x) g_1 s(xg_1)^{-1},\, s(xg_1) g_2 s(x g_1 g_2)^{-1}\,\big)\cdot s(x g_1 g_2).$$

$\endgroup$
4
  • $\begingroup$ I will ask my co-author Tasho Kaletha to check this formula. I think that the left-action formula in my comment is erroneous: there should be $s(x)^{-1}$. $\endgroup$ Commented Nov 6 at 19:32
  • $\begingroup$ Thank you! Just checking, in your paper, you work with homogenous cochains, so a 2-cocycle would have 3 arguments instead of 2; does this change the formula? $\endgroup$
    – Jef
    Commented Nov 7 at 11:57
  • 1
    $\begingroup$ I suspect that the final $s(x)$ in your formula for the action of ${\rm cor}^2(z)$ on $(g_1,g_2)$ should be replaced by $s(xg_1g_2)$. I checked that, with this modification, the formula really does yield a $2$-cocycle, and I have also programmed it in Magma and it appears to work; that is, in the examples I tried, the function computed is a $2$-cocycle. $\endgroup$
    – Derek Holt
    Commented Nov 12 at 13:29
  • $\begingroup$ @DerekHolt: Thank you! I have edited my answer. $\endgroup$ Commented Nov 12 at 20:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .