Logika dla informatyków/Zdaniowa logika dynamiczna: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemo (dyskusja | edycje)
Przemo (dyskusja | edycje)
Linia 348: Linia 348:
lematu o filtracji.
lematu o filtracji.
==k==  
==k==  
{{lemat|10.11||
{{lemat|10.11|lem10.11|
:<math>(i)</math> Jeśli <math>\displaystyle \sigma\in FL(\varphi)</math>, to <math>\displaystyle FL(\sigma)\subseteq FL(\varphi)</math>.
:<math>(i)</math> Jeśli <math>\displaystyle \sigma\in FL(\varphi)</math>, to <math>\displaystyle FL(\sigma)\subseteq FL(\varphi)</math>.
# Je¶li <math>\displaystyle \sigma\in\FLp{\bx\alpha\phi}</math>, to
:<math>(ii)</math> Jeśli <math>\displaystyle \sigma\in FL^{\Box}([\alpha]\varphi)</math>, to
<math>\displaystyle \FL\sigma\subs\FLp{\bx\alpha\phi}\cup\FL\phi</math>.
<math>\displaystyle FL(\sigma)\subseteq FL^{\Box}([\alpha]\varphi)\cup FL(\varphi)</math>.
   
   
}}
}}


{{dowod|||
{{dowod|||
Dowodzimy (i) oraz (ii) przez jednoczesn± indukcję. Szczegóły pozostawiamy  
Dowodzimy (i) oraz (ii) przez jednoczesną indukcję. Szczegóły pozostawiamy  
Czytelnikowi jako ćwiczenie.
Czytelnikowi jako ćwiczenie.
}}
}}


