# Checking if Hochschild cohomology $\mathit{HH}^2(A)=0$

I am trying to compute the Hochschild cohomology of a particular bound quiver path algebra. The quiver $$Q$$ consists of one vertex and four loops $$x,y, h_1,h_2$$, and the relations $$I$$ are generated by:

1. All paths of length greater than 3.
2. All paths of length 3, except $$yh_1x$$ and $$xh_2y$$, and $$yh_1x+xh_2y$$.
3. All paths of length 2, except $$yh_1, h_1x, xh_2,h_2y$$.

Basically, in this algebra I have $$yh_1x=-xh_2y$$, and only other nonzero paths are the subpaths of these 2.

I am interested in $$\mathit{HH}^2(kQ/I)$$. More specifically, I am interested in whether $$\mathit{HH}^2(kQ/I)=0$$ for some infinite field $$k$$. I couldn't find or come up with a direct way of computing it, and my attempt using GAP's QPA package ran into memory problems. So I was wandering what are the tractable ways to compute this cohomology or prove that is zero or non-zero, either on paper or using computer algebra.

GAP code:

Q := Quiver(1, [[1,1,"x"],[1,1,"y"],[1,1,"h_1"],[1,1,"h_2"]]);
R := PathAlgebra(Rationals,Q);
gens:= GeneratorsOfAlgebra(R);
x:=gens[2];
y:=gens[3];
h_1:=gens[4];
h_2:=gens[5];
relations :=[x^2,y^2,h_1^2,h_2^2,xy,yx,h_1h_2,h_2h_1,xh_1x,xh_1y,yh_1y,xh_2x,yh_2x,yh_2y,yh_1x+xh_2y,h_1xh_1,h_1xh_2,h_2xh_1,h_2xh_2,h_1yh_1,h_1yh_2,h_2yh_1,h_2yh_2];
gb := GBNPGroebnerBasis(relations,R);
I:=Ideal(R,gb);
GroebnerBasis(I,gb);
A:=R/I;
M := AlgebraAsModuleOverEnvelopingAlgebra(A);
HH2 := ExtOverAlgebra(NthSyzygy(M, 1), M);

• It might be helpful when you post the QPA code to enter the algebra into QPA so other people can use it too (and can be sure they have the algebra that you want).
– Mare
Dec 9, 2020 at 18:10

I believe that there is a 2-dimensional cocycle $$g$$ such that: $$g(h_1 x \otimes h_2) = g(h_1 \otimes x h_2) = y h_1 x$$ and $$g(a \otimes b) = 0$$ for all other paths $$a$$ and $$b$$.

To check that it's a cocycle, we have to verify that for all paths $$a$$, $$b$$, $$c$$, we have $$a g(b \otimes c) - g(a b \otimes c) + g(a \otimes bc) - g(a \otimes b)c = 0.$$ If $$a=1$$ or $$c=1$$ this is true; if $$a \neq 1$$ and $$c \neq 1$$ then the value of $$g$$ is length-3 and so it's killed by any product, and so we just need to verify $$g(ab \otimes c) = g(a \otimes bc).$$ This is automatic if $$b=1$$, and both sides are zero if $$a$$, $$b$$, or $$c$$ are length greater than 1. This identity just needs to be checked when $$a$$, $$b$$, and $$c$$ are paths of length $$1$$, where it is straightforward.

Finally, to verify that it's nonzero in Hochschild cohomology we need to verify that there is no function $$f$$ such that $$g(a \otimes b) = a f(b) - f(ab) + f(a)b.$$ If we apply this to $$h_1 x \otimes h_2$$ we find we need $$h_1 x f(h_2) + f(h_1 x) h_2 = y h_1 x = -x h_2 y \notin I$$ but multiplication on the left by $$h_1$$ or on the right by $$h_2$$ sends all length 2 paths in $$kQ$$ into the ideal $$I$$.

(The second Hochschild cohomology group often "detects primitive relations". This cocycle is detecting that the length-3 path $$h_1 x h_2$$ is zero and that this is not a consequence on the length-2 relations.)

• Thank you! Especially for the intuition behind the answer! Dec 9, 2020 at 20:31

Of course Tyler Lawson's answer is the more conceptual and insightful one, but in case it is useful, I ran your GAP script on a machine with 64 GB of RAM, which turned out to be enough. If I understand the output of ExtOverAlgebra correctly, it seems that your $$HH^2(A)$$ group is a 138-dimensional vector space.

The GAP session is pasted below. Please let me know if I have misunderstood anything, including possibly the output of ExtOverAlgebra, which I never used before running your script.

