25 lutego 2013, godzina 23: 57 strona 1. P. Urzyczyn: Materia ly do wyk ladu z semantyki. Logika Hoare a

Podobne dokumenty
Elementy logiki i teorii mnogości Wyk lad 1: Rachunek zdań

P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

Wyk lad 7 Baza i wymiar przestrzeni liniowej

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Wyk lad 5 Grupa ilorazowa, iloczyn prosty, homomorfizm

Wyk lad 11 1 Wektory i wartości w lasne

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

Wyk lad 3 Wielomiany i u lamki proste

Wyk lad 4 Warstwy, dzielniki normalne

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Struktury formalne, czyli elementy Teorii Modeli

Algebrę L = (L, Neg, Alt, Kon, Imp) nazywamy algebrą języka logiki zdań. Jest to algebra o typie

Wyk lad 6 Podprzestrzenie przestrzeni liniowych

LOGIKA ALGORYTMICZNA

Definicja: alfabetem. słowem długością słowa

Wyk lad 14 Formy kwadratowe I

Wyk lad 14 Cia la i ich w lasności

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Indeks odwzorowania zmiennej zespolonej wzgl. krzywej zamknietej

Wstęp do Programowania potok funkcyjny

Normy wektorów i macierzy

Rozdzia l 10. Najważniejsze normalne logiki modalne

Rekurencyjna przeliczalność

Wyk lad 9 Przekszta lcenia liniowe i ich zastosowania

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

Wyk lad 2 Podgrupa grupy

Poprawność semantyczna

vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Logika matematyczna i teoria mnogości (I) J. de Lucas

LOGIKA I TEORIA ZBIORÓW

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Twierdzenia Gödla dowody. Czy arytmetyka jest w stanie dowieść własną niesprzeczność?

O pewnych związkach teorii modeli z teorią reprezentacji

Wstęp do Matematyki (4)

Wyk lad 1 Podstawowe struktury algebraiczne

Statystyka w analizie i planowaniu eksperymentu

Rezolucja w rachunku predykatów. Przedrostkowa koniunkcyjna postać normalna. Formu ly ustalone. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Statystyka w analizie i planowaniu eksperymentu

Uproszczony dowod twierdzenia Fredricksona-Maiorany

Andrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność

Elementy logiki i teorii mnogości

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Arytmetyka pierwszego rz du

(α + β) a = α a + β a α (a + b) = α a + α b (α β) a = α (β a). Definicja 4.1 Zbiór X z dzia laniami o wyżej wymienionych w lasnościach

ROZDZIA l 13. Zbiór Cantora

13. Cia la. Rozszerzenia cia l.

Cia la i wielomiany Javier de Lucas

Dziedziny Euklidesowe

Wyk lad 10 Przestrzeń przekszta lceń liniowych

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10

Topologia zbioru Cantora a obwody logiczne

WNIOSKOWANIE W MODELU REGRESJI LINIOWEJ

Grupy i cia la, liczby zespolone

Wyk lad 11 Przekszta lcenia liniowe a macierze

OSOBNO ANALITYCZNYCH

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

Paradygmaty dowodzenia

Logika Matematyczna (10)

Wyk lad 13 Funkcjona ly dwuliniowe

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

WYK LAD 2: PODSTAWOWE STRUKTURY ALGEBRAICZNE, PIERWIASTKI WIELOMIANÓW, ROZK LAD FUNKCJI WYMIERNEJ NA U LAMKI PROSTE

Rachunek lambda CBN i CBV

Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań

1 Funkcje uniwersalne

Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Lista egzaminacyjna zadań z matematycznych podstaw informatyki, wersja 3.

Testowanie hipotez statystycznych

Wykład 21 Funkcje mierzalne. Kostrukcja i własności całki wzglȩdem miary przeliczalnie addytywnej

1 Działania na zbiorach

Adam Meissner.

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Rachunek zdań. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Indukcja matematyczna

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 3 Tablice trwania życia 2

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

WYK LAD 5: GEOMETRIA ANALITYCZNA W R 3, PROSTA I P LASZCZYZNA W PRZESTRZENI R 3

Elementy logiki matematycznej

ROZDZIAŁ 1. Rachunek funkcyjny