Następuj±ce właso¶ci <math>\displaystyle \FLname</math> s± bezpo¶redni± konsekwencj±
Następujące własości <math>\displaystyle FL</math> są bezpośrednią konsekwencją
Lematu&nbsp;[[##lem-FLtrans|Uzupelnic lem-FLtrans|]].
[[#lem10.11|Lematu 10.11]].


{{lemat|||
{{lemat|||

Wersja z 17:07, 30 wrz 2006

Zdaniowa logika dynamiczna

Zdaniowa logika dynamiczna (PDL, od angielskiej nazwy Propositional Dynamic Logic) została zaproponowana przez V. Pratta w 1976r. Jest ona eleganckim i zwięzłym formalizmem pozwalającym badać rozumowania dotyczące programów iteracyjnych. Formalizm ten rozszerza logikę modalną poprzez wprowadzenie modalności dla każdego programu z osobna. W części tej pokażemy jedynie dwie podstawowe własności PDL: własność małego modelu oraz przedstawimy aksjomatyzację i udowodnimy jej pełność. Z własności małego modelu natychmiast wynika rozstrzygalność problemu spełnialności dla PDL. System o podobnym charakterze, o nazwie Logika Algorytmiczna, został zaproponowany w roku 1970 przez A. Salwickiego.

Składnia i semantyka PDL

Syntaktycznie PDL jest mieszaniną trzech klasycznych składników: logiki zdaniowej, logiki modalnej oraz algebry wyrażeń regularnych. Język PDL zawiera wyrażenia dwóch rodzajów: zdania (lub formuły) φ,ψ, oraz programy α,β,γ,. Zakładamy, że mamy do dyspozycji przeliczalnie wiele atomowych symboli każdego rodzaju. Programy atomowe są oznaczane przez a,b,c,, a zbiór wszystkich atomowych programów oznaczamy przez Π0.

Programy są budowane z programów atomowych przy użyciu operacji złożenia (;), niedeterministycznego wyboru () oraz iteracji (*). Intuicyjnie wykonanie programu α;β oznacza wykonanie α, a następnie wykonanie na danych wyprodukowanych przez α programu β. Wykonanie programu αβ oznacza niedeterministyczny wybór wykonania α lub β. Natomiast wykonanie programu α* oznacza wykonanie α pewną liczbę razy, być może zero. Ponadto mamy operację testowania tworzącą z każdej formuły φ nowy program φ?. Wykonanie programu φ? jest możliwe tylko wtedy, gdy warunek φ zachodzi. Z drugiej strony, formuły mogą odwoływać się do dowolnego programu α poprzez modalność konieczności [α]: dla dowolnego zdania φ, napis

[α]φ

czytamy "po (każdym) wykonaniu programu α koniecznie musi zajść φ".

Definicja 10.1

Definicja formuł i programów jest wzajemnie rekurencyjna. Definiujemy zbiór programów Π oraz zbiór formuł Φ jako najmniejsze zbiory spełniające następujące warunki

  • ZZΦ
  • Π0Π
  • jeśli φ,ψΦ, to φψΦ oraz Φ
  • jeśli α,βΠ, to (α;β),(αβ), oraz α*Π
  • jeśli αΠ oraz φΦ, to [α]φΦ
  • jeśli φΦ, to φ?Π.

Aby uniknąć pisania zbyt wielu nawiasów stosujemy następujące priorytety:

  • Jednoargumentowe operatory (wliczając [α] ) wiążą silniej niż dwuargumentowe.
  • Operator ; wiąże silniej niż .
  • Spójniki logiczne mają takie same priorytety jak zdefiniowano wcześniej.

Tak więc wyrażenie

[α;β*γ*]φψ

odpowiada następującemu wyrażeniu z nawiasami

([(α;β*)γ*]φ)ψ.

Ponieważ operatory ; oraz okażą się być łączne, więc zwyczajowo będziemy opuszczać nawiasy w wyrażeniach typu α;β;γ lub αβγ.

Przypomnijmy, że negacja ¬φ jest skrótem formuły φ. Dualnie do [ ] definiujemy modalność możliwości

αφ:=¬[α]¬φ.

Zdanie αφ czytamy "istnieje obliczenie programu α, które zatrzymuje się w stanie spełniającym formułę φ". Istotną różnicą pomiędzy modalnościami [ ] i jest to, że αφ implikuje iż program α się zatrzymuje, podczas gdy [α]φ nie gwarantuje zatrzymania się programu α. W szczególności formuła [α] wyraża własność mówiącą, że żadne obliczenie programu α nie zatrzymuje się. Natomiast formuła α jest zawsze fałszywa.

Przejdziemy teraz do zdefiniowania semantyki. Podstawową strukturą semantyczną dla PDL jest tzw. struktura Kripkego.

Definicja 10.2

Struktura Kripkego jest uporządkowaną parą Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \mathfrak{K} = \langle K,\mathrm{m}_{\mathfrak{K}\rangle} , gdzie K jest zbiorem elementów u,v,w, zwanych stanami, a Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \mathrm{m}_{\mathfrak{K}} jest funkcją przyporządkowującą każdemu atomowemu zdaniu pZZ, podzbiór Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle {\mathrm{m}_{\mathfrak{K}}(p)\subseteq K} oraz każdemu atomowemu programowi aΠ0, relację binarną Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle {\mathrm{m}_{\mathfrak{K}}(a)\subseteq K\times K} .

Poniżej funkcję Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \mathrm{m}_{\mathfrak{K}} rozszerzymy do dowolnych formuł i dowolnych programów. Intuicyjnie dla formuły φ, zbiór stanów Parser nie mógł rozpoznać (nieznana funkcja „\vrphi”): {\displaystyle \displaystyle {\mathrm{m}_{\mathfrak{K}}(\vrphi)} jest zbiorem wszystkich stanów struktury 𝔎, w których φ jest spełniona. Natomiast dla programu α, relacja Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle {\mathrm{m}_{\mathfrak{K}}(\alpha)} jest tzw. relacją wejścia-wyjścia programu α w strukturze 𝔎.

Definicja 10.3

m𝔎(φψ) :=(Km𝔎(φ)m𝔎(ψ)
m𝔎()  :=
m𝔎([α]φ)  :={u|vK(u,vm𝔎(α)vm𝔎(φ))}
m𝔎(α;β) :={u,v|wK(u,vm𝔎(α)w,vm𝔎(β))}
m𝔎(αβ) :=m𝔎(α)m𝔎(β)
m𝔎(α*) :=n0m𝔎(α)n
m𝔎(φ?) Parser nie mógł rozpoznać (błąd składni): {\displaystyle := \left\{\langle u,v\rangle | u \in {\mathrm{m}_\mathfrak{K}}(\varphi)\right}.}

Definicja 10.4

Powiemy, że formuła φ jest spełniona w stanie u struktury 𝔎, gdy um𝔎(φ). Podobnie jak w logice pierwszego rzędu spełnianie zapisujemy następująco (𝔎,u)φ. Gdy z kontekstu wynika o jaką strukturę chodzi, to możemy po prostu pisać uφ.

Powiemy, że formuła φ jest prawdziwa w strukturze 𝔎, gdy jest spełniona w każdym stanie tej struktury. Zapisujemy to 𝔎φ. Formuła φ jest tautologią PDL, gdy jest ona prawdziwa w każdej strukturze Kripkego. Wreszcie powiemy, że formuła φ jest spełnialna, gdy istnieje struktura Kripkego 𝔎, taka że φ jest spełniona w przynajmniej jednym stanie 𝔎.

Przykład 10.5

Niech p będzie zmienną zdaniową oraz niech a będzie atomowym programem. Niech 𝔎=(K,m𝔎) będzie taką strukturą Kripkego, że

K ={u,v,w}
m𝔎(p) ={u,v}
m𝔎(a) ={u,v,u,w,v,w,w,v}.

Nastepujący diagram ilustruje 𝔎.

W tej strukturze mamy ua¬pap, ale v[a]¬p oraz w[a]p. Ponadto każdy stan struktury 𝔎 spełnia następującą formułę

a*[(aa)*]pa*[(aa)*]¬p

.

Przykład 10.6

Niech p,q będą zmiennymi zdaniowymi i niech a,b będą atomowymi programami. Ponadto niech 𝔎=(K,m𝔎) będzie strukturą Kripkego zdefiniowaną następująco

K ={s,t,u,v}
m𝔎(p) ={u,v}
m𝔎(q) ={t,v}
m𝔎(a) ={t,v,v,t,s,u,u,s}
m𝔎(b) ={u,v,v,u,s,t,t,s}

Następujący rysunek ilustruje 𝔎.

Następujące formuły są prawdziwe w 𝔎.

p[(ab*a)*]p
q[(ba*b)*]q.

Ponadto niech α będzie programem

α=(aabb(abba)(aabb)*(abba))*.

Program α traktowany jako wyrażenie regularne, generuje wszystkie słowa nad alfabetem {a,b} o parzystej liczbie wystąpień a oraz b. Można pokazać, że dla dowolnego zdania φ, formuła φ[α]φ jest prawdziwa w 𝔎. Zauważmy, że operator * jest z natury infinitarny. Z definicji domknięcie zwrotne i przechodnie relacji jest nieskończoną sumą. Z tego względu twierdzenie o zwartości nie zachodzi dla PDL. Istotnie, zbiór

{α*φ}{¬φ,¬αφ,¬α2φ,}

jest skończenie spełnialny (tzn. każdy skończony podzbiór jest spełnialny), ale cały zbiór nie jest spełnialny.

Przykłady tautologii PDL

W tej części przedstawimy przykłady tautologii PDL. Wszystkie dowody, jako łatwe pozostawimy Czytelnikowi. Pierwsza grupa tautologii to schematy znane z logiki modalnej.

Twierdzenie 10.7

Następujące formuły są tautologiami PDL.

(i)     α(φψ)    αφαψ
(ii)    [α](φψ)    [α]φ[α]ψ
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (iii)\ \ \ [\alpha](\varphi\rightarrow\psi) \ \ \rightarrow\ \ ([\alpha]\varphi\rightarrow[\alpha]\psi)}
(iv)   α(φψ)    αφαψ
(v)    [α]φ[α]ψ    [α](φψ)
(vi)   α     
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (vii)\ \ \ [\alpha]\varphi \ \ \leftrightarrow\ \ \ \neg\langle\alpha\rangle\neg\varphi} .

Implikacje odwrotne w Twierdzeniu 10.7 (iii)(v) nie zachodzą. Przykładowo implikacja odwrotna do (iv) nie jest spełniona w stanie u następującej struktury Kripkego.

Następna grupa tautologii, specyficzna dla PDL, dotyczy spójników programotwórczych ; i oraz testu ?.

Twierdzenie 10.8

Następujące formuły są tautologiami PDL.

(i)    αβφ    αφβφ
(ii)   [αβ]φ     [α]φ[β]φ
(iii)  α;βφ      αβφ
(iv)   [α;β]φ      [α][β]φ
(v)    φ?ψ    (φψ)
(vi)   [φ?]ψ    (φψ).

Ostatnia grupa tautologii dotyczy operatora iteracji *.

Twierdzenie 10.9

Nastepujące formuły są tautologiami PDL.

(i)    [α*]φ    φ
(ii)   φ    α*φ
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (iii)\ \ [\alpha^*]\varphi\ \ \rightarrow\ \ [\alpha]\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (iv)\ \ \ \langle\alpha\rangle\varphi\ \ \rightarrow\ \ \langle\alpha^*\rangle\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (v)\ \ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \ [\alpha^*\alpha^*]\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (vi)\ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \ \langle\alpha^*\alpha^*\rangle\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (vii)\ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \ [\alpha^{**}]\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (viii)\ \langle\alpha^*\rangle\varphi\ \leftrightarrow\ \ \langle\alpha^{**}\rangle\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (ix)\ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \ \varphi\wedge[\alpha][\alpha^*]\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (x)\ \ \ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \ \varphi\vee\langle\alpha\rangle\langle\alpha^*\rangle\varphi}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (xi)\ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \ \varphi\wedge[\alpha^*](\varphi\rightarrow[\alpha]\varphi)}
Parser nie mógł rozpoznać (błąd składni): {\displaystyle (xii)\ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \ \varphi\vee\langle\alpha^*\rangle(\neg\varphi\wedge\langle\alpha\rangle\varphi)} .

Własność (ii) mówi, że α* jest semantycznie relacją zwrotną. Przechodniość relacji α* jest wyrażona w (vi). Natomiast fakt, że α* zawiera relację α jest wyrażony w (iv). Implikacja w (xi) wyraża zasadę indukcji. Bazą jest założenie, że własność φ jest spełniona w pewnym stanie u. Warunek indukcyjny mówi, że w każdym stanie osiągalnym z u poprzez skończoną liczbę iteracji programu α, kolejne wykonanie α zachowuje własność φ. Teza stwierdza, że wówczas φ jest spełnione we wszystkich stanach osiągalnych w skończonej liczbie iteracji α.

Własność małego modelu

W tej części udowodnimy własność małego modelu dla PDL. Własność ta mówi, że jeśli φ jest spełnialna to jest spełniona w pewnej skończonej strukturze Kripkego. Co więcej, jak będzie wynikało z dowodu, struktura ta ma co najwyżej 2|φ| stanów, gdzie |φ| oznacza rozmiar formuły φ. Wynika stąd natychmiast rozstrzygalność problemu spełnialności dla PDL. Technika zastosowana w dowodzie twierdzenia o małym modelu nosi nazwę filtracji i jest od dawna stosowana w logikach modalnych. W przypadku PDL sytuację komplikuje fakt, że definicja formuł i programów jest wzajemnie rekurencyjna, co powoduje że indukcyjne rozumowania są nieco bardziej delikatne. Własność małego modelu dla PDL została udowodniona w 1977r. przez M. Fischera i R. Ladnera. Zaczniemy od definicji domknięcia Fischera-Ladnera. Zdefiniujemy dwie funkcje

FL :Φ    2Φ
FL :{[α]φ|αΨ,φΦ}2Φ


przez wzajemną indukcję

(a)FL(p):={p}, gdy p jest zmienną zdaniową
(b)FL(φψ):={φψ}FL(φ)FL(ψ)
(c)FL():={}
(d)FL([α]φ):=FL([α]φ)FL(φ)
(e)FL([a]φ):={[a]φ}, gdy a jest atomowym programem
(f)FL([αβ]φ):={[αβ]φ}FL([α]φ)FL([β]φ)
(g)FL([α;β]φ):={[α;β]φ}FL([α][β]φ)FL([β]φ)
(h)FL([α*]φ):={[α*]φ}FL([α][α*]φ)
(i)FL([ψ?]φ):={[ψ?]φ}FL(ψ)

Zbiór FL(φ) jest nazywany domknięciem Fischera-Ladnera. Zauważmy, że definicja FL(φ) jest indukcyjna ze względu na budowę formuły φ, natomiast pomocnicza funkcja FL jest określona jedynie na formułach postaci [α]φ i jej definicja jest indukcyjna ze względu na budowę programu α. Tak więc chociaż w warunku (h) formuła po prawej stronie definicji jest dłuższa niż po lewej, to program α w zewnętrznej modalności jest prostszy niż α* i dlatego definicja ta jest dobrze ufundowana.

Niech |α| oraz |φ| oznaczają długość programu α i formuły φ rozumianą jako liczbę wystąpień symboli nie licząc nawiasów. Dla dowolnego zbioru X, przez |X| oznaczamy moc zbioru X. Następujący lemat podaje ograniczenie górne na moc domknięcia Fischera-Ladnera.

Lemat 10.10

(i) Dla dowolnej formuły φ mamy |FL(φ)||φ|.
(ii) Dla dowolnej formuły [α]φ mamy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle |FL^{\Box}([\alpha]\varphi}| \leq |\alpha|} .

Dowód

Dowód jest przez jednoczesną indukcję ze względu na schemat definiujący FL oraz FL. Pozostawimy go Czytelnikowi jako ćwiczenie.

Następny lemat ma charakter techniczny. Będzie wykorzystany w dowodzie lematu o filtracji.

k

Lemat 10.11

(i) Jeśli σFL(φ), to FL(σ)FL(φ).
(ii) Jeśli σFL([α]φ), to

FL(σ)FL([α]φ)FL(φ).

Dowód

Dowodzimy (i) oraz (ii) przez jednoczesną indukcję. Szczegóły pozostawiamy Czytelnikowi jako ćwiczenie.

Następujące własości FL są bezpośrednią konsekwencją Lematu 10.11.

Lemat

  1. Je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\psi\in\FL\phi} , to Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \psi\in\FL\phi} .
  2. Je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\rho?}\psi\in\FL\phi} , to Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \rho\in\FL\phi} .
  3. Je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\alpha\cup\beta}\psi\in\FL\phi} , to

Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\psi\in\FL\phi} oraz Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\beta\psi\in\FL\phi} .

  1. Je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\comp\alpha\beta}\psi\in\FL\phi} , to

Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\bx\beta\psi\in\FL\phi} and Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\beta\psi\in\FL\phi} .

  1. Je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\alpha\star}\psi\in\FL\phi} , to

Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\bx{\alpha\star}\psi\in\FL\phi} .

