I am working on a new package, called "Spacetime", which I intend should be able to treat any physical field, either tensorial (integer-valued spin, like the photon) or spinorial (half-integer valued spin, like the electron) on any curved Riemannian manifold (gravity, according to Einstein). Anyway, for the Maple specific part: I have decided to implement these general fields as multi-dimensional Arrays, analogous to the older package "Gravitation", which "Spacetime" is intended to replace. They may have some symmetries and/or antisymmetries among their various indices. That part, that is, setting up the appropiate indexing functions, even in the general case, I have solved. But imagine the following: Taking, for instance, the spacetime gradient, i.e., differentiating a given field (the entries of a given Array) with respect to each spacetime coordinate (for instance t,x,y,z) raises the dimension of the Array by 1. The symmetries of the original Array should of course still be present on the appropiate indices of the new and larger Array. Is there some clever way of propagating them? Using, for instance, rtable_indfns() seems of no help as it only gives the indexing function (procedure), but not explicitly any information on the (anti-)symmetries with which the indexing function was originally created.

Please Wait...