Cutting planes for programs with disjunctive constraints