Dla danej formuły ϕ oraz struktury Kripkego Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK = (K,\:\mg K)} definiujemy now± strukturę Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK/\FL\phi = \<K/\FL\phi,\:\umg{\frK/\FL\phi}\>} , zwan± filtracj± struktury Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK} przez Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \FL\phi} . Najpierw definiujemy binarn± relację w zbiorze stanów Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK} . Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle u \equiv v & } , gdy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle & \forall\psi\in\FL\phi\ (u\in\Mg K{\psi}\Iff v\in\Mg K{\psi}). } Innymi słowy utożsamiamy stany u oraz v je¶li s± one nierozróżnialne przez żadn± formułę ze zbioru Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \FL\phi} . Filtracja struktury jest zwykł± konstrukcj± ilorazow±. Niech

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle [u] &\eqdef& \set v{v \equiv u}\\ K/\FL\phi &\eqdef& \set{[u]}{u\in K}\\ \uMg{\frK/\FL\phi}p &\eqdef& \set{[u]}{u\in\Mg K p},\quad  }
 gdy p

jest zmienn± zdaniow± Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \\ \uMg{\frK/\FL\phi}a &\eqdef& \set{\<[u],[v]\>}{\<u,v\> \in \Mg K a},\quad } gdy a jest atomowym programem. Przekształcenie Parser nie mógł rozpoznać (nieznana funkcja „\umg”): {\displaystyle \displaystyle \umg{\frK/\FL\phi}} rozszerza się w zwykły sposób na wszystkie formuły i programy.

