SW wykład 12 - Slajd15

Z Studia Informatyczne
Wersja z dnia 22:10, 16 paź 2006 autorstwa Tarlecki (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

<<powrót do strony wykładu

Zadanie programistyczne Przykład Problemy z logiką Hoare'a Poprawność całkowita Poprawność całkowita, c.d. Poprawność całkowita, c.d. Reguła dla pętli Poprawność systemu dowodzenia dla Tiny Pełność systemu dowodzenia dla Tiny Przykład Uogólnienie Poprawność i pełność Relacje dobrze ufundowane Dowodzenie poprawności całkowitej Przykład Przykład Kolejny problem Binarne warunki końcowe Warunki poprawności Reguły dowodzenia Reguły dowodzenia, c.d. Przykład Logika algorytmiczna System dowodzenia

Rozpatrzmy prosty przykład w (rozszerzonym o wywołania dowolnych funkcji w wyrażeniach) języku TINY. Ciało powyższej pętli albo zmniejsza o jeden wartość zmiennej y albo zmniejsza o jeden wartość zmiennej x zmieniając przy tym wartość zmiennej y w bliżej nieokreślony sposób. Zakładamy jednak, że zmiana ta nie powoduje błędu i nie wyprowadza poza liczby naturalne. Bez dalszych informacji o funkcji f nie można liczyć na dowód całkowitej poprawności tej pętli na mocy pierwotnej reguły dowodzenia całkowitej poprawności dla instrukcji pętli (opartej o licznik o wartościach naturalnych). Jednak dowód całkowitej poprawności zgodny z metodą przedstawioną na poprzednim slajdzie jest łatwy: wystarczy rozważyć oczywistą funkcję w pary liczb naturalnych, która przy każdym wykonaniu ciała pętli zmniejsza swą wartość względem leksykograficznego (dobrze ufundowanego) porządku na takich parach.