Grants and Contributions:
Grant or Award spanning more than one fiscal year. (2017-2018 to 2018-2019)
Computer algebra studies how to get computers to solve mathematical problems symbolically, for example to solve equations in terms of mathematical formulae, rather than by giving set of numerical values. The long-term goal of our research is to understand how to make the computer treatment of mathematics as easy and powerful as the computer treatment of text, images or other media. We will focus on four questions:
Symbolic Domains: What new symbolic domains will be most useful in computer algebra, and how can these be treated rigorously and efficiently? We have already developed algorithms for polynomials with symbolic exponents. What can be done with coefficient rings of symbolic characteristic, or with matrices of symbolic block structure, etc? The impact will go beyond inventing some nice mathematics – it will significantly extend the utility of computer algebra systems.
Software for Mathematical Collaboration: All computer algebra systems today have the same type of interface that is a slight variation of the classical teletype conversation. The only difference is that the result can now be typeset or shown as a graph. We now have many more forms of computer-mediated interaction: blogs, comment trees, shared editing of documents, and so on. We shall investigate what should be the shared objects and interfaces of computer aided mathematical collaboration.
Digital Math Libraries and Knowledge Management: An astonishing amount of mathematical knowledge is captured already in digital form, be it near-comprehensive archives of PDF page images of the world’s research journals or the knowledge captured in computer algebra and proof systems. We shall build on our prior work on mathematical document analysis, computer algebra systems and mathematical knowledge management to explore how computer algebra and digital math libraries may most usefully be converged form a mathematical knowledge base. Beyond supporting the current forms of mathematical software, such mathematical knowledge tools should allow users of mathematics to check that multi-step processes give sound results, avoiding engineering disasters.
Compiling for Symbolic Computation: Programming languages for symbolic computation remain a challenge for optimizing compilers. In particular, house-keeping associated with modern object-oriented design prevents certain optimizations. We shall investigate how modern compiler techniques can be used to remove un-necessary storage allocations and arithmetic.
While each of these topics has its own specific questions and goals, the three have many points of interaction. For example, the new document analysis techniques used to recognize mathematical expression in articles will have much in common with the recognition of handwritten expressions in collaborations. Taken together, these problems open new frontiers for computer algebra.