Następuj±cy lemat pokazuje zwi±zek pomiędzy strukturami Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK} oraz Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK/\FL\phi} . Główna trudno¶ć techniczna polega tu sformułowaniu poprawnego założenia indukcyjnego. Sam dowód (jednoczesna indukcja) jest zupełnie rutynowy i dlatego pozostawimy go Czytelnikowi jako ćwiczenie.

Lemat (o filtracji)

Niech u,v będ± stanami w strukturze Kripkego Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK} .

  1. Dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \psi\in\FL\phi} , mamy Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle u\in\Mg K\psi \ \Iff \ [u]\in\uMg{\frK/\FL\phi}\psi} .
  2. Dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\psi\in\FL\phi} zachodzi
    1. je¶li Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<u,v\>\in \Mg K\alpha} , to Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<[u],[v]\>\in \uMg{\frK/\FL\phi}\alpha} ;
    2. je¶li Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<[u],[v]\>\in \uMg{\frK/\FL\phi}\alpha} oraz Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle u\in\Mg K{\bx\alpha\psi}} , to Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle v\in\Mg K\psi} .

Z lematu o filtracji natychmiast dostajemy twierdzenie o małym modelu.

Twierdzenie (Własno¶ć małego modelu)

Niech ϕ będzie spełnialn± formuł± { PDL}. Wówczas ϕ jest spełniona w strukturze Kripkego maj±cej co najwyżej Parser nie mógł rozpoznać (nieznana funkcja „\len”): {\displaystyle \displaystyle 2^{\len{\phi}}} stanów.

