Hochschild Complexes¶
-
class
sage.homology.hochschild_complex.
HochschildComplex
(A, M)¶ Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.category_object.CategoryObject
The Hochschild complex.
Let
be an algebra over a commutative ring
such that
a projective
-module, and
an
-bimodule. The Hochschild complex is the chain complex given by
with the boundary operators given as follows. For fixed
, define the face maps
We define the boundary operators as
The Hochschild homology of
is the homology of this complex. Alternatively, the Hochschild homology can be described by
, where
(
is the opposite algebra of
) is the enveloping algebra of
.
Hochschild cohomology is the homology of the dual complex and can be described by
.
Another perspective on Hochschild homology is that
make the family
a simplicial object in the category of
-modules, and the degeneracy maps are
The Hochschild homology can also be constructed as the homology of this simplicial module.
REFERENCES:
[Redondo] Maria Julia Redondo. Hochschild cohomology: some methods for computations. http://inmabb.criba.edu.ar/gente/mredondo/crasp.pdf -
algebra
()¶ Return the defining algebra of
self
.EXAMPLES:
sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.algebra() Symmetric group algebra of order 3 over Rational Field
-
boundary
(d)¶ Return the boundary operator in degree
d
.EXAMPLES:
sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: d1 = H.boundary(1) sage: z = d1.domain().an_element(); z 2*1 # 1 + 2*1 # x + 3*1 # y sage: d1(z) 0 sage: d1.matrix() [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 2 0 0 -2 0 0 0 0 0 0] sage: s = SymmetricFunctions(QQ).s() sage: H = s.hochschild_complex(s) sage: d1 = H.boundary(1) sage: x = d1.domain().an_element(); x 2*s[] # s[] + 2*s[] # s[1] + 3*s[] # s[2] sage: d1(x) 0 sage: y = tensor([s.an_element(), s.an_element()]) sage: d1(y) 0 sage: z = tensor([s[2,1] + s[3], s.an_element()]) sage: d1(z) 0
TESTS:
sage: def test_complex(H, n): ....: phi = H.boundary(n) ....: psi = H.boundary(n+1) ....: comp = phi * psi ....: zero = H.free_module(n-1).zero() ....: return all(comp(b) == zero for b in H.free_module(n+1).basis()) sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: H = SGA.hochschild_complex(SGA) sage: test_complex(H, 1) True sage: test_complex(H, 2) True sage: test_complex(H, 3) # long time True sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: test_complex(H, 1) True sage: test_complex(H, 2) True sage: test_complex(H, 3) True
-
coboundary
(d)¶ Return the coboundary morphism of degree
d
.EXAMPLES:
sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: del1 = H.coboundary(1) sage: z = del1.domain().an_element(); z 2 + 2*x + 3*y sage: del1(z) 0 sage: del1.matrix() [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 2] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 -2] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0]
TESTS:
sage: def test_complex(H, n): ....: phi = H.coboundary(n) ....: psi = H.coboundary(n+1) ....: comp = psi * phi ....: zero = H.free_module(n+1).zero() ....: return all(comp(b) == zero for b in H.free_module(n-1).basis()) sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: H = SGA.hochschild_complex(SGA) sage: test_complex(H, 1) True sage: test_complex(H, 2) True sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: test_complex(H, 1) True sage: test_complex(H, 2) True sage: test_complex(H, 3) True
-
coefficients
()¶ Return the coefficients of
self
.EXAMPLES:
sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.coefficients() Trivial representation of Standard permutations of 3 over Rational Field
-
cohomology
(d)¶ Return the
d
-th cohomology group.EXAMPLES:
sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: H.cohomology(0) Vector space of dimension 3 over Rational Field sage: H.cohomology(1) Vector space of dimension 4 over Rational Field sage: H.cohomology(2) Vector space of dimension 6 over Rational Field sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.cohomology(0) Vector space of dimension 1 over Rational Field sage: H.cohomology(1) Vector space of dimension 0 over Rational Field sage: H.cohomology(2) Vector space of dimension 0 over Rational Field
When working over general rings (except
) and we can construct a unitriangular basis for the image quotient, we fallback to a slower implementation using (combinatorial) free modules:
sage: R.<x,y> = QQ[] sage: SGA = SymmetricGroupAlgebra(R, 2) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.cohomology(1) Free module generated by {} over Multivariate Polynomial Ring in x, y over Rational Field
-
free_module
(d)¶ Return the free module in degree
d
.EXAMPLES:
sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.free_module(0) Trivial representation of Standard permutations of 3 over Rational Field sage: H.free_module(1) Trivial representation of Standard permutations of 3 over Rational Field # Symmetric group algebra of order 3 over Rational Field sage: H.free_module(2) Trivial representation of Standard permutations of 3 over Rational Field # Symmetric group algebra of order 3 over Rational Field # Symmetric group algebra of order 3 over Rational Field
-
homology
(d)¶ Return the
d
-th homology group.EXAMPLES:
sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: H.homology(0) Vector space of dimension 3 over Rational Field sage: H.homology(1) Vector space of dimension 4 over Rational Field sage: H.homology(2) Vector space of dimension 6 over Rational Field sage: SGA = SymmetricGroupAlgebra(QQ, 3) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.homology(0) Vector space of dimension 1 over Rational Field sage: H.homology(1) Vector space of dimension 0 over Rational Field sage: H.homology(2) Vector space of dimension 0 over Rational Field
When working over general rings (except
) and we can construct a unitriangular basis for the image quotient, we fallback to a slower implementation using (combinatorial) free modules:
sage: R.<x,y> = QQ[] sage: SGA = SymmetricGroupAlgebra(R, 2) sage: T = SGA.trivial_representation() sage: H = SGA.hochschild_complex(T) sage: H.homology(1) Free module generated by {} over Multivariate Polynomial Ring in x, y over Rational Field
-
trivial_module
()¶ Return the trivial module of
self
.EXAMPLES:
sage: E.<x,y> = ExteriorAlgebra(QQ) sage: H = E.hochschild_complex(E) sage: H.trivial_module() Free module generated by {} over Rational Field
-