Download Paper - STS
Transcript
7 Conclusion 7 Conclusion The aim of this project was to implement a model repairer for CTL properties in NuSMV. Since Zhang and Ding build their update functions on five basic operations that can arbitrarily modify the given Kripke model, these basic operations had to be implemented into NuSMV. It turned out that this is impossible for some of them in their original form. While it was no problem to implement the basic operations for the modification of the transition relation, the addition and removal of states proved to be hard. Furthermore, changing the label of a state is impossible as the label is implied by the state and not assigned to the state in NuSMV. Hence, the next step was to adapt these basic operations to make them compatible with NuSMV. In the case of relabelling a state, it was solved by replacing the current state with another one that already has the appropriate label. This is possible as the states for each satisfiable label combination already exist for SMV models. However, this is a problem in itself as the other state may already have incident transitions. Hence, using such a state as a replacement state breaks the abstraction of the basic operation for state relabelling. The next basic operation to adapt was the addition of a new state. The problem is that NuSMV uses BDDs to verify CTL properties. The states are given by the minterms of the respective BDDs. Since each possible minterm already represents a specific state, creating a new state requires to introduce a new boolean variable in the BDDs. The new variable creates additional minterms that represent the new states. However, this leads to the serious problem that all existing BDDs in NuSMV are implicitly changed (i.e., the states sets that they represent). Hence, after each application of the adapted basic operation, the model repairer has to correct all existing BDDs. This holds for the creation of a new state as well as for the change of the label of a state. That is the reason why neither relabelling a state nor creating a new one are realised in the prototypical implementation of the model repairer. The prototype repairs models by modifying the transition relation only. The supported CTL subset corresponds to the AEClass properties. Hence, nesting temporal operators is not allowed. Regarding the supported language features of NuSMV, the prototype assumes that there are neither fairness constraints, input variables, nor sub-modules given. These limitations make it difficult to solve real world problems with the prototype. However, at the same time it shows that model repair is possible in NuSMV. 44