Dowód

Je¶li ϕ jest spełnialna, to istnieje struktura Kripkego Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK} oraz stan Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle u\in\frK} , taki że Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle u\in\Mg K{\phi}} . Niech Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \FL\phi} będzie domknięciem Fischera-Ladnera formuły ϕ. Na mocy Lematu Uzupelnic filtration| o filtracji mamy Parser nie mógł rozpoznać (nieznana funkcja „\uMg”): {\displaystyle \displaystyle [u]\in\uMg{\frK/\FL\phi}{\phi}} . Ponadto Parser nie mógł rozpoznać (nieznana funkcja „\frK”): {\displaystyle \displaystyle \frK/\FL\phi} ma nie więcej stanów niż liczba warto¶ciowań przypisuj±cych warto¶ci logiczne formułom z Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \FL\phi} . Tych ostatnich jest, na mocy Lematu Uzupelnic lem-size|(i), co najwyżej Parser nie mógł rozpoznać (nieznana funkcja „\len”): {\displaystyle \displaystyle 2^{\len{\phi}}} .

Z powyższego twierdzenia natychmiast wynika rozstrzygalo¶ć problemu spełnialno¶ci dla formuł PDL. Naiwny algorytm polegaj±cy na przeszukiwaniu wszystkich struktur Kripkego o co najwyżej Parser nie mógł rozpoznać (nieznana funkcja „\len”): {\displaystyle \displaystyle 2^{\len\phi}} stanach ma złożono¶ć podwójnie wykładnicz± względem długo¶ci formuły. Używaj±c nieco sprytniejszej metody można rozstrzygn±ć problem spełnialno¶ci w czasie pojedynczo wykładniczym. Złożono¶ć ta jest najlepsza możliwa, można bowiem pokazać, że problem spełnialno¶ci dla PDL jest zupełny w deterministycznym czasie wykładniczym.

