Except for the the relations activated by the two switches of the system, the others can be used by the command RELATION. Its syntax is
A relation list is like a rule list; a group of relations in a list. Relation lists can be named, for example
What happens after these commands are given? The system tries to apply the listed relations in the evaluated expressions. The order of the relations is fixed and if a complete list is to be created from the relations declared by the commands RELATION:
then it would show in which order and relations are applied. There are five types of the relations (partly from syntactical, partly from algorithmical points of view) that are implemented:
| First Bianchy identity | ||
| Second Bianchy identity |
and if the given object from the left hand side occurs in the calculated expression then the object will be substituted by the right hand side.
The syntax of a relation in the RELATION command is as follows:
where keyword can be BIANCHY1 or BIANCHY2. The pattern is the indices from the left hand side enclosed in braces. The indices can be tilded in which case these indices are regarded as arbitrary. Examples:
| BIANCHY1 => {i,{-j,-k,-l}\} | ||
| BIANCHY1 => {\-j,-k,-l},i} | ||
| BIANCHY2 => {i,j,{-k,-l,-m} | ||
| BIANCHY1 => {~ i,{-~ j,-~ k,-~ l}\} | ||
| ... |
If the pattern contains at least two indices with tilde in its three-grouped indices, then the matching of the indices depends on the alphabetical order fixed by the used identifier of the indices in the pattern itself (in the last example e.g. etc. would not match).
| Contracted Bianchy identities | ||
| Jacobi identity | ||
| Changing the order of the covariant derivation |
The object from the left hand side is substituted by the expression from the right hand side, which in the last case is derived from the general relation:
The signs in the first contracted Bianchy identity and in the general relation for the second covariant derivatives depend on the definition of the Ricci tensor and the Riemann tensor respectively.
The syntax of a relation is:
where keyword is BIANCHYC, JACOBI or ORDERCOV and an object is the given tensor from the left hand side according to the relation to be applied:
| BIANCHYC => {D(R(I,-J,-K,-L),-I), | ||
| JACOBI => LD(A(I),B(I),C(I)) | ||
| ORDERCOV => D(T(-I),-J,-K) |
The BIANCHYC and ORDERCOV commands can be used without => object part, in which case all the possible contracted Bianchy identity will be applied and all the second covariant derivatives will be alphabetically ordered. The ORDERCOV command may contain second partial derivatives as object too, and in this case the order of the two derivations will be changed and the PARTIAL COVARIANT command will be called (see below).
The syntax of a relation is simple
and the following relations are implemented:
The general connection between the covariant and partial derivatives is well known:
where is the Christoffel symbol. When one wishes to transform the covariant derivatives to partial derivatives the COVARIANT PARTIAL can be used and the covariant derivatives will be expressed by partial ones from the relations. On the other hand when one would transform the partial derivatives to covariant ones the PARTIAL COVARIANT can be applied and the partial derivatives will be expressed by the covariant ones from the relations.
The relations between the Lie and covariant derivatives are
The Lie-derivatives are always expressed by the covariant ones in the case of LIE COVARIANT. COVARIANT LIE converts the quantities derivated covariantly and contracted in an appropriate way by a vector or a vector valued expression to Lie derivatives. There is a natural restriction: in the case of vectors the transformation to Lie derivative happens only if the two vectors accord to the system ordering which is needed to avoid infinite loops.
The used equation depends on the definition of the Ricci tensor. In the case of the MTW[2] definition it is
The applied relation is the definition of the invariant curvature:
The actual formula between the Riemann and Weyl tensors depends on the dimension of the space-time and the definition of the Riemann and Ricci tensors. If the dimension is equal to 4 and the definitions are of the MTW then
The tensor, which is substituted with the other one, will be expressed from the equation.
The second group of the two-way relations differs from the first group from the point of view that the "reversing" of the relations will be applied only in the cases when at least half of all the terms from the left hand side can be found in the calculated expression.
The equation, which depends on the definition of the Riemann tensor, is
In the case of RIEMANN DEFINITION the Riemann tensor will be substituted with the right hand side. In the other case the Riemann tensor will be introduced to the computed expression if and only if at least the first two members from the right hand side exist in the expression itself.
The transformations work on the analogy of the case (a).
It is not a relation command: its effect is that all the relations which have been given before would be removed.
In order that the program will apply a given relation the quantities from the expression must be defined. If that has not happened then the calculated expression will be given back without any effect. Therefore if the result does not differ from the input expression one has to check first whether all the objects are introduced or the relations make a loop.
Since the large number of the built-in relations offers many possible combinations, it is a convenient way to name relation lists. The system gives a possibility to use the relation lists locally, in a completely analogous way to the rule lists, by the keyword RELATION in a WHERE statement. Naturally the left hand side must be a relation list or the name of a relation list:
It may sometimes be a problem to remember which identifiers were introduced as tensors or symbols or which relations are activated. The command STATUS; helps to display the required information.
Acknowledgments
I greatly appreciated the many stimulating conversations with Dr. Magda Zimányi and the invaluable correspondence with Dr. Eberhard Schrüfer. The programming ideas from Dr. Schrüfer's EXCALC[9] package were most useful in developing the presented program.
This work was supported by OTKA (National Scientific Research Fund, Hungary) and was finished at GMD (Gesellschaft für Mathematik und Datenverarbeitung mbH, Germany) with support from DAAD (Deutscher Akademischer Austauschdienst, Germany).
References