1
$\begingroup$

For a finite-dimensional $\mathbb{C}$-algebra $A$ with basis $\{e_1,...,e_n\}$ (structure of algebra encoded by structural constants $\{c_{ij}^k\}_{i,j,k=1}^n$ such that $e_ie_j = \sum_{k=1}^n c_{ij}^k e_k$), the differential of Hochschild complex is the map $T(A) \to T(A)$ where $T(A)=\oplus_{i=0}^\infty A^{\otimes i}$ is a tensor algebra. The map is defined on irreducible tensors such that:

$$d(a_0 \otimes ... \otimes a_n) = \sum_{i=0}^{n-1} (-1)^n a_0 \otimes ... \otimes a_i a_{i+1} \otimes ... \otimes a_n$$ $$d(a_0) = 0, d(\operatorname{const})=0$$

I have a couple questions.

Question 1

Let's say I have a set $S = \{e_1,e_2\}$ and some complex numbers $\{c_{ij}^k\}_{i,j,k=1}^2$ such that $e_ie_j = \sum_{k=1}^n c_{ij}^k e_k$. How can I code this? To be a little more concrete, I want to insert something in:

S = {a,b};
c111=0; c112=0; c211=0; c212=0; c221=0; c222=0; c121=2; c122=3;
(*INSERT SOMETHING*)
(a+3*b)**b== 2*a + 3*b

Replace "(INSERT SOMETHING)" such that the last equation is true.

Question 2

I want to code the Hochschild differential in such a framework. So, i want to realize a function hochschildD in such a way, that:

hochschildD[TensorProduct[a,b,a]] == TensorProduct[a**b,a] - TensorProduct[a,b**a]

will be true. Hope for your help!

$\endgroup$

1 Answer 1

2
$\begingroup$

Assume that a and b are vectors, and c is a rank 3 tensor:

$Assumptions = (a|b) ∈ Vectors[{2}] && c ∈ Arrays[{2, 2, 2}];

Then, in your notation:

a_ ** b_ := TensorContract[TensorProduct[c, a, b], {{1, 4}, {2, 5}}]

For your example we have:

Block[{c = SparseArray[{{1, 2, 1}->2, {1, 2, 2}->3}, {2,2,2}]},
    ({1,0} + 3 {0,1}) ** {0,1} //Normal
]

{2, 3}

We can incorporate this definition of a ** b directly into a definition for hochSchildD:

tensorQ[t_] := TensorRank[t] > 0

iD[t_?tensorQ, i_] := TensorTranspose[
    TensorContract[TensorProduct[c, t], {{1, i+3}, {2, i+4}}],
    Cycles[{RotateLeft @ Range[i]}]
]

hochSchildD[t_?tensorQ] := Sum[
    (-1)^(n+1) iD[t, n],
    {n, TensorRank[t] - 1}
]

Then:

hochSchildD[TensorProduct[a, b, a]]

(*
TensorContract[
  c\[TensorProduct]a\[TensorProduct]b\[TensorProduct]a, {{1, 4}, {2, 5}}] - 
 TensorTranspose[
  TensorContract[
   c\[TensorProduct]a\[TensorProduct]b\[TensorProduct]a, {{1, 5}, {2, 
     6}}], {2, 1}]
*)

For better visualization, here is a screenshot:

enter image description here

Let's check your condition:

TensorReduce[
    hochSchildD[TensorProduct[a, b, a]] == TensorProduct[a**b, a] - TensorProduct[a, b**a]
]

True

Using your previous metric we could also obtain:

Block[{c = SparseArray[{{1,2,1}->2, {1,2,2}->3}, {2,2,2}], a={1,0}, b={0,1}},
    hochSchildD @ TensorProduct[a, b, a] //Normal
]

{{2, 0}, {3, 0}}

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.