Aksjomatyzacja PDL

Podamy teraz system formalny dla PDL i naszkicujemy dowód jego pełno¶ci. Jest to system w stylu Hilberta.

Aksjomaty

(P0)
Aksjomaty logiki zdaniowej
(P1)
Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha(\phi\imp\psi)\ \ \imp\ \ (\bx\alpha\phi\imp\bx\alpha\psi)}
(P2)
Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha(\phi\meet\psi)\ \ \oto\ \ \bx\alpha\phi\meet\bx\alpha\psi}
(P3)
Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\alpha\cup\beta}\phi\ \ \oto\ \ \bx\alpha\phi\meet\bx\beta\phi}
(P4)
Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\comp\alpha\beta}\phi\ \ \oto\ \ \bx\alpha\bx\beta\phi}
(P5)
Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx{\psi?}\phi\ \ \oto\ \ (\psi\imp\phi)}
(P6)
Parser nie mógł rozpoznać (nieznana funkcja „\meet”): {\displaystyle \displaystyle \phi\meet\bx\alpha\bx{\alpha\star}\phi\ \ \oto\ \ \bx{\alpha\star}\phi}
(P7)

Parser nie mógł rozpoznać (nieznana funkcja „\meet”): {\displaystyle \displaystyle \phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)\ \ \imp\ \ \bx{\alpha\star}\phi} (aksjomat indukcji)

Reguły dowodzenia

(MP)
  Parser nie mógł rozpoznać (nieznana funkcja „\imp”): {\displaystyle \displaystyle \displaystyle\frac{\phi \quad \phi\imp\psi}{\psi}}
(GEN)
  Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \displaystyle\frac{\phi}{\bx\alpha\phi}}

Reguła (GEN) nazywana jest reguł± modalnej generalizacji. Je¶li ϕ daje się wyprowadzić w powyższym systemie poszerzonym o dodanie nowych aksjomatów ze zbioru Σ, to będziemy to zapisywać przez Σϕ. Jak zwykle piszemy ϕ, gdy Σ jest zbiorem pustym.

Fakt, że wszystkie aksjomaty s± tautologiami PDL wynika z Sekcji Uzupelnic ex-taut-pdl|. Pozostawimy Czytelnikowi sprawdzenie, że powyższe reguły zachowuj± własno¶ć bycia tautologi±. Tak więc każde twierdzenie powyższego systemu jest tautologi±. Naszkicujemy dowód twierdzenia odwrotnego, czyli tzw. twierdzenia o pełno¶ci dla PDL. Przypomnijmy, że zbiór formuł Σ jest sprzeczny, gdy Parser nie mógł rozpoznać (nieznana funkcja „\false”): {\displaystyle \displaystyle \Sigma\vdash\false} . W przeciwnym przypadku mówimy, że Σ jest niesprzeczny. W poniższym lemacie zebrane s± podstawowe własno¶ci zbiorów niesprzecznych potrzebne do dowodu twierdzenia o pełno¶ci.

