Inner test implimentation in Ibex

Dr. Gilles,
My question is related to the concept you mentioned in your paper "Contractor Programing" section 1.6, in which figure 2b explains an inversion problem which has been dealt with some kind of inner test. What if I am intrested to just calculate the boundry boxes from the inner boxes as in figure 2b, and boundry boxes might have more precision then the inner boxes, as I am not interested to further explore the inner boxes which already have solutions. Is is possible to implement in IBEX?

Dear Usman,
The Figure 2b in the AIJ paper correspons to a contractor variant of the well-known "SIVIA" algorithm.
An implementation of this algorithm is in the documentation here:
You will find, in particular, the contractor "inside" that precisely acts as an inner test.
The boundary boxes correspond to the 3rd paving returned by the paver (paving[2].traces).

Suppose I have a constraint of type:
a+b+c >=d
where a, b, c and d are defined over intervals. Solver will provide me boxes satisfied by the constraint. Is there any way I can figure out the minum values (or boxes) of a,b,c, and d out of all those solutions, the minimum possible value subjected to the precision...? SIVIA/Paver can do any help in this regard? or I have to rely on default solver?


Dear Usman

I thought I already answered your question in my post of Sept 26.

Maybe, I misunderstood your question. If so, can you reformulate it more rigorously, that is, in mathematical terms.



In simple words I am interested to find a smallest solution in the solution space which is satisfiable to the constraints without using optimization solver.
x is in [-5,5]
y is in [-5,5]
f(x,y): x^2+y^2
f(x,y)<= 5
it wil return me set of solution corresponding to desired precision. The minimum solution is the one in which x and y has minum value in coresponding intervals [-5,5] and [-10,10].
I hope it is clear now.


There is no minimum value for both x and y satisfying f(x,y) in [0,5]. This is a bi-ojbective optimization problem.

However, to find a "good" tuple (x,y) without running a paver, you can try this;

Function f("x,"y","x^2+y^2");

IntervalVector box(2,Interval(-5,5));

Inteval y(0,5);

f.ibwd(y,box); // --> will be documented soon

// will contain small values for x and y such that f(x,y) is in [0,5].


Best regards,