Abstract: The process of formal modelling often involves the “verify-and-repair” exploration in which modellers find necessary constraints missing after they fail to verify properties. The bottleneck in this process is figuring out how to modify predicates of the behaviour from the limited feedback from verification tools. To tackle the difficulty, we propose a method for repairing faulty events in Event-B models by generating what we call an invariant preservative, a predicate such that the behaviour becomes invariant-preserving if we add it to the model. Our method automatically derives the necessary condition on the invariant preservative that has limited occurrences of free variables so that it can be added to a certain part of the model. Then, our method obtains a predicate that satisfies the condition through quantifier elimination. To apply quantifier elimination to Event-B models written in a set-theoretic language, we also provide a method for encoding models into integer-based representations. We found that our method can generate missing guard predicates for mutant models constructed from different types of models. We also compare the repaired models to the original ones and discuss the usefulness of our methods in developing models.
Loading