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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemo (dyskusja | edycje)
Nie podano opisu zmian
 
m Zastępowanie tekstu – „.↵</math>” na „</math>”
 
(Nie pokazano 320 wersji utworzonych przez 4 użytkowników)
Linia 6: Linia 6:
pozwalającym badać rozumowania dotyczące programów
pozwalającym badać rozumowania dotyczące programów
iteracyjnych. Formalizm ten rozszerza logikę modalną poprzez
iteracyjnych. Formalizm ten rozszerza logikę modalną poprzez
wprowadzenie modalności dla każdego programu z osobna. W części tej
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
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
oraz pełność aksjomatyzacji. Z własności
małego modelu natychmiast wynika rozstrzygalność problemu
małego modelu natychmiast wynika rozstrzygalność problemu
spełnialności dla PDL. System o podobnym charakterze, o nazwie
spełnialności dla PDL. System o podobnym charakterze, o nazwie
Linia 19: Linia 19:
logiki zdaniowej, logiki modalnej oraz algebry wyrażeń
logiki zdaniowej, logiki modalnej oraz algebry wyrażeń
regularnych. Język PDL zawiera wyrażenia dwóch rodzajów:
regularnych. Język PDL zawiera wyrażenia dwóch rodzajów:
''zdania'' (lub formuły) <math>\displaystyle \phi,\psi,\ldots</math> oraz
''zdania'' (lub formuły) <math>\varphi,\psi,\ldots</math> oraz
''programy'' <math>\displaystyle \alpha,\beta,\gamma,\ldots</math>. Zakładamy, że mamy do
''programy'' <math>\alpha,\beta,\gamma,\ldots</math>. Zakładamy, że mamy do
dyspozycji przeliczalnie wiele atomowych symboli każdego
dyspozycji przeliczalnie wiele atomowych symboli każdego
rodzaju. ''Programy atomowe'' są oznaczane przez <math>\displaystyle a,b,c,\ldots</math>,
rodzaju. ''Programy atomowe'' są oznaczane przez <math>a,b,c,\ldots</math>,
a zbiór wszystkich atomowych programów oznaczamy przez
a zbiór wszystkich atomowych programów oznaczamy przez
<math>\displaystyle \Pi_0</math>.  
<math>\Pi_0</math>.  


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


<center><math>\displaystyle \bx\alpha\phi
<center><math>[\alpha]\varphi
</math></center>
</math></center>


czytamy "po (każdym) wykonaniu programu <math>\displaystyle \alpha</math> koniecznie musi
czytamy "po (każdym) wykonaniu programu <math>\alpha</math> koniecznie musi
zajść <math>\displaystyle \phi</math>".
zajść <math>\varphi</math>".


{{definicja|||
{{definicja|10.1||


Definicja formuł i programów jest wzajemnie rekurencyjna. Definiujemy
Definicja formuł i programów jest wzajemnie rekurencyjna. Definiujemy
zbiór programów <math>\displaystyle \Pi</math> oraz zbiór formuł <math>\displaystyle \Phi</math> jako najmniejsze zbiory
zbiór programów <math>\Pi</math> oraz zbiór formuł <math>\Phi</math> jako najmniejsze zbiory
spełniaj±ce następuj±ce warunki
spełniające następujące warunki
* <math>\displaystyle \zmz\subs\Phi</math>  
* <math>ZZ\subseteq\Phi</math>  
* <math>\displaystyle \Pi_0\subs\Pi</math>
* <math>\Pi_0\subseteq\Pi</math>
* je¶li <math>\displaystyle \phi,\psi\in\Phi</math>, to <math>\displaystyle \phi\imp\psi\in\Phi</math> oraz
* jeśli <math>\varphi,\psi\in\Phi</math>, to <math>\varphi\to\psi\in\Phi</math> oraz <math>\bot\in\Phi</math>
<math>\displaystyle \false\in\Phi</math>
* jeśli <math>\alpha,\beta\in \Pi</math>, to <math>(\alpha;\beta)</math>,<math>(\alpha\cup\beta)</math>, oraz <math>\alpha^*\in\Pi</math>
* je¶li <math>\displaystyle \alpha,\beta\in \Pi</math>, to <math>\displaystyle (\alpha;\beta)</math>,
* jeśli <math>\alpha\in\Pi</math> oraz <math>\varphi\in\Phi</math>, to <math>[\alpha]\varphi\in\Phi</math>
<math>\displaystyle (\alpha\cup\beta)</math>, oraz <math>\displaystyle \alpha\star\in\Pi</math>
* jeśli <math>\varphi\in\Phi</math>, to <math>\varphi?\in\Pi</math>.
* je¶li <math>\displaystyle \alpha\in\Pi</math>  
oraz <math>\displaystyle \phi\in\Phi</math>, to <math>\displaystyle \bx\alpha\phi\in\Phi</math>
* je¶li <math>\displaystyle \phi\in\Phi</math>, to <math>\displaystyle \phi?\in\Pi.</math>
   
   
}}
}}
 
Aby uniknąć pisania zbyt wielu nawiasów, stosujemy następujące
Aby unikn±ć pisania zbyt wielu nawiasów stosujemy następuj±ce
priorytety:
priorytety:
* Jednoargumentowe operatory (wliczaj±c <math>\displaystyle \bx\alpha</math>) wi±ż± silniej
* Jednoargumentowe operatory (wliczając <math>[\alpha]</math> ) wiążą silniej niż dwuargumentowe.
niż dwuargumentowe.
* Operator <math>;</math> wiąże silniej niż <math>\cup</math>.
* Operator <math>\displaystyle ;</math> wi±że silniej niż <math>\displaystyle \cup</math>.
* Spójniki logiczne mają takie same priorytety jak zdefiniowano wcześniej.
* Spójniki logiczne maj± takie same priorytety jak zdefiniowano
wcze¶niej.
   
   
Tak więc wyrażenie
Tak więc wyrażenie


<center><math>\displaystyle \bx{\alpha;\beta\star \cup \gamma\star}\phi\join\psi
<center><math>[\alpha;\beta^* \cup \gamma^*]\varphi\vee\psi
</math></center>
</math></center>


odpowiada następuj±cemu wyrażeniu z nawiasami
odpowiada następującemu wyrażeniu z nawiasami


<center><math>\displaystyle (\bx{(\alpha;\beta\star)\cup\gamma\star}\phi)\join\psi.
<center><math>([(\alpha;\beta^*)\cup\gamma^*]\varphi)\vee\psi</math></center>
</math></center>


Ponieważ operatory <math>\displaystyle ;</math> oraz <math>\displaystyle \cup</math> okaż± się być ł±czne, więc zwyczajowo
Ponieważ operatory <math>;</math> oraz <math>\cup</math> okażą się być łączne, więc zwyczajowo będziemy opuszczać nawiasy w wyrażeniach typu <math>\alpha;\beta;\gamma</math>
będziemy opuszczać nawiasy w wyrażeniach typu <math>\displaystyle \alpha;\beta;\gamma</math>
lub <math>\alpha\cup\beta\cup\gamma</math>.
lub <math>\displaystyle \alpha\cup\beta\cup\gamma</math>.


Przypomnijmy, żę negacja <math>\displaystyle \neg\phi</math> jest skrótem formuły
Przypomnijmy, że negacja <math>\neg\varphi</math> jest skrótem formuły
<math>\displaystyle \phi\arr\false</math>. Dualnie do <math>\displaystyle \bx{\,}</math>
<math>\varphi\to\bot</math>. Dualnie do [ ] definiujemy ''modalność możliwości''  
definiujemy ''modalno¶ć możliwo¶ci''  
<center><math>\langle\alpha\rangle\varphi := \neg[\alpha]\neg\varphi</math></center>
<math>\displaystyle \d\alpha\phi &\eqdef& \neg\bx{\alpha}\neg\phi.  </math> Zdanie
Zdanie <math>\langle\alpha\rangle\varphi</math> czytamy "istnieje obliczenie programu <math>\alpha</math>, które zatrzymuje się w stanie spełniającym formułę <math>\varphi</math>". Istotną różnicą pomiędzy modalnościami [ ] i <math>\langle \rangle</math> jest to, że <math>\langle\alpha\rangle\varphi</math> implikuje iż program <math>\alpha</math> się zatrzymuje, podczas gdy <math>\left [\alpha\right ]\varphi</math> nie gwarantuje zatrzymania się programu <math>\alpha</math>. W szczególności formuła <math>[\alpha]\bot</math> wyraża własność mówiącą, że żadne obliczenie programu <math>\alpha</math> nie zatrzymuje się. Natomiast
<math>\displaystyle \d\alpha\phi</math> czytamy "istnieje obliczenie programu <math>\displaystyle \alpha</math>, które
formuła <math>\langle\alpha\rangle\bot</math> jest zawsze fałszywa.
zatrzymuje się w stanie spełniaj±cym formułę <math>\displaystyle \phi</math>". Istotn± różnic±
pomiędzy modalno¶ciami <math>\displaystyle \bx{\,}</math> i <math>\displaystyle \d{\,}</math> jest to, że <math>\displaystyle \d\alpha\phi</math>
implikuje iż program <math>\displaystyle \alpha</math> się zatrzymuje, podczas gdy
<math>\displaystyle \bx\alpha\phi</math> nie gwarantuje zatrzymania się programu <math>\displaystyle \alpha</math>. W
szczególno¶ci formuła <math>\displaystyle \bx\alpha\false</math> wyraża własno¶ć mówi±c±, że
żadne obliczenie programu <math>\displaystyle \alpha</math> nie zatrzymuje się. Natomiast
formuła <math>\displaystyle \d\alpha\false</math> jest zawsze fałszywa.


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


