A method, computer program product and system for determining a minimal explanation. A model comprising a plurality of constraints is received. An output for the model is determined and a subset of the constraints that provide the same output for the model is constructed. The construction includes determining a first constraint that forms part of the subset of the constraints, testing the constraint(s) that form the subset of the constraints to determine if the subset of constraints provides the same output for the model, selecting a further constraint that has a variable in common with at least one constraint in the subset of constraints, and repeating the testing of the constraint(s) and the selecting of the further constraint until the testing of the constraint(s) that form the subset of the constraints determines that the subset of the constraints does provide the same output for the model.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A computer implemented method for determining a minimal explanation, the method comprising: receiving a model comprising a plurality of constraints; determining an output for the model; and constructing, by a processor, a subset of the constraints that provide the same output for the model, the construction comprising: determining a first constraint that forms part of the subset of the constraints; testing the constraint(s) that form the subset of the constraints to determine if the subset of constraints provides the same output for the model; selecting a further constraint that has a variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints; and repeating the testing of the constraint(s) and the selecting of the further constraint until the testing of the constraint(s) that form the subset of the constraints determines that the subset of constraints does provide the same output for the model. 2. The method as recited in claim 1, wherein the selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises generating a list of candidate constraints from 1 to K each of which has a variable in common with at least one constraint in the subset of constraints and performing repeated binary searches on the list of candidate constraints until only one constraint remains. 3. The method as recited in claim 2, wherein the selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises selecting a candidate i from the list of candidate constraints, building a current constraint system from the constraints of the model excluding the constraints i+1 to K from the candidate list, testing the current constraint system to determine if the current constraint system provides the same output for the model and removing all candidate constraints from i+1 to K from the candidates list and the current constraint system if the current constraint system does provide the same output for the model, or removing all candidate constraints from 1 to i from the candidates list if the current constraint system does not provide the same output for the model. 4. The method as recited in claim 1 further comprising: building a graph of connected constraints wherein two constraints are connected if they share at least one variable, and wherein the selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints comprises navigating the built graph from a node defining a constraint in the subset of constraints to a connected node defining a constraint not in the subset of constraints. 5. The method as recited in claim 4, wherein the connected node selected has a lowest number of connections of all of the nodes connected to the node defining the constraint in the subset of constraints. 6. A computer program product for determining a minimal explanation, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code comprising the programming instructions for: receiving a model comprising a plurality of constraints; determining an output for the model; and constructing a subset of the constraints that provide the same output for the model, the construction comprising the programming instructions for: determining a first constraint that forms part of the subset of the constraints; testing the constraint(s) that form the subset of the constraints to determine if the subset of constraints provides the same output for the model; selecting a further constraint that has a variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints; and repeating the testing of the constraint(s) and the selecting of the further constraint until the testing of the constraint(s) that form the subset of the constraints determines that the subset of constraints does provide the same output for the model. 7. The computer program product as recited in claim 6, wherein the programming instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises the programming instructions for generating a list of candidate constraints from 1 to K each of which has a variable in common with at least one constraint in the subset of constraints and performing repeated binary searches on the list of candidate constraints until only one constraint remains. 8. The computer program product as recited in claim 7, wherein the programming instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises the programming instructions for selecting a candidate i from the list of candidate constraints, building a current constraint system from the constraints of the model excluding the constraints i+1 to K from the candidate list, testing the current constraint system to determine if the current constraint system provides the same output for the model and removing all candidate constraints from i+1 to K from the candidates list and the current constraint system if the current constraint system does provide the same output for the model, or removing all candidate constraints from 1 to i from the candidates list if the current constraint system does not provide the same output for the model. 9. The computer program product as recited in claim 6, wherein the program code further comprises the programming instructions for: building a graph of connected constraints wherein two constraints are connected if they share at least one variable, and wherein the programming instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints comprises the programming instructions for navigating the built graph from a node defining a constraint in the subset of constraints to a connected node defining a constraint not in the subset of constraints. 10. The computer program product as recited in claim 9, wherein the connected node selected has a lowest number of connections of all of the nodes connected to the node defining the constraint in the subset of constraints. 11. A system, comprising: a memory unit for storing a computer program for determining a minimal explanation; and a processor coupled to the memory unit, wherein the processor is configured to execute the program instructions of the computer program comprising: receiving a model comprising a plurality of constraints; determining an output for the model; and constructing a subset of the constraints that provide the same output for the model, the construction comprising the program instructions for: determining a first constraint that forms part of the subset of the constraints; testing the constraint(s) that form the subset of the constraints to determine if the subset of constraints provides the same output for the model; selecting a further constraint that has a variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints; and repeating the testing of the constraint(s) and the selecting of the further constraint until the testing of the constraint(s) that form the subset of the constraints determines that the subset of constraints does provide the same output for the model. 12. The system as recited in claim 11, wherein the program instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises the program instructions for generating a list of candidate constraints from 1 to K each of which has a variable in common with at least one constraint in the subset of constraints and performing repeated binary searches on the list of candidate constraints until only one constraint remains. 13. The system as recited in claim 12, wherein the program instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints, comprises the program instructions for selecting a candidate i from the list of candidate constraints, building a current constraint system from the constraints of the model excluding the constraints i+1 to K from the candidate list, testing the current constraint system to determine if the current constraint system provides the same output for the model and removing all candidate constraints from i+1 to K from the candidates list and the current constraint system if the current constraint system does provide the same output for the model, or removing all candidate constraints from 1 to i from the candidates list if the current constraint system does not provide the same output for the model. 14. The system as recited in claim 11, wherein the program instructions of the computer program further comprise: building a graph of connected constraints wherein two constraints are connected if they share at least one variable, and wherein the program instructions for selecting of the further constraint that has the variable in common with at least one constraint in the subset of constraints, the further constraint forming part of the subset of constraints comprises the program instructions for navigating the built graph from a node defining a constraint in the subset of constraints to a connected node defining a constraint not in the subset of constraints. 15. The system as recited in claim 14, wherein the connected node selected has a lowest number of connections of all of the nodes connected to the node defining the constraint in the subset of constraints.