123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- \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}
|