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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Urzyczyn (dyskusja | edycje)
mNie podano opisu zmian
Urzyczyn (dyskusja | edycje)
mNie podano opisu zmian
Linia 433: Linia 433:
}}
}}


Z powyższego twierdzenia natychmiast wynika rozstrzygalość problemu
Z powyższego twierdzenia natychmiast wynika rozstrzygalność problemu
spełnialności dla formuł PDL. Naiwny algorytm polegający na
spełnialności dla formuł PDL. Naiwny algorytm polegający na
przeszukiwaniu wszystkich struktur Kripkego o co najwyżej
przeszukiwaniu wszystkich struktur Kripkego o co najwyżej

Wersja z 23:00, 30 paź 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 tej części pokażemy jedynie dwie podstawowe własności PDL: własność małego modelu oraz pełność aksjomatyzacji. 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))*.(14)

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. 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.

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 10.12

(i) Jeśli [α]ψFL(φ), to ψFL(φ).
(ii) Jeśli [ρ?]ψFL(φ), to ρFL(φ).
(iii) Jeśli [αβ]ψFL(φ), to [α]ψFL(φ) oraz [β]ψFL(φ).
(iv) Jeśli [α;β]ψFL(φ), to [α][β]ψFL(φ) oraz [β]ψFL(φ).
(v) Jeśli [α*]ψFL(φ), to [α][α*]ψFL(φ).


Dla danej formuły φ oraz struktury Kripkego 𝔎=(K,m𝔎) definiujemy nową strukturę 𝔎/FL(φ)=K/FL(φ),m𝔎/FL(φ), zwaną filtracją struktury 𝔎 przez FL(φ). Najpierw definiujemy binarną relację w zbiorze stanów 𝔎.

uv wtedy i tylko wtedy, gdy ψFL(φ)(um𝔎(ψ)vm𝔎(ψ)).

Innymi słowy, utożsamiamy stany u oraz v jeśli są one nierozróżnialne przez żadną formułę ze zbioru FL(ϕ). Filtracja struktury jest zwykłą konstrukcją ilorazową. Niech

[u] :={v|vu}
K/FL(φ) :={[u]|uK}
m𝔎/FL(φ)(p) :={[u]|um𝔎(p)}, gdy p jest zmienną losową
m𝔎/FL(φ)(a) :={[u],[v]|u,vm𝔎(a)}, gdy a jest atomowym programem.

Przekształcenie m𝔎/FL(φ) rozszerza się w zwykły sposób na wszystkie formuły i programy.

Następujący lemat pokazuje związek pomiędzy strukturami 𝔎 oraz 𝔎/FL(φ). Główna trudność techniczna polega tu na sformułowaniu poprawnego założenia indukcyjnego. Sam dowód (jednoczesna indukcja) jest zupełnie rutynowy i dlatego pozostawimy go Czytelnikowi jako ćwiczenie.

Lemat 10.13 (o filtracji)

Niech u,v będą stanami w strukturze Kripkego 𝔎.

(i) Dla dowolnej formuły ψFL(φ), mamy um𝔎(ψ) [u]m𝔎/FL(φ)(ψ).
(ii) Dla dowolnej formuły [α]ψFL(φ) zachodzi
(a) jeśli u,vm𝔎(α), to [u],[v]m𝔎/FL(φ)(α);
(a) jeśli [u],[v]m𝔎/FL(φ)(α) oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle u\in\mathrm{m}_{\mathfrak{K}([\alpha]\psi)} , to Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle v\in\mathrm{m}_{\mathfrak{K}(\psi)} .

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


Twierdzenie 10.14 (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 2|φ| stanów.

Dowód

Jeśli φ jest spełnialna, to istnieje struktura Kripkego 𝔎 oraz stan u𝔎, taki że um𝔎(φ). Niech FL(φ) będzie domknięciem Fischera-Ladnera formuły φ. Na mocy Lematu 10.13 o filtracji mamy [u]m𝔎/FL(φ)(φ). Ponadto 𝔎/FL(φ) ma nie więcej stanów niż liczba wartościowań przypisujących wartości logiczne formułom z FL(φ). Tych ostatnich jest, na mocy Lematu 10.10 (i), co najwyżej 2|φ|.

Z powyższego twierdzenia natychmiast wynika rozstrzygalność problemu spełnialności dla formuł PDL. Naiwny algorytm polegający na przeszukiwaniu wszystkich struktur Kripkego o co najwyżej 2|ϕ| 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

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P1) \ \ [\alpha](\varphi\to\psi)\ \ \to\ \ ([\alpha]\varphi\to[\alpha]\psi)}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P2) \ \ [\alpha](\varphi\wedge\psi)\ \ \leftrightarrow\ \ ([\alpha]\varphi\wedge[\alpha]\psi)}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P3) \ \ [\alpha\cup\beta]\varphi\ \ \leftrightarrow\ \ ([\alpha]\varphi\wedge[\beta]\varphi)}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P4) \ \ [\alpha;\beta]\varphi\ \ \leftrightarrow\ \ ([\alpha][\beta]\varphi}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P5) \ \ [\psi?]\varphi\ \ \leftrightarrow\ \ (\psi\to\varphi)}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P6) \ \ \varphi\wedge[\alpha][\alpha^*]\varphi\ \ \leftrightarrow\ \ [\alpha^*]\varphi}