Lemat

Niech Σ będzie zbiorem formuł { PDL}. Wówczas

  1. Σ jest niesprzeczny , gdy

Σ{ϕ} jest niesprzeczny lub Σ{¬ϕ} jest niesprzeczny;

  1. je¶li Σ jest niesprzeczny, to

Σ jest zawarty w maksymalnym niesprzecznym zbiorze formuł.

Ponadto, je¶li Σ jest maksymalnym niesprzecznym zbiorem formuł, to

{enumi}2
  1. Σ zawiera wszystkie twierdzenia

{ PDL};

  1. je¶li ϕΣ oraz

Parser nie mógł rozpoznać (nieznana funkcja „\imp”): {\displaystyle \displaystyle \phi\imp\psi\in\Sigma} , to ψΣ;

  1. Parser nie mógł rozpoznać (nieznana funkcja „\join”): {\displaystyle \displaystyle \phi\join\psi\in\Sigma} , gdy

ϕΣ lub ψΣ;

  1. Parser nie mógł rozpoznać (nieznana funkcja „\meet”): {\displaystyle \displaystyle \phi\meet\psi\in\Sigma} , gdy

ϕΣ oraz ψΣ;

  1. ϕΣ , gdy

¬ϕ∉Σ;

  1. Parser nie mógł rozpoznać (nieznana funkcja „\false”): {\displaystyle \displaystyle \false\not\in\Sigma} .

Z powyższego lematu natychmiast dostajemy następuj±c± własno¶ć.

Lemat

Niech Σ oraz Γ będ± maksymalnymi niesprzecznymi zbiorami formuł oraz niech α będzie dowolnym programem. Następuj±ce dwa warunki s± równoważne:

  1. Dla dowolnej formuły ψ, je¶li ψΓ, to

Parser nie mógł rozpoznać (nieznana funkcja „\d”): {\displaystyle \displaystyle \d\alpha\psi\in\Sigma} .

  1. Dla dowolnej formuły ψ, je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\psi\in\Sigma} , to

ψΓ.

Struktura, któr± za chwilę zbudujemy przy użyciu maksymalnych niesprzecznych zbiorów formuł nie będzie struktur± Kripkego z tego względu, że znaczeniem programu α nie będzie musiało być domknięcie przechodnie i zwrotne relacji wyznaczonej przez α. Spełnione będ± nieco słabsze własno¶ci, wystarczaj±ce jednak do przeprowadzenia dowodu twierdzenia o pełno¶ci.

Definicja

Niestandardow± struktur± Kripkego nazwiemy każd± strukturę Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN = (N,\mg N)} spełniaj±c± wszystkie warunki struktury Kripkego podane w definicjach Uzupelnic def-kripke1| oraz Uzupelnic def-kripke2| za wyj±tkiem warunku (Uzupelnic eqn-Mgdef6|). Zamiast tego warunku ż±damy, aby Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle \Mg N{\alpha\star}} było relacj± zwrotn± i przechodni±, zawierało relację Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle \Mg N{\alpha}} oraz spełniało aksjomaty (P6) i (P7). Tzn. zamiast warunku

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned \Mg N{\alpha\star} &\eqdef& \bigcup_{n\geq 0}\Mg N{\alpha}^n, \endaligned}

ż±damy, aby dla każdego programu α, relacja Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle \Mg N{\alpha\star}} była zwrotna, przechodnia, zawierała Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle \Mg N{\alpha}} oraz spełniała następuj±ce dwa warunki dla dowolnej formuły ϕ

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned \Mg N{\bx{\alpha\star}\phi} &= \Mg N{\phi\meet\bx{\comp\alpha{\alpha\star}}\phi}\\ \Mg N{\bx{\alpha\star}\phi} &= \Mg N{\phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)}. \endaligned}