{{definicja|||
{{definicja|10.2|def10.2|


''Struktura Kripkego'' jest uporz±dkowan± par± <math>\displaystyle \frK = \<K,\: \mg K\></math>,  
''Struktura Kripkego'' jest uporządkowaną parą <math>\mathfrak{K} = \langle K,\mathrm{m}_{\mathfrak{K}\rangle</math>, gdzie <math>K</math> jest zbiorem elementów <math>u,v,w,\ldots</math> zwanych ''stanami'', a <math>\mathrm{m}_{\mathfrak{K}</math> jest funkcją przyporządkowującą każdemu atomowemu zdaniu <math>p\in ZZ</math>, podzbiór <math>{\mathrm{m}_{\mathfrak{K}}(p)\subseteq K</math> oraz każdemu atomowemu programowi <math>a\in\Pi_0</math> relację binarną <math>{\mathrm{m}_{\mathfrak{K}}(a)\subseteq K\times K</math>.
gdzie <math>\displaystyle K</math> jest zbiorem elementów <math>\displaystyle u,v,w,\ldots</math> zwanych
''stanami'', a <math>\displaystyle \mg K</math> jest funkcj± przyporz±dkowuj±c± każdemu
atomowemu zdaniu <math>\displaystyle p\in\zmz</math>, podzbiór <math>\displaystyle \mg K(p)\subs K</math> oraz każdemu
atomowemu programowi <math>\displaystyle a\in\Pi_0</math>, relację binarn± <math>\displaystyle \mg K(a)\subs
K\times K</math>.
}}
}}


Poniżej funkcję <math>\displaystyle \mg K</math> rozszerzymy do dowolnych formuł i dowolnych
Poniżej funkcję <math>\mathrm{m}_{\mathfrak{K}</math> rozszerzymy do dowolnych formuł i dowolnych programów. Intuicyjnie dla formuły <math>\varphi</math>, zbiór stanów <math>{\mathrm{m}_{\mathfrak{K}}(\vrphi)</math>
programów. Intuicyjnie dla formuły <math>\displaystyle \phi</math>, zbiór stanów <math>\displaystyle \mg K(\phi)</math>
jest zbiorem wszystkich stanów struktury <math>\mathfrak{K}</math>, w których <math>\varphi</math> jest spełniona. Natomiast dla programu <math>\alpha</math>, relacja <math>{\mathrm{m}_{\mathfrak{K}}(\alpha)</math> jest
jest zbiorem wszystkich stanów struktury <math>\displaystyle \frK</math>, w których <math>\displaystyle \phi</math> jest
tzw. relacją wejścia-wyjścia programu&nbsp;<math>\alpha</math> w strukturze <math>\mathfrak{K}</math>.
spełniona. Natomiast dla programu <math>\displaystyle \alpha</math>, relacja <math>\displaystyle \mg K(\alpha)</math> jest
tzw. relacj± wej¶cia-wyj¶cia programu&nbsp;<math>\displaystyle \alpha</math> w strukturze <math>\displaystyle \frK</math>.
 
{{definicja|||
 
<center><math>\displaystyle \aligned \Mg K{\phi\imp\psi} &\eqdef& (K-\Mg K \phi)\cup\Mg K \psi\nonumber\\
\Mg K{\false} &\eqdef& \emptyset\nonumber\\ \Mg K{\bx\alpha\phi}
&\eqdef& \set
u {\forall v\in K(\<u,v\>\in \Mg K\alpha \To v\in\Mg K \phi)}
\nonumber\\ \Mg K{\alpha;\beta} &\eqdef&
\set{\<u,v\>}{\exists w\in K(\<u,w\>\in \Mg K \alpha \wedge
\<w,v\>\in \Mg K
\beta)}\nonumber\\ \Mg K{\alpha\cup\beta} &\eqdef& \Mg K \alpha\cup \Mg
K \beta\nonumber\\ \Mg K{\alpha\star} &\eqdef& \ \bigcup_{n\geq 0} \Mg K \alpha^n\nonumber\\ \Mg K{\phi?}
&\eqdef& \set{\<u,u\>}{u\in\Mg K \phi}.\nonumber
\endaligned</math></center>


{{definicja|10.3|def10.3|
}}
}}
<center>
{| border="0" cellpadding="0" cellspacing="5"
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\varphi\to\psi)</math> 
|<math>:= (K-{\mathrm{m}_\mathfrak{K}}(\varphi)\cup{\mathrm{m}_\mathfrak{K}}(\psi)</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\bot)</math>
|<math>\ := \emptyset</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}([\alpha]\varphi)</math>
|<math>\ := \left\{u| \forall v\in K(\langle u,v\rangle\in {\mathrm{m}_\mathfrak{K}}(\alpha) \Rightarrow v\in{\mathrm{m}_\mathfrak{K}}(\varphi))\right\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\alpha;\beta)</math>
|<math>:= \left\{\langle u,v\rangle | \exists w\in K(\langle u,v\rangle\in {\mathrm{m}_\mathfrak{K}}(\alpha) \wedge \langle w,v\rangle\in {\mathrm{m}_\mathfrak{K}}(\beta))\right\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\alpha\cup\beta)</math>
|<math>:= {\mathrm{m}_\mathfrak{K}}(\alpha)\cup{\mathrm{m}_\mathfrak{K}}(\beta)</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\alpha^*)</math>
|<math>:=\bigcup_{n \geq 0}{\mathrm{m}_\mathfrak{K}}(\alpha)^n</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(\varphi?)</math>
|<math>:= \left\{\langle u,v\rangle | u \in {\mathrm{m}_\mathfrak{K}}(\varphi)\right}</math>.
|}
</center>


{{definicja|||
{{definicja|10.4||


Powiemy, że formuła <math>\displaystyle \phi</math> jest ''spełniona'' w stanie <math>\displaystyle u</math>
Powiemy, że formuła <math>\varphi</math> jest ''spełniona'' w stanie <math>u</math> struktury <math>\mathfrak{K}</math>, gdy <math>u \in {\mathrm{m}_\mathfrak{K}}(\varphi)</math>. Podobnie jak w logice
struktury <math>\displaystyle \frK</math>, gdy <math>\displaystyle u\in\Mg K\phi</math>. Podobnie jak w logice
pierwszego rzędu spełnianie zapisujemy następująco <math>(\mathfrak{K},u) \vDash
pierwszego rzędu spełnianie zapisujemy następuj±co <math>\displaystyle \sat \frK
\varphi</math>. Gdy z kontekstu wynika o jaką strukturę chodzi, to możemy po
u\phi</math>. Gdy z kontekstu wynika o jak± strukturę chodzi, to możemy po
prostu pisać <math>u\vDash\varphi</math>.
prostu pisać <math>\displaystyle u\models\phi</math>.


Powiemy, że formuła <math>\displaystyle \phi</math> jest ''prawdziwa'' w strukturze
Powiemy, że formuła <math>\varphi</math> jest ''prawdziwa'' w strukturze
<math>\displaystyle \frK</math>, gdy jest spełniona w każdym stanie tej struktury. Zapisujemy
<math>\mathfrak{K}</math>, gdy jest spełniona w każdym stanie tej struktury. Zapisujemy
to <math>\displaystyle \frK\models\phi</math>. Formuła <math>\displaystyle \phi</math> jest ''tautologi±'' PDL, gdy
to <math>\mathfrak{K}\vDash\varphi</math>. Formuła <math>\varphi</math> jest ''tautologią'' PDL, gdy jest ona prawdziwa w każdej strukturze Kripkego. Wreszcie powiemy, że
jest ona prawdziwa w każdej strukturze Kripkego. Wreszcie powiemy, że
formuła <math>\varphi</math> jest ''spełnialna'', gdy istnieje struktura
formuła <math>\displaystyle \phi</math> jest ''spełnialna'', gdy istnieje struktura
Kripkego <math>\mathfrak{K}</math>, taka że <math>\varphi</math> jest spełniona w przynajmniej jednym stanie <math>\mathfrak{K}</math>.
Kripkego <math>\displaystyle \frK</math>, taka że <math>\displaystyle \phi</math> jest spełniona w przynajmniej jednym
stanie <math>\displaystyle \frK</math>.
}}
}}


{{przyklad|||
{{przyklad|10.5||
}}
Niech <math>p</math> będzie zmienną zdaniową oraz niech <math>a</math> będzie atomowym programem. Niech <math>\mathfrak{K} = (K,\mathrm{m}_\mathfrak{K})</math> będzie taką strukturą Kripkego, że
<center>
{| border="0" cellpadding="0" cellspacing="5"
|-
|<math>K</math>
|<math>= \left\{u,v,w\right\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(p)</math>
|<math>= \left\{u,v\right\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(a)</math>
|<math>= \left\{\langle u,v \rangle,\langle u,w \rangle,\langle v,w \rangle,\langle w,v \rangle\right\}</math>.
|}
</center>


Niech <math>\displaystyle p</math> będzie zmienn± zdaniow± oraz niech <math>\displaystyle a</math> będzie atomowym
Nastepujący diagram ilustruje <math>\mathfrak{K}</math>.
programem. Niech <math>\displaystyle \frK = (K,\:\mg K)</math> będzie tak± struktur± Kripkego, że
[[Image:Przykład105.PNG|250px|center]]
<math>\displaystyle K &= \{u,v,w\}\\ \Mg K p &= \{u,v\}\\ \Mg K
a &= \{\<u,v\>,\<u,w\>,\<v,w\>,\<w,v\>\}</math> Nastepuj±cy diagram ilustruje
<math>\displaystyle \frK</math>.
   
   
(0,75)(30,-15)
W tej strukturze mamy <math>u\vDash\langle a\rangle\neg p\wedge\langle a \rangle p</math>, ale <math>v\vDash[a]\neg p</math> oraz <math>w\vDash[a]p</math>. Ponadto każdy stan struktury <math>\mathfrak{K}</math> spełnia następującą formułę
(0,0){{4}} (60,0){{4}}
 
(30,40){{4}} (-2,-2){(0,0)[tr]{<math>\displaystyle u</math>}}
<center><math>\langle a^* \rangle[(aa)^*]p \wedge \langle a^* \rangle[(aa)^*]\neg p</math></center>.
(62,-2){(0,0)[tl]{<math>\displaystyle v</math>}} (30,45){(0,0)[b]{<math>\displaystyle w</math>}}
{{przyklad|10.6||
(30,0){(90,30)} (85,0){(0,0)[t]{<math>\displaystyle p</math>}}
(0,0){(3,4){30}} (0,0){(1,0){60}}
(60,0){(-3,4){30}} (60,0){(3,-4){0}}
(30,-3){(0,0)[t]{<math>\displaystyle a</math>}} (13,22){(0,0)[br]{<math>\displaystyle a</math>}}
(47,22){(0,0)[bl]{<math>\displaystyle a</math>}}
W tej strukturze mamy <math>\displaystyle u\models\d a\neg p\meet\d a p</math>, ale
<math>\displaystyle v\models\bx a\neg p</math> oraz <math>\displaystyle w\models\bx a p</math>. Ponadto każdy stan
struktury <math>\displaystyle \frK</math> spełnia następuj±c± formułę <math>\displaystyle \d{a\star}\bx{(aa)\star}p \meet \d{a\star}\bx{(aa)\star}\neg p</math>  
}}
}}
Niech <math>p,q</math> będą zmiennymi zdaniowymi i niech <math>a,b</math> będą atomowymi programami. Ponadto niech <math>\mathfrak{K} = (K,\mathrm{m}_\mathfrak{K})</math> będzie strukturą Kripkego
zdefiniowaną następująco
<center>
{| border="0" cellpadding="0" cellspacing="5"
|-
|<math>K</math>
|<math>=\left\{s,t,u,v\right\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(p)</math>
|<math>=\{u,v\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(q)</math>
|<math>=\{t,v\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(a)</math>
|<math>=\{\langle t,v\rangle,\langle v,t\rangle,\langle s,u\rangle,\langle u,s\rangle\}</math>
|-
|<math>{\mathrm{m}_\mathfrak{K}}(b)</math>
|<math>=\{\langle u,v\rangle,\langle v,u\rangle,\langle s,t\rangle,\langle t,s\rangle\}</math>
|}
</center>


{{przyklad|||
Następujący rysunek ilustruje <math>\mathfrak{K}</math>.
[[Image:przykład106.PNG|250px|center]]
Następujące formuły są prawdziwe w <math>\mathfrak{K}</math>.


Niech <math>\displaystyle p,q</math> będ± zmiennymi zdaniowymi i niech <math>\displaystyle a,b</math> będ± atomowymi
<center><math>
programami. Ponadto niech <math>\displaystyle \frK = (K,\mg K)</math> będzie struktur± Kripkego
p \leftrightarrow [(ab^*a)^*]p
zdefiniowan± następuj±co  <math>\displaystyle K &= \{s,t,u,v\}\\ \Mg K p &= \{u,v\}\\
</math></center>
\Mg K q &= \{t,v\}\\ \Mg K a &= \{\<t,v\>,\<v,t\>,\<s,u\>,\<u,s\>\}\\ \Mg K
<center><math>
b &= \{\<u,v\>,\<v,u\>,\<s,t\>,\<t,s\>\}.  </math> Następuj±cy rysunek ilustruje
q \leftrightarrow [(ba^*b)^*]q</math></center>
<math>\displaystyle \frK</math>.
Ponadto niech <math>\alpha</math> będzie programem
{{kotwica|war14|}}
(0,85)(25,-13)
<center><math>\alpha = (aa\cup bb\cup(ab\cup ba)(aa\cup bb)^*(ab\cup
(0,0){{4}} (0,50){{4}}
ba))^*.\qquad\qquad\qquad (14)
(50,0){{4}} (50,50){{4}}
</math></center>
(-2,-2){(0,0)[tr]{<math>\displaystyle u</math>}}
(-2,52){(0,0)[br]{<math>\displaystyle s</math>}}
(52,-2){(0,0)[tl]{<math>\displaystyle v</math>}}
(52,52){(0,0)[bl]{<math>\displaystyle t</math>}} (50,25){(30,75)}
(25,0){(75,30)} (72,40){(0,0)[l]{<math>\displaystyle q</math>}}
(-18,0){(0,0)[r]{<math>\displaystyle p</math>}} (0,50){(0,-1){50}}
(0,50){(1,0){50}} (0,0){(1,0){50}}
(0,0){(0,1){50}} (50,0){(0,1){50}}
(50,0){(-1,0){50}} (50,50){(-1,0){50}}
(50,50){(0,-1){50}} (25,-3){(0,0)[t]{<math>\displaystyle b</math>}}
(25,53){(0,0)[b]{<math>\displaystyle b</math>}} (-3,25){(0,0)[r]{<math>\displaystyle a</math>}}
(53,25){(0,0)[l]{<math>\displaystyle a</math>}}
Następuj±ce formuły s± prawdziwe w <math>\displaystyle \frK</math>.  <math>\displaystyle p &\oto& \bx{(ab\star
a)\star}p\\ q &\oto& \bx{(ba\star b)\star}q.  </math> Ponadto niech
<math>\displaystyle \alpha</math> będzie programem


<center><math>\displaystyle \aligned \alpha &= (aa\cup bb\cup(ab\cup ba)(aa\cup bb)\star(ab\cup
Program <math>\alpha</math> traktowany jako wyrażenie regularne,  
ba))\star.
generuje wszystkie słowa nad alfabetem <math>\{a,b\}</math> o parzystej liczbie
\endaligned</math></center>
wystąpień <math>a</math> oraz <math>b</math>. Można pokazać, że dla dowolnego zdania <math>\varphi</math>, formuła <math>\varphi\leftrightarrow[\alpha]\varphi</math> jest prawdziwa w <math>\mathfrak{K}</math>.
 
Zauważmy, że operator <math>^*</math> jest z natury infinitarny. Z definicji
Program <math>\displaystyle \alpha</math> traktowany jako wyrażenie regularne,  
domknięcie zwrotne i przechodnie relacji jest nieskończoną sumą. Z
generuje wszystkie słowa nad alfabetem <math>\displaystyle \{a,b\}</math> o parzystej liczbie
tego względu twierdzenie o zwartości nie zachodzi dla PDL. Istotnie,
wyst±pień <math>\displaystyle a</math> oraz <math>\displaystyle b</math>. Można pokazać, że dla dowolnego zdania <math>\displaystyle \phi</math>,
formuła <math>\displaystyle \phi\oto\bx\alpha\phi</math> jest prawdziwa w <math>\displaystyle \frK</math>.
}}
 
Zauważmy, że operator <math>\displaystyle \star</math> 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
zbiór


<center><math>\displaystyle \aligned \{\d{\alpha\star}\phi\} &\cup& \{\neg\phi,\ \neg\d\alpha\phi,\
<center><math>\{\langle\alpha^*\rangle\varphi\} \cup \{\neg\varphi, \neg\langle\alpha\rangle\varphi,
\neg\d{\alpha^2}\phi,\ \ldots\}  
\neg\langle\alpha^2\rangle\varphi, \ldots\}  
\endaligned</math></center>
</math></center>


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


===Przykłady tautologii PDL===
===Przykłady tautologii PDL===  


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


{{twierdzenie|||
{{twierdzenie|10.7|twier10.7|
 
Następujące formuły są tautologiami PDL.
:<math>(i)\ \ \ \ \ \langle \alpha\rangle(\varphi\vee\psi) \ \ \leftrightarrow\ \ \langle \alpha\rangle\varphi\vee\langle\alpha\rangle\psi</math>
:<math>(ii)\ \ \ \ [\alpha](\varphi\wedge\psi) \ \ \leftrightarrow\ \ [\alpha]\varphi\wedge[\alpha]\psi</math>
:<math>(iii)\ \ \ [\alpha](\varphi\rightarrow\psi) \ \ \rightarrow\ \
([\alpha]\varphi\rightarrow[\alpha]\psi)</math>
:<math>(iv)\ \ \ \langle \alpha\rangle(\varphi\wedge\psi) \ \ \rightarrow\ \ \langle \alpha\rangle\varphi\wedge\langle \alpha\rangle\psi</math>
:<math>(v)\ \ \ \ [\alpha]\varphi\vee [\alpha]\psi\ \ \rightarrow\ \ [\alpha](\varphi\vee\psi)</math>
:<math>(vi)\ \ \ \langle\alpha\rangle \bot \ \ \leftrightarrow\ \ \ \bot</math>
:<math>(vii)\ \ \ [\alpha]\varphi \ \ \leftrightarrow\ \ \
\neg\langle\alpha\rangle\neg\varphi</math>.
}}
Implikacje odwrotne w [[#twier10.7|Twierdzeniu 10.7]] <math>(iii) - (v)</math> nie zachodzą. Przykładowo implikacja odwrotna do <math>(iv)</math> nie jest spełniona w stanie <math>u</math> następującej struktury Kripkego.


Następuj±ce formuły s± tautologiami { PDL}.
[[Image:Przykład107.PNG|250px|center]]
# <math>\displaystyle \d \alpha (\phi\join\psi) \ \ \oto\ \ \d \alpha\phi\join\d
\alpha \psi</math>
# <math>\displaystyle \bx \alpha (\phi\meet\psi) \ \ \oto\ \ \bx \alpha\phi\meet\bx
\alpha\psi</math>
# <math>\displaystyle \bx\alpha(\phi\imp\psi) \ \ \imp\ \
(\bx\alpha\phi\imp\bx\alpha\psi)</math>
# <math>\displaystyle \d \alpha(\phi\meet\psi) \ \ \imp\ \ \d \alpha\phi\meet\d
\alpha\psi</math>
# <math>\displaystyle \bx \alpha\phi\join\bx \alpha\psi\ \ \imp\ \ \bx
\alpha(\phi\join\psi)</math>
# <math>\displaystyle \d \alpha \false \ \ \oto\ \ \ \false</math>
# <math>\displaystyle \bx\alpha\phi \ \ \oto\ \ \
\neg\d\alpha\neg\phi</math>.
}}


Implikacje odwrotne w
Twierdzeniu&nbsp;[[##thm-PDLmodal1|Uzupelnic thm-PDLmodal1|]]{eqn-PDLmodal1-4}--{eqn-PDLmodal1-6}
nie zachodz±. Przykładowo implikacja odwrotna do
{eqn-PDLmodal1-5} nie jest spełniona w stanie <math>\displaystyle u</math> następuj±cej
struktury Kripkego.
(0,40)(40,0)
(0,20){{4}} (-5,20){(0,0)[r]{<math>\displaystyle u</math>}}
(0,20){(2,1){40}} (0,20){(2,-1){40}}
(40,40){{4}} (40,0){{4}}
(45,40){(0,0)[l]{<math>\displaystyle \phi\meet\neg\psi</math>}}
(45,0){(0,0)[l]{<math>\displaystyle \psi\meet\neg\phi</math>}}
Następna grupa tautologii, specyficzna dla PDL, dotyczy spójników
Następna grupa tautologii, specyficzna dla PDL, dotyczy spójników
programotwórczych <math>\displaystyle ;</math> i <math>\displaystyle \cup</math> oraz testu <math>\displaystyle ?</math>.
programotwórczych <math>;</math> i <math>\cup</math> oraz testu <math>?</math>.
 
{{twierdzenie|||


Następuj±ce formuły tautologiami { PDL}.
{{twierdzenie|10.8||
# <math>\displaystyle \d{\alpha\cup\beta}\phi\ \ \oto\ \ \d\alpha\phi\join\d\beta\phi</math>
Następujące formuły tautologiami PDL.
# <math>\displaystyle \bx{\alpha\cup\beta}\phi\ \ \oto\ \ \bx\alpha\phi\meet\bx\beta\phi</math>
:<math>(i)\ \ \ \ \langle\alpha\cup\beta\rangle\varphi\ \ \leftrightarrow\ \ \langle\alpha\rangle\varphi\vee\langle\beta\rangle\varphi</math>
# <math>\displaystyle \d{\comp\alpha\beta}\phi\ \ \oto\ \ \d\alpha\d\beta\phi</math>
:<math>(ii)\ \ \  [\alpha\cup\beta]\varphi\ \ \ \leftrightarrow\ \ [\alpha]\varphi\wedge[\beta]\varphi</math>
# <math>\displaystyle \bx{\comp\alpha\beta}\phi\ \ \oto\ \ \bx\alpha\bx\beta\phi</math>
:<math>(iii)\ \ \langle\alpha;\beta\rangle\varphi\ \ \ \ \leftrightarrow\ \ \langle\alpha\rangle\langle\beta\rangle\varphi</math>
# <math>\displaystyle \d{\phi?}\psi\ \ \oto\ \ (\phi\meet\psi)</math>
:<math>(iv)\ \ \ [\alpha;\beta]\varphi\ \ \ \ \leftrightarrow\ \ [\alpha][\beta]\varphi</math>
# <math>\displaystyle \bx{\phi?}\psi \ \ \oto\ \ (\phi\imp\psi)</math>.
:<math>(v)\ \ \ \ \langle\varphi?\rangle\psi\ \ \leftrightarrow\ \ (\varphi\wedge\psi)</math>
:<math>(vi)\ \ \ [\varphi?]\psi \ \ \leftrightarrow\ \ (\varphi\rightarrow\psi)</math>.
   
   
}}
}}
Ostatnia grupa tautologii dotyczy operatora iteracji <math>^*</math>.


Ostatnia grupa tautologii dotyczy operatora iteracji <math>\displaystyle \star</math>.
{{twierdzenie|10.9||
 
{{twierdzenie|||


Nastepuj±ce formuły tautologiami { PDL}.
Nastepujące formuły tautologiami PDL.
<math>\displaystyle \bx{\alpha\star}\phi\ \ \imp\ \ \phi</math>
:<math>(i)\ \ \ \ [\alpha^*]\varphi\ \ \rightarrow\ \ \varphi</math>
<math>\displaystyle \phi\ \ \imp\ \ \d{\alpha\star}\phi</math>
:<math>(ii)\ \ \ \varphi\ \ \rightarrow\ \ \langle\alpha^*\rangle\varphi</math>
<math>\displaystyle \bx{\alpha\star}\phi\ \ \imp\ \
:<math>(iii)\ \ [\alpha^*]\varphi\ \ \rightarrow\ \
\bx\alpha\phi</math>
[\alpha]\varphi</math>
<math>\displaystyle \d\alpha\phi\ \ \imp\ \
:<math>(iv)\ \ \ \langle\alpha\rangle\varphi\ \ \rightarrow\ \
\d{\alpha\star}\phi</math>
\langle\alpha^*\rangle\varphi</math>
<math>\displaystyle \bx{\alpha\star}\phi\ \ \oto\ \
:<math>(v)\ \ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \
\bx{\alpha\star\alpha\star}\phi</math>
[\alpha^*\alpha^*]\varphi</math>
<math>\displaystyle \d{\alpha\star}\phi\ \ \oto\ \
:<math>(vi)\ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \
\d{\alpha\star\alpha\star}\phi</math>
\langle\alpha^*\alpha^*\rangle\varphi</math>
<math>\displaystyle \bx{\alpha\star}\phi\ \ \oto\ \
:<math>(vii)\ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \
\bx{\alpha\starstar}\phi</math>
[\alpha^{**}]\varphi</math>
<math>\displaystyle \d{\alpha\star}\phi\ \ \oto\ \
:<math>(viii)\ \langle\alpha^*\rangle\varphi\ \leftrightarrow\ \
\d{\alpha\starstar}\phi</math>
\langle\alpha^{**}\rangle\varphi</math>
<math>\displaystyle \bx{\alpha\star}\phi\ \ \oto\ \
:<math>(ix)\ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \
\phi\meet\bx\alpha\bx{\alpha\star}\phi</math>
\varphi\wedge[\alpha][\alpha^*]\varphi</math>
<math>\displaystyle \d{\alpha\star}\phi\ \ \oto\ \
:<math>(x)\ \ \ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \
\phi\join\d\alpha\d{\alpha\star}\phi</math>
\varphi\vee\langle\alpha\rangle\langle\alpha^*\rangle\varphi</math>
<math>\displaystyle \bx{\alpha\star}\phi\ \ \oto\ \
:<math>(xi)\ \ \ [\alpha^*]\varphi\ \ \leftrightarrow\ \
\phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)</math>
\varphi\wedge[\alpha^*](\varphi\rightarrow[\alpha]\varphi)</math>
<math>\displaystyle \d{\alpha\star}\phi\ \ \oto\ \
:<math>(xii)\ \ \langle\alpha^*\rangle\varphi\ \ \leftrightarrow\ \
\phi\join\d{\alpha\star}(\neg\phi\meet\d\alpha\phi)</math>.
\varphi\vee\langle\alpha^*\rangle(\neg\varphi\wedge\langle\alpha\rangle\varphi)</math>.
   
   
}}
}}
Własność <math>(ii)</math> mówi, że <math>\alpha^*</math> jest
semantycznie relacją zwrotną. Przechodniość relacji <math>\alpha^*</math> jest
wyrażona w <math>(vi)</math>. Natomiast fakt, że <math>\alpha^*</math> zawiera relację <math>\alpha</math>, jest wyrażony w <math>(iv)</math>. Implikacja <math>\leftarrow</math> w <math>(xi)</math> wyraża zasadę indukcji.
Bazą jest założenie, że własność <math>\varphi</math> jest spełniona w pewnym stanie <math>u</math>. Warunek indukcyjny mówi, że w każdym stanie osiągalnym z <math>u</math> poprzez skończoną liczbę iteracji programu
<math>\alpha</math>, kolejne wykonanie <math>\alpha</math> zachowuje własność <math>\varphi</math>.
Teza stwierdza, że wówczas <math>\varphi</math> jest
spełnione we wszystkich stanach osiągalnych w skończonej liczbie
iteracji <math>\alpha</math>.


Własno¶ć {eqn-starprops1-1a} mówi, że <math>\displaystyle \alpha\star</math> jest
===Własność małego modelu===
semantycznie relacj± zwrotn±. Przechodnio¶ć relacji <math>\displaystyle \alpha\star</math> jest
wyrażona w {eqn-starprops1-3a}. Natomiast fakt, ze
<math>\displaystyle \alpha\star</math> zawiera relację <math>\displaystyle \alpha</math> jest wyrażony w
{eqn-starprops1-2a}. Implikacja <math>\displaystyle \leftarrow</math> w
{eqn-starprops1-6} wyraża zasadę indukcji.
Baz± jest założenie, że własno¶ć <math>\displaystyle \phi</math> jest spełniona w pewnym stanie <math>\displaystyle u</math>.
Warunek indukcyjny mówi, że w każdym
stanie osi±galnym z <math>\displaystyle u</math> poprzez skończon± liczbę iteracji programu
<math>\displaystyle \alpha</math>, kolejne wykonanie <math>\displaystyle \alpha</math> zachowuje własno¶ć <math>\displaystyle \varphi</math>.
Teza stwierdza, że wówczas <math>\displaystyle \phi</math> jest
spełnione we wszystkich stanach osi±galnych w skończonej liczbie
iteracji <math>\displaystyle \alpha</math>.


===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 <math>\varphi</math> jest spełnialna, to jest spełniona w pewnej
W tej czę¶ci udowodnimy własno¶ć małego modelu dla PDL. Własno¶ć ta
mówi, że je¶li <math>\displaystyle \phi</math> jest spełnialna to jest spełniona w pewnej
skończonej strukturze Kripkego. Co więcej, jak będzie wynikało z
skończonej strukturze Kripkego. Co więcej, jak będzie wynikało z
dowodu, struktura ta ma co najwyżej <math>\displaystyle 2^{|\phi|}</math> stanów, gdzie
dowodu, struktura ta ma co najwyżej <math>2^{|\varphi|}</math> stanów, gdzie
<math>\displaystyle |\phi|</math> oznacza rozmiar formuły <math>\displaystyle \phi</math>. Wynika st±d natychmiast
<math>|\varphi|</math> oznacza rozmiar formuły <math>\varphi</math>. Wynika stąd natychmiast rozstrzygalność problemu spełnialności dla PDL. Technika zastosowana w
rozstrzygalno¶ć problemu spełnialno¶ci dla PDL. Technika zastosowana w
dowodzie twierdzenia o małym modelu nosi nazwę ''filtracji'' i jest
dowodzie twierdzenia o małym modelu nosi nazwę ''filtracji'' i jest
od dawna stosowana w logikach modalnych. W przypadku PDL sytuację  
od dawna stosowana w logikach modalnych. W przypadku PDL sytuację  
komplikuje fakt, że definicja formuł i programów jest wzajemnie
komplikuje fakt, że definicja formuł i programów jest wzajemnie
rekurencyjna, co powoduje że indukcyjne rozumowania nieco bardziej
rekurencyjna, co powoduje że indukcyjne rozumowania nieco bardziej
delikatne. Własno¶ć małego modelu dla PDL została udowodniona w
delikatne. Własność małego modelu dla PDL została udowodniona w
1977r. przez M.&nbsp;Fischera i R.&nbsp;Ladnera.
1977r. przez M.&nbsp;Fischera i R.&nbsp;Ladnera.
Zaczniemy od definicji domknięcia Fischera-Ladnera. Zdefiniujemy dwie funkcje
<center>
{| border="0" cellpadding="5" cellspacing="0"
|-
|<math>FL</math>
|<math>: \Phi\ \ \rightarrow\ \ 2^{\Phi}</math>
|-
|<math>FL^{\Box}</math>
|<math>: \{[\alpha]\varphi\;|\;\alpha\in\Psi,\;\varphi\in\Phi\}\rightarrow 2^{\Phi}</math>
|}
</center>


Zaczniemy od definicji domknięcia Fischera-Ladnera. Zdefiniujemy dwie
funkcje  <math>\displaystyle \FLname &: \Phi\ \ \imp\ \ \powerset{\Phi}\\ \FLpname &:
\set{\bx\alpha\phi}{\alpha\in\Psi,\ \phi\in\Phi}\ \ \imp\ \
\powerset{\Phi}  </math>  przez wzajemn± indukcję
# <math>\displaystyle \FL p\ \ \eqdef\ \ \{p\}</math>, gdy <math>\displaystyle p</math> jest zmienn± zdaniow±
# <math>\displaystyle \FL{\phi\imp\psi}\ \ \eqdef\ \
\{\phi\imp\psi\}\cup\FL\phi\cup\FL\psi</math>
# <math>\displaystyle \FL{\false}\ \ \eqdef\ \ \{\false\}</math>
# <math>\displaystyle \FL{\bx\alpha\phi}\ \ \eqdef\ \ \FLp{\bx\alpha\phi}\cup\FL\phi</math>
# <math>\displaystyle \FLp{\bx a\phi}\ \ \eqdef\ \ \{\bx a\phi\}</math>, gdy <math>\displaystyle a</math> jest
atomowym programem
# <math>\displaystyle \FLp{\bx{\alpha\cup\beta}\phi}\ \ \eqdef\ \
\{\bx{\alpha\cup\beta}\phi\}\cup\FLp{\bx\alpha\phi}\cup\FLp{\bx\beta\phi}</math>
# <math>\displaystyle \FLp{\bx{\comp\alpha\beta}\phi}\ \ \eqdef\ \
\{\bx{\comp\alpha\beta}\phi\}\cup\FLp{\bx\alpha\bx\beta\phi}\cup
\FLp{\bx\beta\phi}</math>
# <math>\displaystyle \FLp{\bx{\alpha\star}\phi}\ \ \eqdef\ \
\{\bx{\alpha\star}\phi\}\cup\FLp{\bx\alpha\bx{\alpha\star}\phi}</math>
# <math>\displaystyle \FLp{\bx{\psi?}\phi}\ \ \eqdef\ \
\{\bx{\psi?}\phi\}\cup\FL\psi</math>.
Zbiór <math>\displaystyle \FL\phi</math> jest nazywany ''domknięciem
Fischera-Ladnera''. Zauważmy, że definicja <math>\displaystyle \FL\phi</math> jest indukcyjna ze
względu na budowę formuły <math>\displaystyle \phi</math>, natomiast pomocnicza funkcja <math>\displaystyle \FLpname</math>
jest okre¶lona jedynie na formułach postaci <math>\displaystyle \bx\alpha\phi</math> i jej
definicja jest indukcyjna ze względu na budowę programu <math>\displaystyle \alpha</math>. Tak
więc chociaż w warunku (h) formuła po prawej stronie definicji jest
dłuższa niż po lewej, to program <math>\displaystyle \alpha</math> w zewnętrznej modalno¶ci
jest prostszy niż <math>\displaystyle \alpha\star</math> i dlatego definicja ta jest dobrze
ufundowana.


Niech <math>\displaystyle \len\alpha</math> oraz <math>\displaystyle \len\phi</math> oznaczaj±
przez wzajemną indukcję
długo¶ć programu <math>\displaystyle \alpha</math> i
:<math>(a)\; FL(p)\; :=\; \{p\}</math>, gdy <math>p</math> jest zmienną zdaniową
formuły <math>\displaystyle \phi</math> rozumian± jako liczbę wyst±pień symboli nie licz±c
:<math>(b)\; FL(\varphi\rightarrow\psi)\; :=\; \{\varphi\rightarrow\psi\}\cup FL(\varphi)\cup FL(\psi)</math>
nawiasów. Dla dowolnego zbioru <math>\displaystyle X</math>, przez <math>\displaystyle | X|</math> oznaczamy moc
:<math>(c)\; FL(\bot)\; :=\; \{\bot\}</math>
zbioru <math>\displaystyle X</math>. Następuj±cy lemat podaje ograniczenie górne na moc
:<math>(d)\; FL([\alpha]\varphi)\; := FL^{\Box}([\alpha]\varphi)\cup FL(\varphi)</math>
domknięcia Fischera-Ladnera.
:<math>(e)\; FL^{\Box}([a]\varphi)\; :=\; \{[a]\varphi\}</math>, gdy <math>a</math> jest atomowym programem
:<math>(f)\; FL^{\Box}([\alpha\cup\beta]\varphi)\; :=\; \{[\alpha\cup\beta]\varphi\}\cup FL^{\Box}([\alpha]\varphi)\cup FL^{\Box}([\beta]\varphi)</math>
:<math>(g)\; FL^{\Box}([\alpha;\beta]\varphi)\; :=\; \{[\alpha;\beta]\varphi\}\cup FL^{\Box}([\alpha][\beta]\varphi)\cup FL^{\Box}([\beta]\varphi)</math>
:<math>(h)\; FL^{\Box}([\alpha^*]\varphi)\; :=\; \{[\alpha^*]\varphi\}\cup FL^{\Box}([\alpha][\alpha^*]\varphi)</math>
:<math>(i)\; FL^{\Box}([\psi?]\varphi)\; :=\; \{[\psi?]\varphi\}\cup FL(\psi)</math>
 
Zbiór <math>FL(\varphi)</math> jest nazywany ''domknięciem Fischera-Ladnera''. Zauważmy, że definicja <math>FL(\varphi)</math> jest indukcyjna ze
względu na budowę formuły <math>\varphi</math>, natomiast pomocnicza funkcja <math>FL^{\Box}</math> jest określona jedynie na formułach postaci <math>[\alpha]\varphi</math> i jej definicja jest indukcyjna ze względu na budowę programu <math>\alpha</math>. Tak więc chociaż w warunku <math>(h)</math> formuła po prawej stronie definicji jest dłuższa niż po lewej, to program <math>\alpha</math> w zewnętrznej modalności jest prostszy niż <math>\alpha^*</math> i dlatego definicja ta jest dobrze ufundowana.
 
Niech <math>|\alpha|</math> oraz <math>|\varphi|</math> oznaczają
długość programu <math>\alpha</math> i formuły <math>\varphi</math> rozumianą jako liczbę wystąpień symboli nie licząc nawiasów.  
<!--Dla dowolnego zbioru <math>X</math>, przez <math>|X|</math> oznaczamy moc zbioru <math>X</math>. -->
Następujący lemat podaje ograniczenie górne na moc domknięcia Fischera-Ladnera.


{{lemat|||
{{lemat|10.10|lem10.10|
# Dla dowolnej formuły <math>\displaystyle \phi</math> mamy <math>\displaystyle |\FL\phi|\ \leq\ |\phi|</math>.
:<math>(i)\;\;</math> ''Dla dowolnej formuły'' <math>\varphi</math> ''mamy'' <math>|FL(\varphi)| \leq |\varphi|</math>.
# Dla dowolnej formuły <math>\displaystyle \bx\alpha\phi</math> mamy <math>\displaystyle |\FLp{\bx\alpha\phi}|\
:<math>(ii)\;</math> ''Dla dowolnej formuły'' <math>[\alpha]\varphi</math> ''mamy'' <math>|FL^{\Box}([\alpha]\varphi}| \leq |\alpha|</math>.
\leq\ \len{\alpha}</math>.
   
   
}}
}}


{{dowod|||
{{dowod|||
Dowód jest przez jednoczesn± indukcję &nbsp;schemat definiuj±cy
Dowód jest przez jednoczesną indukcję ze względu na schemat definiujący
<math>\displaystyle \FLname</math> oraz <math>\displaystyle \FLpname</math>. Pozostawimy go Czytelnikowi jako ćwiczenie.
<math>FL</math> oraz <math>FL^{\Box}</math>. Pozostawimy go Czytelnikowi jako ćwiczenie.
}}
}}


Następny lemat ma charakter techniczny. Będzie wykorzystany w dowodzie
Następny lemat ma charakter techniczny. Będzie wykorzystany w dowodzie
lematu o filtracji.
lematu o filtracji.
 
{{lemat|||
{{lemat|10.11|lem10.11|
# Je¶li <math>\displaystyle \sigma\in\FL\phi</math>, to <math>\displaystyle \FL\sigma\subs\FL\phi</math>.
:<math>(i)</math> Jeśli <math>\sigma\in FL(\varphi)</math>, to <math>FL(\sigma)\subseteq FL(\varphi)</math>.
# Je¶li <math>\displaystyle \sigma\in\FLp{\bx\alpha\phi}</math>, to
:<math>(ii)</math> Jeśli <math>\sigma\in FL^{\Box}([\alpha]\varphi)</math>, to
<math>\displaystyle \FL\sigma\subs\FLp{\bx\alpha\phi}\cup\FL\phi</math>.
<math>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>FL</math> są bezpośrednią konsekwencją
Lematu&nbsp;[[##lem-FLtrans|Uzupelnic lem-FLtrans|]].
[[#lem10.11|Lematu 10.11]].


{{lemat|||
{{lemat|10.12||
# Je¶li <math>\displaystyle \bx\alpha\psi\in\FL\phi</math>, to <math>\displaystyle \psi\in\FL\phi</math>.
# Je¶li <math>\displaystyle \bx{\rho?}\psi\in\FL\phi</math>, to <math>\displaystyle \rho\in\FL\phi</math>.
# Je¶li <math>\displaystyle \bx{\alpha\cup\beta}\psi\in\FL\phi</math>, to
<math>\displaystyle \bx\alpha\psi\in\FL\phi</math> oraz <math>\displaystyle \bx\beta\psi\in\FL\phi</math>.
# Je¶li <math>\displaystyle \bx{\comp\alpha\beta}\psi\in\FL\phi</math>, to
<math>\displaystyle \bx\alpha\bx\beta\psi\in\FL\phi</math> and <math>\displaystyle \bx\beta\psi\in\FL\phi</math>.
# Je¶li <math>\displaystyle \bx{\alpha\star}\psi\in\FL\phi</math>, to
<math>\displaystyle \bx\alpha\bx{\alpha\star}\psi\in\FL\phi</math>.
}}
}}
:<math>(i)</math>  Jeśli <math>[\alpha]\psi\in FL(\varphi)</math>, to <math>\psi\in FL(\varphi)</math>.
:<math>(ii)</math> Jeśli <math>[\rho?]\psi\in FL(\varphi)</math>, to <math>\rho\in FL(\varphi)</math>.
:<math>(iii)</math> Jeśli <math>[\alpha\cup\beta]\psi\in FL(\varphi)</math>, to <math>[\alpha]\psi\in FL(\varphi)</math> oraz <math>[\beta]\psi\in FL(\varphi)</math>.
:<math>(iv)</math> Jeśli <math>[\alpha;\beta]\psi\in FL(\varphi)</math>, to <math>[\alpha][\beta]\psi\in FL(\varphi)</math> oraz <math>[\beta]\psi\in FL(\varphi)</math>.
:<math>(v)</math> Jeśli <math>[\alpha^*]\psi\in FL(\varphi)</math>, to <math>[\alpha][\alpha^*]\psi\in FL(\varphi)</math>.
Dla danej formuły <math>\varphi</math> oraz struktury Kripkego <math>\mathfrak{K} = (K,\mathrm{m}_{\mathfrak{K}})</math>
definiujemy nową strukturę <math>\mathfrak{K}/FL(\varphi) =
\langle K/FL(\varphi), \mathrm{m}_{\mathfrak{K}/FL(\varphi)} \rangle</math>, zwaną ''filtracją struktury'' <math>\mathfrak{K}</math> ''przez'' <math>FL(\varphi)</math>. Najpierw definiujemy binarną relację <math>\equiv</math>
w zbiorze stanów <math>\mathfrak{K}</math>.
<center>
<math>u \equiv v</math> wtedy i tylko wtedy, gdy <math>\forall\psi\in FL(\varphi)  (u\in \mathrm{m}_{\mathfrak{K}}(\psi)  \iff v\in \mathrm{m}_{\mathfrak{K}}(\psi))</math>.
</center>


Dla danej formuły <math>\displaystyle \phi</math> oraz struktury Kripkego <math>\displaystyle \frK = (K,\:\mg K)</math>
Innymi słowy, utożsamiamy stany <math>u</math> oraz <math>v</math> jeśli są one nierozróżnialne przez żadną formułę ze zbioru <math>FL(\phi)</math>. Filtracja
definiujemy now± strukturę <math>\displaystyle \frK/\FL\phi =
struktury jest zwykłą konstrukcją ilorazową. Niech
\<K/\FL\phi,\:\umg{\frK/\FL\phi}\></math>, zwan± ''filtracj± struktury
<center>
<math>\displaystyle \frK</math> przez <math>\displaystyle \FL\phi</math>''. Najpierw definiujemy binarn± relację <math>\displaystyle \equiv</math>
{| border="0" cellpadding="0" cellspacing="5"
w zbiorze stanów <math>\displaystyle \frK</math>.    <math>\displaystyle u \equiv v & </math> , gdy <math>\displaystyle  &
|-
\forall\psi\in\FL\phi\ (u\in\Mg K{\psi}\Iff v\in\Mg K{\psi}).  </math>  
|<math>[u]</math>
Innymi słowy utożsamiamy stany <math>\displaystyle u</math> oraz <math>\displaystyle v</math> je¶li s± one
|<math>:= \{v\;|\; v \equiv u\}</math>
nierozróżnialne przez żadn± formułę ze zbioru&nbsp;<math>\displaystyle \FL\phi</math>. Filtracja
|-
struktury jest zwykł± konstrukcj± ilorazow±. Niech
|<math>K/FL(\varphi)</math>
<math>\displaystyle [u] &\eqdef&
|<math>:= \{[u]\;|\; u\in K \}</math>
\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  </math> gdy <math>\displaystyle p</math>
|<math>\mathrm{m}_{\mathfrak{K}/FL(\varphi)}(p)</math>
jest zmienn± zdaniow± <math>\displaystyle  \\ \uMg{\frK/\FL\phi}a &\eqdef&
|<math>:= \{[u]\;|\; u\in \mathrm{m}_{\mathfrak{K}}(p)\}</math>, gdy <math>p</math> jest zmienną losową
\set{\<[u],[v]\>}{\<u,v\> \in \Mg K a},\quad  </math> gdy <math>\displaystyle a</math> jest atomowym
|-
programem.  Przekształcenie <math>\displaystyle \umg{\frK/\FL\phi}</math> rozszerza się w
|<math>\mathrm{m}_{\mathfrak{K}/FL(\varphi)}(a)</math>
|<math>:= \{\langle[u],[v]\rangle\;|\; \langle u,v\rangle\in \mathrm{m}_{\mathfrak{K}}(a)\}</math>, gdy <math>a</math> jest atomowym programem.
|}
</center>
    
Przekształcenie <math>\mathrm{m}_{\mathfrak{K}/FL(\varphi)}</math> rozszerza się w
zwykły sposób na wszystkie formuły i programy.
zwykły sposób na wszystkie formuły i programy.


Następuj±cy lemat pokazuje zwi±zek pomiędzy strukturami <math>\displaystyle \frK</math> oraz
Następujący lemat pokazuje związek pomiędzy strukturami <math>\mathfrak{K}</math> oraz
<math>\displaystyle \frK/\FL\phi</math>. Główna trudno¶ć techniczna polega tu sformułowaniu
<math>\mathfrak{K}/FL(\varphi)</math>. Główna trudność techniczna polega tu na sformułowaniu poprawnego założenia indukcyjnego. Sam dowód (jednoczesna indukcja)
poprawnego założenia indukcyjnego. Sam dowód (jednoczesna indukcja)
jest zupełnie rutynowy i dlatego pozostawimy go Czytelnikowi jako
jest zupełnie rutynowy i dlatego pozostawimy go Czytelnikowi jako
ćwiczenie.
ćwiczenie.


{{lemat|(o filtracji)||
{{lemat|10.13 (o filtracji)|lem10.13|


Niech <math>\displaystyle u,v</math> będ± stanami w strukturze Kripkego&nbsp;<math>\displaystyle \frK</math>.
Niech <math>u,v</math> będą stanami w strukturze Kripkego <math>\mathfrak{K}</math>.
# Dla dowolnej formuły <math>\displaystyle \psi\in\FL\phi</math>, mamy <math>\displaystyle u\in\Mg K\psi \
:<math>(i)</math> Dla dowolnej formuły <math>\psi\in FL(\varphi)</math>, mamy <math>u\in\mathrm{m}_{\mathfrak{K}}(\psi) \iff \ [u]\in\mathrm{m}_{\mathfrak{K}/FL(\varphi)}(\psi)</math>.  
\Iff \ [u]\in\uMg{\frK/\FL\phi}\psi</math>.  
:<math>(ii)</math> Dla dowolnej formuły <math>[\alpha]\psi\in FL(\varphi)</math> zachodzi
# Dla dowolnej formuły <math>\displaystyle \bx\alpha\psi\in\FL\phi</math> zachodzi
::<math>(a)</math> jeśli <math>\langle u,v\rangle\in \mathrm{m}_{\mathfrak{K}}(\alpha)</math>, to <math>\langle [u],[v]\rangle\in \mathrm{m}_{\mathfrak{K}/FL(\varphi)}(\alpha)</math>;
## je¶li <math>\displaystyle \<u,v\>\in \Mg K\alpha</math>, to <math>\displaystyle \<[u],[v]\>\in
::<math>(a)</math> jeśli <math>\langle [u],[v]\rangle\in \mathrm{m}_{\mathfrak{K}/FL(\varphi)}(\alpha)</math> oraz <math>u\in\mathrm{m}_{\mathfrak{K}([\alpha]\psi)</math>, to <math>v\in\mathrm{m}_{\mathfrak{K}(\psi)</math>.
\uMg{\frK/\FL\phi}\alpha</math>;
## je¶li <math>\displaystyle \<[u],[v]\>\in \uMg{\frK/\FL\phi}\alpha</math> oraz <math>\displaystyle u\in\Mg
K{\bx\alpha\psi}</math>, to <math>\displaystyle v\in\Mg K\psi</math>.
   
   
}}
}}
Linia 456: Linia 420:
Z lematu o filtracji natychmiast dostajemy twierdzenie o małym modelu.
Z lematu o filtracji natychmiast dostajemy twierdzenie o małym modelu.


{{twierdzenie|(Własno¶ć małego modelu)||
{{twierdzenie|10.14 (Własność małego modelu)||


Niech <math>\displaystyle \phi</math> będzie spełnialn± formuł± { PDL}. Wówczas <math>\displaystyle \phi</math> jest
Niech <math>\varphi</math> będzie spełnialną formułą PDL. Wówczas <math>\varphi</math> jest spełniona w strukturze Kripkego mającej co najwyżej <math>2^{|\varphi|}</math> stanów.
spełniona w strukturze Kripkego maj±cej co najwyżej <math>\displaystyle 2^{\len{\phi}}</math>
stanów.
}}
}}


{{dowod|||
{{dowod|||
Je¶li <math>\displaystyle \phi</math> jest spełnialna, to istnieje struktura Kripkego <math>\displaystyle \frK</math>
Jeśli <math>\varphi</math> jest spełnialna, to istnieje struktura Kripkego <math>\mathfrak{K}</math> oraz stan <math>u\in\mathfrak{K}</math>, taki że <math>u\in\mathrm{m}_{\mathfrak{K}}(\varphi)</math>.  Niech <math>FL(\varphi)</math> będzie domknięciem Fischera-Ladnera formuły <math>\varphi</math>.  Na mocy [[#lem10.13|Lematu 10.13]] o filtracji  mamy <math>[u]\in\mathrm{m}_{\mathfrak{K}/FL(\varphi)}(\varphi)</math>.  Ponadto <math>\mathfrak{K}/FL(\varphi)</math> ma nie więcej stanów niż liczba wartościowań przypisujących wartości logiczne formułom z <math>FL(\varphi)</math>. Tych ostatnich jest, na mocy
oraz stan <math>\displaystyle u\in\frK</math>, taki że <math>\displaystyle u\in\Mg K{\phi}</math>.  Niech <math>\displaystyle \FL\phi</math>
[[#lem10.10|Lematu 10.10]] <math>(i)</math>, co najwyżej <math>2^{|\varphi|}</math>.
będzie domknięciem Fischera-Ladnera formuły <math>\displaystyle \phi</math>.  Na mocy  
Lematu&nbsp;[[##filtration|Uzupelnic filtration|]] o filtracji  mamy
<math>\displaystyle [u]\in\uMg{\frK/\FL\phi}{\phi}</math>.  Ponadto <math>\displaystyle \frK/\FL\phi</math> ma nie
więcej stanów niż liczba warto¶ciowań przypisuj±cych warto¶ci logiczne
formułom z <math>\displaystyle \FL\phi</math>. Tych ostatnich jest, na mocy
Lematu&nbsp;[[##lem-size|Uzupelnic lem-size|]](i), co najwyżej <math>\displaystyle 2^{\len{\phi}}</math>.
}}
}}


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&nbsp;co najwyżej
przeszukiwaniu wszystkich struktur Kripkego o&nbsp;co najwyżej
<math>\displaystyle 2^{\len\phi}</math> stanach ma złożono¶ć podwójnie wykładnicz± względem
<math>2^{|\phi|}</math> stanach ma złożoność podwójnie wykładniczą względem
długo¶ci formuły. Używaj±c nieco sprytniejszej metody można
długości formuły. Używając nieco sprytniejszej metody można
rozstrzygn±ć problem spełnialno¶ci w czasie pojedynczo
rozstrzygnąć problem spełnialności w czasie pojedynczo
wykładniczym. Złożono¶ć ta jest najlepsza możliwa, można bowiem
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
pokazać, że problem spełnialności dla PDL jest zupełny w
deterministycznym czasie wykładniczym.
deterministycznym czasie wykładniczym.


Linia 487: Linia 444:


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


'''Aksjomaty'''
'''Aksjomaty'''
   
   
; (P0)
<math>(P0)</math> Aksjomaty logiki zdaniowej
Aksjomaty logiki zdaniowej
 
<math>(P1) \ \ [\alpha](\varphi\to\psi)\ \ \to\ \
([\alpha]\varphi\to[\alpha]\psi)</math>


; (P1)
<math>(P2) \ \ [\alpha](\varphi\wedge\psi)\ \ \leftrightarrow\ \
<math>\displaystyle \bx\alpha(\phi\imp\psi)\ \ \imp\ \
([\alpha]\varphi\wedge[\alpha]\psi)</math>
(\bx\alpha\phi\imp\bx\alpha\psi)</math>


; (P2)
<math>(P3) \ \ [\alpha\cup\beta]\varphi\ \ \leftrightarrow\ \
<math>\displaystyle \bx\alpha(\phi\meet\psi)\ \ \oto\ \
([\alpha]\varphi\wedge[\beta]\varphi)</math>
\bx\alpha\phi\meet\bx\alpha\psi</math>


; (P3)
<math>(P4) \ \ [\alpha;\beta]\varphi\ \ \leftrightarrow\ \
<math>\displaystyle \bx{\alpha\cup\beta}\phi\ \ \oto\ \
([\alpha][\beta]\varphi</math>
\bx\alpha\phi\meet\bx\beta\phi</math>


; (P4)
<math>(P5) \ \ [\psi?]\varphi\ \ \leftrightarrow\ \
<math>\displaystyle \bx{\comp\alpha\beta}\phi\ \ \oto\ \
(\psi\to\varphi)</math>
\bx\alpha\bx\beta\phi</math>


; (P5)
<math>(P6) \ \ \varphi\wedge[\alpha][\alpha^*]\varphi\ \ \leftrightarrow\ \
<math>\displaystyle \bx{\psi?}\phi\ \ \oto\ \
[\alpha^*]\varphi</math>
(\psi\imp\phi)</math>


; (P6)
<math>(P7) \ \ \varphi\wedge[\alpha^*](\varphi\to[\alpha]\varphi)\ \ \to\ \
<math>\displaystyle \phi\meet\bx\alpha\bx{\alpha\star}\phi\ \ \oto\ \
[\alpha^*]\varphi \ \ \ </math> (aksjomat indukcji)
\bx{\alpha\star}\phi</math>


; (P7)
:


<math>\displaystyle \phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)\ \ \imp\ \
\bx{\alpha\star}\phi</math>(aksjomat indukcji)
'''Reguły dowodzenia'''
'''Reguły dowodzenia'''
   
   
; (MP)
<math>(MP) \ \ \frac{\varphi \quad \varphi\to\psi}{\psi}</math>
: &nbsp; <math>\displaystyle \displaystyle\frac{\phi \quad \phi\imp\psi}{\psi}</math>
 


; (GEN)
<math>(GEN) \ \ \frac{\varphi}{[\alpha]\varphi}</math>
: &nbsp; <math>\displaystyle \displaystyle\frac{\phi}{\bx\alpha\phi}</math>
   
   
Reguła (GEN) nazywana jest reguł± ''modalnej
Reguła (GEN) nazywana jest regułą ''modalnej generalizacji''. Jeśli <math>\varphi</math> daje się wyprowadzić w&nbsp;powyższym systemie poszerzonym o dodanie nowych aksjomatów ze zbioru <math>\Sigma</math>, to będziemy to zapisywać przez <math>\Sigma\vdash\varphi</math>.  
generalizacji''.  
Je¶li <math>\displaystyle \phi</math> daje się wyprowadzić w&nbsp;powyższym systemie poszerzonym  
o dodanie nowych aksjomatów ze zbioru
<math>\displaystyle \Sigma</math>, to będziemy to zapisywać przez <math>\displaystyle \Sigma\vdash\phi</math>.  
Jak zwykle
Jak zwykle
piszemy <math>\displaystyle \vdash\phi</math>, gdy <math>\displaystyle \Sigma</math> jest zbiorem pustym.
piszemy <math>\vdash\phi</math>, gdy <math>\Sigma</math> jest zbiorem pustym.
 
Fakt, że wszystkie aksjomaty są tautologiami PDL, wynika z [[#10.2|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&nbsp;PDL.
Przypomnijmy, że zbiór formuł <math>\Sigma</math> jest ''sprzeczny'',
gdy <math>\Sigma\vdash\bot</math>. W&nbsp;przeciwnym przypadku mówimy, że <math>\Sigma</math> jest niesprzeczny. W&nbsp;poniższym lemacie zebrane są podstawowe własności zbiorów niesprzecznych potrzebne do dowodu twierdzenia o pełności.
{{lemat|10.15|lem10.15|


Fakt, że wszystkie aksjomaty s± tautologiami PDL wynika
Niech <math>\Sigma</math> będzie zbiorem formuł PDL. Wówczas
z&nbsp;Sekcji&nbsp;[[##ex-taut-pdl|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&nbsp;PDL.
Przypomnijmy, że zbiór formuł <math>\displaystyle \Sigma</math> jest ''sprzeczny'',
gdy <math>\displaystyle \Sigma\vdash\false</math>. W&nbsp;przeciwnym przypadku mówimy, że <math>\displaystyle \Sigma</math>
jest niesprzeczny. W&nbsp;poniższym lemacie zebrane s± podstawowe własno¶ci
zbiorów niesprzecznych potrzebne do dowodu twierdzenia o pełno¶ci.


{{lemat|||
<math>(i)\ \ \ \ \Sigma</math> jest niesprzeczny wtedy i tylko wtedy, gdy <math>\Sigma\cup\{\varphi\}</math> jest niesprzeczny lub <math>\Sigma\cup\{\neg\varphi\}</math> jest niesprzeczny;


Niech <math>\displaystyle \Sigma</math> będzie zbiorem formuł { PDL}.  Wówczas
<math>(ii)</math> jeśli <math>\Sigma</math> jest niesprzeczny, to
<math>\displaystyle \Sigma</math> jest niesprzeczny , gdy
<math>\Sigma</math> jest zawarty w maksymalnym niesprzecznym zbiorze formuł.
<math>\displaystyle \Sigma\cup\{\phi\}</math> jest niesprzeczny lub
<math>\displaystyle \Sigma\cup\{\neg\phi\}</math> jest niesprzeczny;
#  je¶li <math>\displaystyle \Sigma</math> jest niesprzeczny, to
<math>\displaystyle \Sigma</math> jest zawarty w maksymalnym niesprzecznym zbiorze formuł.
   
   
Ponadto, je¶li <math>\displaystyle \Sigma</math> jest maksymalnym niesprzecznym zbiorem formuł,
 
Ponadto, jeśli <math>\Sigma</math> jest maksymalnym niesprzecznym zbiorem formuł,
to
to
   
   
{enumi}2
<math>(iii)\ \ \Sigma</math> zawiera wszystkie twierdzenia PDL;
<math>\displaystyle \Sigma</math> zawiera wszystkie twierdzenia
 
{ PDL};
<math>(iv)\ \ </math> jeśli <math>\varphi\in\Sigma</math> oraz
#  je¶li <math>\displaystyle \phi\in\Sigma</math> oraz
<math>\varphi\to\psi\in\Sigma</math>, to <math>\psi\in\Sigma</math>;
<math>\displaystyle \phi\imp\psi\in\Sigma</math>, to <math>\displaystyle \psi\in\Sigma</math>;
 
<math>\displaystyle \phi\join\psi\in\Sigma</math> , gdy
<math>(v)\ \ \ \ \varphi\vee\psi\in\Sigma</math> wtedy i tylko wtedy, gdy
<math>\displaystyle \phi\in\Sigma</math> lub <math>\displaystyle \psi\in\Sigma</math>;
<math>\varphi\in\Sigma</math> lub <math>\psi\in\Sigma</math>;
<math>\displaystyle \phi\meet\psi\in\Sigma</math> , gdy
 
<math>\displaystyle \phi\in\Sigma</math> oraz <math>\displaystyle \psi\in\Sigma</math>;
<math>(vi)\ \ \ \varphi\wedge\psi\in\Sigma</math> wtedy i tylko wtedy, gdy
<math>\displaystyle \phi\in\Sigma</math> , gdy
<math>\varphi\in\Sigma</math> oraz <math>\psi\in\Sigma</math>;
<math>\displaystyle \neg\phi\not\in\Sigma</math>;
 
<math>\displaystyle \false\not\in\Sigma</math>.
<math>(vii)\ \ \varphi\in\Sigma</math> wtedy i tylko wtedy, gdy
<math>\neg\varphi\not\in\Sigma</math>;
 
<math>(viii)\ \bot\not\in\Sigma</math>.
   
   
}}
}}


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


{{lemat|||
{{lemat|10.16|lem10.16|


Niech <math>\displaystyle \Sigma</math> oraz <math>\displaystyle \Gamma</math> będ± maksymalnymi niesprzecznymi zbiorami
Niech <math>\Sigma</math> oraz <math>\Gamma</math> będą maksymalnymi niesprzecznymi zbiorami formuł oraz niech <math>\alpha</math> będzie dowolnym programem.  Następujące dwa warunki równoważne:
formuł oraz niech <math>\displaystyle \alpha</math> będzie dowolnym programem.  Następuj±ce dwa
:<math>(a)</math> Dla dowolnej formuły <math>\psi</math>, jeśli <math>\psi\in\Gamma</math>, to <math>\langle\alpha\rangle\psi\in\Sigma</math>.
warunki równoważne:
 
# Dla dowolnej formuły <math>\displaystyle \psi</math>, je¶li <math>\displaystyle \psi\in\Gamma</math>, to
:<math>(b)</math> Dla dowolnej formuły <math>\psi</math>, jeśli <math>[\alpha]\psi\in\Sigma</math>, to <math>\psi\in\Gamma</math>.
<math>\displaystyle \d\alpha\psi\in\Sigma</math>.
# Dla dowolnej formuły <math>\displaystyle \psi</math>, je¶li <math>\displaystyle \bx\alpha\psi\in\Sigma</math>, to
<math>\displaystyle \psi\in\Gamma</math>.
   
   
}}
}}


Struktura, któr± za chwilę zbudujemy przy użyciu maksymalnych
Struktura, którą za chwilę zbudujemy przy użyciu maksymalnych
niesprzecznych zbiorów formuł nie będzie struktur± Kripkego z tego
niesprzecznych zbiorów formuł nie będzie strukturą Kripkego z tego
względu, że znaczeniem programu <math>\displaystyle \alpha\star</math> nie będzie musiało być
względu, że znaczeniem programu <math>\alpha^*</math> nie będzie musiało być
domknięcie przechodnie i zwrotne relacji wyznaczonej przez
domknięcie przechodnie i zwrotne relacji wyznaczonej przez
<math>\displaystyle \alpha</math>. Spełnione będ± nieco słabsze własno¶ci, wystarczaj±ce jednak
<math>\alpha</math>. Spełnione będą nieco słabsze własności, wystarczające jednak
do przeprowadzenia dowodu twierdzenia o pełno¶ci.
do przeprowadzenia dowodu twierdzenia o pełności.
 
{{kotwica|war16_17|}}
{{definicja|10.17||
 
''Niestandardową strukturą Kripkego'' nazwiemy każdą strukturę
<math>\mathfrak{N} = (N,\mathrm{m}_{\mathfrak{N}})</math> spełniającą wszystkie warunki struktury Kripkego podane w definicjach [[#def10.2|10.2]] oraz [[#def10.3|10.3]] za
wyjątkiem warunku [[#war14|(14)]]. Zamiast tego warunku żądamy,
aby <math>\mathrm{m}_{\mathfrak{N}}(\alpha^*)</math> było relacją zwrotną i&nbsp;przechodnią, zawierało relację <math>\mathrm{m}_{\mathfrak{N}}(\alpha)</math> oraz spełniało aksjomaty <math>(P6)</math> i&nbsp;<math>(P7)</math>. Tzn. zamiast warunku


{{definicja|||
<center><math>\mathrm{m}_{\mathfrak{N}}(\alpha^*) := \bigcup_{n\geq 0}\mathrm{m}_{\mathfrak{N}}(\alpha)^n,\qquad\qquad\qquad\quad\quad\quad\qquad (15)
</math></center>


''Niestandardow± struktur± Kripkego'' nazwiemy każd± strukturę
żądamy, aby dla każdego programu <math>\alpha</math>, relacja <math>\mathrm{m}_{\mathfrak{N}}(\alpha^*)</math> była zwrotna, przechodnia, zawierała <math>\mathrm{m}_{\mathfrak{N}}(\alpha)</math> oraz spełniała następujące dwa warunki dla dowolnej formuły <math>\varphi</math>
<math>\displaystyle \frN = (N,\mg N)</math> spełniaj±c± wszystkie warunki struktury Kripkego
podane w definicjach&nbsp;[[##def-kripke1|Uzupelnic def-kripke1|]] oraz [[##def-kripke2|Uzupelnic def-kripke2|]] za
wyj±tkiem warunku ([[##eqn-Mgdef6|Uzupelnic eqn-Mgdef6|]]). Zamiast tego warunku ż±damy,
aby <math>\displaystyle \Mg N{\alpha\star}</math> było relacj± zwrotn± i&nbsp;przechodni±, zawierało
relację <math>\displaystyle \Mg N{\alpha}</math> oraz spełniało aksjomaty (P6) i&nbsp;(P7).
Tzn.&nbsp;zamiast warunku


<center><math>\displaystyle \aligned \Mg N{\alpha\star} &\eqdef& \bigcup_{n\geq 0}\Mg
<center><math>
N{\alpha}^n,
\mathrm{m}_{\mathfrak{N}}([\alpha^*]\varphi) = \mathrm{m}_{\mathfrak{N}}(\varphi\wedge[\alpha;\alpha^*]\varphi)\qquad\qquad\qquad\quad\quad\quad (16)
\endaligned</math></center>
</math></center>


ż±damy, aby dla każdego programu <math>\displaystyle \alpha</math>, relacja <math>\displaystyle \Mg
N{\alpha\star}</math> była zwrotna, przechodnia, zawierała <math>\displaystyle \Mg N{\alpha}</math>
oraz spełniała następuj±ce dwa warunki dla dowolnej formuły <math>\displaystyle \phi</math>


<center><math>\displaystyle \aligned \Mg N{\bx{\alpha\star}\phi} &= \Mg
<center><math>
N{\phi\meet\bx{\comp\alpha{\alpha\star}}\phi}\\ \Mg
\mathrm{m}_{\mathfrak{N}}([\alpha^*]\varphi) = \mathrm{m}_{\mathfrak{N}}(\varphi\wedge[\alpha^*](\varphi\to[\alpha]\varphi)).\qquad\qquad\qquad (17)
N{\bx{\alpha\star}\phi} &= \Mg
</math></center>
N{\phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)}.
\endaligned</math></center>


}}
}}


Wracamy teraz do konstrukcji struktury z maksymalnych niesprzecznych
Wracamy teraz do konstrukcji struktury z maksymalnych niesprzecznych
zbiorów formuł. Zdefiniujemy niestandardow± strukturę Kripkego <math>\displaystyle \frN =
zbiorów formuł. Zdefiniujemy niestandardową strukturę Kripkego <math>\mathfrak{N} =(N,\mathrm{m}_{\mathfrak{N}})</math> następująco: Elementami zbioru $N$ są maksymalne niesprzeczne
(N,\:\mg N)</math>  
zbiory formuł PDL. Dalej:
następuj±co  <math>\displaystyle N &\eqdef& \{ </math> maksymalne niesprzeczne
 
zbiory formuł PDL <math>\displaystyle  \}\\ \Mg N \phi &\eqdef& \set{s}{\phi\in s}\\ \Mg N
<!--<center>
\alpha &\eqdef& \set{\<s,t\>}{ </math> dla wszystkich <math>\displaystyle \phi</math>, je¶li
{| border="0" cellpadding="5" cellspacing="5"
<math>\displaystyle \phi\in t</math>, to <math>\displaystyle \d\alpha\phi\in s\displaystyle  }\\ &= \set{\<s,t\>}{ </math> dla
|-
wszystkich <math>\displaystyle \phi</math>, je¶li <math>\displaystyle \bx\alpha\phi\in s</math>, to <math>\displaystyle \phi\in t\displaystyle  }</math>  
|<math>N</math>
Z Lematu&nbsp;[[##lem-progmax|Uzupelnic lem-progmax|]] wynika, że obydwie definicje <math>\displaystyle \Mg N \alpha</math>
|<math>:= \{</math> maksymalnie niesprzeczne zbiory formuł PDL <math>\}</math>
s± równoważne. Dowód nastepuj±cego twierdzenia pozostawimy
|- -->
Czytelnikowi.
 
<center>
{| border="0" cellpadding="5" cellspacing="5"
|-
|<math>\mathrm{m}_{\mathfrak{N}}(\varphi)</math>
|<math>:= \{s\;|\; \varphi\in s\}</math>
|-
|<math>\mathrm{m}_{\mathfrak{N}}(\alpha)</math>
|<math>:= \{\langle s,t\rangle\;|\;</math> dla wszystkich <math>\varphi</math>, jeśli <math>\varphi\in t</math>, to <math>\langle\alpha\rangle\varphi\in s\}</math>
|-
|
|<math>:= \{\langle s,t\rangle\;|\;</math> dla wszystkich <math>\varphi</math>, jeśli <math>[\alpha]\varphi\in s</math>, to <math>\varphi\in t\}</math>
|}
</center>


{{twierdzenie|||
Struktura <math>\displaystyle \frN</math> jest niestandardow± struktur± Kripkego.
Z Lematu [[#lem10.16|Lematu 10.16]] wynika, że obydwie definicje <math>\mathrm{m}_{\mathfrak{N}}(\alpha)</math>
są równoważne. Dowód nastepującego twierdzenia pozostawimy Czytelnikowi.
 
{{twierdzenie|10.18||
Struktura <math>\mathfrak{N}</math> jest niestandardową strukturą Kripkego.
}}
}}


{{dowod|||
{{dowod|||
Fakt, że <math>\displaystyle \frN</math> spełnia własno¶ci ([[##eqn-ns1|Uzupelnic eqn-ns1|]]) oraz ([[##eqn-ns2|Uzupelnic eqn-ns2|]])
Fakt, że <math>\mathfrak{N}</math> spełnia własności [[#war16_17|(16)]] oraz [[#war16_17|(17)]] wynika natychmiast z [[#lem10.15|Lematu 10.15]] <math>(iii)</math> oraz z
wynika natychmiast z
aksjomatów (P6) i (P7). Sprawdzenie pozostałych warunków pozostawimy Czytelnikowi jako ćwiczenie.
Lematu&nbsp;[[##lem-nsmaxconsis|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ę
Istotną cechą niestandardowych struktur Kripkego jest to, że daje się
przenie¶ć na nie lemat o filtracji (Lemat&nbsp;[[##filtration|Uzupelnic filtration|]]).
przenieść na nie lemat o filtracji [[#lem10.13|(Lemat 10.13)]].
 
 
{{lemat|10.19 (o filtracji dla niestandardowych struktur Kripkego)|lem10.19|
 
Niech <math>\mathfrak{N}</math> będzie niestandardową strukturą Kripkego i niech <math>u,v</math> będą stanami w <math>\mathfrak{N}</math>.
 
:<math>(i)</math> Dla dowolnej formuły <math>\psi\in FL(\varphi)</math>, mamy <math>u\in \mathrm{m}_{\mathfrak{N}}(\psi) \
\iff \ [u]\in \mathrm{m}_{\mathfrak{N}/FL(\varphi)}(\psi)</math>.
:<math>(ii)</math> Dla dowolnej formuły <math>[\alpha]\psi\in FL(\varphi)</math> zachodzi
 
:: <math>(a)</math> jeśli <math>\langle u,v\rangle \in \mathrm{m}_{\mathfrak{N}}(\alpha)</math>, to <math>\langle [u],[v]\rangle \in \mathrm{m}_{\mathfrak{N}/FL(\varphi)}(\alpha);</math>


{{lemat|(o filtracji dla niestandardowych struktur Kripkego)||
:: <math>(b)</math> jeśli <math>\langle [u],[v]\rangle \in \mathrm{m}_{\mathfrak{N}/FL(\varphi)}(\alpha)</math> oraz <math>u\in \mathrm{m}_{\mathfrak{N}}([\alpha]\psi)</math> to <math>v\in \mathrm{m}_{\mathfrak{N}}(\psi)</math>.
<br>
Niech <math>\displaystyle \frN</math> będzie niestandardow± struktur± Kripkego i niech <math>\displaystyle u,v</math>
będ± stanami w <math>\displaystyle \frN</math>.
# Dla dowolnej formuły <math>\displaystyle \psi\in\FL\phi</math>, mamy <math>\displaystyle u\in\Mg N\psi \
\Iff \ [u]\in\uMg{\frN/\FL\phi}\psi</math>.
# Dla dowolnej formuły <math>\displaystyle \bx\alpha\psi\in\FL\phi</math> zachodzi
## je¶li <math>\displaystyle \<u,v\>\in \Mg N\alpha</math>,to <math>\displaystyle \<[u],[v]\>\in
\uMg{\frN/\FL\phi}\alpha</math>;
## je¶li <math>\displaystyle \<[u],[v]\>\in \uMg{\frN/\FL\phi}\alpha</math> oraz <math>\displaystyle u\in\Mg
N{\bx\alpha\psi}</math>, to <math>\displaystyle v\in\Mg N\psi</math>.
   
   
}}
}}


{{dowod|||
{{dowod|||
Szczegóły dowodu tego lematu pomijamy, zachęcaj±c jednocze¶nie
Szczegóły dowodu tego lematu pomijamy, zachęcając jednocześnie
Czytelnika do spróbowania własnych sił. Różnica w dowodzie tego lematu
Czytelnika do spróbowania własnych sił. Różnica w dowodzie tego lematu
w stosunku do dowodu Lematu&nbsp;[[##filtration|Uzupelnic filtration|]] polega na tym, że w
w stosunku do dowodu [[#lem10.13|Lematu 10.13]] polega na tym, że w
dowodze kroku indukcyjnego dla czę¶ci (ii) dla przypadku, gdy <math>\displaystyle \alpha</math>
dowodze kroku indukcyjnego dla części <math>(ii)</math> dla przypadku, gdy <math>\alpha</math> jest programem postaci <math>\beta^*</math> wykorzystujemy jedynie własności [[#war16_17|(16)]] oraz [[#war16_17|(17)]], zamiast [[#war16_17|(15)]].
jest programem postaci <math>\displaystyle \beta\star</math> wykorzystujemy jedynie własno¶ci
([[##eqn-ns1|Uzupelnic eqn-ns1|]]) oraz ([[##eqn-ns2|Uzupelnic eqn-ns2|]]), zamiast&nbsp;([[##eqn-stdstardef|Uzupelnic eqn-stdstardef|]]).
}}
}}


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


{{twierdzenie|(Pełno¶ć dla PDL)||
{{twierdzenie|10.20 (Pełność dla PDL)||
<br> Każda tautologia PDL jest twierdzeniem
Każda tautologia PDL jest twierdzeniem systemu:&nbsp;dla dowolnej formuły <math>\varphi</math>, jeśli <math>\vDash\varphi</math>, to
systemu:&nbsp;dla dowolnej formuły <math>\displaystyle \phi</math>, je¶li <math>\displaystyle \models\phi</math>, to
<math>\vdash\varphi</math>.
<math>\displaystyle \vdash\phi</math>.
}}
}}


{{dowod|||
{{dowod|||
Rozumujemy przez sprzeczno¶ć. Je¶li <math>\displaystyle \not\vdash\phi</math>, to
Rozumujemy przez sprzeczność. Jeśli <math>\not\vdash\varphi</math>, to
<math>\displaystyle \{\neg\phi\}</math> jest zbiorem niesprzecznym. Zatem, na mocy
<math>\{\neg\varphi\}</math> jest zbiorem niesprzecznym. Zatem na mocy
Lematu&nbsp;[[##lem-nsmaxconsis|Uzupelnic lem-nsmaxconsis|]]{eqn-nsmaxconsis2} istnieje
[[#lem10.15|Lematu 10.15]] <math>(ii)</math> istnieje maksymalny niesprzeczny zbiór <math>u</math> formuł PDL zawierający <math>\neg\varphi</math>. Na
maksymalny nesprzeczny zbiór <math>\displaystyle u</math> formuł PDL zawieraj±cy <math>\displaystyle \neg\phi</math>. Na
mocy lematu o filtracji dla niestandardowych struktur Kripkego
mocy lematu o filtracji dla niestandardowych struktur Kripkego
(Lemat&nbsp;[[##filtration-2|Uzupelnic filtration-2|]]) stwierdzamy, że <math>\displaystyle \neg\phi</math> jest spełniona w
[[#lem10.19|(Lemat 10.19)]] stwierdzamy, że <math>\neg\varphi</math> jest spełniona w
stanie <math>\displaystyle [u]</math> skończonej struktury <math>\displaystyle \frN/\FL\phi</math>. Łatwo jest zauważyć,
stanie <math>[u]</math> skończonej struktury <math>\mathfrak{N}/FL(\varphi)</math>. Łatwo jest zauważyć, że skończona niestandardowa struktura Kripkego jest zwykłą strukturą Kripkego (tzn. taką, w której zachodzi [[#war16_17|(15)]]). Tak
że skończona niestandardowa struktura Kripkego jest zwykł± struktur±
więc <math>\varphi</math> nie jest tautologią. To kończy dowód twierdzenia o
Kripkego (tzn. tak±, w której zachodzi ([[##eqn-stdstardef|Uzupelnic eqn-stdstardef|]])). Tak
pełności.
więc <math>\displaystyle \phi</math> nie jest tautologi±. To kończy dowód twierdzenia o
pełno¶ci.
}}
}}

Aktualna wersja na dzień 21:39, 11 wrz 2023

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 \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 \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 {\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 {\mathrm{m}_{\mathfrak{K}}(a)\subseteq K\times K} .

Poniżej funkcję Parser nie mógł rozpoznać (błąd składni): {\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 {\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 {\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 |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 u\in\mathrm{m}_{\mathfrak{K}([\alpha]\psi)} , to Parser nie mógł rozpoznać (błąd składni): {\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: Elementami zbioru $N$ są maksymalne niesprzeczne zbiory formuł PDL. Dalej:


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