Handle is a problem handle referring to the linear relaxation of a more complex problem. GlobalCost is the overall cost variable of the complex problem.
This predicate tries to prune the bounds of all variables that occur in the linear relaxation, based on their reduced costs, the optimum of the relaxation, and the currently known bounds (lower if maximising, upper if minimising) on the global cost.
This predicate should be called just after the Handle has been solved. In particular, it can be used as the post-goal in an lp-demon. The solver should have been set up with the reduced_cost(yes) option.
Note that the bounds of GlobalCost is obtained using the generic get_var_bounds/3. For correct pruning, GlobalCost should only have bounds that are relevant to this problem.