Artifact 480bf439435ed5e6835788fc0e74a1102d2e60e2e8fe79879eea1611d978319f:
- File
r36/doc/DUMMY.TEX
— part of check-in
[152fb3bdbb]
at
2011-10-17 17:58:33
on branch master
— svn:eol-style, svn:executable and line endings for files
in historical/r36 treegit-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1480 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: schoepf@users.sourceforge.net, size: 5155) [annotate] [blame] [check-ins using] [more...]
\documentstyle[11pt,reduce]{article} \newcommand{\nl}{\hfill\newline} \newcommand{\bq}{\begin{quotation}} \newcommand{\eq}{\end{quotation}} \newcommand{\bi}{\begin{itemize}} \newcommand{\ei}{\end{itemize}} \date{} \title{{\bf DUMMY}\\[3pt] A package to find the canonical form of expressions involving dummy variables\\[5pt] \mbox{\hfill Version 1.0\hfil}} \author{Alain Dresse \\ Universit\'e Libre de Bruxelles \\ Boulevard du Triomphe, CP 210/01 \\ B--1050 BRUXELLES \\[3pt] E--mail: adresse@ulb.ac.be} \begin{document} \maketitle \index{DUMMY package} \section{Introduction} The proper use of dummy variables in computer algebra is difficult because of the problem of simplifications. However, it is very important to keep large expressions in a concise form and to manipulate them efficiently. The routines in the file allows to find the canonical form of expressions involving dummy variables. In that way, the simplification of polynomial expressions can be fully done. The indeterminates are general operator objects endowed with as few properties as possible. In that way the package may be used in a large spectrum of applications. In section 2, the convention for writing expressions is described and the available declarations to distinguish between dummy and free variables are explained. In section 3, the various declarations on the algebraic properties of the operators as well as on their operational properties are given. The use of the ready-to-use function {\tt canonuical} is illustrated. In section 4, installation is explained. \section{Dummy and Free Variables} An expression of the type $$ \sum_{a=1}^{n} f(a) $$ for any $n$ is simply written as $$ f(a) $$ and $a$ is a {\em dummy} index. If the previous expression is written as $$ \sum_{b=1}^{n} f(b) $$ $b$ is also a dummy index and, obviously we should be able to get the equality $$ f(a)-f(b);\, \rightarrow 0 $$ To declare dummy variables, two declarations are available: \begin{itemize} \item{i.} \begin{verbatim} dummy_base <idp>; \end{verbatim} where {\tt idp} is the name of any unassigned identifier. \item{ii.} \begin{verbatim} dummy_names <d>,<dp>,<dpp> ....; \end{verbatim} \end{itemize} The first declares {\tt idp1,$\cdots$, idpn} as dummy variables i.e. all variables of the form ``{\tt idxxx}'' where {\tt xxx} is a number will be dummy variables, such as {\tt id1, id2, ... , id23}. The second gives special names for dummy variables. All other arguments are assumed to be {\tt free}.\\ An example: \begin{verbatim} dummy_base dv; ==> dv % dummy indices are dv1, dv2, dv3, ... dummy_names i,j,k; ==> t % dummy names are i,j,k. \end{verbatim} When this is done, an expression like \begin{verbatim} op(dv1)*sin(dv2)*abs(x)*op(i)^3*op(dv2)$ \end{verbatim} is allowed. Notice that, dummy indices may not be repeated (it is not limited to tensor calculus) or that they be repeated many times inside the expression. \section{Operators and Use of {\tt CANONICAL}} All dummy variables are arguments of operators. These operators are quite general, they may be element of an algebra, they may be tensors, spinors, grassman variables, etc. $\ldots$ By default they are assumed to be {\em commutative} and without symmetry properties. Several commands allow to make variations about this default. First, the declarations {\tt NONCOM, SYMMETRIC and AN\-TI\-SYM\-ME\-TRIC} may be used on the operators.\\ Second, they may be declared anticommutative. \begin{verbatim} anticom ao1, ao2; \end{verbatim} Third, one may, declare partial symmetries for them thanks to the declaration {\tt SYMTREE}. Here is the corresponding declaration for the Riemann tensor \begin{verbatim} symtree (r, {!+, {!-, 1, 2}, {!-, 3, 4}}); \end{verbatim} The symbols !*, !+ and !- at the beginning of each list mean that the operator has no symmetry, is symmetric and is antisymmetric with respect to the indices inside the list. Notices that the indices are not designated by their names but merely by their natural order of appearance. 1 means the first written argument of {\tt r}, 2 its second argument etc. In the example above r is symmetric with respect to interchange of the pairs of indices 1,2 and 3,4 respectively. Notice that all the declarations here are valid whether the indices are free or not. It is then left to apply {CANONICAL} on any polynomial containing operators to get its canonical representation. In that way full simplifications are guaranteed. There are two limitations to the package. The first is that non-commuting operators are assumed to commute with anticommuting ones. The second is that it does not add anything to the problem of simplifications when side relations (like Bianchi identities) are present. \section{Installation} The use of DUMMY requires that the package ASSIST version 2.2 be loaded. It is also available in the \REDUCE\ library. Assuming that you got the source files, use the script {\tt MKFASL} and do \begin{verbatim} mkfasl assist \end{verbatim} when done do \begin{verbatim} mkfasl dummy \end{verbatim} Finally, run the test file. \end{document}