The revise inference is the most complex inference of the method. Here, we choose to keep the revise inference as a primitive, without decomposing it. We make this choice because in making explicit how the knowledge used by the inference should be organized, it is not necessary to decompose the carrying out of the inference. The revise inference repairs a violated constraint.
All fixes have a unique procedure that is represented by an expression.
The order of application of fixes is based on their cost. Besides its cost, each fix has a type that characterizes the type of modification achieved by it. Fixes of type increment , decrement and upgrade are recurrent fixes, because they can be applied repeated times. Moreover, fixes of type increment or decrement have an associated step. When a fix combination contains one or more recurrent fixes in which a value should be stepped or upgraded along some dimension, all combinations of steps or upgrading for the fix combination should be tried before attempting the next combination.