Parser nie mógł rozpoznać (błąd składni): {\displaystyle (P7) \ \ \varphi\wedge[\alpha^*](\varphi\to[\alpha]\varphi)\ \ \to\ \ [\alpha^*]\varphi \ \ \ } (aksjomat indukcji)


Reguły dowodzenia

(MP)  φφψψ


(GEN)  φ[α]φ

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: Przykłady tautologii 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 Σ. 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 10.15

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

(i)    Σ jest niesprzeczny wtedy i tylko wtedy, gdy Σ{φ} jest niesprzeczny lub Σ{¬φ} jest niesprzeczny;

(ii) jeśli Σ jest niesprzeczny, to Σ jest zawarty w maksymalnym niesprzecznym zbiorze formuł.


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

(iii)  Σ zawiera wszystkie twierdzenia PDL;

(iv)   jeśli φΣ oraz φψΣ, to ψΣ;

(v)    φψΣ wtedy i tylko wtedy, gdy φΣ lub ψΣ;

(vi)   φψΣ wtedy i tylko wtedy, gdy φΣ oraz ψΣ;

(vii)  φΣ wtedy i tylko wtedy, gdy ¬φ∉Σ;

(viii) ∉Σ.

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

Lemat 10.16

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

(a) Dla dowolnej formuły ψ, jeśli ψΓ, to αψΣ.
(b) Dla dowolnej formuły ψ, jeśli [α]ψΣ, 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 10.17

Niestandardową strukturą Kripkego nazwiemy każdą strukturę 𝔑=(N,m𝔑) spełniającą wszystkie warunki struktury Kripkego podane w definicjach 10.2 oraz 10.3 za wyjątkiem warunku (14). Zamiast tego warunku żądamy, aby m𝔑(α*) było relacją zwrotną i przechodnią, zawierało relację m𝔑(α) oraz spełniało aksjomaty (P6)(P7). Tzn. zamiast warunku

m𝔑(α*):=n0m𝔑(α)n,(15)

żądamy, aby dla każdego programu α, relacja m𝔑(α*) była zwrotna, przechodnia, zawierała m𝔑(α) oraz spełniała następujące dwa warunki dla dowolnej formuły φ

m𝔑([α*]φ)=m𝔑(φ[α;α*]φ)(16)


m𝔑([α*]φ)=m𝔑(φ[α*](φ[α]φ)).(17)


Wracamy teraz do konstrukcji struktury z maksymalnych niesprzecznych zbiorów formuł. Zdefiniujemy niestandardową strukturę Kripkego 𝔑=(N,m𝔑) następująco

N :={ maksymalnie niesprzeczne zbiory formuł PDL }
m𝔑(φ) :={s|φs}
m𝔑(α) :={s,t| dla wszystkich φ, jeśli φt, to αφs}
:={s,t| dla wszystkich φ, jeśli [α]φs, to φt}


Z Lematu Lematu 10.16 wynika, że obydwie definicje m𝔑(α) są równoważne. Dowód nastepującego twierdzenia pozostawimy Czytelnikowi.

Twierdzenie 10.18

Struktura 𝔑 jest niestandardową strukturą Kripkego.

Dowód

Fakt, że 𝔑 spełnia własności (16) oraz (17) wynika natychmiast z Lematu 10.15 (iii) 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 10.13).


Lemat 10.19 (o filtracji dla niestandardowych struktur Kripkego)

Niech 𝔑 będzie niestandardową strukturą Kripkego i niech u,v będą stanami w 𝔑.

(i) Dla dowolnej formuły ψFL(φ), mamy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle u\in \mathrm{m}_{\mathfrak{N}}(\psi) \ \iff \ [u]\in \mathrm{m}_{\mathfrak{N}/FL(\varphi)}(\psi)} .
(ii) Dla dowolnej formuły [α]ψFL(φ) zachodzi
(a) jeśli u,vm𝔑(α), to [u],[v]m𝔑/FL(φ)(α);
(b) jeśli [u],[v]m𝔑/FL(φ)(α) oraz um𝔑([α]ψ) to vm𝔑(ψ).

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 10.13 polega na tym, że w dowodze kroku indukcyjnego dla części (ii) dla przypadku, gdy α jest programem postaci β* wykorzystujemy jedynie własności (16) oraz (17), zamiast (15).

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

Twierdzenie 10.20 (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 10.15 (ii) istnieje maksymalny niesprzeczny zbiór u formuł PDL zawierający ¬φ. Na mocy lematu o filtracji dla niestandardowych struktur Kripkego (Lemat 10.19) stwierdzamy, że ¬φ jest spełniona w stanie [u] skończonej struktury 𝔑/FL(φ). Łatwo jest zauważyć, że skończona niestandardowa struktura Kripkego jest zwykłą strukturą Kripkego (tzn. taką, w której zachodzi (15)). Tak więc φ nie jest tautologią. To kończy dowód twierdzenia o pełności.