Początki informatyki teoretycznej. Paweł Cieśla

Egzamin z logiki i teorii mnogości, rozwiązania zadań

Przestrzenie wektorowe, liniowa niezależność Javier de Lucas

LOGIKA Klasyczny Rachunek Zdań

Rozdzia l 10. Formy dwuliniowe i kwadratowe Formy dwuliniowe Definicja i przyk lady

Metalogika (12) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

T O P O L O G I A WPPT I, sem. letni WYK LAD 8. Wroc law, 21 kwietnia D E F I N I C J E Niech (X, d) oznacza przestrzeń metryczn a.

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

Transkrypt:

25 lutego 2013, godzina 23: 57 strona 1 P. Urzyczyn: Materia ly do wyk ladu z semantyki Logika Hoare a Rozważamy najprostszy model imperatywnego jezyka programowania z jednym typem danych. Wartości tego typu moga być elementami dowolnej struktury algebraicznej o ustalonej sygnaturze. Poniżej, symbol c oznacza dowolna sta l a tej sygnatury, a r (odpowiednio f) jest dowolnym k-argumentowym symbolem relacyjnym (funkcyjnym). Sa trzy kategorie wyrażeń: 1 Wyrażenia logiczne (B) : false, true, E 1 = E 2, r(e 1, E 2,..., E k ), B, B 1 B 2, B 1 B 2. Wyrażenia algebraiczne (E) : c, x, f(e 1, E 2,..., E k ). Programy (P ) : skip, loop, x := E, begin P 1 ; P 2 end, if B then P 1 else P 2, while B do P 1. Semantyka naturalna (dużych kroków) Znaczenie [W ] A s wyrażenia algebraicznego lub logicznego W w strukturze A przy wartościowaniu s (lub: w stanie s) definiujemy jak zwykle. Górny indeks czesto pomijamy. Znaczenie programów określimy metoda dużych kroków, 2 tj. zdefiniujemy relacje P, s s, która odczytujemy tak: program P uruchomiony w stanie s kończy obliczenie w stanie s. skip, s s [E ] s = a x := E, s s[x a] P 1, s s P 2, s s begin P 1 ; P 2 end, s s [B ] s = true P 1, s s [B ] s = false P 2, s s if B then P 1 else P 2, s s if B then P 1 else P 2, s s [B ] s = true P, s s while B do P, s s while B do P, s s [B ] s = false while B do P, s s Ponieważ każdy program ma tylko skończenie wiele zmiennych, wiec stany można uważać za skończone krotki wartości. Dziedzina while-programu P w strukturze A nazywamy zbiór tych stanów s, dla których P, s. Nietrudno pokazać, że każdy rekurencyjnie przeliczalny podzbiór N jest w standardowym modelu arytmetyki N = N, +,, s, 0 rzutem dziedziny pewnego programu na pierwsza wspó lrz edn a, tj. ma postać {s(x 0 ) P, s }. Regu ly Hoare a Formu l a logiki Hoare a nazywamy trójke postaci {ϕ} P {ψ}, gdzie ϕ i ψ sa formu lami pierwszego rzedu, a P jest programem. Formu la taka jest prawdziwa w strukturze A, gdy dla dowolnych stanów s i s o w lasności A, s = ϕ oraz P, s s zachodzi A, s = ψ. Mówimy wtedy, że program P jest cześciowo poprawny ze wzgledu na warunek poczatkowy ϕ i warunek końcowy ψ i piszemy A = {ϕ} P {ψ}. Jeśli jest tak dla każdej struktury, to piszemy = {ϕ} P {ψ} (trójka jest prawdziwa). 1 Nawiasowanie jest domyślne. 2 W istocie nasza definicja jest mieszana, bo dla wyrażeń stosujemy metode denotacyjna.

