+ All Categories
Home > Documents > s0158714 fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

s0158714 fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Date post: 16-May-2019
Category:
Upload: truonghanh
View: 214 times
Download: 0 times
Share this document with a friend
25
www.inf.tu-dresden.de/s0158714 wwwtcs.inf.tu-dresden.de/tews
Transcript
Page 1: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

������� ����

��� ������ �� ��� ���� ������� ��� � �������� ��� ����� ��������� ���

��������������������� � ������

��������� �� ������ ���� ������ ���

www.inf.tu-dresden.de/∼s0158714 wwwtcs.inf.tu-dresden.de/∼tews

�������� ��� ������� � ����������� � �������

Page 2: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Einfuhrung

�� ���������� �������� ��������

• ����� ��� ����������� ��� � �� !��� "!��#����� ��� $#������ ��� ��� %�&�

• ���'� (����� ��� )����� �� * ��+��,-� ������ .������

• ���/� 0������,1��

• ����� 2!����� ��� 2����� 3 4�����

��������� �� ��� ����� � �������������

• *���+��� ��� ������ ��� ��� ����!� � ��� %����� +�����

• *&������ � ����

• (���� �� �5�������� � 6� ��

• *����� � 6� ��

• 7��� 6� ����

• 8���9������

VFiasco Folie 2

Page 3: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Einfuhrung

formale Verifikation

Model Checking

statische Checks

systematische Tests

sporadische Tests

Kos

ten

Qualität, Sicherheit

VFiasco Folie 3

Page 4: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Einfuhrung

�� ����������� ��

• *� ����� �� ��� ��������� ���������+���� ����� 0��������

• "!��&����� :�� ;�� �� :��< *���+��� ���� � � ����� *&���9������

• 4��� ����� �� ����� � ������ �� ����� ��������� �� 1�+���

���� �������

• ���������� ��������� �� 7��� ��� 0�������� ;�� ����< ��� ��� *&���9������ ;�= 1=

�� <

• >������� ��� ���������:��� ��������������� ����� :�� 1�+�����

������� �� �� ����������� ��

• �� ������ *&���9������

• ��:� ��?����� *&���9������

• 1� ��!�� ���� 8���9������������� 6��&� �� → �����!�+����� → @* → 60� → ===

• ������������� *�������

VFiasco Folie 4

Page 5: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Einfuhrung Fiasco/VFiasco

����

• ( �����,7��������� ���+� �� � �� �4@0*,0��A��� �� ��� �,�������

• ./ ���&���!�

• (� ��!� ��� &��� � � 2������� ������� .���B,��������� ��� 8�� ��� ��� ( ������?������

• ���� :� ��?���� �� 6C6DD ��� ���!��

• 7������� �= 'E=EEE F�� �� 6���

�����

• 8���9������ !��������� �� �������� �:����� �� � :�� ���� �

• (��+� � ��� :�� 7������ ��� ����� �� 8���9������ :�� 6C6DD

• 1�������� -�����������������

– 5&��+��� �����

– *&����!��� �

– 2!��&�� ����������

– F��������������

VFiasco Folie 5

Page 6: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Einfuhrung Fiasco/VFiasco

������ �� �����

VFiasco Folie 6

Page 7: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Vortragsubersicht

���� ����= *���������

��= �� 8���� �,0��A��� ���+� �� �� 6C6DD *�������

���= 8���9������ ��� 08* �� 1���&�� !�"#� !�$���

VFiasco Folie 7

Page 8: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken

����� ��

• �������%������

• ����� ��� ����� �������� :�� 0���������

• ���� ��� ��� ��������� �� 7��� ���+�����

• 0����������������� +����� �� ������ ��������� � 7��� G�!�������H

• (��I� � � ��� ����� ��������� �� 1�+����

Programm

Semantik Beweiser Q.E.D.

Spezifikation

VFiasco Folie 8

Page 9: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken

�!��� ���� ����� ��

• !�� ���!� ��� F������ ����� 0�������� :�� ��� �� ��� 2�������� ��� -� �� ���� ��

����� � ;���������<

• 0����������������� :��?����� ����� 2���������

• 1�������� 2��������� �� ��� :�� ��� �� 2�������� ��� 0���������

{Assertions vor Ausf .} Programm {Assertions nach Ausf .}

" ��� ����� ����� ��• *������� � ���?�� ��� ��� �����������5����

• ����������� �!�� ��� �����

〈Zustand, (Teil−)Programm〉 −→ 〈NFZustand, (Teil−)Programm〉

VFiasco Folie 9

Page 10: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

#�� � ������ ����� �� �$� %&%'' ()*

• 8������� �� *������� ��� ���� ������������ �� ����

• 0������� !�9���� �� :�� ��� �� 2�������� �� ����� F������

• F������ !���� ��� � � 8����! ��!� �������� 5&�� �� =

• 0����������������� ����&� ����� ������ F������

• �� ����������� �� *�������� A���� 0���������������� ��� ���� �������� ��� −→ ���

1���&�� �

s[v=3]

s[]s[v=0]

s[v=1]s[v=10] v=3

v=3

v=3

v=3

VFiasco Folie 10

Page 11: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

#�� � ������ ����� �� �$� %&%'' (+*

• 0��! ������ �� 6C6DD�

– goto,*&�����

– setjmpC ���A�&

– 2!��&��� 8�� ����� :�� * ������I�&��� ��� break ���� return

– ��� �� ����� switch

• ����� ����� ���&�� ������ ��� ��� *������� ��&�?�������� +�����

VFiasco Folie 11

Page 12: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

#�� � ������ ����� �� �$� %&%'' (,*

• �� J� �� ������ !���� ���

– S ��� 7���� ��� F���?���

– � ��� 7���� ��� ������ F� ��

– � ��� 7���� ��� *&���������� ;.�!� �<

– 1 ��� ���� �������� 7����

• 2!����� ��?��� +����� ��� ���& �B� F���?��� ��&�?���������

Result =ok :

S �break :

S �case:

(S × �) �default:

S �goto:

(S × �) �fail :

1 �hang:

1

�� 4��� ��� ����� ����� �� ���������� ����� 2�+������ ��� J� �� ���������

����� 4��� ��� ����� break,2�+������� ��&�� � F������ :�� 2�������� ��� 1�����

���� 4��� ��� ����� switch,2�+������� ��&�� � F������ ��� �:� ������ *+�� ,(B&�������

%�� 4��� ��� ����� goto,2�+������� ��&�� � F������ ��� *&���������

����' ���% 0��������!�����

• ����� 0���������������� ��� ���� �������� (���� −→ (���� ;�� ������� !� &��<

VFiasco Folie 12

Page 13: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

ok(s[v=1])

ok(s[...])

fail fail

ok(s[v=3, ...])

v=3

v=3

v=3

v=3

goto(s[...],lbl) goto(s[...],lbl)

VFiasco Folie 13

Page 14: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

ok(s[...])

failfail

break

break

break

goto(s[...],lbl)goto(s[...],lbl)

break(s[...])

VFiasco Folie 14

Page 15: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

ok(s[...])

failfaillbl:

lbl: ok(s[...])

ok(s[...])lbl:

goto(s[...],lbl)

VFiasco Folie 15

Page 16: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

������ -� �� �� � �� �� .��������� ��� �� ()*

• �−� ��� ���� ��������� ��� ���� 2�+������ �� ��� *������ � ���?�� �!�������

�v = expr� =

∣∣∣∣∣∣ok(s) �→

{ok(s[v = i]) �� � �expr�(s) = ok(i)fail �����

x �→ x

�st1; st2� =∣∣ x �→ �st2�

(�st1�(x)

)

�if b then st ; � =

∣∣∣∣∣∣∣ok(s) �→

{�st�(ok(s)) �� � �b�(s) = trueok(s) �����

x �→ �st�(x) CK �� � st ��� .�!� ���? � KC

• �)*�������� �!�� ��� �� ����� *������L���� ;��� (���� ��� � !��<

VFiasco Folie 16

Page 17: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

������ -� �� �� � �� �� .��������� ��� �� (+*

• switch ��� ��+�� ���& �������� = = =

• = = = �!�� ���� 0��! �� �� ���� ��� �� � ��� 0�&��� �� ��� ����

L : ��� �� P(�)

L(st) = 7���� � �� case,.�!� � �� st

sw(bo, x) : (Result → Result) × Result Result

sw(bo, x) =

ok(s) �� � bo(x) = break(s)ok(s) �� � bo(x) = default(s)bo(x) �����

�switch(ix ) st� =

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

break(s) �→ break(s)

default(s) �→ default(s)

case(s, i) �→ case(s, i)

ok(s) �→

sw(�st�, case(s, i)) �� � �ix� = ok(i) ∧ i ∈ L(st)sw(�st�, default(s)) �� � �ix� = ok(i) ∧ i /∈ L(st)fail �����

x �→{

ok(s) �� � �st�(x) = break(s)�st�(x) �����

VFiasco Folie 17

Page 18: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

������ -� �� �� � �� �� .��������� ��� �� (,*

�goto( lexpr )� =

∣∣∣∣ ok(s) �→ goto(s, l)x �→ x

�l :� =

∣∣∣∣ goto(s, l) �→ ok(s)x �→ x

�!����� • •����� • • • •

goto

a

labela

VFiasco Folie 18

Page 19: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Semantiken Semantik fur C/C++

/$���� � � ������

• *&���������� �� 6C6DD �!�� ������ �?����� *� �!�������!����

• goto,2�+�������� ��� �� �+?��� �&������ �I���� ��� J� ������������ �����

• 4� �+?����&����� �I���� ��� ���� * ����� +� � �� ��� �������� ����������I�&��

����� !����� � +������

�!����� • • • • •

����� • • • • •�����

2�+

=

labela

goto

a

�����2

�+=

VFiasco Folie 19

Page 20: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Verifikationsbeispiel Duff’s Device

0�� 1���� ��� ������� �$� #�23� #����

��� �&5 ; � �� ∗ �� � � �� ∗ ���� � � � ���� <

M� � � � � � � �N ���� C � O

���� ; ���� P �<

M���� E � � �� ; � � � � � �−− Q E<M ∗ � �DD N ∗ ����DDO

���� � � ∗ � �DD N ∗ ����DDO

���� � � ∗ � �DD N ∗ ����DDO

���� 3 � ∗ � �DD N ∗ ����DDO

���� / � ∗ � �DD N ∗ ����DDO

���� R � ∗ � �DD N ∗ ����DDO

���� ' � ∗ � �DD N ∗ ����DDO

���� � � ∗ � �DD N ∗ ����DDO

SS

S

+!��%����%' ��, �� � �� *���� ��� ���� ��� -��. / ���� � �� ������� �� *���� ��� ��$������

� ��� �����$���. /� �� ���#� ���%� �� � ������' / ���� /#�� �� � � ���� �����.0 12� !�"3

VFiasco Folie 20

Page 21: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Verifikationsbeispiel Duff’s Device

� � � � ; � � � � � � � � � � � &����� � ���� � ��� < �

T 4 � � � � T *���� � � � � � U −Q 4 � � � � T * ��� � � � � � � U U N

+ � � � � V � � � ; ������ � � � : ; � � � � V � � � ; ���� < � � � � � V � � � ; � < < < WW

+ � � � � V � � � ; � � � � � � V � � � ; E < < WW

���V�+�� V��� ;

��� ; � � � � V � � � ; ���� < � � � � � V � � � ; � < < �

� � � V � � � ; E < WW

�+� �V��� ;

� � � � V � � � ; E < X &���V�� �V ���� ; � � � � � � < �

� � � & V � � � WW

+ � � � � V � � � V � � � � 5 ; ���� � � � � � V � � � ; � < �

� � � � V � � � V � � � � 5 ; � � � � � � � � � � V � � � ; � < < < WW

+ � � � � V � � � ; � � � � � � V � � � ; � < DD � � � � V � � � ; � < < WW

� � � V � � � ; � < WW + � � � � V � � � V � � � � 5 ; ���� � � � � � V � � � ; � < �

� � � � V � � � V � � � � 5 ; � � � � � � � � � � V � � � ; � < < < WW

+ � � � � V � � � ; � � � � � � V � � � ; � < DD � � � � V � � � ; � < < WW

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

� � � V � � � ; � < WW + � � � � V � � � V � � � � 5 ; ���� � � � � � V � � � ; � < �

� � � � V � � � V � � � � 5 ; � � � � � � � � � � V � � � ; � < < < WW

+ � � � � V � � � ; � � � � � � V � � � ; � < DD � � � � V � � � ; � < <

< 4 ��� %��� ��5�

< 4 ��� ��5�����5�

VFiasco Folie 21

Page 22: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Verifikationsbeispiel Duff’s Device

� ������ �� �� #�23� #����

• J� ��� ��� ��� �������� copy �� �� �� ����� (����� ����� �������� :�� �����

G:�����������H 2������������� ���:���� �� ����

– ��� �������� ���������� ��� .��������� ��

– 8�� Y�� ����5 +����� count F� �� ������� �� ��� F�� ����5 ��&����

– ��� F� �� ��� Y�� ����5� ! ��!�� ��:��?�����

– (� +����� ��� ��� !��I������ F� �� ��� F�� ����5� :��?�����

– rounds �� ��� �������,>��� −1

VFiasco Folie 22

Page 23: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

Verifikationsbeispiel Duff’s Device

� ������ �� �� #�23� #���� �� .��

� � � � V � � � � � � ����� ���� � � ; � � � � � � � � � � � &����� � ���� � ��� < �

����V:��V�� ; � � � � � � ���� � ���� � � < ���� ��

� � � � ; � � � � � � ��� � � ���� < ; �� ; � � � � � � < < N

�� ; � ���� T

Z : � � � �N ������; A � & � � � � � < �

�� A N � � � � � � � �� � � � ;−�<

� � � � A N � � �� � � � ; ���� <

� � � � � V � � V � � � � 5 ; � � � � � � < ; A < ���

� � � � B V � � � � V � ; � � ��� � � A < X ����

� ��� Z : � � � ; � � � V � � � � 5 ; � Z : � � � ; � � � � � < <

Z � � � � � ; � � � � B V � � � � V � ; � � ��� � � A < < <

���� � Z : � � � ; A <

( � � � �

U � � � � � <

VFiasco Folie 23

Page 24: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

4��������������

• ����� � 8���9������ :�� *���+���� �� +��� ��� �� 6C6DD ��� ���!�� ���� ��� �I� �

• ��� �������� *������� �� ��!� �� ����� � � *&�� ����� :�� 6C6DD �� ����� �������

• (�� ���� ���� �������� 1�+��� ��� ������I�� � � �= = ���� ��� :���9������ *���+��� %��

������ �� A���� �� � ��� �&���9������ (����� ��� ���� �

VFiasco Folie 24

Page 25: s0158714  fileSemantik Beweiser Q.E.D. Spezifikation VFiasco Folie 8. Semantiken ! ...

������ #���5


Recommended