gap> LoadPackage("qpa");
─────────────────────────────────────────────────────────────────────────────
by A.M. Cohen (http://www.win.tue.nl/~amc) and
J.W. Knopper (J.W.Knopper@tue.nl).
Homepage: http://mathdox.org/products/gbnp/
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
by Edward Green (http://www.math.vt.edu/people/green) and
Oeyvind Solberg (https://folk.ntnu.no/oyvinso/).
Homepage: https://folk.ntnu.no/oyvinso/QPA/
─────────────────────────────────────────────────────────────────────────────
true
gap> Q := Quiver(1, [[1,1,"x"],[1,1,"y"],[1,1,"h_1"],[1,1,"h_2"]]);
<quiver with 1 vertices and 4 arrows>
gap> R := PathAlgebra(Rationals,Q);
<Rationals[<quiver with 1 vertices and 4 arrows>]>
gap> gens:= GeneratorsOfAlgebra(R);
[ (1)*v1, (1)*x, (1)*y, (1)*h_1, (1)*h_2 ]
gap> x:=gens[2];
(1)*x
gap> y:=gens[3];
(1)*y
gap> h_1:=gens[4];
(1)*h_1
gap> h_2:=gens[5];
(1)*h_2
gap> relations :=[x^2,y^2,h_1^2,h_2^2,x*y,y*x,h_1*h_2,h_2*h_1,x*h_1*x,x*h_1*y,y*h_1*y,x*h_2*x,y*h_2*x,y*h_2*y,y*h_1*x+x*h_2*y,h_1*x*h_1,h_1*x*h_2,h_2*x*h_1,h_2*x*h_2,h_1*y*h_1,h_1*y*h_2,h_2*y*h_1,h_2*y*h_2];
[ (1)*x^2, (1)*y^2, (1)*h_1^2, (1)*h_2^2, (1)*x*y, (1)*y*x, (1)*h_1*h_2,
(1)*h_2*h_1, (1)*x*h_1*x, (1)*x*h_1*y, (1)*y*h_1*y, (1)*x*h_2*x,
(1)*y*h_2*x, (1)*y*h_2*y, (1)*x*h_2*y+(1)*y*h_1*x, (1)*h_1*x*h_1,
(1)*h_1*x*h_2, (1)*h_2*x*h_1, (1)*h_2*x*h_2, (1)*h_1*y*h_1, (1)*h_1*y*h_2,
(1)*h_2*y*h_1, (1)*h_2*y*h_2 ]
gap> gb := GBNPGroebnerBasis(relations,R);
[ (1)*x^2, (1)*x*y, (1)*y*x, (1)*y^2, (1)*h_1^2, (1)*h_1*h_2, (1)*h_2*h_1,
(1)*h_2^2, (1)*x*h_1*x, (1)*x*h_1*y, (1)*x*h_2*x, (1)*x*h_2*y+(1)*y*h_1*x,
(1)*y*h_1*y, (1)*y*h_2*x, (1)*y*h_2*y, (1)*h_1*x*h_1, (1)*h_1*x*h_2,
(1)*h_1*y*h_1, (1)*h_1*y*h_2, (1)*h_2*x*h_1, (1)*h_2*x*h_2, (1)*h_2*y*h_1,
(1)*h_2*y*h_2 ]
gap> I:=Ideal(R,gb);
<two-sided ideal in <Rationals[<quiver with 1 vertices and 4 arrows>]>,
(23 generators)>
gap> GroebnerBasis(I,gb);
<complete two-sided Groebner basis containing 23 elements>
gap> A:=R/I;
<Rationals[<quiver with 1 vertices and 4 arrows>]/
<two-sided ideal in <Rationals[<quiver with 1 vertices and 4 arrows>]>,
(23 generators)>>
gap> M := AlgebraAsModuleOverEnvelopingAlgebra(A);
<[ 14 ]>
gap> HH2 := ExtOverAlgebra(NthSyzygy(M, 1), M);
[ <<[ 602 ]> ---> <[ 784 ]>>,
[ <<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>>,
<<[ 602 ]> ---> <[ 14 ]>>, <<[ 602 ]> ---> <[ 14 ]>> ],
function( map ) ... end ]
gap> Length(HH2[2]);
138

• Thanks! It was also my first time working with GAP, but I think you are right, the second output should be the basis of HH^2(A) here. Dec 10, 2020 at 8:26
• @Serge No problem. I also ran your script to make the same calculation over the finite fields with 2,3,5, and 7 elements, and got the same vector space dimension each time. That accounts for all primes dividing the dimension (14) of your algebra A, so it seems likely that you get the same vector space dimension of HH^2(A) regardless of the field over which you define your particular algebra A. Please let me know if there are any other variants of your script that you would like me to run on my machine. I would be happy to do so.
– user164898
Dec 10, 2020 at 22:30