25 lutego 2013, godzina 23: 57 strona 2 Wnioskowanie w logice Hoare a (dla while-programów) opiera sie na nastepuj acych aksjomatach i regu lach. Implikacje pierwszego rzedu, wystepuj ace w ostatniej regule (zwanej regu l a konsekwencji) maja być uniwersalnie prawdziwe w rozważanej strukturze. 3 {ϕ} skip {ϕ} {ϕ[e/x]} x := E {ϕ} {true} loop {false} {ϕ} P 1 {ψ} {ψ} P 2 {ϑ} {ϕ} begin P 1 ; P 2 end {ϑ} {ϕ B} P 1 {ψ} {ϕ B} P 1 {ψ} {ϕ} if B then P 1 else P 2 {ψ} {ϕ B} P {ϕ} {ϕ} while B do P {ϕ B} ϕ ϕ {ϕ} P {ψ} ψ ψ {ϕ } P {ψ } Piszemy Th(A) {ϕ} P {ψ}, lub po prostu A {ϕ} P {ψ}, gdy trójka {ϕ} P {ψ} ma wyprowadzenie w logice Hoare a, przy czym wszystkie formu ly postaci α β, użyte w tym wyprowadzeniu, sa prawdziwe w strukturze A. Jeśli zaś wszystkie te formu ly sa tautologiami logiki pierwszego rzedu, to możemy napisać po prostu {ϕ} P {ψ}. Twierdzenie 0.1 (Poprawność) Jeśli A {ϕ} P {ψ}, to A = {ϕ} P {ψ}. Dowód: Indukcja ze wzgledu na dowód. Mamy tyle przypadków ile aksjomatów i regu l. Wiekszość z nich jest latwa. Na przyk lad, dla aksjomatu {ϕ[e/x]} x := E {ϕ} należy pokazać, że jeśli A, s = ϕ[e/x] to A, s[x [E ] s ] = ϕ. W przypadku while zak ladamy, że A, s = ϕ oraz while B do P, s s i chcemy pokazać A, s = ϕ B. Robimy to przez pomocnicza indukcje ze wzgledu na wyprowadzenie while B do P, s s. Mamy tu dwa przypadki: pierwszy oczywisty, gdy [B ] s = false, drugi gdy [B ] s = true oraz P, s s i while B do P, s s. W tym drugim przypadku z g lównego za lożenia indukcyjnego mamy A, s = ϕ, a z pomocniczego A, s = ϕ B. Reszte dowodu pomijamy. W lasność odwrotna do twierdzenia 0.1 nazywamy relatywna pe lnościa logiki Hoare a. Nie jest to bardzo efektywna w lasność, bo w dowodach dopuszczamy wszystkie implikacje prawdziwe w strukturze A. Można ograniczyć stosowanie regu ly konsekwencji do implikacji dowodliwych w jakimś systemie wnioskowania (twierdzenie o poprawności oczywiście pozostaje prawdziwe) i pytać o prawdziwa pe lność: czy każda trójke prawdziwa w A można udowodnić? Niestety, odpowiedź na to pytanie jest negatywna. Zauważmy bowiem, że trójka {true}skip{ψ} oznacza to samo co ψ, zatem gdybyśmy mieli efektywny system wnioskowania dla trójek prawdziwych w strukturze A, to teoria Th(A) musia laby być rekurencyjnie przeliczalna. Tak nie jest na przyk lad dla algebry N liczb naturalnych. Inne uzasadnienie jest takie: trójka 3 Czasami jednak żada sie, aby by ly to tautologie, a czasami twierdzenia jakiejś teorii.

