th(p pl + -71r- pl p~ +In( r71))
> DGHP(%);
th(p) pl + p th(pl) + th(-r) 71l + -r th(-rl) :3 pl2 th(pl) p3 :3 pl3 p2 th(p) +th)
th(-rl)
To date, DGHP () can handle powers and logarithms (the only functions this author
has encountered in the GHP formalism), but the procedure can he easily modified to
accommodate just about any function. Building complicated expressions involving
linear combinations of derivative and multiplicative operators is easily achieved with
the help of the GHPmult () procedure. These expressions can then he expanded with
DGHP(). As an example, consider the expression (P p)4:
> th4phi :=
> GHPmult (th-rho, GHmult th-rho, Homut (h-ro Gult (h-h, h)))
th~phi := th(th(~ p th( ) + p2 _) 2 th( ) p3 ) p th(~ p th( ) + p2 ~
+ p2 ~I-, 3 th( ) + p4
.!:= th(th( ) p ~)
> DGHP(th4phi);
-6 p2 th(p) + 12 p th(p) th( ) + 3 th(p)2 + 4 p th(th(p)) 4 p3 th( ) + p4
th(th(th(p))) 4 th(th(p)) th( ) 6 th(p) th(th( )) + th(th(th(th( ))))
4 p th(th(th( ))) + 6 p2 th(th( ))
Simplifying such expressions is, in the context of type D spacetime without acceleration,
handled by the tdsimp () procedure that substitutes the known values of the
derivatives of the spin coefficients (stored in the globally available list tdspec; such a
procedure can he easily generalized to encompass any spacetime, should the need arise)
into its argument. Thus our previous example simplifies considerably:
> tdsimp (DGHP (th4phi));