\chapter[ATENSOR: Tensor Simplification]%
{ATENSOR: Package for Tensor Simplification}
\label{ATENSOR}
\typeout{{ATENSOR: Package for Tensor Simplification}}

{\footnotesize
\begin{center}
V.~A.~Ilyin and A.~P.~Kryukov \\
\end{center}
}
\ttindex{ATENSOR}
%\markboth{CHAPTER \ref{ATENSOR}. ATENSOR: TENSOR SIMPLIFICATION}{}
%\thispagestyle{myheadings}


Tensors are classical examples for Objects often used in mathematics and physics.
Indexed objects can have very complicated and intricated properties.
For example the Riemann tensor has symmetry properties with respect to
permutation of indices. Moreover it satisfies the cyclic identity. There are a
number of linear identities with many terms in the case of Riemann-Cartan geometry
with torsion.
From the user's point of view, there are three groups of tensor properties:
\begin{itemize}
\item {\bf S} - symmetry with respect to index permutation;
\item {\bf I} - linear identities;
\item {\bf D} - invariance with respect to renamings of dummy indices;
\end{itemize}
The problem under investigation can be formulated as whether two tensor
expressions are equal or not by taking into account S-I-D properties.

\section{Basic tensors and tensor expressions}
Under basic tensors we understand the object with finite number of indices
which can have such properties as {\it symmetry} and {\it multiterm linear identities}
(including the {\it symmetry relations}). \\
Under tensor expression we understand any expression which can be obtained
from basic tensors by summation with integer coefficients and multiplication
(commutative) of basic tensors. \\
It is assumed that all terms in the tensor expression have the same number of
indices. Some pairs of them are marked as dummy ones. The set of nondummy
names have to be the same for each term in the tensor expression. The names
of dummies can be arbitrary.

\section{Operators for tensors}
Use \f{TENSOR}\ttindex{TENSOR} to declare tensors and \f{TCLEAR}\ttindex{TCLEAR}
to remove them. The command \f{TSYM}\ttindex{TSYM} defines symmetry relations of basic
tensors and \f{KBASIS}\ttindex{KBASIS} determines the
{\bf K}-Basis, which is the general name for a ``triangle'' set of linear independent
vectors for a basic tensor considered as a separate tensor expression.
It is possible to build the sum, the difference and the multiplication for tensors.
It is assumed that indices with identical names means the summation over their values. \par

{\bf Example}:
\begin{verbatim}
1: load atensor;

2: tensor s2,a3;

3: tsym s2(i,j) - s2(j,i),       % Symmetric
3:      a3(i,j,k) + a3(j,i,k),   % Antisymm.
3:      a3(i,j,k) - a3(j,k,i);

4: kbasis s2,a3;

	s2(j,i) + (-1)*s2(i,j)
	1
	a3(k,i,j) + a3(j,i,k)
	a3(k,j,i) + (-1)*a3(j,i,k)
	a3(i,k,j) + (-1)*a3(j,i,k)
	a3(i,j,k) + a3(j,i,k)
	a3(j,k,i) + a3(j,i,k)
	5
\end{verbatim}

\section{Switches}
There are two switches defined. The switch \f{DUMMYPRI}\ttindex{DUMMYPRI} prints dummy
indices with internal names and numbers. It's default value is {\tt OFF}.
The other switch called \f{SHORTEST}\ttindex{SHORTEST} prints tensor expressions in shortest
form that was produced during evaluation. The default value is {\tt OFF}. \par
\ \\
For further information refer to the documentation which comes with this package.