25 lutego 2013, godzina 23: 57 strona 3 {true}p {false} wyraża pustość dziedziny programu P (a wi ec pustość odpowiedniego zbioru rekurencyjnie przeliczalnego). To też nie jest rekurencyjnie przeliczalna w lasność programów. Wiadomo, że istnieja struktury (na przyk lad cia lo liczb zespolonych C = C, +,, 0, 1 ), dla których logika Hoare a nie jest relatywnie pe lna. Potrzebujemy dodatkowego za lożenia. Powiemy, że struktura A jest wyrażalna, gdy dziedzina każdego programu jest definiowalna w logice pierwszego rzedu, tj. gdy dla dowolnego P istnieje taka formu la Halt(P ), że zachodzi równoważność: P, s A, s = Halt(P ). Dla struktur wyrażalnych można zdefiniować w logice pierwszego rzedu wiele innych w lasności programów. Nas interesuja g lównie najs labsze prewarunki, czyli zbiory postaci wp(p, α) = {s jeśli P, s s to A, s = α}. Lemat 0.2 Jeśli A jest struktura wyrażalna, to dla każdego P i α istnieje formu la ξ definiujaca wp(p, α), tj. taka, że dla dowolnego stanu s: A, s = ξ wtedy i tylko wtedy, gdy s wp(p, α). Dowód: Za lóżmy, że x to wszystkie zmienne wystepuj ace w P i niech y bedzie wektorem nowych zmiennych o tej samej d lugości. Rozpatrzmy program Q = begin P ; if x = y then skip else loop end. Jako ξ można przyjać formu l e y(halt(q) α[ x := y]). Odtad napis wp(p, α) oznacza też formu l e definiujac a zbiór wp(p, α). Zauważmy od razu, że A = {ϕ} P {ψ}, wtedy i tylko wtedy, gdy A = ϕ wp(p, ψ). Twierdzenie 0.3 (Cook) Logika Hoare a dla j ezyka while-programów jest relatywnie pe lna dla każdej struktury wyrażalnej A: jeśli A = {ϕ} P {ψ}, to A {ϕ} P {ψ}. Dowód: Wystarczy pokazać, że A {wp(p, α)}p {α}, dla każdego P i α. Jeśli bowiem A = {ϕ}p {ψ} to A {ϕ}p {ψ} wynika z regu ly konsekwencji z pomoca ϕ wp(p, ψ). Warunek A {wp(p, α)}p {α} udowodnimy przez indukcj e ze wzgl edu na P. Niech najpierw P = skip. Wtedy = wp(skip, α) α oraz {α}skip{α}, wi ec z regu ly konsekwencji wynika {wp(skip, α)}skip{α}. Jeśli P = loop, to = wp(loop, α) true i sprawa jest oczywista. Dla P = (x := E) mamy = wp(x := E, α) α[x := E], wi ec to też latwy przypadek. Dla P = P 1 ; P 2 korzystamy z równoważności wp(begin P 1 ; P 2 end, α) wp(p 1, wp(p 2, α)) i stosujemy indukcj e. W przypadku if należy zauważyć, że wp(if B then P 1 else P 2, α) ma postać (B wp(p 1, α)) ( B wp(p 2, α)). Zostaje while.

25 lutego 2013, godzina 23: 57 strona 4 Niech wi ec P = while B do Q i niech w = wp(p, α). Udowodnimy najpierw, że: (1) A = {w B}Q{w} oraz (2) A = w B α. (1) Za lóżmy, że A, s = w B i niech Q, s s. Chcemy pokazać A, s = w, przypuśćmy wi ec, że P, s s. Z warunków A, s = B, Q, s s i P, s s wynika, że P, s s, a skoro A, s = w to A, s = α. (2) Jeśli A, s = w B, to P, s s, a ponieważ A, s = w, wi ec A, s = α. Z za lożenia indukcyjnego A {wp(q, w)}q{w}. Ponieważ (1), wiec A = w B wp(q, w), i na mocy regu ly konsekwencji A {w B}Q{w}, skad od razu A {w}p {w B}. Teraz stosujemy regu l e konsekwencji, korzystajac z (2), i mamy A {w}p {α}. Twierdzenie Gödla o reprezentacji stanowi m.in. że wszystkie zbiory rekurencyjnie przeliczalne sa definiowalne formu lami arytmetyki pierwszego rzedu. A wiec nie na próżno dowodziliśmy twierdzenie Cooka. Fakt 0.4 Struktura N = N, +,, s, 0 jest wyrażalna. Nietrudno pokazać, że wyrażalna jest też każda struktura skończona. Ponieważ teoria struktury skończonej jest zawsze rozstrzygalna, wiec z twierdzenia Cooka wynika, że zbiór trójek prawdziwych w takiej strukturze jest rekurencyjnie przeliczalny. Jeśli przypomnimy, że {true}p {false} wyraża zapetlenie sie programu P, to latwo wywnioskujemy, że pytanie czy dany program zatrzymuje sie dla określonych danych wejściowych w danej strukturze skończonej? jest rozstrzygalne. Nie jest to może zaskakujace, ale zauważmy, że można te obserwacje uogólnić tak: Warunkiem koniecznym na to, aby dla j ezyka programowania L istnia l poprawny i relatywnie pe lny system Hoare a jest aby problem stopu dla j ezyka L by l rozstrzygalny na skończonych interpretacjach. Problem stopu na skończonych interpretacjach nie jest rozstrzygalny np. dla j ezyka z procedurami wyższych typów, w którym można dokonywać podstawień na zmienne nielokalne. Jeśli tego zabronimy, problem staje si e rozstrzygalny i można skonstruować system Hoare a. Logika Hoare a jako semantyka aksjomatyczna Teraz potraktujemy logike Hoare a w sposób bardziej uniwersalny. Napiszemy {ϕ} P {ψ}, gdy trójke {ϕ} P {ψ} można wyprowadzić ograniczajac regu l e konsekwencji do twierdzeń logiki pierwszego rzedu. Zbiór wszystkich takich trójek nazwiemy teoria cześciowej poprawności programu P. Przyjmijmy oznaczenie PC(P ) = { ϕ, ψ {ϕ} P {ψ}}. Programy P i Q sa równoważne (piszemy P Q) wtedy i tylko wtedy, gdy w dowolnej strukturze A, warunki P, s s i Q, s s sa równoważne. Równoważne programy maja oczywiście takie same teorie cześciowej poprawności. Okazuje sie, że zachodzi też twierdzenie odwrotne, a zatem teoria cześciowej poprawności determinuje semantyke programu. Ten fakt uzasadnia określenie semantyka aksjomatyczna.

