Our approach involves two data structure views: a … level of relations between abstract objects [for constraints on linked data structures] … It converts each violated constraint into disjunctive normal … Each basic proposition has a repair action that … at least one of the conjunctions must hold. … The algorithm repeatedly selects a violated constraint, chooses … then applies repair actions to all of [its] basic propositions … that are false. A repair cost heuristic biases … [to] perturb the existing data structures the least. … To ensure that the repair process terminates, we … the tool attempts to prune conjunctions to eliminate … [any cycles that are found].
Google-1
Google-2
Copyright clearance needed for quotation.