Changeset 76 for papers/FDL2012/framework.tex
- Timestamp:
- Mar 28, 2012, 3:21:52 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
papers/FDL2012/framework.tex
r68 r76 1 1 The model-checking technique we propose is based on the Counterexample-guided 2 2 Abstraction Refinement (CEGAR) methodology \cite{clarke00cegar}. The overall 3 descri tpion of our methodology is shown in figure \ref{cegar}.3 description of our methodology is shown in figure \ref{cegar}. 4 4 We take into account the structure of the system as a set of synchronous components, 5 each of which has been previously verified and a set of CTL properties is attached to each component. This set refers to the specification of the component. We would like to verify whether a concrete model, $M$ presumedly huge sized composed of several components, satisfies a globalproperty $\Phi$. Due to state space combinatorial explosion phenomenon that occurs when verifying huge and complex systems, an abstraction or approximation of the concrete model has to be done in order to be able to verify the system with model-checking techniques. Instead of building the product of the concrete components, we replace each concrete component by an abstraction of its behavior derived from a subset of the CTL properties it satisfies. Each abstract component represents an over-approximation of the set of behaviors of its related concrete component \cite{braunstein07ctl_abstraction}.5 each of which has been previously verified and a set of CTL properties is attached to each component. This set refers to the specification of the component. We would like to verify whether a concrete model, $M$ presumedly huge sized and composed of several components, satisfies a global ACTL property $\Phi$. Due to state space combinatorial explosion phenomenon that occurs when verifying huge and complex systems, an abstraction or approximation of the concrete model has to be done in order to be able to verify the system with model-checking techniques. Instead of building the product of the concrete components, we replace each concrete component by an abstraction of its behavior derived from a subset of the CTL properties it satisfies. Each abstract component represents an over-approximation of the set of behaviors of its related concrete component \cite{braunstein07ctl_abstraction}. 6 6 7 7 %\subsection{Overall Description of our methodology} … … 9 9 concrete model $M$, an abstraction of the concrete model $\widehat{M}$ is 10 10 generated and tested in the model-checker. As the abstract model is an 11 over-approximation of the concrete model and we have restrained our 12 verification to ACTL properties only. As shown in \cite{clarke94model} if $\Phi$ holds on the the abstract model then we are certain that it holds in the concrete model as well. 13 However, if $\Phi$ doesn't hold in the abstract model then we can't conclude anything regarding the concrete model until the counterexample, 14 $\sigma$ given by the model-checker has been analyzed. 11 over-approximation of the concrete model and the global property $\Phi$ is in the ACTL fragment, if $\Phi$ holds on the the abstract model then it holds in the concrete model as well \cite{clarke94model}. However, if $\Phi$ does not hold in the abstract model then one cannot conclude anything regarding the concrete model until the counterexample, $\sigma$, given by the model-checker has been analyzed. 12 In this last case, the test of spurious counter-example is translated into a SAT problem \TODO{citer ref SAT spurious}. When a counterexample is proven to be spurious, the refinement phase occurs, injecting more preciseness into the (abstract) model to be analyzed. 15 13 16 In the case where model-checking failed, the counterexample given by the17 model-checker has to be analysed. We use a SAT solver to check whether the counterexample is spurious or not. When a counterexample is proved to be spurious, we proceed to the refinement phase.18 \TODO{ref du papier sur le spurious + petite explication sur SAT et19 déroulement}20 14 %\bigskip 21 15 %\begin{definition} … … 45 39 46 40 \subsection{Concrete system definition} 47 As mention earlier, in our verification methodology, we have a concrete model which consists of several components and each component comes with its specification or more precisely, properties that hold in the component. Given a global property $\Phi$, the property to be verified by the composition of the concrete components model, an abstract model is generated by selecting some of the properties of the components which are relevant to $\ varphi$.41 As mention earlier, in our verification methodology, we have a concrete model which consists of several components and each component comes with its specification or more precisely, properties that hold in the component. Given a global property $\Phi$, the property to be verified by the composition of the concrete components model, an abstract model is generated by selecting some of the properties of the components which are relevant to $\Phi$. 48 42 49 43 50 The concrete system is a synchronous composit on of components, each of which44 The concrete system is a synchronous composition of components, each of which 51 45 described as a Moore machine. 52 46 \begin{definition} … … 70 64 Moore machine with a specification associated $\varphi_i = \{\varphi_i^1 \ldots 71 65 \varphi_i^k\}$ Each $\varphi_i^j$ is a CTL$\setminus$X formula whose 72 propositions $AP$ belong sto $\{I_i\cup O_i\cup R_i\}$ .66 propositions $AP$ belong to $\{I_i\cup O_i\cup R_i\}$ . 73 67 \end{definition} 74 68 … … 76 70 77 71 Our abstraction consists in reducing the size of the representation model by 78 freeingsome of its variables. The point is to determine the good set of variable72 letting free some of its variables. The point is to determine the good set of variable 79 73 to be freed and when to free them. We take advantage of the CTL specification 80 74 of each component: a CTL property may be seen as a partial view of the tree of 81 75 behaviors of its variables. All the variables not specified by the property 82 76 can be freed. We introduced the Abstract Kripke Structure (AKS for short) which exactly 83 specifies when the variable of the pr perty can be freed.77 specifies when the variable of the property can be freed. 84 78 The abstraction of a component is represented by an AKS, 85 79 derived from a subset of the CTL properties the component satisfies. … … 87 81 $\varphi$, simulates all execution trees whose initial state satisfies 88 82 $\varphi$. In AKS($\varphi$), states are tagged with the truth values of 89 $\varphi$'s atomic propositions, among four truth values : inconsistent,90 false , true and unknown (either true or false).83 $\varphi$'s atomic propositions, among the four truth values of Belnap's logic \cite{belnap77}: inconsistent ($\bot$), 84 false ($\mathbf{f}$), true ($\mathbf{t}$) and unknown ($\top$)). 91 85 States with inconsistent truth values are not represented since they refer to non possible 92 86 assignments of the atomic propositions. A set of fairness constraints eliminates non-progress cycles. … … 103 97 \item { $\widehat{S}$ : a finite set of states} 104 98 \item { $\widehat{S}_0 \subseteq \widehat{S}$ : a set of initial states} 105 \item { $\widehat{L} : \widehat{S} \rightarrow 2^{Lit}$ : a labeling function which labels each state with the set of atomic propositions true in that state. Lit is a set of literals such that $Lit = AP \cup \{\bar{p} | p \in AP \}$. With this labeling definition, an atomic proposition in a state can have 4 different values as detailed below:} 106 \begin{itemize} 107 \item {$ p \notin \widehat{L}(s) \wedge \bar{p} \notin \widehat{L}(s) : p $\emph{ is \textbf{unknown} in} s } 108 \item {$ p \notin \widehat{L}(s) \wedge \bar{p} \in \widehat{L}(s) : p $\emph{ is \textbf{false} in} s} 109 \item {$ p \in \widehat{L}(s) \wedge \bar{p} \notin \widehat{L}(s) : p $\emph{ is \textbf{true} in} s} 110 \item {$ p \in \widehat{L}(s) \wedge \bar{p} \in \widehat{L}(s) : p $\emph{ is \textbf{inconsistent} in} s} 111 \end{itemize} 99 \item { $\widehat{L} : \widehat{S} \rightarrow \cal{B}^{\mid AP \mid}$ with $\cal{B} = \{\bot, \mathbf{f}, \mathbf{t},\top\}$: a labeling function which labels each state with configuration of current value of each atomic proposition.} 112 100 \item { $\widehat{R} \subseteq \widehat{S} \times \widehat{S}$ : a transition relation where $ \forall s \in \widehat{S}, \exists s' \in \widehat{S}$ such that $(s,s') \in \widehat{R}$ } 113 101 \item { $\widehat{F}$ : a set of fairness constraints (generalized B\"uchi … … 117 105 %\bigskip 118 106 107 We denote by $\widehat{L}(s)$ the configuration of atomic propositions in state $s$ and by $\widehat{L}(s)[p]$ the projection of configuration $\widehat{L}(s)$ according to atomic proposition $p$. 119 108 120 109 As the abstract model $\widehat{M}$ is generated from the conjunction of verified properties of the components in the concrete model $M$, it can be seen as the composition of the AKS of each property. 121 110 The AKS composition has been defined in \cite{braunstein_phd07}; it extends 122 the classical synchro unous composition of Moore machine to deal with111 the classical synchronous composition of Moore machine to deal with 123 112 four-valued variables. 124 113 %\bigskip 125 114 126 115 \begin{definition} An \emph{Abstract model} $\widehat{M}$is obtained by 127 synchronous composition of components abstractions. 128 Let $C_j$ be a component of the concrete model $M$ and $\varphi_{j}^k$ is a CTL formula describing a satisfied property of component $C_j$. Let $AKS (\varphi_{C_j^k})$ the AKS generated from $\varphi_j^k$. We have $\forall j \in [1,n]$ and $\forall k \in [1,m]$:116 synchronous composition of components abstractions. Let $n$ be the number of components in the model and $m$ be the number of selected verified properties of a component; 117 let $C_j$ be a component of the concrete model $M$ and $\varphi_{j}^k$ is a CTL formula describing a satisfied property of component $C_j$. Let $AKS (\varphi_{C_j^k})$ the AKS generated from $\varphi_j^k$. We have $\forall j \in [1,n]$ and $\forall k \in [1,m]$: 129 118 130 119 \begin{itemize} … … 133 122 \end{itemize} 134 123 135 \hspace*{3mm}with :\\136 \hspace*{5mm}- $ n \in \mathbb{N} $ : the number of components in the model \\137 \hspace*{5mm}- $ m \in \mathbb{N} $ : the number of selected verified properties of a component138 139 124 \end{definition} 140 %\bigskip141 125 142 126 143 The generation of an abstract model in the form of AKS from CTL formulas, 144 based on the works of Braunstein \cite{braunstein07ctl_abstraction}, 145 has been successfully implemented by Bara \cite{bara08abs_composant}. 127 The generation of an abstract model in the form of AKS from CTL formulas is described in \cite{braunstein07ctl_abstraction} and has been implemented (\cite{bara08abs_composant}). 146 128 147 129 148 130 %\subsection{Characterization of AKS} 149 131 150 In an abstract kripke structure a state where a variable $p$ is {\it unknown}132 In an abstract Kripke structure a state where a variable $p$ is {\it unknown} 151 133 can simulate all states in which $p$ is either true or false. It 152 is concise representation of the set of more concrete states in which $p$134 is a concise representation of the set of more concrete states in which $p$ 153 135 is either true or false. A state $s$ is said to be an \emph{abstract state} 154 136 if one its variable $p$ is {\it unknown}. … … 167 149 168 150 \begin{property} 169 Let A1 and A2 two abstractions such that A2 is obtained by concretizing one abstract variable of A1 (resp A1 is obtained by abstracting one variable in A2). Then A1 simulates A2.151 Let $A_i$ and $A_j$ two abstractions such that $A_j$ is obtained by concretizing one abstract variable of $A_i$ (resp $A_i$ is obtained by abstracting one variable in $A_j$). Then $A_i$ simulates $A_j$, denoted by $A_j \sqsubseteq A_i$. 170 152 \end{property} 171 153 \begin{proof} 172 154 As the concretization of state reduces the set of concrete configuration the 173 155 abstract state represents but does not affect the transition relation of the 174 AKS. The unroll execution tree of A2 is a subtree of the one of A1. Then A1 simulates A2.156 AKS. The unroll execution tree of $A_j$ is a subtree of the one of $A_i$. Then $A_i$ simulates $A_j$. 175 157 \end{proof} 176 158
Note: See TracChangeset
for help on using the changeset viewer.