Consider the following problem:
\begin{equation} \begin{aligned} P:= \min_{x_1,x_2} & f(x_1,x_2) \\\text{s.t. } x_1x_2 &\leq 1,\\ -10x_1-x_2 &\leq -6,\\ x_1 &\in [0,1.5],\\ x_2 &\in [1,4]. \end{aligned} \end{equation}
The feasible region for this problem corresponds to the red area in Figure 1, denoted as \Omega.
Notice that although the range of the variable x_1 is originally [0,1.5], the feasible region in the figure only admits values of x_1 between 0.2 and 1 (red dashed lines in Figure 1). Knowing this, it is then logical to change the bounds of x in the original problem from x_1 \in [0,1.5] to x_1 \in [0.2,1] (i.e., tightening the bounds of x_1).
This change will make other calculations and techniques used by Octeract Engine more effective (e.g., relaxations and branching).

In general, for a problem \min_{x \in \Omega} f(x) we would like to find the tightest bounds for each variable x_i, i.e., find the lower bound l_i^\star = \min_{x \in \Omega} x_i, and upper bound u_i^\star = \max_{x \in \Omega} x_i.
However, unlike our previous example, it is not easy to solve the problems \min_{x \in \Omega} x_i and \max_{x \in \Omega} x_i, and a different approach is required. Feasibility based bounds tightening (FBBT) , Optimisation based bounds tightening (OBBT) and Constraint propagation (CP), are some of the algorithmic techniques implemented in Octeract Engine to approach this important task.