07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

19 Model Check<strong>in</strong>g 581<br />

We conduct an equivalence query for A 0 <strong>in</strong> order to see if the conjecture is<br />

correct. As answer we get a counterexample t = ab, weseethatab �∈ L(Mex )<br />

but ab ∈ L(A 0 ). The counterexample can be divided <strong>in</strong>to prefix and suffix,<br />

u0 = ε and v0 = ab <strong>in</strong> order to f<strong>in</strong>d the breakpo<strong>in</strong>t where Mex and A 0 behave<br />

differently. A state <strong>in</strong> a hypothesis is called si, for this counterexample 0 ≤ i ≤ 2.<br />

We see that a breakpo<strong>in</strong>t can be found for i =0s<strong>in</strong>ces0ab �∈ L(Mex ) but s1b ∈<br />

L(Mex ) (Recall that s1 = δ(s0, a)). Thus b is the experiment that dist<strong>in</strong>guishes<br />

s0a = γ(ε)a = a from s1 = γ(εa) =ε.<br />

Step 0 Step 1<br />

C0 ,E0 C1 ,E1 C2 ,E2 C3 ,E3 C0 = {(ε, +)}, E0 = {ε}<br />

Step 2<br />

C0 = {(ε, +), (b, +)}, E0 = {ε, b}<br />

C1 = {(a, +), (ab, −)}, E1 = {ε, b}<br />

Step 3<br />

C0 ,E0 C1 ,E1 C2 ,E2 C3 ,E3 − −<br />

C<br />

−<br />

1 = {(a, +), (ab, −), (aa, −)},<br />

E1 = {ε, b, a}<br />

C2 = {(aa, −)}, E2 = {ε} −<br />

C3 = {(b, +), (ba, +), (bb, −)},<br />

E3 = {ε, a, b}<br />

Table 19.1. The observation pack<br />

It is now enough to add (b, +) to the component Cε, soC0 = {(ε, +), (b, +)}<br />

and E0 = {ε, b}. Nowγ(a) is no longer s0 s<strong>in</strong>ce a escapes and therefore we<br />

expand the pack with a new component C1, whereC1 = {(a, +), (ab, −)} and<br />

E1 = {ε, b}, see Step 1. The mapp<strong>in</strong>g of b to an access str<strong>in</strong>g is now changed to<br />

γ(b) =a.<br />

The next step is to make the pack closed, the miss<strong>in</strong>g words are aa and<br />

ab. Us<strong>in</strong>g membership queries we try to discover an exist<strong>in</strong>g access str<strong>in</strong>g aa<br />

behaves like, but we cannot f<strong>in</strong>d one, so it escapes. From the observation (aa, −)<br />

we create a new component, C2 = {(aa, −)}, whose correspond<strong>in</strong>g suffix set is<br />

E2 = {ε}, see Step 2. (The suffix ε differentiates s2 from all other access str<strong>in</strong>gs,<br />

so no further suffixes need to be added to C2.) The next word to map <strong>in</strong>to an<br />

access str<strong>in</strong>g is ab and we see that γ(ab) =aa.<br />

S<strong>in</strong>ce we now created a new component C2 we must make sure that the pack<br />

is closed, hence we have to check to what access str<strong>in</strong>gs the str<strong>in</strong>gs aaa and<br />

aab are be mapped. Check<strong>in</strong>g these yields γ(aaa) =aa and γ(aab) =aa. The<br />

observation pack is now closed and it is possible to form a hypothesis, A 1 ,about<br />

the mach<strong>in</strong>e, see Figure 19.9.<br />

Now we conduct an equivalence query for the hypothesis A 1 .TheOracle<br />

returns a counterexample t = ba. Aga<strong>in</strong> we perform the search for a breakpo<strong>in</strong>t<br />

<strong>in</strong> t, we <strong>in</strong>itialize the prefix and suffix of t to be u0 = ε and v0 = ba, respectively.<br />

The breakpo<strong>in</strong>t is found for i =0wheres0ba ∈L(Mex ) but s1a �∈ L(Mex).<br />

In order to adjust A 1 ,weadd(aa, −) tocomponent(Cs1 = Ca =)C1, transform<strong>in</strong>g<br />

it <strong>in</strong>to C1 = {(a, +), (ab, −), (aa, −)}. Nowγ(b) is not anymore a (it<br />

does not behave as a on suffix a) but is <strong>in</strong>stead undef<strong>in</strong>ed. This implies that we

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

Saved successfully!

Ooh no, something went wrong!