Rozumowanie na temat niedeterministycznie kończących się pętli


10

Oto pytanie „ścieżka B”, czy kiedykolwiek było. Podsumowanie: pierwsza rzecz, o której myślę, kiedy próbuję nadać semantykę programom niedeterministycznym, skutkuje semantyką, w której nie mogę udowodnić rzeczy o pętlach, które kończą tylko niedeterministyczność. Z pewnością ktoś wymyślił, co zrobić w tej sytuacji, lub przynajmniej wskazał, że jest to trudne, ale nie wiem, jak się go szukać (stąd tag „żądanie referencyjne”).

tło

Chcę modelować język while z niedeterminizmem. Myślę, że jest to oczywisty (lub przynajmniej naiwny) sposób modelowania takiego języka za pomocą domeny mocy Smyth, ale popraw mnie, jeśli się mylę. Zmodyfikujemy znaczenie polecenia w tym języku jako funkcji, której domeną jest zbiór stanów, a której domeną kodową jest zbiór , gdzie jest najmniejszym elementem reprezentującym nieterminację, a jest zbiorem stanów.P ( S ) = { } P ( S ) P ( S )SP(S)={}P(S)P(S)

Interpretujemy polecenia jako mapy od stanów do zdarzenia zakończenia lub do zestawów stanów które reprezentują możliwe wyniki. jest wyborem niedeterministycznym.σ{σ1,σ2,}PQ

  • skipσ={σ}
  • x:=Eσ={σ[(Eσ)/x]}
  • abortσ=
  • if E then P else Qσ=Pσ jeśli Eσ=true , w przeciwnym razie Qσ
  • PQσ= jeśli Pσ= lub Qσ= , w przeciwnym razie PσQσ
  • P;Qσ= jeśli lub dla niektórych , w przeciwnym raziePσ=Qτ=τPστPσQτ

Istnieje ukierunkowane pełne zamówienie częściowe , gdzie dla dowolnego i jeśli oba i są poprawnymi zestawami, a , i możemy rozszerzyć to na funkcje od do punktowo: if dla każdego i to funkcja odwzorowująca każdy stan na .SSP(S)S1S2S1S2S1S2fSP(S)f1f2f1(σ)f2(σ)σf

Znaczenie pętli to to najmniejsza górna granica łańcucha , gdzie if , w przeciwnym razie jeśli lub dla niektórych , w przeciwnym razie . (Ta definicja zakłada, że właśnie zdefiniowane mnie jest ciągłe Scott, ale myślę, że można to bezpiecznie pominąć.)while E do Pσff(f)f(f(f))f(g)(σ)={σ}E(σ)=falsePσ=g(τ)=τPστPσg(τ)f

Pytanie

Rozważ ten program:

x:=0;
b:=true;
while b do
x:=x+2;
b:=falseb:=true

Intuicyjnie jest to pętla, która może zwrócić dowolną dodatnią liczbę parzystą lub jej nie zakończyć, i która odpowiada temu, co możemy udowodnić w tej pętli przy użyciu najsłabszego wstępnego warunku liberalnego (można pokazać, że jest pętlą niezmienny). Ponieważ jednak pętla może nie zostać zakończona (możemy doprecyzować niedeterministyczny wybór programu, który zawsze przyjmuje prawą gałąź), znaczenie tego programu dla dowolnego stanu początkowego to . (Mniej nieformalnie: funkcja odwzorowująca każdy stan, w którym jest fałszywy, i każdy stan, w którym jest prawdziwe dla jest stałym punktem używanym do definiowania pętli.)n.x=2nbbf

Oznacza to, że naiwna semantyka, którą zaproponowałem, nie odpowiada temu, w jaki sposób mogę rozumować programy. Obwiniam swoją semantykę, ale nie wiem, jak to naprawić.


4
Myślę, że używając jako kodomainy znaczenia programu, skutecznie zrezygnowałeś z rozumowania czegokolwiek na temat programu, który może się różnić. Naiwną myślą jest użycie , ale nie wiem, czy to spowoduje kolejny problem. {}P(S)P(S{})
Tsuyoshi Ito,

Tak, masz całkowitą rację, że patrząc na zestaw widać już, że nadzieja przepadła, zanim przejdziemy do przykładu. Twoja sugestia również mi się przydarzyła, ale myślę, że ten sam problem występuje w tym przykładzie, o ile potencjalne nieterminowe zakończenie jest modelowane przez not i jeśli wybraliśmy ten drugi, który zakłóciłby naszą zdolność do nadawania znaczenia pętli jako najmniej ustalonego punktu w zwykły sposób. {}P(S)S{}{}
Rob Simmons,

Czy spojrzałeś na Dynamic Logic? Semantyka podana jest w kategoriach relacji między stanami, a logiki można użyć do uzasadnienia częściowej i całkowitej poprawności, to znaczy właściwości obliczeń, które kończą się i wszystkie obliczenia kończą się daną właściwością.
Dave Clarke

Nie myślałem o logice dynamicznej w tym otoczeniu, ale widzę, jak może być istotna - zobaczę, co myślą Platzer i jego uczniowie, kiedy wrócę do Pittsburgha.
Rob Simmons,

Odpowiedzi:


10

