DUMMY.TEX 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. \documentstyle[11pt,reduce]{article}
  2. \newcommand{\nl}{\hfill\newline}
  3. \newcommand{\bq}{\begin{quotation}}
  4. \newcommand{\eq}{\end{quotation}}
  5. \newcommand{\bi}{\begin{itemize}}
  6. \newcommand{\ei}{\end{itemize}}
  7. \date{}
  8. \title{{\bf DUMMY}\\[3pt]
  9. A package to find the canonical form of expressions involving
  10. dummy variables\\[5pt]
  11. \mbox{\hfill Version 1.0\hfil}}
  12. \author{Alain Dresse \\
  13. Universit\'e Libre de Bruxelles \\
  14. Boulevard du Triomphe, CP 210/01 \\
  15. B--1050 BRUXELLES \\[3pt]
  16. E--mail: adresse@ulb.ac.be}
  17. \begin{document}
  18. \maketitle
  19. \index{DUMMY package}
  20. \section{Introduction}
  21. The proper use of dummy variables in computer algebra is difficult
  22. because of the problem of simplifications. However, it is very important
  23. to keep large expressions in a concise form and to manipulate them
  24. efficiently.
  25. The routines in the file allows to find the canonical form of expressions
  26. involving dummy variables. In that way, the simplification of
  27. polynomial expressions can be fully done. The indeterminates are general
  28. operator objects endowed with as few properties as possible. In that way
  29. the package may be used in a large spectrum of applications.
  30. In section 2, the convention for writing expressions is described and
  31. the available declarations to distinguish between dummy and free variables
  32. are explained.
  33. In section 3, the various declarations on the algebraic properties
  34. of the operators as well as on their operational properties are
  35. given. The use of the ready-to-use function {\tt canonuical} is illustrated.
  36. In section 4, installation is explained.
  37. \section{Dummy and Free Variables}
  38. An expression of the type
  39. $$
  40. \sum_{a=1}^{n} f(a)
  41. $$
  42. for any $n$ is simply written as
  43. $$
  44. f(a)
  45. $$
  46. and $a$ is a {\em dummy} index.
  47. If the previous expression is written as
  48. $$
  49. \sum_{b=1}^{n} f(b)
  50. $$
  51. $b$ is also a dummy index and, obviously we should be able to get the
  52. equality
  53. $$
  54. f(a)-f(b);\, \rightarrow 0
  55. $$
  56. To declare dummy variables, two declarations are available:
  57. \begin{itemize}
  58. \item{i.}
  59. \begin{verbatim}
  60. dummy_base <idp>;
  61. \end{verbatim}
  62. where {\tt idp} is the name of any unassigned identifier.
  63. \item{ii.}
  64. \begin{verbatim}
  65. dummy_names <d>,<dp>,<dpp> ....;
  66. \end{verbatim}
  67. \end{itemize}
  68. The first declares {\tt idp1,$\cdots$, idpn} as dummy variables i.e.
  69. all variables of the form ``{\tt idxxx}'' where {\tt xxx} is a number
  70. will be dummy variables, such as {\tt id1, id2, ... , id23}.
  71. The second gives special names for dummy variables.
  72. All other arguments are assumed to be {\tt free}.\\
  73. An example:
  74. \begin{verbatim}
  75. dummy_base dv; ==> dv
  76. % dummy indices are dv1, dv2, dv3, ...
  77. dummy_names i,j,k; ==> t
  78. % dummy names are i,j,k.
  79. \end{verbatim}
  80. When this is done, an expression like
  81. \begin{verbatim}
  82. op(dv1)*sin(dv2)*abs(x)*op(i)^3*op(dv2)$
  83. \end{verbatim}
  84. is allowed. Notice that, dummy indices may not be repeated (it is not
  85. limited to tensor calculus) or that they be repeated many times inside
  86. the expression.
  87. \section{Operators and Use of {\tt CANONICAL}}
  88. All dummy variables are arguments of operators. These operators are
  89. quite general, they may be element of an algebra, they may be tensors,
  90. spinors, grassman variables, etc. $\ldots$
  91. By default they are assumed to be {\em commutative} and without symmetry
  92. properties. Several commands allow to make variations about this default.
  93. First, the declarations {\tt NONCOM, SYMMETRIC and AN\-TI\-SYM\-ME\-TRIC}
  94. may be used on the operators.\\
  95. Second, they may be declared anticommutative.
  96. \begin{verbatim}
  97. anticom ao1, ao2;
  98. \end{verbatim}
  99. Third, one may, declare partial symmetries for them thanks to the
  100. declaration {\tt SYMTREE}.
  101. Here is the corresponding declaration for the Riemann tensor
  102. \begin{verbatim}
  103. symtree (r, {!+, {!-, 1, 2}, {!-, 3, 4}});
  104. \end{verbatim}
  105. The symbols !*, !+ and !- at the beginning of each list mean that
  106. the operator has no symmetry, is symmetric and is antisymmetric with respect
  107. to the indices inside the list. Notices that the indices are not designated
  108. by their names but merely by their natural order of appearance. 1 means the
  109. first written argument of {\tt r}, 2 its second argument etc.
  110. In the example above r is symmetric with respect to interchange of the
  111. pairs of indices 1,2 and 3,4 respectively.
  112. Notice that all the declarations here are valid whether the indices
  113. are free or not.
  114. It is then left to apply {CANONICAL} on any polynomial containing operators
  115. to get its canonical representation. In that way full simplifications
  116. are guaranteed.
  117. There are two limitations to the package. The first is that non-commuting
  118. operators are assumed to commute with anticommuting ones. The second is
  119. that it does not add anything to the problem of simplifications when
  120. side relations (like Bianchi identities) are present.
  121. \section{Installation}
  122. The use of DUMMY requires that the package ASSIST version 2.2 be loaded.
  123. It is also available in the \REDUCE\ library. Assuming that you got the
  124. source files, use the script {\tt MKFASL} and do
  125. \begin{verbatim}
  126. mkfasl assist
  127. \end{verbatim}
  128. when done do
  129. \begin{verbatim}
  130. mkfasl dummy
  131. \end{verbatim}
  132. Finally, run the test file.
  133. \end{document}