I'm solving an MILP problem, trying to use the one tree benders decomposition approach, I can manage to go and solve dual problem with the information of incumbent solution but I am not sure if the new cuts are added to the main problem after solving the dual problem.

Also is it possible to add new cuts in integer solution cut backs and solver will resolve the model with the new additional cuts? I have tried to use sethidden(constraint, false) function and setmodcut seperately in callback but I am not sure it worked like that.

Many thanks in advance.

The routines 'sethidden' (blending out constraints from the problem that is sent to the solver) and 'setmodcut' (flag a constraint as a model cut, that is, a redundant constraint that can be used as a cut) cannot be called during the MIP solving, they can only be applied before the problem is loaded into the Optimizer.

There are specific routines (addcut[s] and also loadcuts) that can be invoked from the MIP branch-and-bound callbacks (cut manager: CUTMGR or OPTNODE callbacks, see the list in the documentation of 'setcallback' under Chapter 'mmxprs' in the Mosel Language Reference Manual) in order to add constraints to the problem during the MIP solve.

You may want to take a look at some of these examples:

* using the cutmanager callback to add cuts:

https://examples.xpress.fico.com/example.pl?id=mosel_solv_2 , https://examples.xpress.fico.com/example.pl?id=mosel_solv_2a

* adding constraints to a partial problem representation:

https://examples.xpress.fico.com/example.pl?id=mosel_solv_21