SW wykład 11 - Slajd10: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 2: | Linia 2: | ||
[[Grafika:sw1109.png|frame|center|]] | [[Grafika:sw1109.png|frame|center|]] | ||
Stwierdzenia o częściowej poprawności względem warunków wstępnego i | |||
końcowego można oczywiście rozszerzyć na kolejne postacie | |||
instrukcji, dodawane stopniowo do naszego języka TINY. Odpowiednio | |||
rozszerza się wówczas system dowodzenia, podając reguły dla | |||
wprowadzanych konstrukcji językowych. | |||
Na przykład, dla procedur bezparametrowych (a raczej dla ich wywołań) | |||
poprawna jest reguła podana na powyższym slajdzie: stwierdzenie o | |||
poprawności wywołania procedury bezparametrowej względem podanych | |||
warunków wstępnego i końcowego można wywieść pod warunkiem, że z tegoż | |||
stwierdzenia można wywieść stwierdzenie o częściowej poprawności ciała | |||
procedury względem tychże warunków wstępnego i końcowego. W pewnym | |||
sensie, jest to reguła "wyższego rzędu", wykorzystująca dowodzoną tezę | |||
jako przesłankę, którą można wykorzystać w dowodzie istotnej | |||
przesłanki (poprawności ciała procedury) dla analizy rekurencyjnych | |||
wywołań tej procedury. Przy tym, choć często ta reguła okazuje się | |||
wystarczająca, to dla zapewnienia relatywnej pełności tak | |||
rozszerzonego systemu trzeba ją jeszcze uzupełnić o możliwość | |||
manipulacji zmiennymi pomocniczymi. | |||
Łatwo też sformułować regułę dla dowodzenia stwierdzeń o częściowej | |||
poprawności instrukcji bloku z deklaracjami zmiennych lokalnych --- | |||
patrz slajd. | |||
Pełna analiza tych czy podobnych reguł dla innych konstrukcji wykracza | |||
poza zakres tych zajęć. Trzeba tylko wiedzieć, że reguły takie | |||
opracowano dla wszelkich właściwie pojawiających się konstrukcji | |||
językowych, a analiza (relatywnej) pełności otrzymywanych systemów | |||
długo była tematem prac badawczych, z czasem dopiero stając się raczej | |||
rutynowym przedsięwzięciem, o dobrze zakreślonych granicach i z dość | |||
standardowymi technikami dowodzenia. |
Aktualna wersja na dzień 17:13, 10 paź 2006
Poprawność systemu dowodzenia Hoare'a Dowód Dowód, c.d. Problem z pełnością Uogólnienie TINY TINY Ekspresywność Relatywna pełność logiki Hoare'a Rozszerzenia Ograniczenia

Stwierdzenia o częściowej poprawności względem warunków wstępnego i końcowego można oczywiście rozszerzyć na kolejne postacie instrukcji, dodawane stopniowo do naszego języka TINY. Odpowiednio rozszerza się wówczas system dowodzenia, podając reguły dla wprowadzanych konstrukcji językowych.
Na przykład, dla procedur bezparametrowych (a raczej dla ich wywołań) poprawna jest reguła podana na powyższym slajdzie: stwierdzenie o poprawności wywołania procedury bezparametrowej względem podanych warunków wstępnego i końcowego można wywieść pod warunkiem, że z tegoż stwierdzenia można wywieść stwierdzenie o częściowej poprawności ciała procedury względem tychże warunków wstępnego i końcowego. W pewnym sensie, jest to reguła "wyższego rzędu", wykorzystująca dowodzoną tezę jako przesłankę, którą można wykorzystać w dowodzie istotnej przesłanki (poprawności ciała procedury) dla analizy rekurencyjnych wywołań tej procedury. Przy tym, choć często ta reguła okazuje się wystarczająca, to dla zapewnienia relatywnej pełności tak rozszerzonego systemu trzeba ją jeszcze uzupełnić o możliwość manipulacji zmiennymi pomocniczymi.
Łatwo też sformułować regułę dla dowodzenia stwierdzeń o częściowej poprawności instrukcji bloku z deklaracjami zmiennych lokalnych --- patrz slajd.
Pełna analiza tych czy podobnych reguł dla innych konstrukcji wykracza poza zakres tych zajęć. Trzeba tylko wiedzieć, że reguły takie opracowano dla wszelkich właściwie pojawiających się konstrukcji językowych, a analiza (relatywnej) pełności otrzymywanych systemów długo była tematem prac badawczych, z czasem dopiero stając się raczej rutynowym przedsięwzięciem, o dobrze zakreślonych granicach i z dość standardowymi technikami dowodzenia.