## Section: Scientific Foundations

### Interval analysis

We are interested in real-valued system solving ($f\left(X\right)=0$, $f\left(X\right)\le 0$), in optimization problems, and in the proof of the existence of properties (for example, it exists $X$ such that $f\left(X\right)=0$ or it exist two values ${X}_{1}$, ${X}_{2}$ such that $f\left({X}_{1}\right)>0$ and $f\left({X}_{2}\right)<0$). There are few restrictions on the function $f$ as we are able to manage explicit functions using classical mathematical operators (e.g. $sin(x+y)+log(cos\left({e}^{x}\right)+{y}^{2})$ as well as implicit functions (e.g. determining if there are parameter values of a parametrized matrix such that the determinant of the matrix is negative, without calculating the analytical form of the determinant).

Solutions are searched within a finite domain (called a *box*)
which may be either continuous or mixed (i.e. for which some variables
must belong to a continuous range while other variables may
only have values within a discrete set). An important point is that we
aim at finding all the solutions within the domain whenever the
computer arithmetic will allow it: in other words we are looking for
*certified* solutions. For example, for 0-dimensional system
solving, we will provide a box that contains one, and only one,
solution together with a numerical approximation of this
solution. This solution
may further be refined at will using multi-precision.

The core of our methods is the use of *interval analysis* that
allows one to manipulate mathematical expressions whose unknowns have interval
values. A basic component of interval analysis is the *interval
evaluation* of an expression. Given an analytical expression $F$
in the unknowns $\{{x}_{1},{x}_{2},...,{x}_{n}\}$ and ranges
$\{{X}_{1},{X}_{2},...,{X}_{n}\}$ for these unknowns we are able to compute a
range $[A,B]$, called the interval evaluation, such that

$\forall \{{x}_{1},{x}_{2},...,{x}_{n}\}\in \{{X}_{1},{X}_{2},...,{X}_{n}\},A\le F({x}_{1},{x}_{2},...,{x}_{n})\le B$ | (1) |

In other words the interval evaluation provides a lower bound of the minimum of $F$ and an upper bound of its maximum over the box.

For example if $F=x\phantom{\rule{3.33333pt}{0ex}}sin(x+{x}^{2})$ and $x\in [0.5,1.6]$, then $F\left(\right[0.5,1.6\left]\right)=[-1.362037441,1.6]$, meaning that for any $x$ in [0.5,0.6] we guarantee that $-1.362037441\le f\left(x\right)\le 1.6$.

The interval evaluation of an expression has interesting properties:

it can be implemented in such a way that the results are guaranteed with respect to round-off errors i.e. property 1 is still valid in spite of numerical errors induced by the use of floating point numbers

if $A>0$ or $B<0$, then no values of the unknowns in their respective ranges can cancel $F$

if $A>0$ ($B<0$), then $F$ is positive (negative) for any value of the unknowns in their respective ranges

A major drawback of the interval evaluation is that $A\left(B\right)$ may be overestimated i.e. values of ${x}_{1},{x}_{2},...,{x}_{n}$ such that $F({x}_{1},{x}_{2},...,{x}_{n})=A\left(B\right)$ may not exist. This overestimation occurs because in our calculation each occurrence of a variable is considered as an independent variable. Hence if a variable has multiple occurrences, then an overestimation may occur. Such phenomena can be observed in the previous example where $B=1.6$ while the real maximum of $F$ is approximately 0.9144. The value of $B$ is obtained because we are using in our calculation the formula $F=xsin(y+{z}^{2})$ with $y,z$ having the same interval value than $x$.

Fortunately there are methods that allow one to reduce the overestimation and the overestimation amount decreases with the width of the ranges. The latter remark leads to the use of a branch-and-bound strategy in which for a given box a variable range will be bisected, thereby creating two new boxes that are stored in a list and processed later on. The algorithm is complete if all boxes in the list have been processed, or if during the process a box generates an answer to the problem at hand (e.g. if we want to prove that $F\left(X\right)<0$, then the algorithm stops as soon as $F\left(\mathcal{B}\right)\ge 0$ for a certain box $\mathcal{B}$).

A generic interval analysis algorithm involves the following steps on the current box [1] , [7] , [5] :

*exclusion operators*: these operators determine that there is no solution to the problem within a given box. An important issue here is the extensive and smart use of the monotonicity of the functions*filters*: these operators may reduce the size of the box i.e. decrease the width of the allowed ranges for the variables [11] , [19]*existence operators*: they allow one to determine the existence of a unique solution within a given box and are usually associated with a numerical scheme that allows for the computation of this solution in a safe way*bisection*: choose one of the variable and bisect its range for creating two new boxes

The scope of the COPRIN project is to address all these steps in order to find the most efficient procedures. Our efforts focus on mathematical developments (adapting classical theorems to interval analysis, proving interval analysis theorems), the use of symbolic computation and formal proofs (a symbolic pre-processing allows one to automatically adapt the solver to the structure of the problem), software implementation and experimental tests (for validation purposes).