W [dB80] analiza Hitchcocka i Parka dotycząca właściwości końcowych rekurencji odpowiada analizie semantycznej opartej na tak zwanej interpretacji relacji Egli-Milnera [Egl75, Plo76], która wyraża nieregularny niedeterminizm. Pojęcie to wychwytuje, że niedeterministyczny związek relacji jest poprawny, jeśli generuje co najmniej jedno obliczenie prowadzące do pożądanego rezultatu (nawet w obecności obliczenia nieterminacyjnego). To wydaje się odpowiadać temu, co próbujesz zrobić.

Następnie scharakteryzuj znaczenie instrukcji jako funkcji odwzorowującej każdy stan początkowy na jakiś niepusty zbiór stanów, prawdopodobnie zawierający , tak że jest ścisły w tym sensie, że . Niedeterministyczny wybór między instrukcjami i jest opisany przez funkcję odwzorowującą każdy stan początkowy na połączenie poszczególnych wyników . Tak więc, ilekroć lubSfSσfSfS()={}S1S2σfS1(σ)fS2(σ)S1S2ma niedeterministyczną możliwość wywołania niepożądanego rezultatu, podobnie robi ich niedeterministyczny wybór. Jako wynikowe zestawy stanów końcowych otrzymujemy w tej analizie tak zwany zestaw stanów Egli-Milnera:

PE--M(S)={ sS | s jest skończony i niepusty lub zawiera}

Dlaczego nieskończone podzbiory nie są uważane za możliwe zestawy stanów końcowych w tym modelu? Zakładając, że wszystkie podstawowe elementy składowe terminów relacyjnych wytwarzają tylko skończone, niepuste zbiory możliwych stanów końcowych, nieskończony zbiór możliwych stanów końcowych można wygenerować tylko wtedy, gdy możliwe jest obliczenie nieskończone. To może być rozumiane w następujący sposób. zestaw wszystkich możliwych obliczeń rozpoczynających się w danym stanie jako drzewo z rootem i stany jako węzły. Zbiór liści jest wówczas dokładnie zbiorem możliwych stanów końcowych osiągalnych z , z wyjątkiemSσ0σ0σ0, którego może brakować wśród liści, ale w zestawie stanów końcowych jest reprezentowany przez fakt, że w drzewie istnieje nieskończona ścieżka. Zgodnie z powyższym założeniem, a ponieważ dostępny jest tylko skończony niedeterministyczny wybór, drzewo to jest skończone. Zatem na określonej skończonej głębokości jest tylko skończona liczba liści. W konsekwencji nieskończoną liczbę możliwych stanów końcowych można wygenerować tylko w obecności nieskończonego obliczenia (zastosowanie lematu Königa [Kön32]).

(PE--M(S),E--M) to zestaw dla zdefiniowane przez: dla ,E--Ms,tPE--M(S)

sE--Mt=(ss{}t)(ss=t) .

W tym przypadku może być postrzegany jako symbol zastępczy, przez który można generować większe zbiory wstawiając więcej stanów zamiast . Dlatego jest najmniejszym elementem . Co więcej, poset posiada lub dla łańcuchów. Podobnie ścisłe funkcje od do są częściowo uporządkowane przez punktowe rozszerzenie . Co więcej, najmniejszą taką funkcją jestE--M{}(PE--M(S),E--M)(PE--M(S),E--M)ωS{}PE--M(S)E--Mλσ.{}Istnieją także i lub z łańcuchów takich funkcji.ω

[dB80] JW de Bakker. Matematyczna teoria poprawności programu . Prentice Hall, 1980.

[Egl75] H Egli. Model matematyczny obliczeń niedeterministycznych. Raport techniczny, ETH Zürich, 1975.

[Kön32] D König. Theorie der endlichen und unendlichen Graphen. Raport techniczny, Lipsk, 1932.

[Plo76] GD Plotkin. Konstrukcja powerdomain. SIAM Journal on Computation , 5 (3): 452–487, 1976.

Zastrzeżenie: zostało to zaczerpnięte niemal dosłownie z książki, którą kiedyś współautorem:

WP de Roever i K Engelhardt. Udoskonalenie danych: metody dowodowe zorientowane na model i ich porównanie . Cambridge University Press, 1998.


4
Wyrażenie „zostało to zaczerpnięte niemal dosłownie z książki, którą kiedyś byłem współautorem” powinno być prawdopodobnie poprzedzone słowem „Extra Awesomeness:” not ”Disclaimer:„ :-D. Dzięki, to jest bardzo pomocne.
Rob Simmons,

Jednym ze sposobów patrzenia na niedeterminizm (i sposób, w jaki chcę na to spojrzeć) jest to, że jest to forma niedokreślenia - program o niedeterministycznym wyborze jest udoskonalany przez program, który zawsze wybiera pierwszy wybór, zawsze wybiera drugi wybór, lub (patrz obszerne prace McIvera i Morgana w tym konkretnym obszarze) program, który z jednym lub drugim wyborem ma prawdopodobieństwo .5 . Więc pętli że zakaz deterministyczny nie terminate jest oczyszczany przez pętlę, że nigdy nie kończy, a także przez pętlę monety z klapką, który kończy (z prawdopodobieństwem 1)
Rob Simmons
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.