Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
reachable_pushdown_configurations_are_regular [2007/05/31 00:09] vkuncak |
reachable_pushdown_configurations_are_regular [2011/05/24 14:22] vkuncak |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Reachable pushdown configurations are regular ====== | + | ====== Backward reachable pushdown configurations are regular ====== |
+ | |||
+ | Example: | ||
+ | * program with procedures that ensures proper use of a global lock | ||
We next show that in a push down system, the pre-image of a regular set of configurations is again a regular set of configurations. Moreover, the new finite state machine for configurations can use the same set of states as the original one. This gives an algorithm for verifying regular properties of push down automata by representing them using finite state machines. Based on the introductory part of [[http://www.liafa.jussieu.fr/~abou/BEM97.ps.gz|Reachability Analysis of Pushdown Automata: Application to Model Checking]]. | We next show that in a push down system, the pre-image of a regular set of configurations is again a regular set of configurations. Moreover, the new finite state machine for configurations can use the same set of states as the original one. This gives an algorithm for verifying regular properties of push down automata by representing them using finite state machines. Based on the introductory part of [[http://www.liafa.jussieu.fr/~abou/BEM97.ps.gz|Reachability Analysis of Pushdown Automata: Application to Model Checking]]. | ||
Line 30: | Line 33: | ||
which contains all states that can lead to a state in $T$. Given the representation of $T$ using a family of sets $L^i$, we can define the corresponding pre-image computation of $L^i$ by | which contains all states that can lead to a state in $T$. Given the representation of $T$ using a family of sets $L^i$, we can define the corresponding pre-image computation of $L^i$ by | ||
\begin{equation*} | \begin{equation*} | ||
- | \mbox{pre}(L^j) = \{ \gamma w' \mid ((p^j, \gamma),(p^k,w w')) \in \Delta\ \land\ w w' \in L^k \} | + | \mbox{pre}(L^j) = \{ \gamma w' \mid ((p^j, \gamma),(p^k,w)) \in \Delta\ \land\ w w' \in L^k \} |
\end{equation*} | \end{equation*} | ||
+ | To translate this operation into operations on automata, a word $\gamma w'$ should be accepted starting from state $p^j$ whenever the word $ww'$ is accepted starting from state $p^k$. We can ensure this by introducing tuples $(p^j,\gamma,q)$ for all states $q$ that the automaton could be in after reading a word $w$ starting from the state $p^k$. We need to do this for all transitions $((p^j, \gamma),(p^k,w)) \in \Delta$. | ||
+ | |||
+ | === Fixpoint computation === | ||
+ | |||
+ | To reach the set of all states that can result in a state in $T$ in zero or one steps, we compute $T \cup \mbox{pre}(T)$ by keeping the previous edges along with the new ones in the multi-automaton. By repeating this process we obtain the exact representation of the set of states that can reach states in the original regular set of configurations. This process converges because we only add new edges, never add new states to the automaton, so the maximal number of edges is bounded. | ||
+ | |||
+ | **Example application:** | ||
+ | * Java stack inspection from security policies; accessing a local file system for logging purposes | ||