Thursday, September 06, 2007

Notes on ``Symbolic Analysis''

There are many different approaches to doing mathematics on a computer. The one that will concern us here can be paraphrased as "can we teach a computer to do undergraduate calculus?". This should not involve a shift in representation, in other words, the main concern are formulas. More subtly, our main concern will in fact be functions rather than formulas. But we don't mean functions in the sense understood in computer science, namely methods-of-computation. We really mean functions in the classical meaning of mathematics, which is a method of associating an output (value) to an input (value). For us, a "function" lives in a function space, and interesting function spaces do not possess natural enumerations [i.e. we can't write down a "name" for each member of the space, mainly for cardinality reasons].

Why is this different? Because we have dropped the requirement that our functions be computable! In classical mathematics, we can compute with non-computable functions. We cannot evaluate them (otherwise they would be computable!), but we can sometimes prove properties of these functions. So we really do want to shift away from computable functions to representations of functions. In other words, our fundamental object of study are expressions which are supposed to represent functions.

The first problem we encounter is that we need a denotational semantics for our expressions. If an expression represents a function, which function is that? For polynomials, and more generally, for (representations of) analytic functions, this problem is easy. Strong analytic properties and connotations co-exist very nicely. Of course, there are some analytic functions which have no connotations, and we can associate very nasty functions to some simple expressions. So the story really is rather complicated.

The name of this blog comes from merging "symbolic computation" with "classical analysis"; our means of implementation (atop Computer Algebra) is via symbol shuffling, ie "symbolic computation", but our purpose is computations with concrete representations of (classical) functions over the reals, complexes, and eventually some topological spaces.