# Pair-wise antisymmetric tensor

I am trying to define a tensor $$T$$ which is antisymmetric under pair-wise exchange of its indices:

$$T = \delta_{a],[b}\,\delta_{c],[d}\,\delta_{e],[f}\,\delta_{g],[h}$$

where $$T$$ is antisymmetric under the exchanges $$b \leftrightarrow c, d \leftrightarrow e, f \leftrightarrow g ,h \leftrightarrow a$$.

I guess that defining $$T$$ as a Table will take too much memory. Maybe defining it as a function is better. In both cases I have no clue on how to do this in a clever, short way without writing down all possible exchanges by hand. Can you help?

• $Assumptions = T \[Element] Arrays[{d, d, d, d, d, d}, Reals, Antisymmetric /@ Partition[RotateLeft@Range[6], 2]];? – kglr Sep 8 '20 at 10:34 • It looks good but I'm not skilled with Assumptions. Can you expand a bit more, including (also in a sketchy way) the definition of T with the Kronecker's Deltas? Sep 8 '20 at 10:43 • Is it a mathematica question ? Sep 8 '20 at 12:00 • Yes, I would like to see a Mathematica code in which one defines$T\$ as I said (with the Kronecker's Deltas) and implementing the trick given by @kgir Sep 8 '20 at 15:51

Expanding on a comment by @kglr above, if you want a general form of the tensor with only the independent components, you can use SymmetrizedArray as follows:

antiSymmetricTensor[dim_, symbol_ : A] :=
SymmetrizedArray[pos_ :> symbol @@ pos, ConstantArray[dim, 8],
{Cycles[{#}], -1} & /@ Partition[RotateLeft@Range[8], 2]]


as a demonstration, here's the $$i=1,j=2,k=3,l=2$$ for $$d=3$$:

This is indeed in the subdomain of arrays with dimension dim and the specified symmetries:

With[{
dim = 3,
symbol = A,
domain = Arrays[ConstantArray[dim, 8], Reals,
Antisymmetric /@ Partition[RotateLeft@Range[8], 2]]
},
Element[antiSymmetricTensor[dim, symbol], domain];
Simplify[%, symbol[__] ∈ Reals]
]
(* True *)