31.07.2015 Views

Counterexample-guided Abstraction Refinement for the Analysis of ...

Counterexample-guided Abstraction Refinement for the Analysis of ...

Counterexample-guided Abstraction Refinement for the Analysis of ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Proposition 2. The equivalence ̂Q constructed above is <strong>the</strong> smallest equivalencecontained in Θ.Example: We consider again <strong>the</strong> abstract error trace J which can be obtainedby firing transitions “Cross Location” and “Error”. However, this error trace hasno real runs that correspond to it, which can be seen by computing <strong>the</strong> set H<strong>of</strong> runs corresponding to prefixes <strong>of</strong> J . Here, <strong>the</strong> set H 0 consists <strong>of</strong> <strong>the</strong> initialhypergraph and <strong>the</strong> set H 1 contains one graph G 1 . The next rule “Error” cannotbe applied to G 1 in such a way that <strong>the</strong> corresponding diagram commutes and<strong>the</strong>re<strong>for</strong>e <strong>the</strong> set H 2 is empty.Fig. 4 shows <strong>the</strong> left-hand side <strong>of</strong> rule “Error”, G 1 ∈ H 1 and graph(m 1 ), <strong>the</strong>graph corresponding to <strong>the</strong> marking reached after one step. One notices thatno appropriate morphism η can be found unless <strong>the</strong> nodes w 1 and w 2 in G 1are merged. There<strong>for</strong>e we have Q w ′1= {w 1 ,w 2 }, Q w ′2= {w 2 } and <strong>the</strong> smallestequivalence relation ̂Q relates <strong>the</strong> nodes w 1 and w 2 and no o<strong>the</strong>r nodes. Note<strong>for</strong> instance that w 2 must be contained in Q w ′1since both are attached to <strong>the</strong>unary edge labelled UP.left-hand side <strong>of</strong> rule ”Error”L 2UPFw ′ 1 w ′ 2η”real graph” G 1 graph(m 1 ) (graph generated by m 1 )UPL F Lv 1 w 1 w 2 v 2ξw 1,2UPLLv 1,2ϕFFig. 4. Hypergraphs G 1 ∈ H 1, L 2 and graph(m 1) from <strong>the</strong> firewall example.4.3 Elimination <strong>of</strong> Spurious RunsThe general idea <strong>for</strong> destroying spurious runs is to avoid <strong>the</strong> merging <strong>of</strong> nodesfrom <strong>the</strong> same equivalence class <strong>of</strong> ̂Q. For this reason we assign colours to <strong>the</strong>nodes <strong>of</strong> <strong>the</strong> graphs contained in H and disallow <strong>the</strong> merging <strong>of</strong> nodes correspondingto nodes with <strong>the</strong> same colour. For reasons that will become clearbelow a node may have several colours, i.e., a node v is associated to a set cols(v)<strong>of</strong> colours.For each G ∈ H k we and each morphism ξ k : G → graph(m k ) we consider<strong>the</strong> corresponding relation Q G,ξk . Then we assign colours to nodes in such away that <strong>the</strong>re exists at least one pair v 1 ,v 2 <strong>of</strong> nodes such that v 1 Q G,ξk v 2 andcols(v 1 ) ∩ cols(v 2 ) ≠ ∅. There are several ways to do this and all <strong>of</strong> <strong>the</strong>m willhelp to eliminate <strong>the</strong> counterexample. In our implementation we choose a color<strong>for</strong> each set <strong>of</strong> nodes Q v and assign it to all nodes contained in Q v .In order to catch “bad” mergings as early as possible, <strong>the</strong>se colours have tobe distributed to <strong>the</strong> remaining graphs contained in H. Let us recall here that

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!