<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:SPECFUN</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Overall Objectives - Scientific challenges, expected impact"/>
    <meta name="dc.title" content="Overall Objectives - Scientific challenges, expected impact"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2017-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="SPECFUN"/>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Specfun</a>
        </div>
        <span>
          <a href="uid1.html">Personnel</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li class="tdmActPage"><a href="./uid3.html">Scientific challenges, expected impact</a></li><li><a href="./uid16.html">Research axes</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid29.html&#10;&#9;&#9;  ">Studying special functions by computer algebra</a></li><li><a href="uid45.html&#10;&#9;&#9;  ">Trusted computer-algebra calculations</a></li><li><a href="uid56.html&#10;&#9;&#9;  ">Machine-checked proofs of formalized mathematics</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid63.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid66.html&#10;&#9;&#9;  ">DynaMoW</a></li><li><a href="uid70.html&#10;&#9;&#9;  ">ECS</a></li><li><a href="uid74.html&#10;&#9;&#9;  ">DDMF</a></li><li><a href="uid78.html&#10;&#9;&#9;  ">Mgfun</a></li><li><a href="uid81.html&#10;&#9;&#9;  ">Ssreflect</a></li><li><a href="uid85.html&#10;&#9;&#9;  ">Math-Components</a></li><li><a href="uid89.html&#10;&#9;&#9;  ">CoqInterval</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid95.html&#10;&#9;&#9;  ">Efficient Algorithms in Computer Algebra</a></li><li><a href="uid97.html&#10;&#9;&#9;  ">Hypergeometric Expressions for Generating Functions of Walks with Small Steps in the Quarter Plane</a></li><li><a href="uid98.html&#10;&#9;&#9;  ">Multiple Binomial Sums</a></li><li><a href="uid99.html&#10;&#9;&#9;  ">Algebraic Diagonals and Walks</a></li><li><a href="uid100.html&#10;&#9;&#9;  ">A Human Proof of the Gessel Conjecture</a></li><li><a href="uid101.html&#10;&#9;&#9;  ">Subresultants in Multiple Roots</a></li><li><a href="uid102.html&#10;&#9;&#9;  ">On Matrices with Displacement Structure: Generalized Operators and Faster Algorithms</a></li><li><a href="uid103.html&#10;&#9;&#9;  ">Quasilinear Average Complexity for Solving Polynomial Systems</a></li><li><a href="uid104.html&#10;&#9;&#9;  ">Computing the Homology of Basic Semialgebraic Sets in Weak Exponential Time</a></li><li><a href="uid105.html&#10;&#9;&#9;  ">Formally Certified Computation of
Improper Definite Integrals</a></li><li><a href="uid106.html&#10;&#9;&#9;  ">A Complete Formal Proof of the
Irrationality of <m:math xmlns:m="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns="http://www.w3.org/1998/Math/MathML"><mi>ζ</mi><mo>(</mo><mn>3</mn><mo>)</mo></mrow></m:math></a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid108.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid111.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid127.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid173.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid195.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentyear" href="bibliography.html">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2017</a> | <a href="http://www.inria.fr/en/teams/specfun">Presentation of the Project-Team SPECFUN</a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="specfun.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="specfun.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-specfun-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../specfun/specfun.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-specfun-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid1.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid16.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      Overall Objectives</h2>
        <h3 class="titre3">Scientific challenges, expected impact</h3>
        <p>The general orientation of our team is described by the short name given to it:
<i>Special Functions</i>, 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.</p>
        <p>Computer-algebra systems have been advertised for decades as software
for “doing mathematics by computer” <a href="./bibliography.html#specfun-2017-bid0">[65]</a>. For
instance, computer-algebra 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
computer-algebra component of the
team <a href="./bibliography.html#specfun-2017-bid1">[19]</a>. 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 <a href="./bibliography.html#specfun-2017-bid2">[14]</a> remains one of the most cited
mathematical publications ever and has motivated the 10-year-long
project of writing its
successor <a href="./bibliography.html#specfun-2017-bid3">[16]</a>.
However, can the mathematics produced “by computer” be considered as
<i>true</i> 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 <i>proofs</i>?
Beyond the reported weaknesses or
controversial design choices of mainstream computer-algebra systems,
the issue is more of an epistemological nature. It will not find its
solution even in the advent of the ultimate computer-algebra system:
the social process of peer-reviewing just falls short of evaluating
the results produced by computers, as reported by
Th. Hales <a href="./bibliography.html#specfun-2017-bid4">[44]</a> after the publication of his proof of
the Kepler Conjecture about sphere packing.</p>
        <p>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 success
