For a specific problem the end-user may have some knowledge of the problem that implies that he may determine that for some intervals for the variables the problem has no solution or that the intervals for some variables may be reduced.

ALIAS-Maple allows one to introduce such knowledge in the generated C++
code. The mechanism that is used is to allow one to specify a C++
routine, that will be called a *simplification procedure*. We will
present in this chapter simplification procedures devoted to system
solving. A simplification procedure
takes as input a set of intervals for the variables and will return an
integer:

- -1 if there is no solution to the problem at hand for the given set of intervals
- 1 if the routine has allowed to reduce the width of the intervals of the set
- 0 if the routine has not changed the set of intervals
- 11 if the simplification procedure provides a root that may be
found with the Newton scheme (see for example
`TryNewton`)

This routine will be called by all the solving procedure of ALIAS-Maple whenever a new set of intervals is considered in the algorithm i.e. right after the bisection process (see the ALIAS-C++ manual). System solving procedures in ALIAS C++ are designed to discard box for which a simplification procedure returns -1 and to update it if the simplification procedure returns 1.

The syntax of such a routine `Simp` is:

int Simp(INTERVAL_VECTOR &v_IS) { .... return 0; }

Alternatively ALIAS-Maple allows to automatically produce simplification procedures according to classical methods used in interval analysis.

Note that numerical round-off errors in Maple may produce solving errors as
the filtering procedures uses frequently an expanded version of the
expressions. To reduce the impact of this problem it is possible to
adjust the number of digits that will be used when doing numerical
computation in the filtering procedure by using the `ALIAS` variable
``ALIAS/digits`` which is set by default to 40.