source: papers/FDL2012/abstraction_refinement.tex

Last change on this file was 101, checked in by syed, 12 years ago

final

File size: 10.1 KB
Line 
1
2
3\subsection{Properties of good refinement}
4When 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.
5In 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:
6
7%\medskip
8
9\begin{definition} An efficient \emph{refinement} verifies the following properties:
10\vspace*{-2mm}
11\begin{enumerate}
12\itemsep -0.3em
13\item The new refinement is an over-approximation of the concrete model:
14$\widehat{M} \sqsubseteq \widehat{M}_{i+1}$.
15\item The new refinement is more concrete than the previous one:
16$\widehat{M}_{i+1} \sqsubseteq \widehat{M}_{i}$.
17\item The spurious counterexample in $\widehat{M}_i$ is  removed from
18$\widehat{M}_{i+1}$.
19\end{enumerate}
20\label{def:goodrefinement}
21\end{definition}
22Furthermore, the refinement steps should be easy to compute and ensure a fast
23convergence by minimizing the number of iterations of the CEGAR loop.
24
25Refinements based on the concretization of selected abstract variables in
26$\widehat{M}_i$ ensure item 2. Concretization can be performed by
27modifying the AKS of $\widehat{M}_i$ by changing some abstract value to
28concrete ones. However, this approach is rude: in order to ensure item 1,
29the concretization needs to be consistent 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.
30%Another way to concretize some variables at selected instants is to compose
31%(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 counterexample, being easily computable and ensuring a quick convergence of the CEGAR loop.
32
33We propose to compose the abstraction with another AKS to build a good refinement
34according to Definition \ref{def:goodrefinement}.
35We have several options. The most straightforward method consists in building
36an AKS representing all possible executions except the  spurious counterexample; 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 counterexample are determined, and then the corresponding AKS is synchronized with the one of $\widehat{M}_i$.
37
38
39\subsection{Negation of the counterexample}
40
41The counterexample at a refinement step $i$, $\sigma$, is a path in the
42abstract model $\widehat{M}_i$ which dissatisfies $\Phi$.  In the
43counterexample given by the model-checker, the variable configuration in each
44state is Boolean. We name $\widehat{L_i}$ this new labeling.
45The spurious counterexample $\sigma$ is defined such that:
46\begin{definition}
47Let $\sigma$ be a \emph{spurious counterexample} in $\widehat{M}_i =\langle \widehat{AP}_i, \widehat{S}_i, \widehat{S}_{0i},
48\widehat{L}_i, \widehat{R}_i, \widehat{F}_i \rangle$ of  length $|\sigma| = n$: $ \sigma = s_{0} \rightarrow s_{1} \ldots
49\rightarrow s_{n}$ with $(s_{k}, s_{k+1}) \in \widehat{R}_i$ $\forall k \in [0..n-1]$.
50%\vspace*{-2mm}
51\begin{itemize}
52%\topsep 0pt
53\itemsep -0.3em
54\item All its variables are concrete: $\forall s_i$ and $\forall p\in
55\widehat{AP}_i$, $p$ is either true or false according to $\widehat{L_i}$.
56(not {\it unknown}), and $s_0 $ is an initial state of the concrete system: $s_0 \in \mathbf{R}_0$
57\item  $\sigma$ is a counterexample in  $\widehat{M}_i$: $s_0\not\models \Phi$.
58\item  $\sigma$ is not a path of the concrete system $M$: $\exists k \in [1..n-1]$ such
59that $\forall j < k, (s_j,s_{j+1}) \in R$ and $(s_{k}, s_{k+1}) \not\in R$.
60\end{itemize}
61\end{definition}
62The construction of the AKS representing all executions except the one
63described by the spurious counterexample is done in two steps.
64
65\subsubsection{Step 1~:~Build the structure of the AKS.}
66
67
68\begin{definition}
69Let $\sigma$ be a spurious counterexample of  length $|\sigma| = n$, the \emph{ AKS of the
70counterexample negation} $AKS(\overline{\sigma}) = \langle \widehat{AP}_{\overline{\sigma}}, \widehat{S}_{\overline{\sigma}}, \widehat{S}_{0{\overline{\sigma}}},
71\widehat{L}_{\overline{\sigma}}, \widehat{R}_{\overline{\sigma}},
72\widehat{F}_{\overline{\sigma}} \rangle$ is such that:
73\vspace*{-2mm}
74\begin{itemize}
75%\topsep 0pt
76\itemsep -0.3em
77\item $AP_{\overline{\sigma}} = {AP}_i$:
78The set of atomic propositions coincides with the one of $\sigma$
79
80\item $\widehat{S}_{\overline{\sigma}}$: $\{s_T\} \cup \{s_{i}'|\forall i\in
81[0..n-2] \wedge s_i\in
82\sigma\}\cup \{\bar{s_{i}}|\forall i \in [0..n-1] \wedge s_i\in \sigma\}$
83
84\item $\widehat{L}_{\overline{\sigma}}$  with
85$L_{\overline{\sigma}}(s_i') = L_i(s_i), \forall i \in [0..n-2]$ and
86$L(s_T) = \{\top, \forall p \in AP_{\bar{\sigma}}\}$,
87$L_{\overline{\sigma}}(\bar{s_i})$ is explained in the next construction step.
88
89\item $\widehat{S}_{0{\overline{\sigma}}} = \{ s_0',\bar{s_0}\}$
90
91\item $\widehat{R}_{\overline{\sigma}} = \{(\bar{s_i},s_T), \forall i\in
92[0..n-1]\} \cup \{(s_i',\bar{s_{i+1}}), \forall i\in[0..n-2]\} \cup
93\{(s_i',s_{i+1}',\forall  i\in[0..n-3]\}$
94
95\item $\widehat{F}_{\overline{\sigma}} = \emptyset$
96\end{itemize}
97\end{definition}
98The labeling function of $s_i'$ represents (concrete) configuration of state $s_i$ and state $\bar{s_i}$  represents all
99configurations {\it but} the one of $s_i$. This last set may not be representable by
100the labeling function defined in Definition \ref{def-aks}. State labeling is treated
101in the second step. $s_T$ is a state where all atomic propositions are {\it unknown}.
102%The size of this structure is linear with the size of the counter-example.
103
104\subsubsection{Step 2~:~Expand state configurations representing the negation of a concrete configuration.}
105%We return back to the labeling of states of $AKS(\overline{\sigma})$. As states $s'$ are associated with the same (concrete) configuration as their corresponding state in $\sigma$, their labeling is straightforward : $\forall i \in [0..n-1], {L}_{\overline{\sigma}}(s'_i) = \widehat{L}_{i}(s_i)$.
106The set of configurations associated with a state $\bar{s_i}$ represents the
107negation of the one represented by ${L}_i(s_i)$. This negation is not representable by the label of a single state but rather by a union of $\mid AP \mid$ labels.
108
109\emph{Example}. Assume $AP = \{v_0,v_1,v_2\}$ and $\sigma = s_0 \rightarrow s_1$ and $\widehat{L}(s_0) = \{\mathbf{f},\mathbf{f},\mathbf{f}\}$ the configuration associated with $s_0$ assigns false to each variable. The negation of this configuration represents a set of seven concrete configurations which are covered by three (abstract) configurations: $\{\{\mathbf{t},\top,\top\},\{\mathbf{f},\mathbf{t},\top\},\{\mathbf{f},\mathbf{f},\mathbf{t}\}\}$.
110
111To build the final AKS representing all sequences but spurious counterexample
112$\sigma$, one replaces in $AKS(\overline{\sigma})$ each state $\bar{s_i}$ by
113$k = \mid AP_{\overline\sigma} \mid$ states $\bar{s_i^j}$ with $j\in [0..k-1]$
114and assigns to each of them a label of $k$ variables $\{v_0, \ldots,
115v_{k-1}\}$ defined such that : $\widehat{L}(\bar{s_i^j}) = \{\forall l \in [0..k-1],
116v_l = \neg  {L}_{i}(s_i)[v_l], \forall l \in [j+1..k-1], v_l = \top\}$. Each
117state $\bar{s_i^j}$ is connected to the same predecessor and successor states
118as state $\bar{s_i}$.
119
120This final AKS presents a number of states in
121$\cal{O}(\mid\sigma\mid\times\mid AP\mid)$. However, removing, at each
122refinement step, the spurious counterexample {\em only} induces a low
123convergence. Moreover, in some cases, this strategy may not converge: suppose
124that all sequences of the form $a.b^*.c$ are spurious counterexamples (here
125$a$, $b$ and $c$ represent concrete state configurations). Assume, at a given
126refinement step $i$, a particular counterexample $\sigma_i = s_0 \rightarrow
127s_1 \rightarrow \ldots s_n$ with $L(s_0) = a, \forall k \in [1, n-1], L(s_k) =
128b, L(s_n) = c$. Removing this counterexample does not prevent from a new
129spurious counterexample at step $i+1$ :  $\sigma_{i+1} = s_0 \rightarrow s_1
130\rightarrow \ldots s_{n+1}$ with $L(s_0) = a, \forall k \in [1, n], L(s_k) =
131b, L(s_{n+1}) = c$. The strategy consisting of elimination spurious
132counterexample {\em one by one} diverges in this case. However, we cannot
133eliminate all the sequences of the form $a.b^*.c$ in a unique refinement step
134since we do not {\it a priori} know if at least one of these sequences is executable in the concrete model.
135
136From these considerations, we are interested in removing {\em sets of
137behaviors encompassing the spurious counterexample} but still guaranteeing an
138over-approximation of the set of tree-organized behaviors of the concrete
139model. The strengthening of the abstraction $\widehat{M}_i$ with the
140addition of AKS of already verified local CTL properties eliminates sets of
141behaviors and guarantees the over-approximation (Property
142\ref{prop:concrete_compose}) but does not guarantee the elimination of the counterexample. We present in the following section a strategy to select sets of CTL properties eliminating the spurious counterexample.
143
144
145
146
147
148%\bigskip
149
150%\begin{definition}
151%\textbf{\emph{Spurious counterexample :}} \\
152%\\
153%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'}$.\\
154%
155%\smallskip
156%
157%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}.
158%
159%\end{definition}
160
161
162
163\subsection{Ordering of properties}
164
165\input{ordering_filter_properties}
Note: See TracBrowser for help on using the repository browser.