Section: Overall Objectives
Scientific challenges, expected impact
The general orientation of our team is described by the short name given to it: Special Functions, that is, particular mathematical functions that have established names due to their importance in mathematical analysis, physics, and other application domains. Indeed, we ambition to study special functions with the computer, by combined means of computer algebra and formal methods.
Computeralgebra systems have been advertised for decades as software for “doing mathematics by computer” [67] . For instance, computeralgebra libraries can uniformly generate a corpus of mathematical properties about special functions, so as to display them on an interactive website. This possibility was recently shown by the computeralgebra component of the team [20] . Such an automated generation significantly increases the reliability of the mathematical corpus, in comparison to the content of existing static authoritative handbooks. The importance of the validity of these contents can be measured by the very wide audience that such handbooks have had, to the point that a book like [15] remains one of the most cited mathematical publications ever and has motivated the 10yearlong project of writing its successor [17] . However, can the mathematics produced “by computer” be considered as true mathematics? More specifically, whereas it is nowadays well established that the computer helps in discovering and observing new mathematical phenomenons, can the mathematical statements produced with the aid of the computer and the mathematical results computed by it be accepted as valid mathematics, that is, as having the status of mathematical proofs? Beyond the reported weaknesses or controversial design choices of mainstream computeralgebra systems, the issue is more of an epistemological nature. It will not find its solution even in the advent of the ultimate computeralgebra system: the social process of peerreviewing just falls short of evaluating the results produced by computers, as reported by Th. Hales [45] after the publication of his proof of the Kepler Conjecture about sphere packing.
A natural answer to this deadlock is to move to an alternative kind of mathematical software and to use a proof assistant to check the correctness of the desired properties or formulas. The recent success of largescale formalization projects, like the FourColor Theorem of graph theory [40] , the abovementioned Kepler Conjecture [45] , and, very recently, the Odd Order Theorem of group theory (http://www.msrinria.inria.fr/news/theformalizationoftheoddordertheoremhasbeencompletedthe20septembre2012/ ), have increased the understanding of the appropriate softwareengineering methods for this peculiar kind of programming. For computer algebra, this legitimates a move to proof assistants now.
The Dynamic Dictionary of Mathematical Functions (http://ddmf.msrinria.inria.fr/1.9.1/ddmf ) (DDMF) [20] is an online computergenerated handbook of mathematical functions that ambitions to serve as a reference for a broad range of applications. This software was developed by the computeralgebra component of the team as a project (http://www.msrinria.inria.fr/projects/dynamicdictionaryofmathematicalfunctions/ ) of the MSR–Inria Joint Centre. It bases on a library for the computeralgebra system Maple, Algolib (http://algo.inria.fr/libraries/ ), whose development started 20 years ago in ÃPI Algorithms (http://algo.inria.fr/ ). As suggested by the constant questioning of certainty by new potential users, DDMF deserves a formal guarantee of correctness of its content, on a level that proof assistants can provide. Fortunately, the maturity of specialfunctions algorithms in Algolib makes DDMF a stepping stone for such a formalization: it provides a wellunderstood and unified algorithmic treatment, without which a formal certification would simply be unreachable.
The formalproofs component of the team emanates from another project of the MSR–Inria Joint Centre, namely the Mathematical Components project (MathComp) (http://www.msrinria.fr/projects/mathematicalcomponents/ ). Since 2006, the MathComp group has endeavoured to develop computerchecked libraries of formalized mathematics, using the Coq proof assistant [63] . The methodological aim of the project was to understand the design methods leading to successful largescale formalizations. The work culminated in 2012 with the completion of a formal proof of the Odd Order Theorem, resulting in the largest corpus of algebraic theories ever machinechecked with a proof assistant and a whole methodology to effectively combine these components in order to tackle complex formalizations. In particular, these libraries provide a good number of the many algebraic objects needed to reason about special functions and their properties, like rational numbers, iterated sums, polynomials, and a rich hierarchy of algebraic structures.
The present team takes benefit from these recent advances to explore the formal certification of the results collected in DDMF. The aim of this project is to concentrate the formalization effort on this delimited area, building on DDMF and the Algolib library, as well as on the Coq system [63] and on the libraries developed by the MathComp project.
Use computer algebra but convince users beyond reasonable doubt
The following few opinions on computer algebra are, we believe, typical of computeralgebra users' doubts and difficulties when using computeralgebra systems:

Fredrik Johansson, expert in the multiprecision numerical evaluation of special functions and in fast computeralgebra algorithms, writes on his blog [51] : “Mathematica is great for crosschecking numerical values, but it's not unusual to run into bugs, so triple checking is a good habit.” One answer in the discussion is: “We can claim that Mathematica has [...] an impossible to understand semantics: If Mathematica's output is wrong then change the input. If you don't like the answer, change the question. That seems to be the philosophy behind.”

A professor's advice to students [59] on using Maple: “You may wish to use Maple to check your homework answers. If you do then keep in mind that Maple sometimes gives the wrong answer, usually because you asked incorrectly, or because of niceties of analytic continuation. You may even be bitten by an occasional Maple bug, though that has become fairly unlikely. Even with as powerful a tool as Maple you will still have to devise your own checks and you will still have to think.”

Jacques Carette, former head of the maths group at Maplesoft, about a bug [16] when asking Maple to take the limit limit(f(n) * exp(n), n = infinity) for an undetermined function f : “The problem is that there is an implicit assumption in the implementation that unknown functions do not `grow too fast'.”
As explained by the expert views above, complaints by computeralgebra users are often due to their misunderstanding of what a computeralgebra systems is, namely a purely syntactic tool for calculations, that the user must complement with a semantics. Still, robustness and consistency of computeralgebra systems are not ensured as of today, and, whatever Zeilberger may provocatively say in his Opinion 94 [68] , a firmer logical foundation is necessary. Indeed, the fact is that many “bugs” in a computeralgebra system cannot be fixed by just the usual debugging method of tracking down the faulty lines in the code. It is sort of “by design”: assumptions that too often remain implicit are really needed by the design of symbolic algorithms and cannot easily be expressed in the programming languages used in computer algebra. A similar certification initiative has already been undertaken in the domain of numerical computing, in a successful manner [49] , [23] . It is natural to undertake a similar approach for computer algebra.
Make computer algebra and formal proofs help one another
Some of the mathematical objects that interest our team are still totally untouched by formalization. When implementing them and their theory inside a proof assistant, we have to deal with the pervasive discrepancy between the published literature and the actual implementation of computeralgebra algorithms. Interestingly, this forces us to clarify our computeralgebraic view on them, and possibly make us discover holes lurking in published (human) proofs. We are therefore convinced that the close interaction of researchers from both fields, which is what we strive to maintain in this team, is a strong asset.
For a concrete example, the core of Zeilberger's creative telescoping manipulates rational functions up to simplifications. In summation applications, checking that these simplifications do not hide problematic divisions by 0 is most often left to the reader. In the same vein, in the case of integrals, the published algorithms do not check the convergence of all integrals, especially in intermediate calculations. Such checks are again left to the readers. In general, we expect to revisit the existing algorithms to ensure that they are meaningful for genuine mathematical sequences or functions, and not only for algebraic idealizations.
Another big challenge in this project originates in the scientific difference between computer algebra and formal proofs. Computer algebra seeks speed of calculation on concrete instances of algebraic data structures (polynomials, matrices, etc). For their part, formal proofs manipulate symbolic expressions in terms of abstract variables understood to represent generic elements of algebraic data structures. In view of this, a continuous challenge is to develop the right, hybrid thinking attitude that is able to effectively manage concrete and abstract values simultaneously, alternatively computing and proving with them.
Experimental mathematics with special functions
Applications in combinatorics and mathematical physics frequently involve equations of so high orders and so large sizes, that computing or even storing all their coefficients is impossible on existing computers. Making this tractable is an extraordinary challenge. The approach we believe in is to design algorithms of good—ideally quasioptimal—complexity in order to extract precisely the required data from the equations, while avoiding the computationally intractable task of completely expanding them into an explicit representation.
Typical applications with expected high impact are the automatic discovery and algorithmic proof of results in combinatorics and mathematical physics for which human proofs are currently unattainable.