Tartalom
A temporális logikák a klasszikus logika [[???Pász 93]] lehetséges kiterjesztései. A temporális logikai nyelvek szemantikájának definiálásakor szükségünk lesz az időpontok halmazáraAz időpont fogalmát absztrakt értelemben használjuk. Nem foglalkozunk az időpontok halmaza felett metrika definiálásával. Az ismertett modell egyelőre nem terjed ki a programok valós idejű végrehejtásának leírására [[???Mel 87]].. Az egyes formulákat egy olyan modell felett értelmezzük amelyben a formulák igazságértéke általában időpontról időpontra változó A temporális logikák a modális logikák körébe tartoznak [[???Rácz 92]]. A klasszikus logikai formula igazságértéke a modális logikák formalizmusa szerint, a logika típusa alapján nemcsak az individumváltozóktól, hanem valamilyen más paramétertől, pl.: helytől, időtől, stb. is függ. Defniálhatnánk pl. olyan modális logikát is, amelyben a paraméter időpillanat helyett időintervallum [[???Mel 87]]. Egy ilyen logika alkalmas lehet valós egyidejűség leírására. A modális paramétertér felett egy elérési reláció definiált. A különböző paraméterértékekhez tartozó univerzumokban egyszerre értelmezzük ugyanazon formulák igazságértékét. A formula igazságértéke egy adott paraméterérték által meghatározott univerzumban általában függ ugyanazon vagy más formulák az elérési reláció felhasználásával meghatározott univerzumokban felvett értékeitől. Az ilyen jellegű összefüggések leírására vezetik be a modális operátorokat, amelyek segítségével a modális paraméter ill. az elérési reláció explicit használata elkerülhető. A modális operátorokat tekinthetjük az egzisztenciális és az univerzális kvantor általánosításának. Az általánosított kvantor jelentése az elérési reláció tulajdonságaitól függ..
A nyelv szemantikájának definiálásakor megadjuk,
hogy adott időpontban mely atomi formulák teljesülnek. Az
időpontok halmaza felett egy, adott tulajdonságokkal rendelkező
relációRelációnak nevezzük halmazok direktszorzatának egy részhalmazát.
Bináris relációról beszélünk, ha a reláció pontosan két halmaz
direktszorzatának része.
definiált [[???Ben 88]]. Időstruktúráról beszélünk, ha az
időpillanatok halmaza felett definiált reláció tulajdonságai
megfelelnek az időről alkotott alapvető elképzeléseinknek, azaz a
relációazaz a modális logika elérési relációja
irreflexív és tranzitív. A reláció további tulajdonságai határozzák meg az
időstruktúra temporális logikai típusát. Megkülönböztethetünk pl. lineáris
( ), majdnem
összefüggő (
), ill. elágazó idejű modellt, ahol a jövőbe vezető utak diszjunktak. Vannak véges
ill. végtelen (
), diszkrét (
, ill. sűrű struktúrák. Megkövetelhető az idő homogenitása, azaz bármely
időpontpárhoz található olyan relációtartó automorfizmus, amely
-et
-ba viszi.
Izotróp egy struktúra, ha izomorf azzal, amelyben a rendezési reláció fordított, azaz
amelyben
-nek
felel meg.
A nyelv szintaxisa szempontjából ugyanúgy, ahogyan a klasszikus logikában, a temporális logika esetén is megkülönböztetjük a 0-ad és magasabbrendű logikai nyelveket. 0-ad rendű esetben a klasszikus logika 0-ad rendű formuláiból és a temporális operátorokból építjük fel a nyelvet. A temporális operátorok használatára vonatkozó szintaktikus szabályok határozzák meg a nyelv temporális logikai típusát. Ennek megfelelően választható ki a nyelvet interpretáló időstruktúra. Az időpillanatok halmaza megadható, mint egy program programállapotainak halmaza.Az elágazó idejű temporális logika formuláinak interpretációjához használt szokásos modellek [[???Eme Sri 88]] és az általunk definiált program ( def.) könnyen megfeleltethető egymásnak. Endogenous az a logika, amelynek időstruktúráját egyetlen program állapotai alapján definiálják, ill. exogenous a logika, ha programkonstrukciók is megengedettek.
Azt mondjuk, hogy egy temporális logikai formulának modellje egy időstruktúra, ha a struktúrában van olyan időpont, amelyben a formula teljesülHa megadjuk, hogy a feladat (. def.) átemenet- és peremfeltételeinek megfelelő temporális logikai formulákat hogyan írjuk fel, akkor a megoldás definícióját visszavezethetjük arra, hogy formulák egy halmazának matematikai logikai értelemben modellje-e a programnak megfelelő temporális logikai struktúra. Haladási feltételek lineáris temporális logikai megfogalmazására mutat példát [[???Lam 91]] a 22.2.3. bekezdésben.. Egy adott probléma megoldása a temporális logika terminológiája szerint a feladatot leíró formulahalmaz egy modelljének megtalálása lehet. Az automatikus programszintézishez modellkereső algoritmusokra van szükség. A szakirodalomban ismertetett eredmények [[???Eme Sri 88]] azt mutatják, hogy ezek az algoritmusok általában nagyon rossz hatékonyságúak, a megoldás előállításához a specifikáció hosszával exponenciálisan arányos időre van szükség. Az előállított megoldás minősége szempontjából az sem közömbös, hogy a formulahalmazt kielégítő modellek melyikét találja meg az algoritmus.
A továbbiakban egy rögzített interpretációban
értelmezzük a 0-ad rendű elágazó idejű temporális logika
operátorait.Egy rögzített program programállapotai által definiált időstruktúra esetén
egy
formula az állapottér felett értelmezett logikai függvényt definiál (. fejezet).
Az alábbi temporális logikai műveletek segítségével tehát rögzített
absztrakt
program esetén
logikai függvényekből új logikai függvényeket konstruálhatunk.
Az egyes temporális logikák között a leglényegesebb különbség a kifejezőerőben van. Általában minél nagyobb a logika kifejezőereje, annál bonyolultabb a logika eldöntési problémája. A bizonyításelmélet eldöntési problémájának nevezik azt a feladatot, amely úgy szól, hogy egy adott, tetszőleges formula bizonyítható-e. Az eldöntésprobléma megoldását jelenti az automatikus tételbizonyítás algoritmusának megadása. A modellelmélet eldöntésproblémája az a feladat, amely úgy szól, hogy egy adott, tetszőleges formula érvényes-e [[???Pász 93]].
Az elágazó idejű temporális logikában az időpillanatok halmaza felett olyan parciális rendezés (. def.) definiált, amely az időpillanatokat összefüggő fába rendezi. Az időstruktúra több lehetséges jövőt ír le.
Az elágazó idejű temporális logikák egyike a CTL (Computation Tree Logic).
Az alábbiakban követjük [[???Eme Sri 88]] leírásmódját és a CTL-en keresztül
mutatjuk be az elágazó idejű temporális logikákat. Megadjuk a CTL egy változata,
a CTL
szintaxis és szemantika formális definícióját (., . def.).
Programok elágazó idejű temporális logikai jellemzése során a programot irányított fának feleltetik meg, azaz a leíró szemantikai tartomány elemei fák. A fa csúcsai állapotok, az éleket pedig az állapotátmenetet megvalósító programkomponens azonosítójával címkézik. Az irányított fa csúcsaira ill. útjaira állításokat fogalmaznak meg [[???Eme Sri 88]].
Tekintsük példaként a következő CTL formulát:
. Az
alakú formula egy állapotra vonatkozik, ún. állapotformula. A
formula egy útra vonatkozó kikötés. ún. útformula.
Röviden ismertetjük az ,
,
,
,
formulák jelentését:
, ha minden
-ból induló
útra
, ha van olyan
-ból induló
út, hogy
, ha a
út minden
pontjára
, ha a
úton van olyan
pont, amelyre
, ha a
út
után következő
pontjára
Az ,
,
,
,
stb. operátorok a szintaktikus szabályok (. def.) betartásával
egymásbaágyazhatóak.
-
elkerülhetetlen,
- majdnem mindenütt
, jelölésben:
- végtelenül gyakran
, jelölésben:
-
lehetséges
- legközelebb
-
elvezet
-hoz
Az alábbi definíció használja a 0-ad rendű
klasszikus logika formalizált nyelvének atomi formula
fogalmátHa egy n-változós predikátumszimbólum és
termek, akkor
atomi formula. Az
változószimbólum
term. Ha
-változós
függvényszimbólum és
termek, akkor
term. Minden term e két szabály véges számú alkalmazásával áll elő
[[???Pász 93]]..
Jelölje
az atomi formulák halmazát.
A CTL
szintaxisának szabályai: S1. Minden atomi formula állapotformula. S2. Ha
és
állapotformula, akkor
és
is állapotformula. S3. Ha
útformula, akkor
állapotformula. P1. Bármely állapotformula egyben útformula is. P2. Ha
és
útformula, akkor
és
is útformula. P3. Ha
és
útformula, akkor
és
is útformula.
29.1. Megjegyzés.
Az alábbi formulák rövidítések:
![]()
![]()
![]()
29.2. Definíció.
Az S1,S2,S3,P1,P2,P3 szabályok véges sokszori alkalmazásával generált formulák alkotják a CTL
nyelvet.
A CTL
szemantikáját az
rendezett hármas által definiált időstruktúra felett adjuk meg, ahol
az állapotok halmaza,
bináris reláció
az állapotok felett:
,
,
pedig egy címkézés, amely az állapotokhoz atomi formulákat rendel,
.
29.3. Definíció.
Az
reláció értelmezési tartománya:
![]()
29.4. Definíció.
az
reláció végtelen pontlánca, ha
![]()
29.5. Definíció.
Legyen
.
az
reláció véges pontlánca, ha
![]()
Teljes útnak nevezzük és -szel jelöljük az
egy végtelen pontláncát. Az időpillanatok halmazát az
által generált teljes utakon elhelyezkedő pontok, programállapotok
alkotják. A címkézés megadja, hogy mely időpillanatban mely
atomi formulák igazak. Az időpontok felett értelmezett relációt az
definiálja.
Jelölés: ,
, ha az
struktúra
állapotára
ill.
teljes
útjára teljesül
. Ha a struktúra rögzített, akkor elhagyható a jelölésből. Ha
-t ill.
-et elhagyjuk, akkor bármely állapotra ill. útra teljesül
.
az
teljes út
suffix-ét jelöli,
.
A CTL
szemantikájának szabályai: S1.
, ha
. S2.
, ha
és
.
, ha nem teljesül
. S3.
, ha van olyan
teljes út, hogy
és
. P1.
, ha
és
állapotformula. P2.
, ha
és
.
, ha nem teljesül
. P3.
, ha
.
, ha
és
.
29.7. Definíció.
A
állapotformuláról azt mondjuk, hogy érvényes, ha
.
kielégíthető, ha
. Ha
, akkor
modellje
-nek. A
útformuláról azt mondjuk, hogy érvényes, ha
.
Ha a 0-ad rendű klasszikus logika tautológiáiba állapotformulákat helyettesítünk, akkor érvényes formulákhoz jutunk. Érvényesek az alábbi összefüggések is:
További érvényes formulákra mutat példákat [[???Eme Sri 88]].
Bevezetjük az egyszerű útkifejezések fogalmát. Egészítsük ki a . definíció szabályhalmazát az alábbi szabállyal: „P0. bármely atomi formula útformula.” Ekkor a P0,P2 szabályok véges sokszori alkalmazásával kapjuk az egyszerű 0-ad rendű formulákat.
29.8. Definíció.
A P0,P2,P3 szabályok véges sokszori alkalmazásával kapjuk az egyszerű útkifejezéseket.
29.9. Definíció.
Megszorított útkifejezés egy egyszerű útkifejezés, ha minden temporális operátor argumentuma egyszerű 0-ad rendű formula és minden 0-ad rendű formula egy temporális operátor hatáskörében van.
29.1. Példa.
megszorított útkifejezésre:
![]()
Különböző pártatlan ütemezési feltételeket
(. fejezet) definiálhatunk a bevezetett operátorok, az
és az
atomi formulák
segítségével.
akkor igaz, ha az adott állapotot közvetlenül megelőzően a
. programkomponens került végrehajtásra. Az
pedig akkor, ha a
megelőző állapotban a
. programkomponens őrfeltétele igaz volt, vagy másképp: a
.
programkomponens végrehajtásra kész volt.
feltétlenül pártatlan, ha
gyengén pártatlan, ha
szigorúan pártatlan, ha
29.2. Megjegyzés.
Az
feltétel ún. atomi élfeltétel. Az élfeltételek szemantikájának megadásához bevezetjük az ún. multiprocessz struktúrákat
.
az állapotok halmaza,
,
,
az atomi formulák halmaza,
, ahol
az
hatványhalmaza,
pedig az atomi élfeltételek véges nem üres halmaza. Kikötjük, hogy
. Jelöljük
-vel
-t. Ha
azt jelenti, hogy az adott állapotátmenetért a
. folyamat felelős, akkor
ezen folyamatot jellemzi (v.ö. . def.). Kiegészítjük a . szemantikus szabályokat a P0
, ha
szabállyal, ahol
egy atomi élfeltétel.
Ha csak a feltétlenül pártatlan ütemezésnek megfelelő
végrehajtási utakra akarunk kikötéseket tenni, akkor a
Fair Computation Tree Logic műveleteit kell alkalmazni. A
formula akkor
teljesül egy végrehajtási útra, ha minden folyamatra igaz, hogy a végrehajtását
azonosító
atomi élfeltétel az út mentén végtelen sokszor szerepel.
29.11. Definíció.
,
,
![]()
29.3. Megjegyzés.
Ha a struktúra csak a feltétlen pártatlan ütemezésnek megfelelő utakat tartalmazza, akkor nincs szükség az
műveletek bevezetésére. Ebben az esetben azonban a . alakú szemantikamegadás nem lehetséges, ún. általánosított szemantikadefinícióra van szükség [[???Eme Sri 88]]. Általánosított szemantikát egy M=(A,X,L) struktúra felett adhatunk meg, ahol X az utak halmaza. A . alakú szemantikamegadás akkor lehetséges, ha az utak halmaza előállítható mint egy
reláció véges és végtelen pontláncainak halmaza, azaz az utak halmaza
-generálható.
-gal jelöljük az
elemeiből képzett véges vagy végtelen sorozatok halmazát. Az
utak halmaza pontosan akkor
-generálható, ha suffix zárt (
) és fúzió zárt (
![]()
állapotok véges,
állapotok végtelen sorozatát jelöli.) és limit zárt (
). Könnyen belátható, hogy a feltétlenül pártatlan ütemezésnek megfelelő utak gráfja nem generálható egy relációval, azaz nem
-generálható, mert nem zárt utak egyesítésére.
Az elágazó idejű temporális logika operátorait az alábbi módon szokták még jelölni:
.
.
.
Megj.:
megfelel
-nek, tehát lehetőséget fejez ki.
.
A
tehát nem lehetőséget fejez ki (
), hanem bizonyosságot!
Nem ekvivalens
-tal [[???Eme Sri 88]].
Lineáris temporális logika esetén az időstruktúrát egy program által
generált sorozatok halmazának tekinthetjük. A sorozatok a lehetséges
végrehajtási utak. A program éppen aktuális végrehajtásának megfelelő
sorozatra, -re tehetünk kikötéseket.
Ha egy program működését akarjuk specifikálni, akkor úgy
tekintjük, hogy minden egyes lineáris temporális logikai feltétel
elé implicit módon odaírtuk azt is, hogy a feltétel minden a
kezdőállapotból kiinduló (lehetséges) végrehajtási sorozatra teljesüljön.
A
lineáris temporális logikai formulával felírt specifikációt tehát
alakra fogalmazhatjuk át elágazó temporális logikában, de az
operátor nem
disztributív [[???Eme Sri 88]]: (
)! „Sometime” is Sometimes „Not Never” (Lamport).
Hasonló a helyzet a processzalgebrából ismert
(időben elágazó szemantikát kifejező) összefüggés temporális logikai
megfelelője esetén:
[[???Ben
88]].