As usual with my “out-of-line” posts, this one is again mostly to clear my own thoughts. It seeks to address the problem of how to get out “nice” answers, in the sense of e.g. finding a representation that is manifestly real (say to use inverse trig functions instead of logarithms with imaginary arguments). This turns out to be fairly delicate; let me explain why. Recall that when the code returns an expression like , we really mean a certain function on the riemann surface of the logarithm which we try to crudely express above. First of all, it is clear that if we want neat answers, we cannot just return this expression as stated. This is because the square-root function per se has lots of meanings, whereas we attach here a very specific meaning to it. There is no realiable way to recognise and transform such expressions later. So we really should return a new function object “MySqrt(z)” which has well-defined meaning for all polar , and which can convert itself into a nice representation. The trouble is now that we have to very carefully define MySqrt(z) for all polar , in such a way that all slater-expansions are correct. It is not (to me) immediately obvious that this is even possible (although it will turn out it is); note in particular that this function will necessarily be discontinuous. The first problem to solve then is how to deal with hypergeometric and meijer g-functions branched at other points than zero and infinity. After that we need to find a way to display things nicely.
Branching at +-1
We have the following facts about :
- unbranched if
- branched at if
And we have the following facts about :
- usually branched at
- unbranched at if ; in this case it is even analytic in a neighborhood of the positive reals
- if , branched at
- always has a polar lift that is continuous on “circles” (spirals) of radius not equal to one
Notice further that the Slater theorem (or a generalisation) can be used to come up with a nice (single) answer if . We thus assume now that (so there is a problematic branch point) and (so that we need to define the lift of the hypergeometric functions involved), and that a version of the slater theorem applies (else there is no work to do at all). As always, we let be the riemann surface of the logarithm, we understand to be defined thereon (although it is not continuous).
We immediately find that is branched at , thus can be expressed as a sum of hypergeometric functions of argument or . Now given a hypergeometric function (where is the unit disc, the region of convergence of the power series representation), we wish to define a lift which makes all slater-expansions valid for all polar (even though they were initially only valid for ). Indeed I claim that there exists a unique lift satisfying the following list of properties:
- is defined on
- if does not have a pole at , then is additionally defined on
- is locally analytic (that is, if is defined at and is an open neighbourhood of on which is defined, then is analytic on )
- is a lift, i.e. if denotes the usual projection, then for all we have .
Such a function has, in particular, the following properties:
- is continuous along the ray
- it is continuous on “circles” (spirals)
From this it is easy to prove that if in all slater expansions the hypergeometric functions have argument , then with the above lift the slater expansion holds for all polar .
Finding nice representations
My idea is to create new objects to represent above-defined polar lifts, a la “MySqrt(z)”. hyperexpand() will work exclusively with these, except that in the end it (optionally) calls “rewrite(‘elementary’)”. The object then attempts to determine a “nice” representation (where what that means is up to the object, of course). I now have to sit down and compute said representations, and come up with a good way to test them. Sounds like a final project.
Leave a Reply