Wracamy teraz do konstrukcji struktury z maksymalnych niesprzecznych zbiorów formuł. Zdefiniujemy niestandardow± strukturę Kripkego Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN = (N,\:\mg N)} następuj±co Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle N &\eqdef& \{ } maksymalne niesprzeczne zbiory formuł PDL Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \}\\ \Mg N \phi &\eqdef& \set{s}{\phi\in s}\\ \Mg N \alpha &\eqdef& \set{\<s,t\>}{ } dla wszystkich ϕ, je¶li ϕt, to Parser nie mógł rozpoznać (nieznana funkcja „\d”): {\displaystyle \displaystyle \d\alpha\phi\in s\displaystyle }\\ &= \set{\<s,t\>}{ } dla wszystkich ϕ, je¶li Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\phi\in s} , to Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \phi\in t\displaystyle }. } Z Lematu Uzupelnic lem-progmax| wynika, że obydwie definicje Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle \Mg N \alpha} s± równoważne. Dowód nastepuj±cego twierdzenia pozostawimy Czytelnikowi.

Twierdzenie

Struktura Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN} jest niestandardow± struktur± Kripkego.

Dowód

Fakt, że Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN} spełnia własno¶ci (Uzupelnic eqn-ns1|) oraz (Uzupelnic eqn-ns2|) wynika natychmiast z Lematu Uzupelnic lem-nsmaxconsis|{eqn-nsmaxconsis3a} oraz z aksjomatów (P6) i (P7). Sprawdzenie pozostałych warunków pozostawimy Czytelnikowi jako ćwiczenie.

Istotn± cech± niestandardowych struktur Kripkego jest to, że daje się przenie¶ć na nie lemat o filtracji (Lemat Uzupelnic filtration|).

Lemat (o filtracji dla niestandardowych struktur Kripkego)


Niech Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN} będzie niestandardow± struktur± Kripkego i niech u,v będ± stanami w Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN} .

  1. Dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\FL”): {\displaystyle \displaystyle \psi\in\FL\phi} , mamy Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle u\in\Mg N\psi \ \Iff \ [u]\in\uMg{\frN/\FL\phi}\psi} .
  2. Dla dowolnej formuły Parser nie mógł rozpoznać (nieznana funkcja „\bx”): {\displaystyle \displaystyle \bx\alpha\psi\in\FL\phi} zachodzi
    1. je¶li Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<u,v\>\in \Mg N\alpha} ,to Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<[u],[v]\>\in \uMg{\frN/\FL\phi}\alpha} ;
    2. je¶li Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \<[u],[v]\>\in \uMg{\frN/\FL\phi}\alpha} oraz Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle u\in\Mg N{\bx\alpha\psi}} , to Parser nie mógł rozpoznać (nieznana funkcja „\Mg”): {\displaystyle \displaystyle v\in\Mg N\psi} .

Dowód

Szczegóły dowodu tego lematu pomijamy, zachęcaj±c jednocze¶nie Czytelnika do spróbowania własnych sił. Różnica w dowodzie tego lematu w stosunku do dowodu Lematu Uzupelnic filtration| polega na tym, że w dowodze kroku indukcyjnego dla czę¶ci (ii) dla przypadku, gdy α jest programem postaci β wykorzystujemy jedynie własno¶ci (Uzupelnic eqn-ns1|) oraz (Uzupelnic eqn-ns2|), zamiast (Uzupelnic eqn-stdstardef|).

Możemy już teraz zakończyć dowód twierdzenia o pełno¶ci.

Twierdzenie (Pełno¶ć dla PDL)


Każda tautologia PDL jest twierdzeniem systemu: dla dowolnej formuły ϕ, je¶li ϕ, to ϕ.

Dowód

Rozumujemy przez sprzeczno¶ć. Je¶li ⊬ϕ, to {¬ϕ} jest zbiorem niesprzecznym. Zatem, na mocy Lematu Uzupelnic lem-nsmaxconsis|{eqn-nsmaxconsis2} istnieje maksymalny nesprzeczny zbiór u formuł PDL zawieraj±cy ¬ϕ. Na mocy lematu o filtracji dla niestandardowych struktur Kripkego (Lemat Uzupelnic filtration-2|) stwierdzamy, że ¬ϕ jest spełniona w stanie [u] skończonej struktury Parser nie mógł rozpoznać (nieznana funkcja „\frN”): {\displaystyle \displaystyle \frN/\FL\phi} . Łatwo jest zauważyć, że skończona niestandardowa struktura Kripkego jest zwykł± struktur± Kripkego (tzn. tak±, w której zachodzi (Uzupelnic eqn-stdstardef|)). Tak więc ϕ nie jest tautologi±. To kończy dowód twierdzenia o pełno¶ci.