[52] | 1 | |
---|
| 2 | |
---|
[56] | 3 | \subsection{Properties of good refinement} |
---|
| 4 | When a counterexample is found to be spurious, it means that the current abstract model $\widehat{M}_i$ is too coarse and has to be refined. |
---|
| 5 | In this section, we will discuss about the refinement technique based on the integration of more verified properties of the concrete model's components in the abstract model to be generated. Moreover, the refinement step from $\widehat{M}_i$ to $\widehat{M}_{i+1}$ respects the properties below: |
---|
[52] | 6 | |
---|
| 7 | %\medskip |
---|
| 8 | |
---|
[58] | 9 | \begin{definition} An efficient \emph{refinement} verified the following properties: |
---|
[56] | 10 | \begin{enumerate} |
---|
[63] | 11 | \item The new refinement is an over-approximation of the concrete model: $\widehat{M}_{i+1} \sqsubseteq \widehat{M}$. |
---|
| 12 | \item The new refinement is more concrete than the previous one: |
---|
[56] | 13 | $\widehat{M}_{i} \sqsubseteq \widehat{M}_{i+1}$. |
---|
| 14 | \item The spurious counter-example in $\widehat{M}_i$ is removed from |
---|
| 15 | $\widehat{M_{i+1}}$. |
---|
| 16 | \end{enumerate} |
---|
[58] | 17 | \end{definition} |
---|
[52] | 18 | |
---|
[56] | 19 | Moreover, the refinement steps should be easy to compute and ensure a fast |
---|
| 20 | convergence by the minimizing the number of iteration of the CEGAR loop. |
---|
[52] | 21 | |
---|
[63] | 22 | Refinements based on the concretization of selected abstract variables in $\widehat{M}_i$ ensure item 2. Concretization can be performed either in modifying the AKS of $\widehat{M}_i$, by changing some abstract value to concrete ones, but this approach is rude : in order to ensure item 1, concretization needs to be coherent with the sequences of values in the concrete system. The difficulty resides in defining the proper abstract variable to concretize, at which precise instant, and with which Boolean value. |
---|
| 23 | Another way to concretize some variables at selected instants is to compose (by a synchronous product) the AKS of $\widehat{M}_i$ with a new AKS, provided this latest represents over-approximations of the set of behaviors of $M$. By construction, this product satisfies items 1 and 2. We now have to compute an AKS eliminating the spurious counter-example, being easily computable and ensuring a quick convergence of the CEGAR loop. |
---|
[52] | 24 | |
---|
[63] | 25 | Several proposals can be made. The most straightforward consists in building the AKS representing all possible executions except the spurious counter-example ; however the AKS representation may be huge and the process is not guaranteed to converge. A second possibility is to build an AKS with additional CTL properties of the components ; the AKS remains small but item 3 is not guaranteed, hence delaying the convergence. The final proposal combines both previous ones : first local CTL properties eliminating the spurious counter example are determined, and then the corresponding AKS is synchronized with the one of $\widehat{M}_i$. |
---|
[52] | 26 | |
---|
| 27 | |
---|
[63] | 28 | \subsection{Refinement by negation of the counterexample} |
---|
| 29 | |
---|
[58] | 30 | \TODO{Mettre la def avant ?} |
---|
[56] | 31 | \TODO{Rafinement par négation du contre-exemple} |
---|
| 32 | The counterexample at a refinement step $i$, $\sigma$ is a path in the |
---|
[65] | 33 | abstract model $\widehat{M}_i$ which dissatisfy $\Phi$. In the counterexample given by the model-checker, the variables value in each states are boolean. |
---|
[56] | 34 | The spurious counter-example $\sigma$ is defined such that : |
---|
[52] | 35 | \begin{definition} |
---|
[56] | 36 | \textbf{\emph{The counterexample $\sigma$ :}} \\ |
---|
[52] | 37 | \\ |
---|
[56] | 38 | Let $\widehat{M}_i =\langle \widehat{AP}_i, \widehat{S}_i, \widehat{S}_{0i}, |
---|
| 39 | \widehat{L}_i, \widehat{R}_i, \widehat{F}_i \rangle$ and let the length of the |
---|
| 40 | counterexample, $|\sigma| = n$: $ \sigma = s_{0} \rightarrow s_{1} \ldots |
---|
[63] | 41 | s_{n}$ with $(s_{k}, s_{k+1}) \in \widehat{R}_i$ $\forall k \in [0..n-1]$. |
---|
[56] | 42 | \begin{itemize} |
---|
| 43 | \item All its variables are concrete: $\forall s_i$ and $\forall p\in |
---|
| 44 | \widehat{AP}_i$, $p$ is either true or false |
---|
[63] | 45 | (not {\it unknown}), and $s_0 $ is an initial state of the concrete system: $s_0 \in \mathbf{R}_0$ |
---|
[56] | 46 | \item $\sigma$ is a counter-example in $\widehat{M}_i$: $s_0\not\models \Phi$. |
---|
[63] | 47 | \item $\sigma$ is not a path of the concrete system $M$: $\exists k \in [1..n-1]$ such |
---|
| 48 | that $\forall j < k, (s_j,s_{j+1}) \in R$ and $(s_{k}, s_{k+1}) \not\in R$. |
---|
[57] | 49 | \end{itemize} |
---|
[52] | 50 | \end{definition} |
---|
| 51 | |
---|
[58] | 52 | 2. Negation of states in an AKS |
---|
| 53 | |
---|
| 54 | a) An (abstract) configuration in a state of the AKS represents a (convex ?) set of states of the concrete component. |
---|
| 55 | |
---|
| 56 | b) The negation of an configuration may be represented by a set of abstract configurations |
---|
| 57 | |
---|
[63] | 58 | c) building the AKS of a spurious counter-example may lead to a blow-up of the number of states of the AKS |
---|
[58] | 59 | |
---|
| 60 | |
---|
[52] | 61 | %\bigskip |
---|
| 62 | |
---|
[56] | 63 | %\begin{definition} |
---|
| 64 | %\textbf{\emph{Spurious counterexample :}} \\ |
---|
| 65 | %\\ |
---|
| 66 | %Let $\sigma_c = \langle s_{c,0}, s_{c,1}, s_{c,2}, ... , s_{c,k}, s_{c,k+1}, ... , s_{c,n}\rangle$ a path of length $n$ in the concrete model $M$ and in each state of $\sigma_c$ we have $s_{c,k} = \langle v_{c,k}^1, v_{c,k}^2, ... , v_{c,k}^{p'}, ... , v_{c,k}^{q'} \rangle$ with $\forall p' \in [1,q'], ~v_{i,k}^{p'} \in V_{c,k}$ and $V_{c,k} \in 2^{q'}$.\\ |
---|
| 67 | % |
---|
| 68 | %\smallskip |
---|
| 69 | % |
---|
| 70 | %If $\forall k$ we have $\widehat{V}_{i,k} \subseteq V_{c,k}$ and $\forall v_{\bar{a}i,k} \in \widehat{V}_{i,k}, ~s_{i,k}|_{v_{\bar{a}i,k}} = s_{c,k}|_{v_{c,k}} $ then $M \nvDash \phi$ else $\sigma_i$ is \emph{spurious}. |
---|
| 71 | % |
---|
| 72 | %\end{definition} |
---|
[52] | 73 | |
---|
| 74 | |
---|
| 75 | |
---|
[56] | 76 | \subsection{Ordering of properties} |
---|
[52] | 77 | |
---|
[65] | 78 | \input{ordering_filter_properties} |
---|