Destroy the specified solver, free all memory, etc. Note that ECLiPSe will normally do the cleanup automatically, for instance when execution fails across the solver setup. The solver is disassociated with EplexInstance, and any outstanding constraints not yet collected by the solver are removed, with a warning to the user. In effect, EplexInstance is reinitialised and can now be associated with a new solver without backtracking. Note that this last behaviour is unlike lp_cleanup/1, which also destroy the solver and disassociate it from the eplex instance (if any), but does not remove any outstanding constraints.
This predicate should be used with caution as the information from the solver state will no longer be available. In particular, if the program backtracks to a point between the problem set up and clean up, accessing the solver state directly or indirectly (e.g. unifying a problem variable) will result in a stale handle error.