23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

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.

Pro<strong>of</strong>s <strong>of</strong> Propositions and Transformations 431<br />

c c<br />

A (p(TM)) B<br />

a b<br />

T 6<br />

A (p(TM)) B<br />

c<br />

a b<br />

Process A(¡ (TM)) behaves as follows. It starts emulating Turing Machine TM on input<br />

¡ (TM) 1 . If TM eventually halts on its own input ¡ (TM), then process A(¡ (TM))<br />

sends message m on channel a. Process B only tries to receive message m from<br />

channel b. Now transformation condition NoComChange(¡ (TM)) is true if and only<br />

<br />

if l¡ for (TM))¥ p Sys £ all ,<br />

Sys l¥ ¡ A(¡ and ¥ £<br />

B¥ Sysp £ ¥ (l¡ Sys £<br />

implies c© a¥ c© l NoComChange(¡ , is, l¡ (TM)) is true if and<br />

and f (l) f )<br />

where f b. That<br />

only if A(¡ (TM))¥ Sysp £ ¥ Sys a!m<br />

£ and B¥ Sysp £ ¥ Sys b?m<br />

£<br />

¡<br />

and c!m c?m implies<br />

a!m b?m. Since a!m b?m, c!m c?m and B¥ Sysp £ ¥ Sys b?m<br />

£<br />

NoComChange(¡<br />

, we thus have that<br />

(TM)) is true if and only if not A(¡ (TM))¥ Sysp £ ¥ Sys a!m<br />

£<br />

A(¡ NoComChange(¡<br />

¡<br />

, i.e. if process<br />

(TM)) does not send message m on channel a. Hence, (TM))<br />

if and only if Turing Machine TM does not halt on its own input (TM).<br />

true<br />

Using pro<strong>of</strong> system we will construct a Turing Machine Magic that behaves as follows.<br />

When fed with an encoding <strong>of</strong> a Turing Machine ¡ (TM), it starts generating POOSL specifications<br />

SSpecA(¡ (TM)) and SSpecB(¡ (TM)) 2 . Then it tries to prove the transformation<br />

equivalence <strong>of</strong> SSpecA(¡ (TM)) and SSpecB(¡ (TM)) using pro<strong>of</strong> system . This is done by<br />

first examining all pro<strong>of</strong>s <strong>of</strong> length 1, then all pro<strong>of</strong>s <strong>of</strong> length 2, etcetera. Since only<br />

has a finite amount <strong>of</strong> transformations, all possible pro<strong>of</strong>s 3 will eventually be examined<br />

this way. If SSpecA(¡ (TM)) and SSpecB(¡ (TM)) are transformation equivalent, Turing<br />

Machine Magic will eventually terminate. Otherwise it will loop forever.<br />

Now let us feed Turing Machine Magic with its own encoding ¡ (Magic).<br />

1Process A can be considered a variant <strong>of</strong> the universal Turing Machine [LP81]. It can easily be<br />

expressed in POOSL.<br />

2This boils down to a very simple copy operation.<br />

3Note that a pro<strong>of</strong> is a finite sequence <strong>of</strong> successively applied transformations.<br />

l<br />

l ¢

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

Saved successfully!

Ooh no, something went wrong!