25 lutego 2013, godzina 23: 57 strona 5 Twierdzenie 0.5 (Meyer) Jeśli P Q to PC(P ) PC(Q). Szkic dowodu: Dla uproszczenia rozpatrzymy przypadek, gdy P, s s oraz Q, s s, dla dowolnego s (program P sie zatrzymuje, a Q sie zapetla dla pewnego s) w pewnej strukturze A. Za lóżmy przy tym, że x = x 1,..., x n to wszystkie zmienne wystepuj ace w programach P i Q. Analiza obliczenia P w stanie s pozwala wskazać pewna formu l e otwarta ϕ( x) o nastepuj acych w lasnościach: A, s = ϕ( x); Dla dowolnych B, r, jeśli B, r = ϕ( x), to P, r r, dla pewnego r. Formu la ϕ to tak naprawde koniunkcja wszystkich testów, które wykonane sa w czasie obliczenia (uwzgledniaj ac wcześniejsze podstawienia). Ponieważ obliczenie programu Q dla wejścia s jest nieskończone, wiec zamiast jednej formu ly mamy nieskończony zbiór Γ( x): A, s = Γ( x); Dla dowolnych B, r, jeśli B, r = Γ( x), to Q, r r, dla każdego r. Zbiór Γ( x) {ϕ( x)} jest niesprzeczny i sk lada sie tylko z formu l otwartych, wiec ma model mocy ℵ 0. Można uważać, że dziedzina tego modelu jest po prostu N. Dodajac do sygnatury zwyk le operacje arytmetyczne, wzbogacamy ten model do wyrażalnej struktury B, w której dla pewnych r, r zachodzi P, r r, ale dla każdego r mamy Q, r r. Niech ψ( x) bedzie formu l a definiujac a w B dziedzine programu Q. Ponieważ stan r nie należy do dziedziny programu Q, wiec B = { ψ}p {false} i tym bardziej { ψ}q{false}. Wtedy B = { ψ}q{false} wiec z relatywnej pe lności wynika B { ψ}q{false}. W takim dowodzie wystepuje tylko skończenie wiele zdań prawdziwych w B, jeśli ϑ jest koniunkcja tych formu l, to w istocie mamy {ϑ ψ}q{false}. Ale ponieważ stan r nie należy do dziedziny programu Q, wi ec B = {ϑ ψ}p {false} i tym bardziej B {ϑ ψ}q{false}. A zatem ϑ ψ, false PC(Q) PC(P). Ćwiczenia: 1. Niech P = while x > 0 do begin y := x y; x := x 1 end. Udowodnić, że N {x = n n 0 y = 1}P {y = n!}. 2. Uogólnić dowód twierdzenia 0.5 na przypadek gdy P, s s oraz Q, s s, gdzie s s.