Testing elementary function identities using CAD
One of the problems with manipulating function identities in computer algebra systems is that they often involve functions which are multivalued, whilst most users tend to work with single-valued functions. The problem is that many well-known identities may no longer be true everywhere in the complex plane when working with their single-valued counterparts. Conversely, we cannot ignore them, since in particular contexts they may be valid. We investigate the practicality of a method to verify such identities by means of an experiment; this is based on a set of test examples which one might realistically meet in practice. Essentially, the method works as follows. We decompose the complex plane via means of cylindrical algebraic decomposition into regions with respect to the branch cuts of the functions. We then test the identity numerically at a sample point in each region. The latter step is facilitated by the notion of the adherence of a branch cut, which was previously introduced by the authors. In addition to presenting the results of the experiment, we explain how adherence relates to the proposal of signed zeroes by W. Kahan, and develop this idea further in order to allow us to cover previously untreatable cases. Finally, we discuss other ways to improve upon our general methodology as well as topics for future research.
elementary functions cad branch cuts