Logic and Integer Programming