1. A computer-implemented method for providing a minimal explanation to a set of unsatisfiable constraints, the computer-implemented method involving retrieving by a processor of a computer, a minimal subset of constraints that remain together unsatisfiable, the computer-implemented method comprising: providing a list of constraints, the list comprising n constraints; and iterating over the list of constraints from a first one of the list of constraints to an n th one of the list of constraints, building a minimal explanation to a set of unsatisfiable constraints by determining by the processor which constraint to add to the set of unsatisfiable constraints, the building comprising: based on determining that a single removed constraint from the list of constraints keeps the set of constraints unsatisfiable, then starting with k=1, repeating removal of a plurality of 2 k further constraints adjacent in the list of constraints to the removed constraint and incrementing k until the removed plurality of 2 k further constraints makes the set of constraints satisfiable.