of large-scale formalization projects, like the Four-Color Theorem of
graph theory <a href="./bibliography.html#specfun-2017-bid5">[39]</a>, the above-mentioned Kepler
Conjecture <a href="./bibliography.html#specfun-2017-bid4">[44]</a>, and the Odd Order
Theorem of group theory
(<a href="https://www.msr-inria.fr/news/the-formalization-of-the-odd-order-theorem-has-been-completed-the-20-septembre-2012/">https://www.msr-inria.fr/news/the-formalization-of-the-odd-order-theorem-has-been-completed-the-20-septembre-2012/</a>),
have increased the understanding of the appropriate
software-engineering methods for this peculiar kind of programming.
For computer algebra, this legitimates a move to proof assistants now.</p>
        <p>The Dynamic Dictionary of Mathematical Functions
(<a href="http://ddmf.msr-inria.inria.fr/1.9.1/ddmf">http://ddmf.msr-inria.inria.fr/1.9.1/ddmf</a>)
(DDMF) <a href="./bibliography.html#specfun-2017-bid1">[19]</a> is
an online computer-generated handbook of mathematical functions that
ambitions to serve as a reference for a broad range of applications.
This software was developed by the computer-algebra component of the
team as a project
(<a href="https://www.msr-inria.fr/projects/dynamic-dictionary-of-mathematical-functions/">https://www.msr-inria.fr/projects/dynamic-dictionary-of-mathematical-functions/</a>)
of the MSR–<span class="smallcap">Inria </span> Joint Centre. It bases on a
library for the computer-algebra system Maple, Algolib
(<a href="http://algo.inria.fr/libraries/">http://algo.inria.fr/libraries/</a>), whose development
started 20 years ago in ÉPI Algorithms
(<a href="http://algo.inria.fr/">http://algo.inria.fr/</a>). 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
special-functions algorithms in Algolib makes DDMF a stepping stone
for such a formalization: it provides a well-understood and unified
algorithmic treatment, without which a formal certification would
simply be unreachable.</p>
        <p>The formal-proofs component of the team emanates from another project
of the MSR–<span class="smallcap">Inria </span> Joint Centre, namely the Mathematical Components
project (MathComp)
(<a href="http://www.msr-inria.fr/projects/mathematical-components/">http://www.msr-inria.fr/projects/mathematical-components/</a>).
Since 2006, the MathComp group has endeavoured to develop
computer-checked libraries of formalized mathematics, using the
Coq proof assistant <a href="./bibliography.html#specfun-2017-bid6">[61]</a>. The methodological
aim of the project was to understand the design methods leading to
successful large-scale 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 machine-checked 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.</p>
        <p>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 <a href="./bibliography.html#specfun-2017-bid6">[61]</a> and on the libraries
developed by the MathComp project.</p>
        <a name="uid10"/>
        <h4 class="titre4">Use computer algebra but convince users beyond reasonable doubt</h4>
        <p>The following few opinions on computer algebra are, we believe,
typical of computer-algebra users' doubts and difficulties when using
computer-algebra systems:</p>
        <ul>
          <li>
            <p class="notaparagraph"><a name="uid11"> </a>Fredrik Johansson, expert in the multi-precision numerical evaluation
of special functions and in fast computer-algebra algorithms, writes
on his blog <a href="./bibliography.html#specfun-2017-bid7">[50]</a>: “Mathematica is great for
cross-checking numerical values, but it's not unusual to run into
bugs, so <i>triple checking is a good habit</i>.” One answer in the
discussion is: “We can claim that Mathematica has [...] <i>an
impossible to understand semantics</i>: 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.”</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid12"> </a>A professor's advice to students <a href="./bibliography.html#specfun-2017-bid8">[57]</a> 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 <i>wrong answer,
usually because you asked incorrectly, or because of niceties of
analytic continuation</i>. 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 <i>have to devise your own
checks</i> and you will still have to think.”</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid13"> </a>Jacques Carette, former head of the maths group at Maplesoft, about a
bug <a href="./bibliography.html#specfun-2017-bid9">[15]</a> when asking Maple to take the limit
<tt>limit(f(n) * exp(-n), n = infinity)</tt>  for an undetermined
function <tt>f</tt> : “The problem is that there is an <i>implicit
assumption in the implementation</i> that unknown functions do not
`grow too fast'.”</p>
          </li>
        </ul>
        <p>As explained by the expert views above, complaints by computer-algebra
users are often due to their misunderstanding of what a
computer-algebra systems is, namely a purely syntactic tool for
calculations, that the user must complement with a semantics. Still,
robustness and consistency of computer-algebra systems are not ensured
as of today, and, whatever Zeilberger may provocatively say in his
Opinion 94 <a href="./bibliography.html#specfun-2017-bid10">[66]</a>, a
firmer logical foundation is necessary. Indeed, the fact is that many
“bugs” in a computer-algebra 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 <a href="./bibliography.html#specfun-2017-bid11">[48]</a>, <a href="./bibliography.html#specfun-2017-bid12">[22]</a>. It is natural to
undertake a similar approach for computer algebra.</p>
        <a name="uid14"/>
        <h4 class="titre4">Make computer algebra and formal proofs help one another</h4>
        <p>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 computer-algebra
algorithms. Interestingly, this forces us to clarify our
computer-algebraic 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.</p>
        <p>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.</p>
        <p>Another big challenge in this project originates in
the scientific difference between computer algebra and formal proofs.
Computer algebra seeks speed of calculation on <i>concrete
instances</i> of algebraic data structures (polynomials, matrices,
etc). For their part, formal proofs manipulate
symbolic expressions in terms of <i>abstract variables</i>
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.</p>
        <a name="uid15"/>
        <h4 class="titre4">Experimental mathematics with special functions</h4>
        <p>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 quasi-optimal—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.</p>
        <p>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.</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid1.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid16.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
