  State-of-the-art SAT solvers are nowadays able to handle huge real-world
instances. The key to this success is the so-called Conflict-Driven
Clause-Learning (CDCL) scheme, which encompasses a number of techniques that
exploit the conflicts that are encountered during the search for a solution. In
this article we extend these techniques to Integer Linear Programming (ILP),
where variables may take general integer values instead of purely binary ones,
constraints are more expressive than just propositional clauses, and there may
be an objective function to optimise. We explain how these methods can be
implemented efficiently, and discuss possible improvements. Our work is backed
with a basic implementation that shows that, even in this far less mature
stage, our techniques are already a useful complement to the state of the art
in ILP solving.
