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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemo (dyskusja | edycje)
m Zastępowanie tekstu – „.↵</math>” na „</math>”
 
(Nie pokazano 301 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 \varphi,\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 (^*)</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^*</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 \varphi</math> nowy program <math>\displaystyle \varphi?</math>. Wykonanie
tworzącą z każdej formuły <math>\varphi</math> nowy program <math>\varphi?</math>. Wykonanie
programu <math>\displaystyle \varphi?</math> jest możliwe tylko wtedy, gdy warunek <math>\displaystyle \varphi</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 [\alpha]</math>:
''modalność konieczności'' <math>[\alpha]</math>:
dla dowolnego zdania <math>\displaystyle \varphi</math>, napis
dla dowolnego zdania <math>\varphi</math>, napis


<center><math>\displaystyle [\alpha]\varphi
<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 \varphi</math>".
zajść <math>\varphi</math>".


{{definicja|10.1||
{{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 ZZ\subseteq\Phi</math>  
* <math>ZZ\subseteq\Phi</math>  
* <math>\displaystyle \Pi_0\subseteq\Pi</math>
* <math>\Pi_0\subseteq\Pi</math>
* jeśli <math>\displaystyle \phi,\psi\in\Phi</math>, to <math>\displaystyle \phi\to\psi\in\Phi</math> oraz <math>\displaystyle \bot\in\Phi</math>
* jeśli <math>\varphi,\psi\in\Phi</math>, to <math>\varphi\to\psi\in\Phi</math> oraz <math>\bot\in\Phi</math>
* jeśli <math>\displaystyle \alpha,\beta\in \Pi</math>, to <math>\displaystyle (\alpha;\beta)</math>,<math>\displaystyle (\alpha\cup\beta)</math>, oraz <math>\displaystyle \alpha^*\in\Pi</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\in\Pi</math> oraz <math>\displaystyle \phi\in\Phi</math>, to <math>\displaystyle [\alpha]\phi\in\Phi</math>
* jeśli <math>\alpha\in\Pi</math> oraz <math>\varphi\in\Phi</math>, to <math>[\alpha]\varphi\in\Phi</math>
* jeśli <math>\displaystyle \phi\in\Phi</math>, to <math>\displaystyle \phi?\in\Pi.</math>
* jeśli <math>\varphi\in\Phi</math>, to <math>\varphi?\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 [\alpha]</math> ) wiążą silniej niż dwuargumentowe.
* Jednoargumentowe operatory (wliczając <math>[\alpha]</math> ) wiążą silniej niż dwuargumentowe.
* Operator <math>\displaystyle ;</math> wiąże silniej niż <math>\displaystyle \cup</math>.
* Operator <math>;</math> wiąże silniej niż <math>\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 [\alpha;\beta^* \cup \gamma^*]\phi\vee\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 ([(\alpha;\beta^*)\cup\gamma^*]\phi)\vee\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 będziemy opuszczać nawiasy w wyrażeniach typu <math>\displaystyle \alpha;\beta;\gamma</math>
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>
lub <math>\displaystyle \alpha\cup\beta\cup\gamma</math>.
lub <math>\alpha\cup\beta\cup\gamma</math>.


==h==
Przypomnijmy, że negacja <math>\neg\varphi</math> jest skrótem formuły
Przypomnijmy, że negacja <math>\displaystyle \neg\phi</math> jest skrótem formuły
<math>\varphi\to\bot</math>. Dualnie do [ ] definiujemy ''modalność możliwości''  
<math>\displaystyle \phi\to\false</math>. Dualnie do <math>\displaystyle \bx{\,}</math>
<center><math>\langle\alpha\rangle\varphi := \neg[\alpha]\neg\varphi</math></center>
definiujemy ''modalność możliwości''  
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 &\eqdef& \neg\bx{\alpha}\neg\phi.  </math> Zdanie
formuła <math>\langle\alpha\rangle\bot</math> jest zawsze fałszywa.
<math>\displaystyle \d\alpha\phi</math> czytamy "istnieje obliczenie programu <math>\displaystyle \alpha</math>, które
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
ba))\star.
\endaligned</math></center>


Program <math>\displaystyle \alpha</math> traktowany jako wyrażenie regularne,  
Program <math>\alpha</math> traktowany jako wyrażenie regularne,  
generuje wszystkie słowa nad alfabetem <math>\displaystyle \{a,b\}</math> o parzystej liczbie
generuje wszystkie słowa nad alfabetem <math>\{a,b\}</math> o parzystej liczbie
wyst±pień <math>\displaystyle a</math> oraz <math>\displaystyle b</math>. Można pokazać, że dla dowolnego zdania <math>\displaystyle \phi</math>,
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>.
formuła <math>\displaystyle \phi\oto\bx\alpha\phi</math> jest prawdziwa w <math>\displaystyle \frK</math>.
Zauważmy, że operator <math>^*</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,
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
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
mówi, że jeśli <math>\varphi</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>\displaystyle \phi</math> oraz struktury Kripkego <math>\displaystyle \frK = (K,\:\mg K)</math>
 
definiujemy now± strukturę <math>\displaystyle \frK/\FL\phi =
Dla danej formuły <math>\varphi</math> oraz struktury Kripkego <math>\mathfrak{K} = (K,\mathrm{m}_{\mathfrak{K}})</math>
\<K/\FL\phi,\:\umg{\frK/\FL\phi}\></math>, zwan± ''filtracj± struktury
definiujemy nową strukturę <math>\mathfrak{K}/FL(\varphi) =
<math>\displaystyle \frK</math> przez <math>\displaystyle \FL\phi</math>''. Najpierw definiujemy binarn± relację <math>\displaystyle \equiv</math>
\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>\displaystyle \frK</math>.   <math>\displaystyle u \equiv v & </math> , gdy <math>\displaystyle  &
w zbiorze stanów <math>\mathfrak{K}</math>.
\forall\psi\in\FL\phi\ (u\in\Mg K{\psi}\Iff v\in\Mg K{\psi}).   </math>  
<center>
Innymi słowy utożsamiamy stany <math>\displaystyle u</math> oraz <math>\displaystyle v</math> je¶li s± one
<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>.
nierozróżnialne przez żadn± formułę ze zbioru&nbsp;<math>\displaystyle \FL\phi</math>. Filtracja
</center>
struktury jest zwykł± konstrukcj± ilorazow±. Niech
 
<math>\displaystyle [u] &\eqdef&
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
\set v{v \equiv u}\\ K/\FL\phi &\eqdef& \set{[u]}{u\in K}\\
struktury jest zwykłą konstrukcją ilorazową. Niech
\uMg{\frK/\FL\phi}p &\eqdef& \set{[u]}{u\in\Mg K p},\quad  </math> gdy <math>\displaystyle p</math>
<center>
jest zmienn± zdaniow± <math>\displaystyle  \\ \uMg{\frK/\FL\phi}a &\eqdef&
{| border="0" cellpadding="0" cellspacing="5"
\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>[u]</math>
|<math>:= \{v\;|\; v \equiv u\}</math>
|-
|<math>K/FL(\varphi)</math>
|<math>:= \{[u]\;|\; u\in K \}</math>
|-
|<math>\mathrm{m}_{\mathfrak{K}/FL(\varphi)}(p)</math>
|<math>:= \{[u]\;|\; u\in \mathrm{m}_{\mathfrak{K}}(p)\}</math>, gdy <math>p</math> jest zmienną losową
|-
|<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 450: 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 481: 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.


{{definicja|||
{{kotwica|war16_17|}}
{{definicja|10.17||


''Niestandardow± struktur± Kripkego'' nazwiemy każd± strukturę
''Niestandardową strukturą Kripkego'' nazwiemy każdą strukturę
<math>\displaystyle \frN = (N,\mg N)</math> spełniaj±c± wszystkie warunki struktury Kripkego
<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
podane w definicjach&nbsp;[[##def-kripke1|Uzupelnic def-kripke1|]] oraz [[##def-kripke2|Uzupelnic def-kripke2|]] za
wyjątkiem warunku [[#war14|(14)]]. Zamiast tego warunku żądamy,
wyj±tkiem warunku ([[##eqn-Mgdef6|Uzupelnic eqn-Mgdef6|]]). 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  
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>\mathrm{m}_{\mathfrak{N}}(\alpha^*) := \bigcup_{n\geq 0}\mathrm{m}_{\mathfrak{N}}(\alpha)^n,\qquad\qquad\qquad\quad\quad\quad\qquad (15)
N{\alpha}^n,
</math></center>
\endaligned</math></center>


ż±damy, aby dla każdego programu <math>\displaystyle \alpha</math>, relacja <math>\displaystyle \Mg
żą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>
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;\alpha^*]\varphi)\qquad\qquad\qquad\quad\quad\quad (16)
N{\bx{\alpha\star}\phi} &= \Mg
</math></center>
N{\phi\meet\bx{\alpha\star}(\phi\imp\bx\alpha\phi)}.
 
\endaligned</math></center>
 
<center><math>
\mathrm{m}_{\mathfrak{N}}([\alpha^*]\varphi) = \mathrm{m}_{\mathfrak{N}}(\varphi\wedge[\alpha^*](\varphi\to[\alpha]\varphi)).\qquad\qquad\qquad (17)
</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>
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>
 
Z Lematu [[#lem10.16|Lematu 10.16]] wynika, że obydwie definicje <math>\mathrm{m}_{\mathfrak{N}}(\alpha)</math>
równoważne. Dowód nastepującego twierdzenia pozostawimy Czytelnikowi.


{{twierdzenie|||
{{twierdzenie|10.18||
Struktura <math>\displaystyle \frN</math> jest niestandardow± struktur± Kripkego.
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.