ORSI Jegyzet

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 180

Bevezets a programozsba

12
Fthi kos, Horvth Zoltn
ELTE Informatikai Kar, 2005.
1
A m u digitlis megjelentse az Oktatsi Minisztrium tmogatsval, a Fels ooktatsi
Tanknyv- s Szakknyv-tmogatsi Plyzat keretben trtnt.
2
Az ELTEIK Elektronikus Knyvtr ltal kzvettett digitlis tartalmat a felhasznl a
szerz oi jogrl szl 1999. vi LXXVI. tv. 33. (4) bekezdsben meghatrozott oktatsi,
illetve tudomnyos kutatsi clra hasznlhatja fel. A felhasznl a digitlis tartalmat kp-
erny on megjelentheti, letltheti, arrl elektronikus adathordozra vagy papralapon m-
solatot kszthet, adatrgzt o rendszerben trolhatja. Az ELTEIK Elektronikus Knyvtr
weblapjn tallhat digitlis tartalmak zletszer u felhasznlsa tilos, valamint a szerz ok
rsbeli hozzjrulsa nlkl kizrt a digitlis tartalom mdostsa s tdolgozsa, illetve
az ilyen mdon keletkezett szrmazkos anyag tovbbi felhasznlsa.
2
III. rsz
Prhuzamos s elosztott programozs
Horvth Zoltn
3
4
Tartalomjegyzk
III. Prhuzamos s elosztott programozs
Horvth Zoltn 3
El osz 9
Bevezets 11
Jellsek 15
1. A relcis modell alapfogalmai 19
1.1. Feladat: tkez o lozfusok . . . . . . . . . . . . . . . . . . . . . 19
1.2. Absztrakt program: rendezs . . . . . . . . . . . . . . . . . . . . 21
1.3. A relcis modell alapfogalmai . . . . . . . . . . . . . . . . . . . 22
2. A feladat fogalmnak ltalnostsa 27
2.1. Specikcis felttelek . . . . . . . . . . . . . . . . . . . . . . . 27
2.2. A programozsi feladat dencija . . . . . . . . . . . . . . . . . 30
2.3. Feladat kiterjesztse . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4. A feladat nomtsa . . . . . . . . . . . . . . . . . . . . . . . . . 32
3. Prhuzamos absztrakt program 37
3.1. Az absztrakt program szerkezete . . . . . . . . . . . . . . . . . . 37
3.1.1. A feltteles rtkads fogalma . . . . . . . . . . . . . . . 38
3.2. llapottmenetfk . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.1. Utastsok kiterjesztse, szuperpozcija . . . . . . . . . . 43
3.2.2. Program kiterjesztse . . . . . . . . . . . . . . . . . . . . 45
3.3. Prtatlan temezs fogalma . . . . . . . . . . . . . . . . . . . . . 45
3.4. Az absztrakt program tulajdonsgai . . . . . . . . . . . . . . . . 47
3.4.1. A leggyengbb el ofelttel s ltalnostsa . . . . . . . . 47
3.4.2. Invarinsok s elrhet o llapotok . . . . . . . . . . . . . . 49
5
6 TARTALOMJEGYZK
3.4.3. Biztonsgossgi tulajdonsgok . . . . . . . . . . . . . . . 52
3.4.4. Haladsi tulajdonsgok . . . . . . . . . . . . . . . . . . . 53
3.4.5. Fixpont tulajdonsgok . . . . . . . . . . . . . . . . . . . 57
3.4.6. Terminlsi tulajdonsgok . . . . . . . . . . . . . . . . . 59
3.5. Az absztrakt program viselkedsi relcija . . . . . . . . . . . . . 59
3.6. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4. A megolds fogalma 65
4.1. A megolds dencija . . . . . . . . . . . . . . . . . . . . . . . 65
4.2. tmenetfelttelek . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.1. Biztonsgossgi felttelek . . . . . . . . . . . . . . . . . 66
4.2.2. Haladsi felttelek . . . . . . . . . . . . . . . . . . . . . 67
4.3. Peremfelttelek . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.1. Fixpont felttelek . . . . . . . . . . . . . . . . . . . . . . 67
4.4. Megolds K invarins tulajdonsg mellett . . . . . . . . . . . . . 68
4.5. A megolds dencijnak vizsglata . . . . . . . . . . . . . . . 68
5. Levezetsi szablyok 71
5.1. Biztonsgossgi felttelek nomtsa . . . . . . . . . . . . . . . . 71
5.2. Haladsi felttelek nomtsa . . . . . . . . . . . . . . . . . . . . 71
5.3. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6. Programkonstrukcik 79
6.1. Uni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2. Szuperpozci . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.3. Szekvencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.4. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7. A modell tulajdonsgai 95
7.1. Szemantika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.2. Kifejez oer o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.2.1. Programhelyessg . . . . . . . . . . . . . . . . . . . . . 96
8. Programozsi ttelek 97
8.1. Asszociatv m uvelet eredmnye . . . . . . . . . . . . . . . . . . 97
8.1.1. A feladat specikcija . . . . . . . . . . . . . . . . . . . 98
8.1.2. A megolds . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.1.3. Programtranszformci . . . . . . . . . . . . . . . . . . . 103
TARTALOMJEGYZK 7
8.1.4. A specikci nomtsa . . . . . . . . . . . . . . . . . . 103
8.1.5. A transzformlt program . . . . . . . . . . . . . . . . . . 104
8.1.6. Hatkonysg s ltalnossg . . . . . . . . . . . . . . . . 104
8.2. Csatornavltozk hasznlata . . . . . . . . . . . . . . . . . . . . 106
8.3. Termszetes szmok genertora . . . . . . . . . . . . . . . . . 108
8.4. Adatcsatorna ttele . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.5. Elgazs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.6. Elemenknt feldolgozhat fggvnyek . . . . . . . . . . . . . . . 114
8.6.1. A feladat specikcija . . . . . . . . . . . . . . . . . . . 115
8.6.2. A megolds . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.6.3. Teljesen diszjunkt felbonts prhuzamos
el olltsa . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.6.4. Diszjunkt halmazok unija . . . . . . . . . . . . . . . . . 121
8.6.5. A prhuzamos elemenknti feldolgozs ttele . . . . . . . 122
8.6.6. Hatkonysg s ltalnossg . . . . . . . . . . . . . . . . 122
8.7. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9. Modellek s tulajdonsgaik 127
9.1. Szemantikai modellek . . . . . . . . . . . . . . . . . . . . . . . . 127
10. Irodalmi ttekints 131
10.1. A Hoare logika kiterjesztsei . . . . . . . . . . . . . . . . . . . . 131
10.2. Egy relci alap modell . . . . . . . . . . . . . . . . . . . . . . 134
10.3. Folyamatok viselkedsnek algebrai lersa . . . . . . . . . . . . 134
10.4. Temporlis logikai modellek . . . . . . . . . . . . . . . . . . . . 136
10.5. Tovbbi modellek . . . . . . . . . . . . . . . . . . . . . . . . . . 137
11. Matematikai eszkzk 139
11.1. Temporlis logika . . . . . . . . . . . . . . . . . . . . . . . . . . 139
11.1.1. Elgaz idej u temporlis logika . . . . . . . . . . . . . . 141
11.1.2. Lineris temporlis logika alapm uveletei . . . . . . . . . 146
11.2. Lekpezsek xpontja . . . . . . . . . . . . . . . . . . . . . . . 147
11.2.1. Parcilis rendezs, irnytott halmaz . . . . . . . . . . . . 147
11.2.2. Teljes hlk . . . . . . . . . . . . . . . . . . . . . . . . . 147
11.2.3. Monoton lekpezsek tulajdonsgai, xpontok . . . . . . 147
12. sszefoglals 149
8 TARTALOMJEGYZK
Fggelk 153
Absztrakt programok megvalstsa C/PVM-ben 153
Fontosabb ttelek s lemmk 158
Irodalomjegyzk 166
Trgymutat 179
El osz
A tanknyv msodik rsze az ELTE programtervez o hallgati szmra tartott pr-
huzamos programozs alapjai cm u trgy el oadsai alapjn kszlt, az el oadsok
anyagt s az rdekl od o hallgatk szmra httranyagot tartalmaz.
Felttelezzk, hogy az olvas elsajttotta a knyv els o rszben szerepl o tan-
anyagot, rendelkezik megfelel o programozsi gyakorlattal, rt legalbb nhny
egyszer u prhuzamos vagy elosztott programot.
A kvetkez okben egy olyan programozsi modellt fogalmazunk meg, amely
alkalmas arra, hogy prhuzamos s elosztott programok tervezst tmogassa.
A fogalmak jelentst relcik segtsgvel rjuk le. Programozsi modellt k-
lnbz o matematikai eszkzk segtsgvel fogalmazhatunk meg, szles krben
hasznlnak pldul algebrai, illetve logikai modelleket. Folyamatalgebrai model-
lek alapjait trgyalja pldul [Hen 88], temporlis logikai eszkzket mutat be
[Eme Sri 88, Kr 87].
A bemutatott modell kt fontos el ozmnyre pt. Az egyik a nemdeterminisz-
tikus szekvencilis programok relci alap modellje [Ft 83], a msik Chandy s
Misra prhuzamos programozsi mdszertana. Mindkett o kzs gykere Dijkstra
programozsi diszciplnja [Dij 76].
A prhuzamos programok tervezshez ksztett modell teht ugyanazt a meg-
kzeltst alkalmazza, ugyanazt a fogalomrendszert s eszkzkszletet hasznlja,
mint knyv els o felben a szekvencilis programok lersakor bemutatott modell.
9
10 El osz
Bevezets
Szmos programozsi feladat megoldsa lehet szekvencilis, elosztott vagy pr-
huzamos program is. A programozsi feladatok egy rsze azonban olyan jel-
leg u, amelynek megoldshoz trben elosztva elhelyezked o adatok, er oforrsok
felhasznlsa szksges [Lyn 02, Tan Ste 02]. Ilyen feladatokat egyetlen szm-
tgpen fut, szekvencilis program nem oldhat meg.
Prhuzamos feldolgozs esetn megklnbztethetnk adatintenzv, illetve sz-
mtsintenzv feladatosztlyokat. Adatintenzv feladat pldul zikai ksrletek-
b ol szrmaz nagyszm mrsi adat kirtkelse, vagy diagnosztikai eljrsok-
kal el olltott adatok elemzse. ltalban szmtsignyes feladatok kz tartoz-
nak a modellezsi feladatok, pl. id ojrs el orejelzs, szlcsatorna ksrletek szi-
mulcija, stb. Ezekben az esetekben elvileg egyetlen szmtgp is elvgezhetn
az adatok feldolgozst, de prhuzamos algoritmusok segtsgvel az eredmny
gyorsabban el ollthat. Az is gyakori eset, hogy az eredmny kiszmtst adott
id okorlton bell kell elvgezni s ehhez egyetlen processzor szmtsi kapacitsa
nem elegend o. Tbb processzor alkalmazsval nemcsak a szmtshoz szks-
ges id o rvidthet o le, de az id okorltra vonatkoz kvetelmny is teljesthet o
[Iv 03].
Programozsi feladatok specikcijnak s megoldsnak alkalmas mdsze-
reit keressk prhuzamos s elosztott rendszerek esetn.
Elosztott s prhuzamos programok fejlesztse sorn a program helyessg-
nek bizonytsa azrt is fontos lehet, mert tesztelssel nehezebben lehet a hibkat
felfedezni mint szekvencilis programok esetn. Elosztott s prhuzamos progra-
mok ismtelt futtatsa gyakran vezet eltr o eredmnyre. Ennek az az oka, hogy
a komponensek klcsnhatsa annak fggvnyben vltozik, hogy az adott fut-
tats sorn az egymstl fggetlen esemnyek kzl melyik kvetkezik be el obb.
Ha a program tesztelse rdekben nyomkvetsi utastsokat helyeznk el, akkor
ezzel megvltoztatjuk az egyes folyamatok kztt fennll id oztsi viszonyokat,
gy knnyen el ofordulhat, hogy a tesztels sorn a hiba nem jelentkezik.
Biztonsgkritikus alkalmazsok ksztse sorn teht csak bizonytottan he-
11
12 Bevezets
lyes komponenseket hasznlhatunk fel s az elosztott program sszetev oit csak
az sszetett program tulajdonsgait garantl programkonstrukcik segtsgvel
szerkeszthetjk ssze.
Feladatok megfogalmazsa, programok kdolsa mindig valamilyen nyelvi
eszkz segtsgvel valsul meg. A feladat specikcija egy jelsorozat, ahogy
egy adott programozsi nyelven rt program is bet uk, szimblumok, esetleg gra-
kus elemek sorozata. Ahhoz, hogy vlaszolni tudjunk arra a krdsre, hogy egy
specikci valjban milyen feladatot r le, hogy egy program futsa sorn mi
trtnhet, meg kell adnunk ezen jelsorozatok jelentst. Programok jelentsnek
pontos meghatrozsra matematikai modelleket hasznlunk.
Prhuzamos s elosztott programok tervezsnek egy matematikai modelljre
tesznk javaslatot oly mdon, hogy kiterjesztjk a nemdeterminisztikus szekven-
cilis programok relcis alap szemantikai modelljt [Ft 83] s a programo-
zsi feladatok megfogalmazsra s megoldsra korbban sikeresen alkalmazott
mdszereket [Dij 76, Ft Hor 91] prhuzamos programokra is.
Clunk, hogy a modell eszkzei segtsgvel a feladat specikcijt helyette-
steni tudjuk olyan feladatok specikciival, amely feladatok megoldsa esetn
a rendelkezsre ll matematikai eszkzkkel belthat az eredeti feladat megol-
dsnak helyessge [Var 81, Ft Hor 91, Cha Mis 89].
Arra treksznk, hogy a megolds el olltsval prhuzamosan a megolds he-
lyessgnek bizonytst is el olltsuk. Nem clunk az automatikus programszin-
tzis [Lav 78],[Eme Sri 88]/4.1.3., s nem akarjuk ksz algoritmusok helyessgt
utlag igazolni [Eme Sri 88]/4.2. Ennek els osorban az az oka, hogy prhuzamos
programokat a legtbb esetben rszben vagy kizrlag azrt runk, hogy a megol-
ds hatkonyabb legyen a szekvencilis architektrn elrhet o megoldsnl. Aha-
tkonysg lnyeges szempont lehet termszetnl fogva prhuzamos programmal
megoldand feladatok esetn is, pl. vals idej u alkalmazsoknl, folyamatszab-
lyoz vagy on-line tancsad rendszerek esetn [Hor 88]. Taln csak egyes szimu-
lcis feladatok vagy prototpus szoftver fejlesztse sorn msodlagos a megolds
hatkonysga. Hatkony megolds el olltsra az automatikus programszintzis
bonyolultabb feladatok esetn ltalban nem alkalmas. Az [Eme Sri 88]-ban is-
mertetett eredmnyek meggy oz oen mutatjk azt is, hogy a szintetizl algoritmu-
sok ltalban nagyon rossz hatkonysgak, a megolds el olltshoz a speci-
kci hosszval exponencilisan arnyos id ore van szksg. Hasonl lltsok
igazak a programbizonytsra is. A programbizonytsi eljrs sikertelensge ese-
tn nincs elegend o tmpont a program javtshoz sem.
A UNITY [Cha Mis 89] lineris idej u temporlis logikra tmaszkod oper-
13
torait jrafogalmazzuk a leggyengbb el ofelttel s ms prediktumtranszforme-
rek segtsgvel. Megvizsgljuk a bevezetett specikcis mdszer kifejez oerejt
s az ltalnostsi lehet osgeket.
Az egyes fejezetekr ol
A 1-3. fejezetben megadjuk a relcis modell alapfogalmainak denciit. A kt
legfontosabb bevezetett fogalom a feladat s az absztrakt program fogalma.
Az 4. fejezetben adjuk meg, hogy egy absztrakt program mikor old meg egy
feladatot. Kimondunk nhny ttelt is, amelyek igazoljk, hogy a bevezetett meg-
oldsfogalom megfelel elvrsainknak.
A 5. fejezetben tbb hasznos ttelt bizonytunk, amelyek segtsgvel a k-
s obbiek sorn knnyebben igazolhatjuk feladatok s programok tulajdonsgait.
A 6. fejezetben sszetett problmk megoldsa sorn alkalmazhat eszk-
zket vezetnk be. A megoldst modulokbl lltjuk ssze. Az absztrakt prog-
ramokat egyestjk s szuperponljuk, tmaszkodunk az n. nyitott specikci
fogalmra [Cha Mis 89]. Megvizsgljuk programok szekvencilis ill. vals pr-
huzamos kompozcijnak lehet osgt.
A 7. fejezetben megvizsgljuk a bevezetett modell tulajdonsgait, kifejez o-
erejt.
A modell eszkzkszletnek ismertetse utn programozsi tteleket mon-
dunk ki s sszetett problmk megoldsa sorn alkalmazhat eszkzket veze-
tnk be.
A 8. fejezetben ltalnosan megfogalmazott programozsi feladatokat oldunk
meg. A kapott megoldsokat programozsi tteleknek nevezzk, mert szles kr-
ben alkalmazhatak konkrt feladatok megoldsa sorn. Az egyik ilyen alapfel-
adat asszociatv m uvelet eredmnynek prhuzamos kiszmtsa. A msik az
elemenknt feldolgozhat, ill. a sorozatokon tbbszrs fggvnykompozci-
val denilt fggvny rtknek kiszmtsa. Pldt mutatunk csatornavltozk
hasznlatra s adatcsatorns megoldsi mdszerekre is. Megvizsgljuk, hogy a
kapott megoldsok milyen architektrkon implementlhatk hatkonyan. Olyan
megoldsokat dolgozunk ki, amelyek osztott s aszinkron osztott memris rend-
szerekre is knnyen lekpezhet oek.
A 9-10. fejezetben megvizsgljuk, hogy a prhuzamos programok lersra
alkotott modellek milyen lnyeges tulajdonsgokban trnek el egymstl. Meg-
adjuk, hogy az ltalunk javasolt modell milyen jelensgek lersra alkalmas.
14 Bevezets
A 11. fejezetben ismertetjk azokat a matematikai eszkzket, amely a beve-
zetett modell mlyebb matematikai httert tisztzzk. sszefoglaljuk a lekpe-
zsek xpontjaira vonatkoz eredmnyeket s bevezetjk az olvast a temporlis
logikk vilgba. A temporlis logikkrl szl 11.1 bekezdsben bevezetett fo-
galmakra s ttelekre a II. rszben ltalban csak egyes megjegyzsekben s lb-
jegyzetekben utaltunk, gy a II. rsz fejezeteinek megrtshez ez a bekezds nem
felttlenl szksges.
A 12. fejezetben sszefoglaljuk s rtkeljk a lert mdszereket.
A fggelkben megvizsgljuk, hogy az absztrakt programokat hogyan kdol-
juk C-PVM segtsgvel.
A knnyebb tjkozdst kereszthivatkozsok, trgymutat s jellsek jegy-
zke, a legfontosabb fogalmak dencii, stb. segti. Az rdekl od o olvas gya-
korl feladatok megoldssval ellen orizheti tudst.
Egyes megjegyzseket lbjegyzetben helyeztnk el. A lbjegyzetekben l-
talban ms modellek rokon fogalmaira utalunk rviden. Ezek a megjegyzsek
els osorban azoknak az olvasknak szlnak, akik ezekben a modellekben jrato-
sak.
Gyakran hasznlt jellsek
::= - denil egyenl osg
A::=

iI
A
i
- llapottr
a = (a
1
, . . . , a
n
) A - llapot
R

iI
A
i
- relci
R
n
(A) az

i[1..n]
A direktszorzat feletti relcik halmaza
R AB - binris relci
R(a) - az R relci kphalmaza
D
R
- az R relci rtelmezsi tartomnya
= (
1
, . . . ,
n
) - vges sorozat
= (
1
, . . . . . .) - vgtelen sorozat
[[ - az sorozat hossza
A

: A elemeib ol kpzett vges sorozatok halmaza


A

: A elemeib ol kpzett vgtelen sorozatok halmaza


A

::=A

P(A) - az A hatvnyhalmaza
R : A B - parcilis fggvny A-rl B-re
R : A B - fggvny A-rl B-re
pr
A
1
: A A
1
- az A trr ol az A
1
altrre vetts
L::=igaz, hamis - logikai rtkek halmaza
Igaz : A L - az azonosan igaz,
Hamis : A L - az azonosan hamis logikai fggvny.
f - logikai fggvny (llts) igazsghalmaza
P Q::=P Q
PQ::=P Q
PQ::=P Q
Q::=AQ
P Q::=PQ
=, , = - ha, akkor, akkor s csak akkor, ill. akkor, ha
R
(1)
- inverz relci
15
16 Jellsek
R
tdl
- relci tranzitv diszjunktv lezrtja
[R] az R = Igaz llts rvidtse, ahol R AL
v
i
: A A
i
- vltoz
N - pozitv egszek halmaza
N
0
- nemnegatv egszek halmaza
- a termszetes szmok halmaznak rendszma
X : G(X) - G legnagyobb xpontja X szerint
Y : F(Y) - F legkisebb xpontja Y szerint
PQ - P stabil feltve, hogy nem Q
P Q - P biztostja Q-t
P Q - P-b ol elkerlhetetlen Q
FP R - R teljesl xpontban
Q INIT - Q igaz kezdetben
invP - P invarins
Q FP, Q TERM - Q-bl indtva a program biztosan xpontba jut
VR(P) - azok a vltozk, amelyekt ol a P (logikai) relci (fggvny) fgg
F - feladat
B - paramtertr
s - utasts
I - a vltozk s az llapottrkomponensek indexeinek halmaza
J - a program utastsainak indexhalmaza
p(s) - az s utasts hatsrelcija
SKIP - res utasts
VL(s) - az s utasts baloldaln ll vltozk
VR(s) - az s utasts jobboldaln ll vltozk
V(s)::=VR(s) VL(s)
S - absztrakt program
E(S)(a) - S program a-bl elrhet o llapotainak halmaza
VL(S) - az S programban baloldalon ll vltozk
VR(S) - az S programban jobboldalon ll vltozk
V(S)::=VR(S) VL(S)
f ixpont
S
,
S
- az S absztrakt program xpontjait jellemz o llts
P

, F

, S

- altren denilt logikai fgv., feladat, program kiterjesztse


s
1
|s
2
- feltteles rtkadsok szuperpozcija
S
1
S
2
- programok unija
F
1
F
2
- feladatok egyestse
S
1
; S
2
- programok szekvencija
BT - elgaz idej u temporlis logika
17
LT - lineris idej u temporlis logika
18
1. fejezet
A relcis modell alapfogalmai
Programozsi modellnek nevezzk azt a matematikai modellt, amely
megadja feladatok s programok szemantikai jelentst, konstrukcis m u-
veleteket denil feladatok s programok felett, valamint megadja, hogy egy
program mikor old meg egy feladatot. Relcis modellr ol beszlnk, ha a
szemantikai tartomnyok elemei relcik.
Gondolkodsunk sorn a programozsi feladat [Ft 83] fogalmbl indulunk
ki. Programozsi feladatot mindig egy llapottren [Dij 76] fogalmazunk meg. A
feladat megfogalmazshoz teht meg kell alkotnunk a feladat matematikai mo-
delljt
1
, absztrakcira van szksg. A feladat megfogalmazshoz vezet o utat
most nem vizsgljuk.
2
1.1. Feladat: tkez o lozfusok
Els o pldnk E. W. Dijkstrtl szrmazik, aki az opercis rendszerek trgy tan-
tsa sorn a folyamatok kztti klcsns kizrson alapul er oforrsmegoszts
elvt szemlltette vele. Ez a plda t, egymssal egyttm ukd o prhuzamos fo-
lyamatbl ll rendszert modellez. A trtnet szerint egy asztal krl t lozfus
l, akik egy nagy kzs tlbl vehetnek maguknak makarnit. Ahhoz, hogy a ma-
karni a tnyrba kerljn kt villra van szksg. A tlat tbben is hasznlhatjk
1
A modell szt ltalnos rtelemben hasznljuk. Ha a matematikai logikban, a modellelmletben hasznlt modellfo-
galomra gondolunk, akkor erre kln hivatkozunk. Egy feladat megfogalmazsa nem kthet o pl. egy rgztett temporlis
logikai struktrhoz, mert ez esetben a feladat mr nem fogalmazhat meg fggetlenl az id ostruktrt denil prog-
ramtl. A feladatot nem azonostjuk az ot ler formulk halmazval, mint szintaktikus egysgekkel sem, ugyanis egy
interpretlatlan formulahalmaz minden interpretciban ms s ms szemantikai jelentst hordoz. A feladatot mindig egy
rgztett llapottr felett, azon rtelmezett relcik segtsgvel adjuk meg.
2
Nem vizsgljuk azt, hogy egy feladat formlis alakja valban azt a feladatot rja-e le, amit valamilyen termszetes
nyelven megfogalmaztak. A vlasztott programozsi modell keretein tlmutat ennek a krdsnek a vizsglata.
19
20 1. FEJEZET. A RELCIS MODELL ALAPFOGALMAI
egyszerre, de az tkezshez szksges villk midegyikre kln-kln teljeslnie
kell, hogy egyszerre csak egy lozfus hasznlatban lehetnek. Minden lozfus
szmra kt villa rhet o el, ezek azonban olyan villk amelyeket szomszdai is
szeretnnek hasznlni. Ha egy lozfus felemeli az asztalrl bal- s jobboldali
villjt s eszik, akkor egyik szomszdja sem rendelkezhet az tkezshez szks-
ges kt villval. Egyidej uleg csak egymssal nem szomszdos lozfusok tkez-
hetnek .
1.1. bra. Az tkez o lozfusok
Jelljk az i. lozfust f (i)-vel, az egyes llapotokat pedig a kezd obet ujkkel:
gondolkodik:g, villkat tart a kezben:v, eszik:e, otthon van:o. A kvetkez okben
pldkat mutatunk a lozfusok viselkedsre vonatkoz specikcis kvetel-
mnyek megfogalmazsra.
Az amg nem (jells: ) tpus kiktsekkel egyes llapottmeneteket tilt-
hatunk. Megkvetelhetjk, hogy minden lozfus gondolkodik, amg villt nem
tart a kezben vagy haza nem rt: f (i).g f (i).v f (i).o. Ez azt jelenti, hogy a
gondolkods llapott nem kvetheti kzvetlenl az tkezs llapota. Kiktjk azt
is, hogy a villk kzben tartst csak az evs llapota kvetheti: f (i).v f (i).e,
a villk megszerzse utn nem szabad sem hazamenni, sem gondolkodni. Szigo-
rbb kiktst tehetnk oly mdon, hogy a megengedett llapotvltozsok bek-
vetkezst el o is rjuk: f (i).e f (i).g. Az tkezst el obb utbb fel kell vlta-
nia a gondolkodsnak. Lazbb kapcsolatot is megkvetelhetnk llapotok kztt:
1.2. ABSZTRAKT PROGRAM: RENDEZS 21
f (i).g f (i).o, a gondolkods llapott el obb utbb elkerlhetetlenl kveti,
hogy a lozfus otthon van. Invarins tiltja, hogy szomszdok egyszerre tkezze-
nek: ( f (i).e (f (i +1).e f (i 1).e)) inv. Fixpont kiktseket alkalma-
zunk arra, hogy el orst tegynk arra az esetre, ha a rendszer nyugalmi llapotba
jut: FP f (i).h. A kikts szerint, ha tovbbi llapotvltozs nincs, akkor min-
den lozfus otthon van. Megkvetelhetjk, hogy egy llapotbl i : f (i).g
TERM elkerlhetetlen legyen a nyugalmi llapot elrse, a terminls.
1.2. Absztrakt program: rendezs
Kvetkez o pldnk az absztrakt program fogalmt mutatja be. Az absztrakt prog-
ram utastsait nem rendezzk szekvencilis folyamatokk, egyetlen utastshal-
maz formjban adjuk meg. Utastshalmazok tulajdonsgai knnyebben igazol-
hatak, mint szekvencilis folyamatok halmazaknt megadott prhuzamos prog-
ramok helyessge. Az utastshalmaz elemeit felvltva hajtjuk vgre (ld. 3. feje-
zet), a program m ukdse egy tbb ciklusmaggal rendelkez o ciklushoz hasonlt.
Ha egynl tbb processzor ll rendelkezsre, akkor egyszerre vagy id oben tfedve
tbb utastst is vgrehajthatunk
3
. Az utastshalmazt egy inicializl rtkads
el ozi meg.
Abuborkrendezs algoritmusa szerint kt szomszdos megcserlnk, ha rossz
sorrendben vannak. Az absztrakt program minden szomszdos elemprhoz tartal-
maz egy olyan utastst, amelyik szksg esetn a kt elemet megcserli. Ha az
elemek sorrendje helyes, akkor tovbbi llapotvltozs mr nem kvetkezik be, a
program terminl.
S = (SKIP,


i[1..n1]
a(i), a(i +1) := a(i +1), a(i), ha a(i) > a(i +1))
1.1. absztrakt program. Buborkrendezs.
Az absztrakt program egy lehetsges implementcija, ha minden utastshoz
egy nll folyamat tartozik s a folyamatokhoz egy-egy sajt processzort rende-
lnk hozz. Egyidej uleg csak egy folyamat szmra engedlyezhetjk a vektor
elemeihez val hozzfrst. Jelljk <lock a(i) and a(i+1)>-vel azt a m u-
veletet, amellyel egy folyamat az i. s az i+1. elem hasznlatt ignyli (a kri-
tikus szakasz kezdett), illetve <unlock a(i) and a(i+1)>-vel azt a m uvele-
3
Ebben az esetben csak olyan rtkadsok egyidej u vagy id oben tfed o vgrehajtsa megengedett, amelyek nem tartal-
maznak kzs vltozt.
22 1. FEJEZET. A RELCIS MODELL ALAPFOGALMAI
tet, amellyel lemond az elemek kizrlagos hasznlatrl (kritikus szakasz vge)
. Ebben az esetben az i. processzoron fut program pszeudokdja a kvetkez o
lehet:
loop
< lock a(i) and a(i+1) >
x := a(i);
y := a(i+1);
if x > y then
a(i+1):=x;
a(i):= y;
end if;
< unlock a(i) and a(i+1) >
end loop;
n1 folyamat.
Bemutatjuk azt is, hogy ugyenezen absztrakt programot hogyan valsthatjuk
meg egyetlen processzoron fut szekvencilis program formjban:
loop
for i=1 to n-1 do
x := a(i);
y := a(i+1);
if x > y then
a(i+1):=x;
a(i):= y;
end if;
end for
end loop
1.3. A relcis modell alapfogalmai
A feladat s az absztrakt program pontos jelentst gy adhatjuk meg, hogy a
feladat specikcijban szerepl o kiktsekhez, ill. az absztrakt programot ler
utastshalmazhoz relcit rendelnk hozz. A feladatot, ill. a programot ler re-
lcikat az llapottr, az llapottr hatvnyhalmaza, s ezek direktszorzatai felett
rtelmezznk. Az alapfogalmak dencii megegyeznek a knyv els o rszben
adottakkal.
1.3. A RELCIS MODELL ALAPFOGALMAI 23
Az llapottr vges sok legfeljebb megszmllhatan vgtelen tpusrtkhal-
maz direktszorzata [Ft 83].
1.1. Denci (llapottr). I N . i
j
I : A
i
j
megszmllhat halmaz. Az
A::=

i
j
I
A
i
j
halmazt llapottrnek, az A
i
j
halmazokat tpusrtkhalmazoknak ne-
vezzk.
1.2. Denci (llapot). Az llapottr elemeit, az a = (a
i
1
, . . . , a
i
n
) A pontokat
llapotoknak nevezzk.
A feladat matematikai megfogalmazshoz szksgnk lesz a relci s a so-
rozat fogalmra. Megismteljk a relci, binris relci s a relci rtelmezsi
tartomnya dencijt (11. fejezet).
1.3. Denci (Relci). I N . Az R

i
j
I
A
i
j
halmazt relcinak
4
nevezzk.
Az R A B-t binris relcinak nevezzk.
1.4. Denci (Relci rtke). R A B. R(a)::=b[ (a, b) R halmaz az
R relci rtke
5
az a pontban.
1.5. Denci (Relci rtelmezsi tartomnya). R A B. Az R relci r-
telmezsi tartomnya:
D
R
::=a A[ b B : (a, b) R.
6
Jellsek:
vges sorozat: = (
1
, . . . ,
n
)
vgtelen sorozat: = (
1
, . . . . . .)
A

: A elemeib ol kpzett vges sorozatok halmaza


A

: A elemeib ol kpzett vgtelen sorozatok halmaza


A

::=A

A feladat matematikai megfelel oje felttelek egyttese. A specikcis fel-


ttelek megfogalmazshoz logikai fggvnyeket hasznlunk. Logikai fggv-
nyeket igazsghalmazukkal, egy alaphalmaz adott rszhalmazval jellemezhetjk.
A specikcis relcik lershoz szksgnk lesz a hatvnyhalmaz fogalmra.
Minden egyes specikcis felttel az llapottr hatvnyhalmaza felett rtelme-
zett relci.
4
Plda: A::=1, 2, 5, B::=2, 3. R A B. R::=(1, 3), (1, 2), (5, 2).
5
A plda R relcijnak kpe az 1 pontban: R(1) =2, 3.
6
A plda R relcijnak rtelmezsi tartomnya: D
R
=1, 5.
24 1. FEJEZET. A RELCIS MODELL ALAPFOGALMAI
1.6. Denci (Hatvnyhalmaz). Az A halmaz rszhalmazainak halmazt az A
hatvnyhalmaznak nevezzk s P(A)-val jelljk.
A feladat matematikai megfelel oje felttelek egyttese. Minden egyes felttel
az llapottr hatvnyhalmaza felett rtelmezett relci. Az llapottr rszhalma-
zait logikai relcikkal jellemezzk. Megadjuk a logikai relci, logikai fggvny
s igazsghalmazuk dencijt.
1.7. Denci (Parcilis fggvny). Az R A B relci determinisztikus re-
lci, (vagy parcilis fggvny), ha a A : [ R(a)[ 1.
Parcilis fggvnyek esetn az R : A B jellst alkalmazzuk.
1.8. Denci (Fggvny). Az R A B relci fggvny, ha
a A : [ R(a)[ = 1.
Fggvnyek esetn az R : A B jellst hasznljuk.
1.9. Denci (Logikai fggvny, logikai relci). f AL relci logikai re-
lci , ahol L::=igaz, hamis a logikai rtkek halmaza. Logikai fggvny-r ol
beszlnk, ha a logikai relci fggvny.
Jells:
Igaz : A L - az azonosan igaz,
Hamis : A L - az azonosan hamis logikai fggvny.
1.10. Denci (Logikai fggvny igazsghalmaza). Az f logikai fggvny (l-
lts) igazsghalmaza
7
: f ::=a A[ f (a) =igaz .
1.1. Megjegyzs (Logikai m uveletek). A logikai relcik felett rtelmezzk a ,
, , , m uveleteket, oly mdon, hogy azok megfeleljenek a relcik igazsg-
halmazaira vonatkoz halmazm uveleteknek.
Azaz: P Q::=P Q, PQ::=P Q, PQ::=P Q,
Q::=AQ, s P Q::=PQ.
A =, , = jeleket bizonytsok szvegnek rvidtsre hasznljuk, a ha,
akkor, akkor s csak akkor, ill. akkor, ha lltsok lersnak rvidtsre.
1.11. Denci (Relci inverz kpe). R
(1)
(H)::=a A[ h H : (a, h)
R a H B halmaz R A B relcira vonatkoz inverz kpe.
7
Plda: A::=1, 2, 5. R : A L. R::=(1, igaz), (2, hamis), (5, igaz). R =1, 5.
1.3. A RELCIS MODELL ALAPFOGALMAI 25
1.12. Denci (Relci oskpe). R
1
(H)::=a A[ R(a) H R(a) ,= / 0
a H B halmaz R A B relcira vonatkoz oskpe [WRMP 95].
1.13. Denci (Relcik kompozcija). Az R
1
A B s az R
2
B C re-
lcik kompozcija:
R
2
R
1
::=(a, c)[ b B : (a, b) R
1
(b, c) R
2
.
1.14. Denci (Relcik szigor kompozcija). Az R
1
A B s az R
2

B C relcik szigor kompozcija [Hor 90]:
R
2
R
1
::=(a, c)[ R
1
(a) D
R
2
b B : (a, b) R
1
(b, c) R
2
.
1.15. Denci (Relci igazsghalmaza). R::=R
1
(igaz) az R AL re-
lci igazsghalmaza.
Haladsi tulajdonsgok megfogalmazshoz szksgnk lesz relcik tranzi-
tv diszjunktv lezrtjnak fogalmra.
1.16. Denci (Relci tranzitv diszjunktv lezrtja). R
tdl
P(A)P(A) re-
lci az R P(A)P(A) relci tranzitv diszjunktv lezrtja, ha R
tdl
a legkisebb
olyan relci, amelyre: R R
tdl
, ha (a, b) R
tdl
s (b, c) R
tdl
, akkor (a, c)
R
tdl
s brmely W megszmllhat halmazra: (m : m W :: (a(m), b) R
tdl
)
=((

mW
a(m)), b) R
tdl
.
1.1. Plda (Relci tranzitv diszjunktv lezrtja).
A =1, 2, 3, 4, R P(A) P(A),
R =(3, 1), (2, 1), (1, 4),
R
tdl
= {(3, 1), (2, 1), (1, 4),
(2, 3, 1), (2, 4), (3, 4),
(2, 3, 4), (1, 3, 4), (1, 2, 4), (1, 2, 3, 4)}
1.17. Denci ([R]). Legyen R AL. [R] annak az lltsnak a rvid megfo-
galmazsa, hogy az R relci igazsghalmaza megegyezik A-val [Dij Sch 89].
1.2. Megjegyzs. P Q P Q [P Q].
1.18. Denci (Vltoz). A v
i
j
: A A
i
j
projekcikat vltozknak nevezzk.
8
A vltozk megadsakor a projekci rtelmezsi tartomnyt, az llapotteret l-
talban elhagyjuk: v
i
j
: A
i
j
.
8
A fenti denci szerint a vltoz teht nem szintaktikus fogalom. A tovbbiakban amg a vlasztott programozsi
modell keretein bell maradunk nem vizsgljuk formlis nyelvek s szemantikai tartomnyok lehetsges kapcsolatrend-
szereit. Ha szksges, a ks obbiek sorn knnyen denilhat formlis nyelv s szemantikus lekpezs. A szemantikai
tartomny elemei az ltalunk megfogalmazott modellben denilt egyes matematikai objektumok lehetnek.
26 1. FEJEZET. A RELCIS MODELL ALAPFOGALMAI
1.19. Denci (Vetts altrre). Legyen A
1
az Adirektszorzat altere. pr
A
1
: A
A
1
fggvny az A-beli pontokhoz az A
1
-beli vetletket rendeli.
A pr
A
1
fggvnyt ltalnostjuk A rszhalmazaira, A-beli elemek sorozataira, A
felett rtelmezett binris relcikra oly mdon, hogy a rszhalmazok s soroza-
tok elemeit ill. a relcik elemeinek komponenseit pontonknt vettjk az altrre
[WRMP 95].
rtkadsok vizsglatnl gyakran van arra szksg, hogy meghatrozzuk mi-
lyen vltozk kaphatnak j rtket, illetve milyen vltozk rtkt ol fgg az ered-
mny. rtkadst hatsrelcija jellemez, gy a rtkadsok vizsglata a hatsre-
lcijuk vizsglatra vezethet o vissza.
1.20. Denci (Relci fggetlen egy vltoztl). Legyen A::=

i[1,n]
A
i
s R
AB. Azt mondjuk, hogy az R relci fggetlen az A
i
komponenst ol s a v
i
:
A A
i
vltoztl, ha
a, b D
R
: (k ([1, i 1] [i +1, n]) : a
k
= b
k
) R(a) = R(b)
Jelljk VR(R)-rel azon vltozk halmazt, amelyekt ol az R relci fgg.
1.21. Denci (Relci nem vltoztatja meg). Legyen A::=

i[1,n]
A
i
s R A
A. Azt mondjuk, hogy az R relci nem vltoztatja meg az A
i
komponens s a
v
i
: A A
i
vltoz rtkt, ha v
i
R = v
i
.
Jelljk VL(R)-rel azon vltozk halmazt, amelyeket az R relci megvl-
toztat. V(R)::=VL(R) VR(R).
2. fejezet
A feladat fogalmnak ltalnostsa
A feladat dencijnak megfogalmazsakor ltalnostjuk azt a speci-
kcis mdszert, amely relcik segtsgvel megfogalmazott el o- s ut-
feltteleket hasznl. A most bevezetett feladatfogalom magban foglalja
azt az esetet is, amikor egy vagy tbb nem felttlenl terminl folyamat,
egy zrt rendszer egyttes viselkedsre tesznk el orsokat. Megjegyezzk,
hogy a feladat fggetlenl megfogalmazhat brmely lehetsges megolds-
tl, sszehasonlthat ms feladatokkal, illetve sszevethet o tetsz oleges vele
kzs llapottren fut programmal abbl a szempontbl, hogy az megoldja-
e. A feladat megoldsa nem felttlenl csak prhuzamos program lehet.
A knyv els o rszben bevezetett feladat fogalmt ltalnostjuk, hogy olyan
feladatokat is speciklhassunk, amelyek el o- s utfelttelek segtsgvel nem
rhatak le. Ilyen feladat pldul egy opercis rendszer feladata, amelynek folya-
matos helyes m ukdsben vagyunk rdekeltek egy utfelttel teljeslse helyett.
Folyamatszablyoz szoftverek, begyazott rendszerek m ukdse is biztonsgos-
sgi, haladsi felttelekkel jellemezhet o utfelttelek megadsa helyett.
A feladat matematikai megfelel oje specikcis relcik egyttese. A spe-
cikcis relcikat az llapottr hatvnyhalmaza felett rtelmezzk, a relcik
elemeit specikcis feltteleknek nevezzk.
2.1. Specikcis felttelek
A specikcis felttelek a programra, mint az llapottr feletti mozgsra fogal-
maznak meg kiktseket. Ezeket a kiktseket csoportosthatjuk tpusuk szerint.
Egy feladat lershoz ht fle felttelt hasznlunk. Az azonos feltteltpushoz
27
28 2. FEJEZET. A FELADAT FOGALMNAK LTALNOSTSA
tartoz feltteleket egy relciban gy ujtjk ssze, gy ht specikcis relcit
vezetnk be.
Legyen P, Q, R,U : A L logikai fggvny.
, , P(A) P(A) relcik, s FP, INIT, inv, TERMP(A) halmazok
1
.
A relcik megadsakor inx jellst alkalmazunk, ezrt bevezetjk az albbi
jellseket. Zrjelben megadjuk azt is, hogy hogyan olvassuk azt, ha egy halmaz
vagy egy halmazpr eleme az adott relcinak. Az llapottr rszhalmazait logikai
relcikkal jellemezzk.
Jellsek:
PQ::=(P, Q) (P stabil feltve, hogy nem Q),
P Q::=(P, Q) (P biztostja Q-t),
P Q::=(P, Q) (P-b ol elkerlhetetlen Q),
Q FP::=Q TERM (Q-bl a program biztosan xpontba jut),
FP R::=R FP (R teljesl xpontban),
invP::=P inv (P invarins).
Q INIT::=Q INIT (Q igaz kezdetben),
2.1. Plda (Specikcis relci). Legyen az llapottr A::=N egyelem u direkt
szorzat. Az egyetlen komponenshez tartoz vltozt jelljk i-vel. Legyen ::=
(i = k, i = k +1)[k N . Ekkor pl. az i = 5 i = 6 felttel azt a kiktst
fogalmazza meg, hogy a program az a = (5) llapotbl csak az a = (6) llapotba
juthat. A teljes relci azt a felttelegyttest adja meg, amely megkveteli, hogy a
program futsa sorn az i vltoz rtke csak egyesvel nvekedhet. Megknnyti
a relcik kezelst, ha egy-egy relcinak csak nhny eleme van. Ezrt cl-
szer u a relci k paramter szerinti felbontsa egyelem u relcikra, erre a clra
vezetjk majd be a paramtertr fogalmt.
A programra, mint az llapottr feletti mozgsra vonatkoz specikcis felt-
teleket ngy csoportra osztjuk aszerint, hogy milyen tpus kiktseket fogalma-
zunk meg segtsgkkel
2
. A relcicsoportok s az egyes specikcis relcik
elnevezsei azt tkrzik, hogy az adott relci segtsgvel milyen jelleg u feltte-
leket kvnunk megfogalmazni. A specikcis relcik pontos szemantikjt az
adja meg, hogy egy program mikor felel meg egy adott relcihoz tartoz felt-
telnek. Ennek megfogalmazshoz szksges az absztrakt program (3.15. def.)
1
unris relcik
2
A kiktsek teljeslst - az invarinsok kivtelvel - ltalban nem a teljes llapottr felett vizsgljuk majd meg,
hanem csak az llapottr egy olyan rszhalmaza felett, amely tartalmazza az sszes elrhet o llapotot.
2.1. SPECIFIKCIS FELTTELEK 29
3
4
...
...
B
A
A
3
4
4
5
2.1. bra. ::=(i = k, i = k +1)[k N
s a megolds (4.1. def.) dencijnak ismerete
3
. Az albbiakban rviden s
informlisan mr most megadjuk az egyes felttelek jelentst.
A PQ s az invP alak feltteleket biztonsgossgi feltteleknek nevez-
zk. Ha a program llapotra teljesl a PQ felttel, akkor PQ tiltja,
hogy a program Q rintse nlkl kzvetlenl egy PQ-beli llapotba
jusson. invP pedig kikti, hogy a P felttel igazsghalmazbl a program
minden elemi lpse a P igazsghalmazba vigyen, valamint, hogy P kez-
detben
4
is teljesljn.
A P Q, illetve P Q haladsi felttelek el orjk, hogy ha a program
egy P-beli llapotba jut, akkor abbl el obb - utbb Q-ba jusson. P Q
tovbbi megszortst tesz a haladsi irnyra. Q FP kiktsnek megfelel o
program el obb-utbb biztosan xpontba jut Q-beli llapotbl.
A FP R xpont felttelekkel szksges feltteleket fogalmazunk meg
arra, hogy mi teljesljn, ha a program xpontba jut.
Elgsgesnek tekintjk, ha Q INIT kezdeti felttelekkel meghatrozott l-
lapotokbl indtva helyesen m ukdik a program.
2.1. Megjegyzs. Stabilitsi felttelnek nevezzk P-t , ha PHamis. P konstans
felttel, ha P is s P is stabilitsi felttel.
3
A feladat szemantikjt a specikcis relcik segtsgvel meg tudjuk adni oly mdon, hogy brmely feladat fg-
getlenl lerhat brmely azt megold vagy meg nem old programtl, azaz a feladatok a programoktl fggetlen szeman-
tikval rendelkeznek a modellben.
4
A kezdeti rtkads vgrehajtsa utn.
30 2. FEJEZET. A FELADAT FOGALMNAK LTALNOSTSA
A tovbbiakban a , , , FP, INIT, inv, TERM relcikat specikcis re-
lciknak, elemeiket specikcis feltteleknek, ezen bell az , , , inv,
TERM relcik elemeit tmenetfeltteleknek, az INIT, FP relcik elemeit pedig
peremfeltteleknek nevezzk. Az INIT relci a krnyezeti el orsok csoportjba
tartozik.
2.2. A programozsi feladat dencija
2.1. Denci (Programozsi feladat). Legyen A egy llapottr, B pedig egy tet-
sz oleges, megszmllhat halmaz. Rendeljnk hozz a b B pontokhoz rendezett
relci heteseket. Minden egyes rendezett hetes kett o, peremfeltteleket megad,
illetve t, tmenetfeltteleket ler relcit tartalmaz.
Az F B(

i[1..3]
P(P(A)P(A))

i[1..4]
P(P(A))) relcit az A llapottr felett
denilt feladatnak, B-t pedig a feladat paramterternek nevezzk.
A

i[1..3]
P(P(A) P(A)) s

i[1..4]
P(P(A)) direktszorzat b B-hez rendelt h
F(b) elemnek komponenseit rendre
h
,
h
,
h
, TERM
h
,FP
h
, inv
h
, INIT
h
-val
jelljk. Ha F(b) egyelem u, akkor h helyett b-t runk vagy a h indexet teljesen
elhagyjuk, ha ez nem okoz flrertst.
B
b1
b2
....
h1
h2
h3
h4
H
2.2. bra. h1 = (
h1
,
h1
,
h1
, INIT
h1
, FP
h1
, inv
h1
, TERM
h1
)
2.2. Plda (Programozsi feladat). Pldaknt megadjuk az elemenknti feldol-
gozs feladatnak specikcijt:
A specikcis relcik kzl ngy res, hrom pedig egyelem u. Kiktjk, hogy
2.2. A PROGRAMOZSI FELADAT DEFINCIJA 31
brmely xpontban az y rendezett halmaz-m-es rtke ppen f (x

) legyen ((2.3.)
felttel), ahol x

az x vltoz kezdeti rtke ((2.1.) felttel). Megkveteljk, hogy


a program biztosan elrje valamelyik xpontjt ((2.2.) felttel). A feladat megfo-
galmazsban az f fggvny argumentuma, mint a specikcis felttelek para-
mtere jelenik meg.
A = X Y, x : X, y : Y, B = X, x

: X.
(x = x

) INIT
x
(2.1)
Igaz FP
x
(2.2)
FP
x
y = f (x

), (2.3)
ahol f elemenknt feldolgozhat.
Az X,Y tpus specikcija, az elemenknt feldolgozhat fggvny fogalma s
a megold program megtallhat a 8. fejezetben.
A paramtertr helyes megvlasztsval elrhetjk, hogy a
h
,
h
, FP
h
, stb.
relcik vgesek legyenek, vagy ppen csak egyetlen egy halmaz ill. halmaz-
pr legyen az elemk. Ha a B paramtertr vgtelen, akkor gy sszessgben
vgtelen sok relcit adunk meg. Ezek a relcik azonban ltalban csak a b pa-
ramter rtkben klnbznek egymstl, gy a megolds dencijt elegend o
lesz egyetlen b B paramteres esetre megvizsglni.
A paramtertr bevezetsvel knnyen megfogalmazhatunk olyan feladatokat,
amelynek megoldsa tbb alternatv viselkedsminta szerint is lehetsges
5
.
2.2. Megjegyzs. A paramtertr ltalban maga is az llapottrhez hasonl di-
rektszorzat. Sok esetben van az llapottrnek s a paramtertrnek nem res, k-
zs altere. A paramtertr projekciit is vltozknak nevezzk, ezeket a vltozkat
megklnbztetsl

jellel egsztjk ki, pl.: v

.
6
2.3. Megjegyzs. A feladat fenti dencija a [Ft 83, Ft Hor 91]-ben ismertett
specikcis mdszer ltalnostsa. Legyen b B: [F(b)[ =1 s Q
b
TERM
b
,
Q
b
= INIT
b
s R
b
= FP
b
.
2.4. Megjegyzs. A specikcis felttelek szintaktikus alakjtl a feladat, mint
relci fggetlen. Lnyegben ugyanazt a feladatot (2.5. def.) azonban tbb
ekvivalens specikcis felttelhalmazzal is megfogalmazhatjuk.
5
Ha a feladat determinisztikus, akkor megfogalmazhatnnk a feladatot a paramtertr bevezetse nlkl is, mint a

i[1..3]
P(P(A) P(A))

i[1..4]
P(P(A)) direktszorzat elemt. Ebben az esetben azonban a feladat egyes komponenseinek
szmossga kezelhetetlenl nagy lehet, pl. egy-egy tmenetfelttelnek ltalban vgtelen sok halmazpr eleme lenne.
6
Els orend u temporlis logikai nyelvekben szoks az llapottr vltozit loklis vltozknak, a paramtertr vltozit
globlis vagy rigid vltozknak nevezni.
32 2. FEJEZET. A FELADAT FOGALMNAK LTALNOSTSA
Az 4.1. denciban megadjuk, hogy az F feladatnak mikor megoldsa egy
program, azaz mikor elgti ki a feladatban el ort feltteleket
7
.
2.3. Feladat kiterjesztse
Legyen A
1
az A altere. F az A
1
llapottr s B paramtertr felett denilt feladat.
Az F A trre vett kiterjesztse az az F

feladat, amely a kiegszt o altr vltozira


nem tesz kiktseket s az A
1
altrre vett vetlete megegyezik F
1
-gyel.
Ha P szerepel az F feladat egy specikcis felttelben, akkor a kiterjesztett
feladat megfelel o specikcis felttelben egy olyan P

logikai fggvny szere-


pel, amelynek A
1
-re vett vetlete P s nem fgg a kiegszt o altr vltozitl.
2.2. Denci (Logikai fggvny kiterjesztse). Jelljk P

-vel a P altren de-


nilt logikai fggvny teljes trre val kiterjesztst. P

igazsghalmaza az a
legb ovebb halmaz, amelynek vetlete P igazsghalmaza.
2.3. Denci (Feladat kiterjesztse). Legyen A
1
az A altere. F az A
1
llapottr
s B paramtertr, F

pedig az A tr s a B paramtertr felett denilt feladat.


F

-t az F kiterjesztsnek nevezzk, ha b B : pr
A
1
(F

(b)) = F(b) s F

speci-
kcis feltteleiben el ofordul logikai fggvnyek az F specikcis feltteleiben
adott logikai fggvnyek kiterjesztsei
8
.
2.4. A feladat nomtsa
Clunk, hogy a modell eszkzei segtsgvel a feladat specikcijt helyettes-
teni tudjuk olyan feladatok specikciival, amely feladatok megoldsa esetn a
rendelkezsre ll matematikai eszkzkkel belthat az eredeti feladat megol-
dsnak helyessge [Var 81, Ft Hor 91, Cha Mis 89, Bac Ser 90, Mor 87]. Arra
treksznk, hogy a megolds el olltsval prhuzamosan a megolds helyess-
gnek bizonytst is el olltsuk.
2.5. Megjegyzs. A lpsenknti nomts szoksos megfogalmazstl eltr oen
nem a megold programot nomtjuk [Bac Ser 90]
9
. A feladat nomtsnak elve
7
Azt mondjuk, hogy az S program megoldja az F feladatot, ha b B : h F(b), hogy az S program megfelel a h-ban
adott inv
h
P, P
h
U, P
h
U, P
h
U, FP
h
R, Q TERM
h
alak specikcis felttelek mindegyiknek a Q INIT
h
kezdeti felttelek mellett.
8
A 2.3. def. a szekvencilis modell [Ft 83, Ft 88] kiterjesztsi dencijnak ltalnostsa.
9
Egy program nomtsa egy msiknak, ha minden olyan specikcinak megfelel, amelyiknek az eredeti program is
megfelelt [Bac Ser 90].
2.4. A FELADAT FINOMTSA 33
klnbzik Morris [Mor 87], ill. Lamport [Lam 91] felfogstl is, mert ezekben
a modellekben magt a programot is specikcis eszkznek tekintik s ennek
megfelel oen nomtjk a specikcit.
A specikci nomtsnak leggyakoribb mdja az llapottr b ovtse, a rgi
s j komponensekre tovbbi, ltalban a korbbiaknl szigorbb felttelek meg-
fogalmazsa.
Azt, hogy egy feladat mikor nomtsa egy msiknak egy rgztett llapottr
felett, a program (3.15. def.) s a megolds (4.1. def.) dencijnak felhaszn-
lsval indirekt ton adjuk meg. Ez a dencis mdszer alkalmas arra, hogy a
feladatok lpsenknti nomtsa sorn az egyes lpseink helyessgt formlisan
is igazoljuk
10
. A feladatok felett rtelmezett nomts relcit teht a feladatok
s programok kztt rtelmezett megolds relci induklja.
2.4. Denci (Feladat nomtsa). Azt mondjuk, hogy az F
1
feladat nomtsa
az F
2
feladatnak, ha minden olyan S program, ami megoldsa az F
1
feladatnak az
megoldsa az F
2
feladatnak is.
2.3. Plda (Feladat nomtsa). Az albbi specikci nomtsa a (2.1.)-(2.3.)
felttelekkel megadottnak.
(x = x

) INIT
x
(2.4)
Igaz FP
x
(2.5)
FP
x
i [1..n] : (x
i
= / 0) (2.6)
inv
x
(j [1, m] : (y
j
f
j
(x
1
, ..., x
n
) = f
j
(x

1
, ..., x

n
))) (2.7)
inv
x
(j [1, m] : (y
j
f
j
(x
1
, ..., x
n
) = / 0)) (2.8)
inv
x
(i, j [1, n] : (x

i
x
i
) x
j
= / 0), (2.9)
ahol f elemenknt feldolgozhat.
Annak bizonytsa, hogy a fenti specikci valban nomtsa a (2.1.)-(2.3.)
felttelekkel megadottnak megtallhat a 8. fejezetben.
2.5. Denci (Ekvivalens feladat). Azt mondjuk, hogy az F
1
feladat ekvivalens
az F
2
feladattal, ha az F
1
nomtsa az F
2
-nek s az F
2
nomtsa az F
1
-nek.
10
Aprogramok felett rtelmezett nomts relci is a megolds fogalmhoz kttt [Bac Ser 90, Mor 87], s a nomtst
tmogat kalkulus alapja.
34 2. FEJEZET. A FELADAT FOGALMNAK LTALNOSTSA
2.6. Megjegyzs (Absztrakt feladat). Nevezzk a most bevezetett ekvivalencia-
relci ltal ltrejtt ekvivalenciaosztlyokat absztrakt feladatnak. A most beve-
zetett ekvivalenciarelci indukl egy homomorzmust a feladatokrl az absztrakt
feladatokra
11
.
Ngyfle mdon nomtjuk a feladat matematikai modelljt:
az llapottr komponenseit nomtjuk s mint altereket tekintjk oket,
az llapottr alterein fogalmazunk meg feladatokat,
az llapotteret tovbbi komponensekkel b ovtjk, a hozzjuk tartoz vlto-
zkra kiktseket tesznk,
llapottr transzformcit [Ft 86], vagy ms nven koordintatranszfor-
mcit [Dij Sch 89] alkalmazunk.
2.7. Megjegyzs. Ha el akarjuk dnteni, hogy egy feladat nomtsa-e egy m-
siknak abban az esetben, amikor a kt feladat llapottere klnbzik, akkor a kt
feladat llapottert feleltessk meg egy kivlasztott llapottr egy-egy alternek
s adjunk meg egy-egy olyan fggvnyt, amelyik a kivlasztott altr hatvnyhal-
mazra a feladat llapotternek hatvnyhalmazt lekpezi. Ezek a lekpezsek
deniljk a feladatok megfelel oit az j llapottr alterein. A feladatokat ezek
utn kiterjeszthetjk a kzs llapottrre. Legtbbszr a vlasztott llapottr a
kt feladat egyiknek llapottere, a msik feladat llapottere a kzs tr egy al-
tere, a lekpezs pedig az identits.
2.8. Megjegyzs. Feladatok specikcijnak nomtsakor tmaszkodunk a nyi-
tott specikci technikjra. Az llapottr egy altern denilt rszfeladat kr-
nyezeti feltteleiknt olyan biztonsgossgi-, haladsi- s xpontfeltteleket adunk
meg, amelyek az altr felett speciklt komponens s krnyezete ltal egytte-
sen alkotott zrt rendszert ol [Jr 92] elvrt viselkedsre vonatkoznak (6. feje-
zet) [Col 94, Cha Mis 89]. Az alterekre vonatkoz feltteleket megklnbztetsl
fels o indexszel jelljk, pl.:
E
h
,
E
h
,
E
h
, TERM
E
h
, FP
E
h
, inv
E
h
. A rszfolyamat
egyes tulajdonsgainak vizsglatakor felhasznljuk a teljes rendszer (a kls o kr-
nyezet) ismert vagy felttelezett tulajdonsgait [Cha Mis 89, Col 94].
11
Kt absztrakt feladat pontosan akkor klnbzik egymstl, ha az egyikhez tallhat olyan megolds, amelyik a
msiknak nem megoldsa.
2.4. A FELADAT FINOMTSA 35
A lpsenknti nomts sorn jabb s jabb rszletekkel egsztjk ki a spe-
cikcit, majd az utols lpsben el olltjuk a megold programot. A program
el olltsa ltalban egyszer u, a specikci nomtsa nehezebb feladat. Minden
egyes lps utn igazolnunk kell, hogy az j s rszletesebb specikcit megold
program megoldja az eredeti feladatot is. A specikci nomtsa sorn ptjk
be a megoldsba mindazt a tudst, amelyet a feladat elemzse sorn, vagy ko-
rbban szereztnk. A nomts irnya kisebb vagy nagyobb mrtkben befoly-
solja, hogy milyen architektrn implementlhat hatkonyan a kapott megolds
s melyiken nem. Ezrt akrcsak a szekvencilis programok levezetse sorn, a
prhuzamos programok fejlesztsekor is el ofordulhat, hogy visszatrnk egy ko-
rbban megfogalmazott specikcihoz s ms irnyban folytatjuk a specikci
nomtst.
36 2. FEJEZET. A FELADAT FOGALMNAK LTALNOSTSA
3. fejezet
Prhuzamos absztrakt program
Az absztrakt prhuzamos program a UNITY-b ol ismert programfogalom
relcis alap megfogalmazsa. Ahhoz, hogy eldnthessk, hogy egy prog-
ram megold-e egy feladatot (4. fejezet), ssze kell vetnnk a feladatot de-
nil relcit a program viselkedst ler relcival. A programhoz annak
viselkedsi relcijt hozzrendel o lekpezst tekinthetjk gy is, mint egy
olyan szemantikai lekpezst, amelynek absztrakcis szintje megegyezik az
absztrakt feladat szemantikjnak absztrakcis szintjvel.
3.1. Az absztrakt program szerkezete
Az absztrakt program struktrja nem eredmnyezheti, hogy olyan szinkroniz-
cis knyszerek pljenek be a megoldsba, amelyek feleslegesek, valdi pr-
huzamos architektrn szksgtelenl lasstjk a program futst. Ha a progra-
mot szekvencilis folyamatok halmaznak tekintennk, ahogy ezt pl. CSP-ben
[Hoa 78] vagy Adban [ALRM 83] megszoktuk, akkor ezzel eleve vgrehajtsi
sorrendet denilnnk utastsok nagy rszhalmazai felett. Ezrt a prhuzamos
programot feltteles rtkadsok halmaza segtsgvel adjuk meg. Az egyes uta-
stsok brmikor vgrehajthatak, llapotvltozs azonban csak akkor kvetkez-
het be, ha az rtkads felttele teljesl. A felttelek helyes megvlasztsval
elrhetjk, hogy az llapottmenetek a kvnt sorrendben kvetkezzenek be. A
program tulajdonsgok meghatrozst is megknnyti, ha a programot utastsok
halmazaknt deniljuk. ltalban megkveteljk, hogy az egyes rtkadsok
vgrehajtsa pillanatszer u, atomi legyen.
3.1. Plda (Absztrakt program megadsa).
S::=(SKIP, {
37
38 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
(s
1
: x := x +1, ha x y | y := y +x),
s
2
: z := x +y}).
Ha az 3.1. program utastsainak pillanatszer u vgrehajtsa biztostott, akkor
az egyik lehetsges vgrehajtsi t mentn a kvetkez o llapotokat s llapott-
meneteket gyelhetjk meg: (2, 3, 0)(s
1
)> (3, 5, 0)(s
2
)> (3, 5, 8). Ha az
rtkadsok atomicitsa nem biztostott, akkor a kvetkez o llapottmenetsorozat
is meggyelhet o: (2, 3, 0)> (3, 3, 0)(s
2
)> (3, 3, 6)> (3, 5, 6), pedig
nincs olyan rvnyes llapot, amelyben x +y = 6.
A nemdeterminisztikus vgrehajtsi sorrend korltozsra szinkronizcis fel-
tteleket hasznlunk (pl. termel o-fogyaszt esetn res pufferb ol nem lehet fo-
gyasztani). Az absztrakt program teht szimultn feltteles rtkadsok (3.9. def.)
[Ft 83, Hor 93] vges halmazval adhat meg [Cha Mis 89], ahol az egyes rtk-
adsok jobboldaln fggvnykompozcik is szerepelhetnek (pl. kapcsos zrjel-
lel megadott fggvny).
3.1.1. A feltteles rtkads fogalma
3.1. Denci (Utasts). Az s AA

relcit utastsnak nevezzk, ha


D
s
= A,
a A : s(a) :
1
= a,
( R
s
A

) (i N (
i
=
i+1
(k(k > 0) :
i
=
i+k
))),
( R
s
A

) (i (1 i <[[) :
i
,=
i+1
).
3.2. Denci (Hatsrelci). A p(s) AA relci az s AA

utasts ha-
tsrelcija, ha
D
p(s)
=a A[s(a) A

,
p(s)(a) =b A[ s(a) : () = b,
ahol : A

A fggvny az = (
1
, . . . ,
n
) A

vges sorozathoz annak


vgpontjt rendeli. ()::=
n
.
3.3. Denci. .
3.1. AZ ABSZTRAKT PROGRAM SZERKEZETE 39
Azt mondjuk, hogy az v
i
: A
i
vltoz konstans fggvny az s utastsban, ha
a A : s(a) : (
k
:
ki
= v
i
(a)).
Azt mondjuk, hogy az s utasts vgrehajtsa biztosan nem vltoztatja meg
az v
i
: A
i
vltozt, ha a D
p(s)
: p(s)(a)
i
= v
i
(a).
Elemi utasts az rtkads s az res utasts.
3.4. Denci (res utasts, SKIP). resnek nevezzk, s SKIP-pel jelljk azt
az utastst, amire a A : SKIP(a) =(a).
3.5. Denci (ltalnos rtkads). Legyen A=A
1
. . .A
n
, F = (F
1
, . . . , F
n
),
ahol F
i
AA
i
. Az s utasts ltalnos rtkads [Ft 83] , ha
s =(a, red(a, b))[a, b A a

i[1,n]
D
F
i
b F(a)
(a, (aaa. . .))[a A a /

i[1,n]
D
F
i
, ahol
az A

redukltjnak nevezzk, s red ()-val jelljk azt a sorozatot, amit


gy kapunk, hogy az sorozat minden azonos elemekb ol ll vges rszsorozatt
a rszsorozat egyetlen elemvel helyettestjk.
3.6. Denci (Vltoz az rtkads baloldaln). Azt mondjuk, hogy a v
i
: A
A
i
vltoz az rtkads baloldaln ll, az rtkads rtket ad a v
i
vltoznak, ha
az F
i
AA
i
relci nem egyenl o a v
i
projekcival [Ft 86], azaz az rtkads
hatsrelcija megvltoztatja a v
i
vltozt (1.21. def.). Az s rtkads baloldaln
ll vltozk halmazt VL(s)-sel jelljk. Az rtkads azoknak a vltozknak ad
rtket, amelyek a baloldaln llnak
1
.
3.1. Megjegyzs (Szimultn rtkads). Az rtkads egyszerre tbb vltoz r-
tkt is megvltoztathatja, ezrt n. szimultn rtkadsrl van sz.
3.7. Denci (Egyszer u rtkads). Ha legfeljebb egy vltoz ll az rtkads
baloldaln, akkor egyszer u rtkadsrl beszlnk.
3.8. Denci (Vltoz az rtkads jobboldaln). Azt mondjuk, hogy a
v
i
: A A
i
vltoz az rtkads jobboldaln ll, ha az rtkads hatsrelcija
nem fggetlen (1.20. def.) az A
i
llapottrkomponenst ol. Az s rtkads jobbol-
daln ll vltozk halmazt VR(s)-sel jelljk.
1
A 3.6. denci azokat a vltozkat nevezi az rtkads baloldaln llnak, amelyek az rtkads vgrehajtsa sorn
megvltozhatnak, azaz van olyan a A llapot, amelyre a
i
= v
i
(a) ,= v
i
F(a) = F
i
(a). A denci teht fggetlen az
rtkads szintaktikus alakjtl.
40 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.9. Denci (Feltteles rtkads). Legyen A=A
1
. . . A
n
, F = (F
1
, . . . , F
n
),
ahol F
i
AA
i
. Legyen
i
::=D
F
i
. F
i
[
Igaz
az F
i
kiterjesztse a Igaz felt-
telre nzve
2
: F
i
[
Igaz
(a) = F
i
(a), ha a
i
s F
i
[
Igaz
(a) = a
i
, klnben. Az
F[[
Igaz
= (F
1
[
Igaz
, . . . , F
n
[
Igaz
) relcival megadott ltalnos s rtkadst felt-
teles rtkadsnak nevezzk, ha a A : [p(s)(a)[ <.
3.2. Megjegyzs. A v
i
vltozra vonatkoz egyszer u, determinisztikus, feltteles
rtkadst a (v
i
:= F
i
(v
1
, .., v
n
), ha
i
(v
1
, ..., v
n
)) alakban adjuk meg. Rviden:
(v
i
:= F
i
, ha
i
)-vel jelljk. Szimultn, nemdeterminisztikus, feltteles rtkads
megadhat a (v
i
: F
i
(v
1
, .., v
n
), ha
i
) | (v
k
: F
k
(v
1
, .., v
n
), ha
k
) alakban. Ha
lehetsges, akkor sok vltoz esetn a
|
i[1,n]
(...) rvidtst alkalmazzuk.
Ha a feltteles rtkadsban szerepl o valamelyik egyszer u rtkadshoz ren-
delt egyetlen felttel egy a A llapothoz hamis rtket rendel, akkor ez a 3.9.
denci szerint annak a rvid megfogalmazsa, hogy az rtkads az a pontbl
indtva nem vltoztatja meg a baloldalon ll vltoz rtkt. Ezltal a feltteles
rtkadsok mindentt rtelmezve vannak az llapottr felett.
3.2. llapottmenetfk
Az absztrakt programot egy olyan binris relciknt deniljuk, amelyik egy
kezdeti feltteles rtkads hatsrelcija, illetve vges sok feltteles rtkads
hatsrelcijnak diszjunkt unija ltal generlt fk ekvivalenciaosztlyait rendeli
az llapottr egyes pontjaihoz (3.15. def.).
3.10. Denci (Cmkzett llapottmenetfa). Acmkzett llapottmenetfa egy
(r, N,V, L, S) rendezett ts, ahol r a fa gykere, N a cscsok halmaza, V NN
az lek halmaza, L : N A a grf cscsaihoz llapotokat rendel o cmkefgg-
vny, S : V J az lekhez termszetes szmokat rendel o cmkefggvny, x
N : (x, r) ,V s pontosan egy t vezet r-b ol minden x N cscsba.
3.11. Denci (Izomorf llapottmenetfk). Izomorfnak mondjuk a
G
1
= (r
1
, N
1
,V
1
, L
1
, S
1
) s a G
2
= (r
2
, N
2
,V
2
, L
2
, S
2
) ft, ha van olyan f : N
1

N
2
bijekci, amelyre x N
1
: f (V
1
(x)) =V
2
( f (x)) L
1
(x) = L
2
( f (x)) s x, y
N
1
: (x, y) V
1
( f (x), f (y)) V
2
s (x, y) V
1
: S
1
(x, y) = S
2
( f (x), f (y)).
2
ltalnosabban egy R relci felttelre vonatkoz kiterjesztst az albbi mdon denilhatjuk:
Legyen B altere A-nak. pr
B
: A B. A pr
B
fggvny az A-beli pontokhoz B-beli vetletket rendeli hozz [Ft 83].
R AB. R[

::=(R(B)) (a, pr
B
(a))[a D
R
.
3.2. LLAPOTTMENETFK 41
3.1. Ttel. (Az izomora relci ekvivalenciarelci) Az 3.11. denciban meg-
fogalmazott izomora relci ekvivalenciarelci az A felett generlt fk halma-
zn.
Biz.: A relci reexv, mert minden fhoz ltezik adott tulajdonsg lekpezs,
az identits. A relci szimmetrikus, mert a bijekci inverze rendelkezik az adott
tulajdonsgokkal, ha a bijekci rendelkezett vele. Vgl a relci tranzitv, mert
kt adott tulajdonsg bijekci kompozcija is rendelkezik a megkvetelt tulaj-
donsgokkal.
3.12. Denci (llapottmenetfk ekvivalenciaosztlyai). A

jellje az Afe-
lett generlt fk ekvivalenciaosztlyainak halmazt.
3.13. Denci (Generlt llapottmenetfa). Legyenek az R
0
, R A A rel-
cik mindentt rtelmezve az A llapottr felett, azaz D
R
= D
R
0
= A. J N
0
.
Tetsz oleges a A pontra az (R
0
, R) relcipr ltal az a ponthoz generlt fnak
nevezzk a GR(a) = (r, N
a
,V
a
, L
a
, S
a
) irnytott ft, ha
L
a
(r) = a,
x N
a
r : L
a
(V
a
(x)) = R(L
a
(x)),
L
a
(V
a
(r)) = R
0
(L
a
(r)) = R
0
(a).
Reprezentljuk az R relci ltal az a ponthoz generlt grfok ekvivalencia-
osztlyait annak egy elemvel.
Legyen S = (s
0
, s
1
, ...s
m
) egy s
0
feltteles rtkads s vges sok feltteles
rtkads nem res halmaznak rendezett prja. J={1,..,m}, UP(S) a p(s
j
) rel-
cik diszjunkt unija.
3.14. Denci (Helyesen cmkzett llapottmenetfa). Az (p(s
0
),UP(S)) rel-
cipr ltal generlt fa cmkzse helyes, ha minden r-b ol indul l cmkje 0
s minden j-vel cmkzett lre amely a-val cmkzett cscsbl b-vel cmkzett
cscsba mutat teljesl, hogy (a, b) p(s
j
).
3.2. Lemma. (Helyes cmkzs s ekvivalencia) Ha egy llapottmenetfa cmk-
zse helyes, akkor a vele ekvivalens llapottmenetfk cmkzse is helyes.
Biz.: a 3.11. def. kvetkezmnye.
42 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
a
0
0
0
1
m
1
.
.
1
1
m
..
3.1. bra. Cmkzett llapottmenetfa
3.15. Denci (Absztrakt program). Absztrakt programnak nevezzk az
UPG(S) AA

relcit, ha az llapottr pontjaihoz a (p(s


0
),UP(S)) relci-
pr ltal generlt azon llapottmenetfk ekvivalenciaosztlyait rendeli, amelyek
cmkzse helyes. Az S = (s
0
, s
1
, ...s
m
) ltal denilt UPG(S) programot rvi-
den S-sel jelljk, s azt mondjuk, hogy s
j
S, ha j J.
3.3. Megjegyzs (M uveleti szemantika). A 3.15. denci megadja a prhuza-
mos absztrakt program szemantikai jelentst. Ez a szemantika m uveleti jelleg u,
a programnak megfelel o grf valjban a m uveleti szemantika cmkzett llapot-
tmenet grfjval azonosthat (9. fejezet). Megjegyezzk, hogy ez a szemantika
olyan programok kztt is klnbsget tesz, amelyek egyarnt megoldsai (4.1.
def.) ugyanannak a feladatnak, de ms-ms vgrehajtsi utakat denilnak.
3.16. Denci (Vgrehajtsi t). A b UPG(S)(a) ekvivalenciaosztly repre-
zentnsnak brmelyik tjt vgrehajtsi tnak nevezzk.
3.17. Denci (Elrhet o llapotok halmaza). Az UPG(S)(a) halmaz elemeinek
vgrehajtsi tjain elhelyezked o cscsok cmkinek halmazt jelljk E(S)(a)-val.
E(S)(a) az a llapotbl elrhet o llapotok halmaza
3
.
3.18. Denci (Absztrakt program vltozi). Jelljk VL(S)-sel az S program
utastsainak baloldaln ll vltozk (3.6. def.) halmazt, azaz VL(S)::=

sS
VL(s).
Jelljk a jobboldalon ll vltozk (3.8. def.) halmazt VR(S)-sel. V(S)::=VL(S)
VR(S).
3
Ezen llapotok az absztrakt program llapottmenetfjban rhet oek el, de valamely temezsi kikts mellett a konk-
rt program ltal mr nem felttlenl elrhet oek.
3.2. LLAPOTTMENETFK 43
Felttelezzk, ha tbb processzor hajtja vgre a konkrt programot, akkor
ez hatkonysgi szempontoktl eltekintve hatsban megegyezik azzal, mintha
egyetlen processzor vlogatott volna valamilyen nemdeterminisztikus sorrendben
az utastshalmaz elemei kzl. Megengedjk ugyan, hogy kt vagy tbb pro-
cesszor id oben tfedve hajtsa vgre ugyanazon utasts klnbz o elemi lpseit
vagy klnbz o utastsokat, de az gy kapott eredmnynek meg kell egyeznie
valamelyik eredmnnyel azok kzl, amelyet valamelyik vgrehajtsi t mentn
egyetlen processzor lltott volna el o. Felttelezzk teht, hogy az absztrakt prog-
ramot oly mdon implementljuk, hogy elemi pt okveire, a szimultn feltte-
les rtkadsokra prhuzamos vgrehajts esetn teljesl a sorbarendezhet osg
[Lam Lyn 90] kvetelmnye. Egy-egy sorrendet egy-egy vgrehajtsi t r le.
3.4. Megjegyzs. Az 3.15. denci alapjn megllapthatjuk, hogy a modellben
szimultn feltteles rtkadsok vals aszinkron prhuzamos vgrehajtst nem
tudjuk kifejezni
4
. A modell programfogalma sszefslses szemantikn (9. feje-
zet) alapszik. A szinkron prhuzamos vgrehajts lersra a szimultn rtkads
alkalmas.
Az utastsok halmazt sok esetben halmazm uveletek segtsgvel lltjuk majd
el o a megolds logikai struktrjnak megfelel o modulokbl. Egy-egy modul le-
rhatja pldul egy-egy objektum viselkedst [Cha Mis 89, Sin 91]. A modulok
unijaknt vagy szuperpozcijaknt kapott program [Cha Mis 89] utastsait ha-
tkonysgi szempontok gyelembevtelvel kpezhetjk le logikai vagy zikai
processzorokra. A modul teht programtervezsi, a folyamat pedig implement-
cis fogalom.
3.2.1. Utastsok kiterjesztse, szuperpozcija
Deniljuk az A llapottr egy altere felett denilt s utasts s

kiterjesztettjt
oly mdon, hogy abban a kiegszt o altr vltozi ne lljanak egyetlen utasts
baloldaln s jobboldaln sem s a kiterjesztett utasts A
1
-re vett vetlete ppen
s legyen [Ft 83, Ft 88].
3.19. Denci (Utasts kiterjesztse). Legyen B altere az A llapottrnek, B

a
B altr kiegszt o altere az A-ra.
Az s BB

utasts kiterjesztse A-ra:


s

=(a, ) AA

[(pr
B
(a), pr
B
()) s i D

: pr
B
(
i
) = pr
B
(a).
4
Vals prhuzamossg esetn sszetett feladatok megoldst ltalban nem lehet modulokbl el olltani (7. fejezet)
44 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.3. Lemma. Legyen az A
1
tr az A llapottr altere. Legyen az A
1
altr felett
denilt s utasts kiterjesztse az s

utasts. Ekkor: p(s) = pr


A
1
(p(s

)).
Biz.: Az utasts kiterjesztsnek dencija szerint pr
A
1
(s

) =s, gy p(pr
A
1
(s

)) =
p(s). Felhasznlva, hogy egy utasts hatsrelcijnak (3.2. def.) kiszmtsa s
a vetts kommutatv, a lemma lltshoz jutunk.
Gyakran alkalmazzuk egyes utastsok dencijnl azt a mdszert, hogy egy
meglv o s ismert hatsrelcij feltteles rtkadst mdostunk.
3.20. Denci (rtkads kiegsztse felttellel). (s
j
), ha ::=
|
i[1,n]
(v
i
: F
j
i
(v
1
, .., v
n
), ha
j
i
).
3.4. Lemma. p((s
j
), ha ) = (p(s) (A)) (id
A
( A)).
Biz.: A 3.20. def. kzvetlen kvetkezmnye.
3.21. Denci (Feltteles rtkadsok szuperpozcija). Legyen s
1
s s
2
azo-
nos llapottren adott kt feltteles rtkads s legyen VL(s
2
)V(s
1
) = / 0. Ekkor
s
1
|s
2
::=
|
v
i
,VL(s
2
)
(v
i
: F
1i
(v
1
, .., v
n
), ha
1i
)
|
v
i
VL(s
2
)
(v
i
: F
2i
(v
1
, .., v
n
), ha
2i
).
3.5. Megjegyzs. Tegyk fel, hogy u : A A
i
nem szerepel az s
j
rtkads bal-
oldaln (3.6. def.).
Ekkor az el oz o denci rtelmben specilis esetknt denilhatjuk az s
j
feltte-
les rtkads s a (u :=F
i
, ha
j
i

) egyszer u rtkads szuperpozcijt: s


j
|(u :=
F
i
, ha
j
i

) ::=
|
i([1,n]i

)
(v
i
: F
j
i
(v
1
, .., v
n
), ha
j
i
)|(u := F
i
, ha
j
i

).
3.5. Lemma. (Szuperpozci hatsrelcija) Legyen s
1
s s
2
azonos llapottren
adott kt feltteles rtkads s legyen VL(s
2
) V(s
1
) = / 0. Ekkor p(s
1
|s
2
) =
p(s
1
) p(s
2
).
Biz.: Jelljk id AA-val azt a relcit, amelyik minden ponthoz nmagt
rendeli (id
i
A
i
A
i
). Legyen a A : p(s)
i
(a)::=(p(s)(a))
i
.
v
i
,VL(s
2
) : p(s
2
)
i
=id
i
, gy v
i
,VL(s
2
) : (p(s
1
) p(s
2
)(a))
i
= (p(s
1
) id)
i
=
p(s
1
)
i
. v
i
VL(s
2
) : v
i
, V(s
1
), teht p(s
1
)
i
= id
i
, gy v
i
VL(s
2
) : (p(s
1
)
p(s
2
)(a))
i
= (id p(s
2
))
i
= p(s
2
)
i
.
3.3. PRTATLAN TEMEZS FOGALMA 45
3.2.2. Program kiterjesztse
Deniljuk az S
1
program A-ra val kiterjesztettjt utastsonknt.
3.22. Denci (Program kiterjesztse). Legyen az A
1
s A
2
tr az A llapottr
kt egymst kiegszt o altere. Legyen S program az A
1
altr, S

az A tr felett
denilva. Az S

programot az S program A-ra val kiterjesztsnek nevezzk,


ha minden utastsa klcsnsen egyrtelm uen megfeleltethet o az S program egy
utastsa kiterjesztsnek.
3.6. Megjegyzs. A3.3. lemma s az absztrakt programdencija alapjn knnyen
belthat, hogy
a A : pr
A
2
(E(S

)(a)) =pr
A
2
(a) s pr
A
1
(UPG(S

)) =UPG(S).
3.3. Prtatlan temezs fogalma
A megolds dencija kimondja majd, hogy a feladatban megfogalmazott fel-
tteleknek csak azokra a vgrehajtsi utakra kell teljeslni, amelyekre teljesl a
felttlenl prtatlan temezs aximja.
3.23. Denci (Felttlenl prtatlan temezs). Egy vgrehajtsi trl azt mond-
juk, hogy teljesl r a felttlenl prtatlan temezs aximja, ha az t mentn a
feltteles rtkadsok halmazbl minden utasts vgtelen sokszor kerl kiv-
lasztsra, azaz a cmkefggvny az t mentn a J indexhalmaz minden elemt
vgtelen sokszor rendeli az lekhez
5
.
Ha a konkrt, adott architektrra lekpezett programra teljesl, hogy felttle-
nl prtatlan temezs mellett kerl vgrehajtsra, akkor a tbbi utat valban nem
kell gyelembe venni a megolds helyessge szempontjbl. Ebben az esetben a
program m ukdse nemdeterminisztikus mdon kivlasztott transzformcik ite-
rcijval rhat le, ahol a nemdeterminisztikussg vges de nem korltos hasonl
rtelemben, ahogy relcik nem korltos lezrtjrl beszltnk [Ft 83, Hor 90].
Tbb utasts kzl ugyanaz az utasts vges, de nem korltos sokszor nem kerl
kivlasztsra kzvetlenl egyms utn.
5
Megkvetelhetnk azonban kevesebbet is, pl.: hogy a feladatban megfogalmazott feltteleknek csak azokra a vgre-
hajtsi utakra kell teljeslni, amelyekre teljesl az utfelttelekre vonatkozan prtatlan temezs aximja.
46 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
Utastsok prtatlan kivlasztsra sokfle felttelt lehet megfogalmazni [Fra 86,
And 91], ezek kzl az egyik leggyengbb a prtatlan temezs aximja. gy fel-
ttlenl prtatlan temezs mellett jl m ukd o programok az ltalban szigorbb
temezsi felttelek esetn is megoldjk a feladatot.
Az n. orfelttelek [Dij 75, Hoa 78, And 91] hasonltanak a feltteles rtk-
adsokban szerepl o
i
felttelekhez. A feltteles rtkadsok hatsrelcii azon-
ban akkor is deniltak, ha az adott llapotra a felttel nem teljesl. Ezrt a ge-
nerlt fban mindig megjelenik az rtkads hatsrelcijnak megfelel o l. A
hamis orfelttel u m uveletek azonban nem generlnak leket.
Felttlenl prtatlannak neveznk egy temezst, ha minden orfelttelhez
nem kttt s vgrehajtsra vr elemi m uvelet el obb-utbb vgrehajtsra
kerl (3.23. def.).
Gyengn prtatlan egy temezs, ha felttlenl prtatlan s minden olyan
m uvelet, amelynek orfelttele igazz vlik s igaz is marad, el obb-utbb
vgrehajtsra kerl.
Szigoran prtatlan egy temezs, ha felttlenl prtatlan s minden olyan
elemi m uvelet, amely vgrehajtsra vr s orfelttele vgtelen sokszor igaz,
el obb-utbb vgrehajtsra kerl.
3.24. Denci (Utfelttelekre prtatlan temezs). Nemteljesl egy vgrehaj-
tsi tra az utfelttelekre vonatkozan prtatlan
6
temezs aximja, ha
- egy adott pontjtl kezd od oen minden pontjban kivlaszthat olyan utasts,
amely az adott pontnak megfelel o llapotbl egy adott logikai fggvny igazsg-
halmazba visz s
- sohasem kerl ilyen utasts kivlasztsra.
A feltteles rtkadsok halmazaknt denilt absztrakt program nem tartal-
maz orfeltteleket. A tovbbiakban felttelezzk, hogy az implementlt program
vgrehajtsa felttlenl prtatlan.
3.7. Megjegyzs. Belthat, hogy felttlenl prtatlan temezssel nemprtatlan
temezs is modellezhet o [Cha Mis 89].
6
gyengn prtatlan
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 47
3.4. Az absztrakt program tulajdonsgai
Az absztrakt programok tulajdonsgait az llapottr hatvnyhalmaza felett rtel-
mezett relcikkal rjuk le. A knyv els o rszben mr ismertetett leggyengbb
el ofelttel fogalmt ltalnostjuk s ennek segtsgvel hatrozzuk meg a prog-
ramtulajdonsgokat. Leggyengbb el ofelttelt a program szvege alapjn tudunk
szmolni, a tulajdonsgok teht statikusan, a program m ukdsnek vizsglata
nlkl meghatrozhatak.
3.4.1. A leggyengbb el ofelttel s ltalnostsa
Az absztrakt programok jellemzsekor tmaszkodunk a leggyengbb el ofelttel
[Dij 76, Ft 83], a legszigorbb utfelttel [Lam 90], ill. a monoton lekpezsek
xpontjnak (11. fejezet) fogalmra.
3.25. Denci (Leggyengbb el ofelttel, legszigorbb utfelttel). Legyen s egy
utasts, Q, R pedig logikai fggvnyek az A llapottr felett. A l f (s, R) : A L
logikai fggvny az R utfelttel s utastsra vonatkoz leggyengbb el ofelttele,
ahol
l f (s, R)::=a D
p(s)
[ p(s)(a) R.
Az sp(s, Q) : A L logikai fggvny a Q el ofelttel legszigorbb utfelttele az
s-re nzve, ahol sp(s, Q)::=p(s)(Q).
3.6. Lemma. (Leggyengbb el ofelttel alaptulajdonsgai)
(1) l f (s, Hamis) = Hamis (csoda kizrsnak elve),
(2) Ha D
p(s)
=Igaz, akkor l f (s, Igaz) = Igaz,
(3) l f (s, R) =R p(s) (utfelttelbe helyettests mdszere),
(4) Ha P Q, akkor l f (s, P) l f (s, Q) (monotonits),
(5) l f (s, Q) l f (s, R) l f (s, QR) (gyenge additivits),
(6) l f (s, Q) l f (s, R) = l f (s, QR) (multiplikativits).
Biz.: Az lltsok kzvetlenl a 3.25. dencibl kvetkeznek. ((1), (3), (4),
(5), (6) bizonytsa megtallhat [Ft 83, Ft Hor 91]-ben.)
3.8. Megjegyzs. A lemma (2)-es lltsa az absztrakt programban el ofordul
utastsokra, a feltteles rtkadsokra (3.9. def.) mindig teljesl.
48 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.7. Lemma. (Kiterjeszts s leggyengbb el ofelttel) Legyen R az A
1
altren de-
nilt logikai fggvny, R

pedig az R logikai fggvny kiterjesztse A-ra. s

jellje
az s utasts A-ra vonatkoz kiterjesztst. Legyen a

egy tetsz oleges olyan pont,


amelyre a = pr
A
1
(a

), Ekkor: a l f (s, R) a

(l f (s

, R

)) s a sp(s, R)
a

(sp(s

, R

))
Biz.: a

l f (s

, R

) a

D
p

(s)
s p(s

)(a

) R

(a 3.3. lemma al-


kalmazsval) a D
p(s)
s p(s)(a) R a l f (s, R). A legszigorbb
utfelttelre vonatkoz llts ugyangy bizonythat.
3.1. Kvetkezmny. l f (s, R)

= (l f (s

, R

)) s sp(s, Q)

= (sp(s

, Q

)).
3.8. Lemma. (Kiegszts s leggyengbb el ofelttel) Ha P l f (s, Q), akkor
P l f ((s, ha ), Q) s P l f ((s, ha ), Q). Ha P l f (s, P),
akkor P l f ((s, ha ), P).
Biz.: Ha a P, akkor p(s, ha )(a) = p(s)(a) Q (3.4. lemma). Ha a ,
akkor p(s, ha )(a) = id
A
(a) .
3.9. Lemma (Szuperpozci s leggyengbb el ofelttel). Legyen Q, Regy-egy lo-
gikai fggvny s VR(Q)VL(s
1
) = / 0, VR(R)VL(s
1
) = / 0. Ekkor l f (s
1
, Q) =Q,
ill. ha R l f (s, Q), akkor R l f (s|s
1
, Q).
Biz.: A 3.6. lemmt tbbszr alkalmazva bizonytunk. A felttel szerint Q
p(s
1
) = Q, azaz l f (s
1
, Q) = Q p(s
1
) = Q. A felttel szerint p(s
1
)(R) =R s
R Q p(s), gy p(s
1
)(R) Q p(s), azaz p(s) p(s
1
)(R) Q. A
3.5. lemma szerint p(s|s
1
, Q) = p(s) p(s
1
), gy ppen a lemma lltst kaptuk.

A tovbbiakban jelljn S egy absztrakt programot (3.15. def.), az llapottr


legyen A::=

i[1..n]
A
i
. S = (s
0
, s
1
, ...s
m
), ahol s
0
s s
j
S egy (szimultn, nem-
determinisztikus) feltteles rtkads.
s
j
:
|
i[1,n]
(v
i
: F
j
i
(v
1
, .., v
n
), ha
j
i
).
ltalnostjuk a leggyengbb el ofelttel fogalmt:
3.26. Denci (Leggyengbb el ofelttel ltalnostsa).
l f (S, R)::=s S : l f (s, R).
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 49
l f a(S, R)::=s S : l f (s, R) (l f a(S, R) az n. angyali leggyengbb el ofelttel
[Mor 90]).
7
3.10. Lemma. (ltalnostott leggyengbb el ofelttel alaptulajdonsgai)
(1) l f (S, Hamis) = Hamis,
(2) l f (S, Igaz) = Igaz,
(3) Ha P Q, akkor l f (S, P) l f (S, Q),
(4) l f (S, Q) l f (S, R) l f (S, QR),
(5) l f (S, Q) l f (S, R) = l f (S, QR).
Biz.: Az lltsok az a 3.26. dencibl, a 3.6. lemmbl s a logikai s
m uvelet asszociativitsbl s kommutativitsbl kvetkeznek.
3.4.2. Invarinsok s elrhet o llapotok
Jelljk inv
S
(Q)-val azon P logikai fggvnyek igazsghalmazainak halmazt,
amelyek az S programra nzve invarinsok
8
, ha a program Q-beli llapotbl
indul. A P inv
S
(Q)-t rviden P inv
S
(Q)-val jelljk. Jellje INV
S
(Q)
azon P logikai fggvnyek konjunkcijt, amelyekre P inv
S
(Q)
9
.
3.27. Denci (Invarins tulajdonsg).
inv
S
: P(A) P(P(A)). inv
S
(Q) P(A).
inv
S
(Q)::=P[sp(s
0
, Q) PsP l f (S, P).
3.9. Megjegyzs ( inv
S
(Q) nem res). A denci szerint S, Q : Igaz inv
S
(Q).
3.11. Lemma. (Invarinsok konjunkcija) inv
S
(Q) zrt a m uveletre nzve [Pra 94].
Biz.: Legyen P, K inv
S
(Q). 3.27. def. felhasznlsval: sp(s
0
, Q) P s
sp(s
0
, Q) K =sp(s
0
, Q) PK. Pl f (S, P) s K l f (S, K) =PK
l f (S, P) l f (S, K). A 3.10. lemma szerint: l f (S, P) l f (S, K) = l f (S, PK), gy
PK l f (S, PK).
7
A l f a lekpezs dencija hasonlt a J.R. Rao ltal egyes utastsokra denilt wpp opertor dencijhoz, de attl
eltr oen absztrakt programra vonatkozik. A wpp opertort a UNITY valszn usgi alapon nemdeterminisztikus kiegsz-
tse sorn hasznljk [Rao 95].
8
Szigor invarins [Pra 94].
9
INV
S
(Q) a legszigorbb invarins [Pra 94].
50 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
Q
P2
P
3.2. bra. Invarins (P) s mindig igaz (P2) tulajdonsg.
3.2. Kvetkezmny (Legszigorbb invarins). Az inv
S
(Q) halmaznak egyrtel-
m uen ltezik legkisebb (11.13. def.) eleme s az ppen INV
S
(Q).
3.28. Denci (Legszigorbb invarins). Az inv
S
(Q) halmaz legkisebb elemt,
INV
S
(Q)-t a legszigorbb invarinsnak nevezzk.
3.12. Ttel. (Invarins konjunkcija kezdetben igaz lltssal) Ha sp(s
0
, Q) J,
I inv
S
(Q) s I J l f (S, J), akkor I J inv
S
(Q) (I J invarins).
Biz.: Ha I inv
S
(Q), akkor sp(s
0
, Q) I. gy sp(s
0
, Q) I J az els o felttel
szerint. Ha I inv
S
(Q), akkor I l f (S, I), a harmadik felttel s 3.10. lemma
felhasznlsval: I J l f (S, I) l f (S, J) = l f (S, I J).
3.10. Megjegyzs (Invarins tulajdonsg felbontsa). A 3.11. lemma nemmeg-
fordthat. Ha I J invarins, akkor nem felttlenl igaz, hogy akr I, akr J
invarins lenne. Annak bizonytsa, hogy egy P =

i[1..n]
P
i
llts invarins tulaj-
donsg, a 3.12. ttel segtsgvel azonban sok esetben rszekre bonthat pl. gy,
hogy
beltjuk, hogy P
1
invarins,
megmutatjuk, hogy i : P
i
kezdetben igaz,
igazoljuk, hogy i : P
i
l f (S, P
i
), ahol P
i
::=

j[1..i1]
P
j
.
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 51
3.29. Denci (Mindig igaz). true
S
: P(A) P(P(A)). true
S
(Q) P(A).
true
S
(Q)::=P[INV
S
(Q) P.
3.11. Megjegyzs (true
S
(Q) nem res). A denci szerint S, Q: Igaz true
S
(Q).
Azokat a logikai fggvnyeket, amelyek igazsghalmaza eleme a true
S
(Q)
halmaznak, a Q-bl elrhet o llapotok felett a program futsa sorn mindig igaz
lltsoknak nevezzk
10
.
A 3.3. bra segtsgvel szemlltetjk, hogy van olyan mindig igaz llts,
amelyik nem invarins. Tegyk fel, hogy a krrel jellt mez ob ol indul egy huszr,
amely llpsben haladhat. Az llapottr az sszes mez o, a hinyos sakktb-
lrl" lelpni nem szabad. Knnyen ellen orizhetjk, hogy a huszr mindig x-
szel jellt mez okn marad. Mgsem invarins tulajdonsga a huszrnak az, hogy
x-szel jellt mez on ll, mert van olyan x-szel jellt mez o amelyr ol jellet-
len mez ore is lphet. Ilyen a bal fels o sarokban lv o mez o. Ez a mez o a huszr
szmra nem elrhet o, ezrt sohasem tapasztaljuk az invarins srlst. Meglla-
pthatjuk, hogy a mindig igaz s az invarins lltsok kztt a lnyegi klnbsg
a nem elrehet o llapotok esetn jelentkezik. Egy invarins llts mg nem elr-
het o llapotokbl is megmarad, egy mindig igaz llts csak az elrhet o llapotok
felett teljesl. Az invarins lltsok azrt fontosak, mert kt komponens egytt-
m ukdse knnyen eredmnyezheti azt, hogy korbban el nem rhet o llapotok
elrhet ov vlnak. Tbb komponensb ol ll elosztott programok esetn teht csak
az invarins tulajdonsgokra tmaszkodhatunk (ld. 6 fejezet).
x
x
x
x
3.3. bra. Egy mindig igaz llts nem mindig invarins.
10
A mindig igaz lltsokat gyenge invarinsoknak is nevezik [San 91, Pra 94]
52 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.13. Lemma. (Az invarins mindig igaz) inv
S
(Q) true
S
(Q).
Biz.: A 3.2. kvetkezmny szerint, ha P inv
S
(Q) =INV
S
(Q) P.
3.14. Lemma. (Mindig igaz lltsok konjunkcija mindig igaz) Ha J true
S
(Q)
s I true
S
(Q), akkor I J true
S
(Q).
Biz.: Ha J, I true
S
(Q), akkor sp(s
0
, Q) J s sp(s
0
, Q) I. gy sp(s
0
, Q)
I J. Ha I, J true
S
(Q), akkor INV
S
(Q) J s INV
S
(Q) I. gy INV
S
(Q)
I J.
3.3. Kvetkezmny. Mindig igaz s invarins konjunkcija mindig igaz.
3.4. Kvetkezmny (A legszigorbb mindig igaz). A true
S
(Q) halmaznak egy-
rtelm uen ltezik legkisebb eleme s az ppen INV
S
(Q), a legszigorbb invarins.
INV
S
(Q) teht az a legsz ukebb igazsghalmaz logikai fggvny, amelyiknek
igazsghalmazt a program soha nem hagyja el a Q-bl indulva. gy kimond-
hatjuk az albbi ttelt:
3.15. Ttel. (INV
S
(Q) s a Q-bl elrhet o llapotok) INV
S
(Q) igazsghalmaza
ppen a Q-bl elrhet o llapotok (3.17. def.) halmaza [Pra 94].
Nemminden esetben lesz egy mindig igaz llts s egy invarins konjunkcija
invarins, hiszen pl. az Igaz is invarins s konjunkcija egy mindig igaz, de nem
invarins lltssal nem eredmnyezhet invarins lltst.
3.16. Lemma. (Mindig igaz s invarins konjunkcija) Ha J true
S
(Q), I
inv
S
(Q) s I J l f (S, J), akkor I J inv
S
(Q).
Biz.: Ha J true
S
(Q), akkor sp(s
0
, Q) J. gy az llts kvetkezik a 3.12.
ttelb ol.
3.4.3. Biztonsgossgi tulajdonsgok
Jelljk
S
-sel azon P, Q logikai fggvnyek igazsghalmazai rendezett prjainak
halmazt, amelyekre az S program vgrehajtsa sorn igaz, hogy P stabil feltve,
hogy nem Q. Jells: P
S
Q ::= (P, Q)
S
.
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 53
3.30. Denci (Stabil feltve, hogy tulajdonsg).
S
P(A) P(A).

S
::=(P, Q)[(PQ) l f (S, (PQ))
11
3.12. Megjegyzs (Stabil tulajdonsg).
Azt mondjuk, hogy S rendelkezik a P stabil tulajdonsggal, ha P
S
Hamis.
3.17. Lemma. (
S
s a stabil tulajdonsgok) Ha P
S
Q s K
S
Hamis, akkor
PK
S
QK.
Biz.: A 3.30. def. alapjn PQ l f (S, PQ) s K Igaz l f (S, K). Eb-
b ol a 3.10. lemma alkalmazsval: P K Q l f (S, PQ) l f (S, K) =
l f (S, (PQ) K) = l f (S, (PK) (QK)). A 3.30. def. alkalmazsval a
kvnt lltshoz jutunk.
3.18. Lemma. (Az invarinsok stabil tulajdonsgok) Ha Q : K inv
S
(Q), akkor
K
S
Hamis.
Biz.: A 3.27. s 3.30. dencik kzvetlen kvetkezmnye.
3.19. Ttel. (
S
s az invarinsok szigorthatsga) Ha (PJ)
S
(QJ) s J
inv
S
(Q) s K inv
S
(Q), akkor J K inv
S
(Q) s (PJ K)
S
(QJ K)
12
.
Biz.: Az llts els o rsze kvetkezik a 3.11. lemmbl. Az llts msodik rszt
pedig a 3.18. s 3.17. lemma alkalmazsval kapjuk.
3.20. Ttel. (
S
s a legszigorbb invarins) Ha (PJ)
S
(RJ) s J inv
S
(Q),
akkor
PINV
S
(Q)
S
RINV
S
(Q).
Biz.: INV
S
(Q) inv
S
(Q) miatt alkalmazhat a 3.19. ttel. INV
S
(Q) def. alapjn
viszont INV
S
(Q) J = INV
S
(Q).
3.4.4. Haladsi tulajdonsgok
Jelljk
S
-sel azon P, Q logikai fggvnyek igazsghalmazai rendezett prjai-
nak halmazt, amelyekre az S program vgrehajtsa sorn igaz, hogy P stabil fel-
tve, hogy nem Q s van egy olyan s
j
S feltteles rtkads, amely garantlja,
hogy a P-b ol Q-ba jutunk. Jells: P
S
Q ::= (P, Q)
S
.
11
A
S
dencija megfelel a [Cha Mis 89]-ben adott unless fogalmnak.
12
A ttel Prasetya ttelnek relcis tfogalmazsa [Pra 94].
54 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
K
P Q
not K
3.4. bra. P
S
Q tulajdonsg s K invarins kapcsolata.
3.31. Denci (Biztostja tulajdonsg).
S
P(A) P(A).

S
::=(P, Q)[(P, Q)
S
j J : (PQ l f (s
j
, Q))
13
3.21. Lemma. (
S
s a stabil tulajdonsg) Ha P
S
Q s K
S
Hamis, akkor
PK
S
QK.
Biz.: A 3.31. def. s a 3.17. lemma alapjn elegend o azt bizonytani, hogy
s S : (PK (QK)) l f (s, QK). A felttelekb ol tudjuk, hogy s
S : PQ l f (s, Q). Vlasszunk egy ilyen s utastst. K stabil, ezrt erre az
s S-re is: K l f (s, K). Az s-re vonatkoz kt lltsbl logikai s m uvelet s
egyszer usts utn a PK Q l f (s, QK) l f (s, K) eredmnyre jutunk. A
leggyengbb el ofelttel ismert tulajdonsga alapjn (3.6. lemma) l f (s, QK)
l f (s, K) = l f (S, QKK) = l f (s, QK).
3.22. Ttel. (
S
s az invarinsok szigorthatsga) Ha (PJ)
S
(QJ) s
J inv
S
(Q) s K inv
S
(Q), akkor J K inv
S
(Q) s (PJ K)
S
(QJ K)
14
.
Biz.: Az llts els o rsze kvetkezik a 3.11. lemmbl. Az llts msodik rszt
pedig a 3.18. s 3.21. lemma alkalmazsval kapjuk.
3.23. Ttel. (
S
s a legszigorbb invarins) Ha (PJ)
S
(RJ) s J inv
S
(Q),
akkor
13
A
S
dencija megfelel a [Cha Mis 89]-ben adott ensures fogalmnak, ha az temezs megfelel a felttlenl pr-
tatlan temezs aximjnak.
14
A ttel Prasetya ttelnek relcis tfogalmazsa [Pra 94].
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 55
PINV
S
(Q)
S
RINV
S
(Q).
Biz.: 3.20. ttelhez hasonlan.
3.32. Denci (Elkerlhetetlen tulajdonsg). Legyen
S
P(A)P(A) a
S
relci tranzitv diszjunktv lezrtja (1.16. def.), vagyis az a legkisebb relci
15
,
amelyre teljesl, hogy
(1)
S

S
.
(2) Tranzitivits: ha (P, Q)
S
s (Q, R)
S
,
akkor (P, R)
S
.
(3) Diszjunkci: ha brmely W megszmllhat halmazra:
m : (m W :: (P(m), Q)
S
), akkor
((m : m W :: P(m)), Q)
S
.
Jells: P
S
Q ::= (P, Q)
S
.
A 3.32. def. alapjn P
S
Q pontosan akkor, ha a 3.32. def. (1),(2),(3)
szablyainak alkalmazsval P
S
Q levezethet o
16
.
3.13. Megjegyzs (Egyrtelm uen ltezik legkisebb adott tulajdonsg relci).
A P(A) P(A) rendelkezik a megadott tulajdonsgokkal. Ha X s Y rendelkezik
a megadott tulajdonsgokkal, akkor X Y is rendelkezik velk. gy
S
egyrtel-
m uen denilt.
3.14. Megjegyzs.
A UNITY klnbz o relcis kiterjesztseiben [Pac 92, Jut Kna Rao 89] nem a
feladat specikcis feltteleinek, hanem a program ltal denilt inv
S
,
S
,
S
relciknak megfelel o relcikat denilnak. Pachl [Pac 92] az
S
relci rtel-
mezsi tartomnyt az elrhet o llapotok halmazra (3.17. def.) korltozza.
3.24. Lemma. (s
S
) Ha P Q, akkor (P, Q)
S
tetsz oleges S prog-
ramra.
Biz.: (P, P)
S
, gy (P, Q)
S
a 3.31. denci szerint.
3.25. Lemma. (
S
s a stabil tulajdonsg) Ha P
S
Q s K
S
Hamis, akkor
PK
S
QK.
15
A
S
dencija megfelel a [Cha Mis 89]-ben adott leads-to fogalmnak, ha az temezs megfelel a felttlenl pr-
tatlan temezs aximjnak.
16
A (3)-as szably egyetlen lpsben is vgtelen sok elemre alkalmazhat.
56 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
Biz.: Struktrlis indukcival az induktv 3.32. def. alapjn.
Alapeset: P
S
Q-t kzvetlenl P
S
Q-bl kaptuk. Ekkor a 3.21. lemma szerint
PK
S
QK. 3.32. def. (1) pontja szerint ekkor PK
S
QK.
Indukcis feltevs: a) eset: az utols lpsben a 3.32. def. (2) pontjt, a tran-
zitivitst alkalmaztuk P
S
Q el olltsakor, azaz: P
S
Q
1
s Q
1

S
Q. Az
indukcis felttel szerint: PK
S
Q
1
K s Q
1
K
S
QK. A 3.32. def.
(tranzitivits) alapjn: PK
S
QK.
b) eset: az utols lpsben a 3.32. def. (3) pontjt, a diszjunktivitst alkalmaztuk
P
S
Q el olltsakor, azaz: P =m : mW :: P(m) s m : mW :: (P(m)
S
Q). Az indukcis felttel szerint: m : (m W :: (P(m) K
S
QK)), amib ol
a 3.32. def. (diszjunktivits alapjn) PK
S
QK.
3.15. Megjegyzs. A ttel ltalnosthat a kvetkez o alakban
17
: Ha P
S
Q s
R
S
B, akkor PR
S
(QR) B.
Bizonyts struktrlis indukcival.
3.26. Ttel. (
S
s az invarinsok szigorthatsga) Ha (PJ)
S
(QJ) s
J inv
S
(Q) s K inv
S
(Q), akkor J K inv
S
(Q) s (PJ K)
S
(QJ K)
18
.
Biz.: Az llts els o rsze kvetkezik a 3.11. lemmbl. Az llts msodik rszt
pedig a 3.18. s 3.25. lemma alkalmazsval kapjuk.
3.27. Ttel. (
S
s a legszigorbb invarins) Ha (P J)
S
(R J) s J
inv
S
(Q), akkor
PINV
S
(Q)
S
RINV
S
(Q).
Biz.: 3.20. ttelhez hasonlan.
3.28. Ttel. (
S
egyelem u rszhalmazokra) (X,Y)
S
x X : (x,Y)
S
.
Biz.: Ha x X : (x,Y)
S
, akkor (X,Y)
S
3.32. def. alapjn (disz-
junktv lezrs). Ha (X,Y)
S
, akkor x X : x X. A 3.24. lemma alapjn
(x, X)
S
. Ha (X,Y)
S
, akkor a tranzitv lezrs miatt (x,Y)
S
.
3.29. Lemma. (
S
jobboldal gyengtse) Ha P
S
Q s Q R, akkor P
S
R.
Biz.: 3.24. lemma s a 3.32. def. (tranzitivits) kvetkezmnye.
17
A PSP ttel [Cha Mis 89] relcis alakja.
18
A ttel Prasetya bizonyts nlkl publiklt ttelnek relcis tfogalmazsa [Pra 94].
3.4. AZ ABSZTRAKT PROGRAM TULAJDONSGAI 57
3.33. Denci (Elkerlhetetlen felttlenl prtatlan temezs mellett). (P, Q)

S
, akkor s csak akkor, ha a P az S ltal az a-hoz rendelt fkban brmelyik,
a felttlenl prtatlan temezsnek megfelel o vgrehajtsi ton
19
vges (esetleg
nem korltos) tvolsgban van olyan pont, amelynek cmkje eleme Q halmaz-
nak.
3.30. Ttel. (
S
egyelem u rszhalmazokra) (X,Y)
S
x X : (x,Y)
S
.
Biz.: A 3.33. def. kzvetlen kvetkezmnye.
3.31. Ttel. (
S
helyessge s teljessge)
S
=
S
20
.
Biz.:
21
a)
S

S
. Biz.:
S

S
s
S
tranzitv s diszjunktv.
b)
S

S
. A 3.28., 3.30. ttelek alapjn elegend o bizonytani, hogy
(x, P)
S
=(x, P)
S
.
A(P)::=y[(y, P)
S
. E(P)::=y[(y, P) ,
S
.
Legyen w E(P). Jelljk E(w, P)-vel azon pontok halmazt, amelyekre igaz,
hogy w-b ol olyan ton rhet oek el, amelynek minden pontja eleme E(P)-nek.
w E(P) : s S : z E(w, P) : p(s)(z) ,A(P), ellenkez o esetben wE(P) :
s S : z E(w, P) : p(s)(z) A(P), azaz (E(w, P), A(P))
S
s w E(w, P)
miatt wA(P) kvetkezne, ami ellentmonds. Teht w E(P)-re megkonstrul-
hat egy olyan t, amelyen s S cmkje szerepel a felttlenl prtatlan teme-
zs aximja szerint s az t E(P) belsejben halad. Tegyk fel indirekt, hogy x
E(P). Ekkor a fentiek alapjn (x, P) ,
S
. Azaz (x, P)
S
=x , E(P),
azaz x A(P).
3.5. Kvetkezmny. Ha egy program rendelkezik a P
S
Q tulajdonsggal, ak-
kor s csak akkor rendelkezik a P
S
Q tulajdonsggal is, amely a tranzitivits s
a diszjunkci szablynak alkalmazsval levezethet o a program U
S
V alak
tulajdonsgaibl
22
.
3.4.5. Fixpont tulajdonsgok
A konkrt program az absztrakt program vgrehajtsnak prexe. Az absztrakt
program nem terminl abban az rtelemben, hogy tbb elemi m uvelet nem kerl
19
v.. 11.10. def.
20
A ttel Pachl ttelnek ltalnostsa [Pac 92]
21
[Pac 92]-ben adott bizonyts ltalnosthat a teljes llapottrre (lsd 3.14 lbjegyzet) s nemdeterminisztikus felt-
teles rtkadsok esetre.
22
A tranzitv diszjunktv lezrsi tulajdonsgok felhasznlsval Cook-fle relatv teljes [Rao 95] levezetsi szably-
rendszert alkothatunk a program haladsi tulajdonsgaira nzve.
58 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
vgrehajtsra. Terminltnak tekinthetnk azonban egy izollt programot akkor, ha
elrte egy xpontjt, azaz a tovbbi m uveletek hatsra llapotvltozs mr nem
kvetkezhet be.
Az S programrl azt mondjuk, hogy xpontba jutott az A altr felett, ha az Aal-
trhez tartoz vltozkra vonatkoz egyszer u rtkadsok mindegyikre teljesl,
hogy az rtkads hatsrelcija fggetlen az altrhez nem tartoz llapottrkom-
ponensekt ol s
az rtkads determinisztikus s a jobboldaln ll fggvnykompozcik
(kifejezsek) rtke azonos a baloldalon ll vltozk rtkvel vagy
az rtkads jobboldaln szerepl o kapcsoszrjel fggvny felttele hamis,
vagy
az rtkads nemdeterminisztikus s az altr azon rszhalmaznak, amely
felett az rtkads determinisztikus, s a kapcsoszrjel fggvny felttele
igazsghalmaznak metszete felett az rtkads jobboldaln ll fggvny-
kompozcik (kifejezsek) rtke azonos a baloldalon ll vltozk rtk-
vel.
Legyen S = (s
0
, s
1
, . . . , s
m
), ahol s
j
S egy (szimultn, nemdeterminisztikus)
feltteles rtkads, s
j
:
|
i[1,n]
(v
i
: F
j
i
(v
1
, . . . , v
n
), ha
j
i
).
Jelljk
j
id
-vel azt a logikai fggvnyt, amelynek igazsghalmazra lesz u-
ktve az F
j
i
relci determinisztikus, azaz:
j
id
(a) ([F
j
i
(a)[ = 1).
3.34. Denci (Fixpontok halmaza). f ixpont
S
::=(

jJ,i[1..n]
(
j
i
(
j
id
v
i
=
F
j
i
(v
1
, . . . , v
n
)))). A xpontok halmaznak jellsre
S
-t is hasznljuk a tovbbi-
akban.
Ha az rtkadsok mindegyike determinisztikus, akkor a program xpontjait
jellemz o logikai fggvnyt a szimultn rtkadsok egyenl osgg val talakt-
sval, feltteleik implikcis el otagg val kiemelsvel s konjunkcijval kap-
juk meg: f ixpont
S
= (

jJ,i[1..n]
(
j
i
v
i
= F
j
i
(a))).
3.2. Plda (Program xpontjainak halmaza). S = (SKIP, k :=k+1, ha k <N).
f ixpont
S
= (k < N k = k +1) k N [Cha Mis 89].
3.5. AZ ABSZTRAKT PROGRAM VISELKEDSI RELCIJA 59
3.35. Denci (Fixpont tulajdonsg). Jelljk FP
S
-sel azon R logikai fggv-
nyek igazsghalmazainak halmazt, amelyekre f ixpont
S
R.
3.16. Megjegyzs. A megolds dencija szerint (4.1.) egy program teljesti a
FP R specikcis felttelt, ha az R xpontfelttel tartalmazza a f ixpont
S
ll-
ts igazsghalmaznak s (legalbb) az elrhet o llapotok halmaznak metszett.
3.32. Lemma. (Fixpont tulajdonsg gyengtse) Ha R Q s R FP
S
, akkor
Q FP
S
.
Biz.: Az 3.35. def. kzvetlen kvetkezmnye.
3.4.6. Terminlsi tulajdonsgok
3.36. Denci (Biztosan xpontba jut tulajdonsg).
Jelljk TERM
S
-sel azon Q logikai fggvnyek igazsghalmazainak halmazt,
amelyekre Q
S
f ixpont
S
.
A program biztosan xpontba jut, ha egy alkalmasan megvlasztott varins
fggvny
23
rtke brmely llapot elrse utn a jv oben elkerlhetetlenl csk-
ken (5.4. ttel).
3.5. Az absztrakt program viselkedsi relcija
Egy program szemantikai jelentst azonosthatjuk az ltala az llapottr hat-
vnyhalmaza felett denilt - invarinsok, biztonsgossgi, haladsi, xpont s
terminlsi tulajdonsgoknak megfelel o unris s binris - relcik egyttesvel.
Egy ilyen szemantika ler jelleg u
24
(9. fejezet) [Jut Kna Rao 89] s absztrak-
cis szintje lnyegben megegyezik a bevezetett megoldsfogalom absztrakcis
szintjvel.
3.37. Denci (Viselkedsi relci). Legyen S programaz A llapottr felett. Az
A llapottr felett adott (
S
,
S
,
S
, FP
S
, inv
S
, TERM
S
) rendezett relcihatost
az S absztrakt prhuzamos program viselkedsi relcijnak hvjuk s p(S)-sel
jelljk.
23
pl. az llapottr vltozibl fggvnykompozcival alkotott nemnegatv egszrtk u fggvny
24
Ler szemantikrl csak akkor beszlhetnk, ha a szemantikus lekpezs kompozcionlis. A kompozcionalits azon-
ban csak rszben teljesl a modellben (6. fejezet), amely ltalban elegend o ahhoz, hogy a megoldst rszfeladatok
megoldsbl programkonstrukcik segtsgvel el olltsuk, de nem felel meg a kompozicionalits szigor matematikai
kvetelmnynek.
60 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.6. Feladatok
3.1. Feladat. A=x : Ny : N. Szmoljuk ki az S absztrakt programR utfelttelre
vonatkoz leggyengbb el ofelttelt, l f (S, R) -t!
R = (0 < x +y < 7),
S =

SKIP, {x :=

5, ha y < 2
x, ha y 2
}

3.2. Feladat. A=x : Z. S = (SKIP, x :=x, ha x <0 ), R= (x >0). Szmoljuk


ki l f (S, R) -t!
3.3. Feladat. Bizonytsuk be, hogy tetsz oleges S absztrakt program esetn az
S
relci rendelkezik az albbi tulajdonsgokkal!
Igaz
S
P
Hamis
S
P
P
S
Igaz
P
S
P
P
S
P
3.4. Feladat. Igaz-e tetsz oleges S programra, P, Q logikai fggvnyekre, ha P
S
Q, akkor s csak akkor PQ
S
Q s PQ
S
Q?
3.5. Feladat. Bizonytsuk be, ha P
S
Hamis, akkor P
S
Q!
3.6. Feladat. (Gyengtsi ttel)
Igaz-e? Ha P
S
Q, Q R , akkor P
S
R.
3.7. Feladat. Igaz-e? Ha P Q, Q
S
R , akkor P
S
R.
3.8. Feladat. Igaz-e? Ha P Q , akkor P
S
Q.
3.9. Feladat. Igaz-e? Ha P Q , akkor P
S
Q.
3.10. Feladat. (
S
tranzitivitsa)
Igaz-e? Ha P
S
Q, Q
S
R , akkor P
S
R.
3.11. Feladat. (
S
diszjunktivitsa)
Igaz-e? Ha P
S
R s Q
S
R , akkor PQ
S
R.
3.12. Feladat. Igaz-e? Ha P
S
Q s Kstabil
S
, akkor PK
S
QK.
3.13. Feladat. Igaz-e? Ha P
S
P

s Q
S
Q

, akkor PQ
S
P

s PQ
S
P

.
3.6. FELADATOK 61
3.14. Feladat.
Igaz-e? Ha P
S
Q s R Q, akkor P
S
R.
3.15. Feladat.
Igaz-e? Ha P
S
Q s P R, akkor R
S
Q.
3.16. Feladat.
Igaz-e? Ha R
S
QR , akkor Rstabil
S
.
3.17. Feladat.
Igaz-e? Ha (PQ) stabil
S
, akkor P
S
Q.
3.18. Feladat.
Igaz-e? Ha (PQ) stabil
S
, Q R , akkor P
S
R.
3.19. Feladat.
Igaz-e? Ha P
S
Q s Q
S
R, akkor PQ
S
R.
3.20. Feladat.
Igaz-e? Ha P
S
Q, Q
S
P s (PQ)
S
(PQ), akkor (PQ)stabil
S
.
3.21. Feladat. Igaz-e? Ha P
S
Q, Q
S
P s PQHamis, akkor PQstabil
S
.
3.22. Feladat. Igaz-e? Ha P
S
Q, Q
S
P s PQstabil
S
, akkor PQstabil
S
.
3.23. Feladat. Igaz-e? Ha P
S
(QR), R
S
(PQ), akkor Q
S
(PR).
3.24. Feladat. Igaz-e? Ha P
S
Q, Q
S
P, akkor (PQ)
S
(PQ).
3.25. Feladat. Igaz-e? Ha P
S
Q, Q
S
P, akkor P
S
(QR).
3.26. Feladat. Igaz-e? Ha (PQ)
S
Q, Q
S
R, akkor P
S
(QR).
3.27. Feladat. Igaz-e? Ha (PQ)
S
R, Q
S
R, akkor P
S
(QR).
3.28. Feladat. Igaz-e? Ha P
S
(QR), akkor (PQ)
S
(QR).
62 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.29. Feladat. Igaz-e? Ha P Q, (QZ)
S
R, R Z, akkor (QP)
S
(Z P).
3.30. Feladat. Igaz-e? Ha R
S
(PR), Q
S
R, RZ, akkor Z
S
(QR).
3.31. Feladat. Bizonytsuk be, hogy tetsz oleges S absztrakt programesetn az
S
relci rendelkezik a kvetkez o tulajdonsgokkal:
Hamis
S
P, P
S
Igaz, P
S
P!
3.32. Feladat. ( Gyengtsi ttel ) Igaz-e? Ha P
S
Q, Q R , akkor P
S
R.
3.33. Feladat. Igaz-e? Ha P Q, Q
S
R , akkor P
S
R.
3.34. Feladat.
Igaz-e? Ha P
S
Q, s A
S
B , akkor PA
S
QB.
3.35. Feladat. Igaz-e? Ha P Q , akkor P
S
Q.
3.36. Feladat. Igaz-e? Ha P
S
Q, Kstabil
S
, akkor PK
S
QK.
3.37. Feladat. Igaz-e? Ha P Q , akkor P
S
Q.
3.38. Feladat. Igaz-e? Ha P
S
Hamis , akkor P = Hamis.
3.39. Feladat. (
S
tranzitivitsa) Igaz-e? Ha P
S
Q, Q
S
R , akkor P
S
R.
3.40. Feladat. (
S
diszjunktivitsa) Igaz-e? Ha P
S
R s Q
S
R , akkor
PQ
S
R.
3.41. Feladat. Igaz-e? Ha P
S
Q, Q
S
R , akkor PQ
S
R.
3.42. Feladat. Igaz-e? Ha P
S
Q , akkor (PR)
S
(QR).
3.43. Feladat. Igaz-e? Ha (PQ)
S
R , akkor P
S
(QR).
3.44. Feladat. Igaz-e? Ha (PQ)
S
Q , Q
S
R, akkor P
S
(QR).
3.45. Feladat. Igaz-e? Ha (PQ)
S
R , akkor (PR)
S
(QR).
3.46. Feladat. Igaz-e? Ha P
S
(QR) , akkor (PQ)
S
(QR).
3.6. FELADATOK 63
3.47. Feladat. Igaz-e? Ha P
S
P, Q
S
Q, R
S
R, akkor (PQ)(Q
R) (PR)
S
((PQ) (QR) (PR)).
3.48. Feladat. Bizonytsuk be, hogy tetsz oleges S absztrakt programesetn az
S
relci rendelkezik a kvetkez o tulajdonsgokkal:
Hamis
S
P, P
S
Igaz, P
S
P!
3.49. Feladat. Igaz-e? Ha P Q, akkor P
S
Q.
3.50. Feladat. Igaz-e? Ha P
S
Q , Q R, akkor P
S
R.
3.51. Feladat. Igaz-e? Ha P Q , Q
S
R, akkor P
S
R.
3.52. Feladat. Igaz-e? Ha P
S
Hamis, akkor P = Hamis.
3.33. Ttel. PSP ttel Igaz-e? Ha p
S
q, r
S
b, akkor pr
S
(qr) b.
3.53. Feladat. Igaz-e? Ha P
S
Q, s Kstabil
S
, akkor (PK)
S
(QK).
3.54. Feladat. Igaz-e? Ha m I : (P
m

S
Q
m
), akkor (
W
mI
P
m
)
S
(
W
mI
Q
m
).
3.55. Feladat. Igaz-e? Ha A
S
B, A
S
B, akkor A
S
B.
3.56. Feladat. Igaz-e? Ha P
S
Q, P stabil
S
, akkor P
S
Q.
3.57. Feladat. Igaz-e? Ha P
S
Q, akkor s csak akkor PQ
S
Q
3.58. Feladat. Igaz-e? Ha A
S
B, B
S
A, (AB) stabil
S
, akkor (A
B) stabil
S
.
3.59. Feladat. Igaz-e? Ha P
S
Q, Q
S
P, (PQ)
S
P, akkor (PQ)
S
(PQ).
3.60. Feladat. Igaz-e? Ha P
S
P, PQ stabil
S
, ((PQ) (QP))
S
(PQ), akkor (PQ)
S
Q.
3.61. Feladat. Igaz-e? Ha P
S
Q, Q
S
P, P
S
B, akkor P
S
B.
3.62. Feladat. Igaz-e? Ha A
S
(BC), B
S
(BCA), C
S
(BC),
(BC) D, akkor A
S
D.
64 3. FEJEZET. PRHUZAMOS ABSZTRAKT PROGRAM
3.63. Feladat. Igaz-e? Ha (PB)
S
Q, (PB)
S
((PB) Q), akkor
P
S
Q.
3.64. Feladat. Igaz-e? Ha P
S
(QB), B
S
R, akkor P
S
(QR).
3.65. Feladat. Igaz-e? Ha A
S
B, B
S
C, A
S
C, akkor A
S
B.
3.66. Feladat. Igaz-e? Ha P
S
Q, (RQ) stabil
S
, akkor (PR) Q.
3.67. Feladat. Igaz-e? Ha (PQ)
S
R , akkor P
S
(QR).
3.68. Feladat. Igaz-e? Ha P
S
Q, (PR)
S
(QR), akkor (P R)
S
(QR).
3.69. Feladat. Igaz-e? Ha A
0

S
C, n I : A
n+1

S
A
n
, akkor (
W
A
n
)
S
C.
, ahol I N indexhalmaz.
3.70. Feladat. Igaz-e? Ha i I : (P
i

S
(Q
i
R), Q
i

S
R), akkor (
V
iI
P
i
)
S
((
V
iI
Q
i
) R).
4. fejezet
A megolds fogalma
Megadjuk, hogy egy absztrakt program mikor old meg egy feladatot. A
megolds fogalmt a leggyengbb el ofelttel fogalmra ptjk fel. A meg-
olds dencija gy egy olyan verikcis kalkulus alapja, amely helyes
program esetn a specikcis felttelek s az absztrakt program utast-
sainak szmval linerisan arnyos szm lpsben vget r. Kimondunk
nhny ttelt, amelyek a verikcit egyszer ustik, illetve igazoljk, hogy a
bevezetett megoldsfogalom megfelel elvrsainknak.
4.1. A megolds dencija
4.1. Denci (Megolds). Azt mondjuk, hogy az S program megoldja az F fel-
adatot (2.1. def.), ha b B : h F(b), hogy az S program megfelel a h-ban
adott inv
h
P, P
h
U, P
h
U, P
h
U, FP
h
R, Q TERM
h
alak specik-
cis felttelek mindegyiknek a Q INIT
h
kezdeti felttelek mellett.
Az albbiakban sorra megadjuk, hogy egy S program mikor felel meg az egyes
specikcis feltteleknek a Q INIT
h
kezdeti felttelek mellett.
4.1. Megjegyzs (Specikcis felttelek s elrhet o llapotok).
Rgztett program esetn indokolt a specikcis felttelek vizsglatt az elrhet o
llapotok halmazra korltozni [Lam Lyn 90, San 91, Pra 94]. Ha a program
megfelel egy specikcis felttelnek az elrhet o llapotok felett, akkor a speci-
kcis felttel nem srl a program futsa sorn.
A gyakorlatban azonban ltalban az elrhet o llapotok halmaznl tgabb hal-
mazt vlasztunk (v..: 4.3. megjegyzs), szls o esetben akr az sszes llapotot, a
teljes llapotteret is gyelembe vehetjk.
65
66 4. FEJEZET. A MEGOLDS FOGALMA
4.2. Megjegyzs. A megolds dencijnak megadsakor az absztrakt program
viselkedsi relcijnak 3.5 bekezdsben adott dencijra (3.37. def.) tmasz-
kodunk az absztrakt program (3.15. def.) dencija helyett. A viselkedsi relci
s a feladat hasonl szerkezet u, gy knnyen sszehasonlthatak.
4.2. tmenetfelttelek
4.2.1. Biztonsgossgi felttelek
4.2. Denci (Megfelel (inv
h
P)-nek). Az S program pontosan akkor felel meg
az (inv
h
P) specikcis felttelnek, ha van olyan K inv
S
(

QINIT
h
Q) invarins
tulajdonsg, amely mellett megfelel a felttelnek.
4.3. Denci. Az S program pontosan akkor felel meg az (inv
h
P) specikcis
felttelnek a K inv
S
(

QINIT
h
Q) mellett, ha
PK inv
S
(

QINIT
h
Q).
4.3. Megjegyzs. A programbrmely invarins tulajdonsgnak igazsghalmaza
tartalmazza az elrhet o llapotok halmazt (3.17. def., 3.15. ttel), gy a tovbbi-
akban a 4.1. megjegyzsnek megfelel oen megengedjk, hogy a program az egyes
specikcis feltteleknek csak egy-egy kivlasztott invarins tulajdonsg igazsg-
halmaza felett feleljen meg
1
. Az albbiakban megmutatjuk, hogy programok egyes
specikcis felttelekre vonatkoz helyessgnek bizonytsa sorn az invarins
tulajdonsgokat segdttelknt felhasznlhatjuk.
4.4. Megjegyzs (Specikcis felttelek s mindig igaz lltsok). Aspecik-
cis felttelek vizsglatt megszorthatnnk egyes mindig igaz lltsok igazsg-
halmazra is, amelyek igazsghalmaza az invarins tulajdonsgokhoz hasonlan
tartalmazza az elrhet o llapotok halmazt. A mindig igaz lltsok azonban nem
hasznlhatak fel segdttelknt az utastsok leggyengbb el ofelttelnek kisz-
mtsra pl o bizonytsok sorn. (Ha J mindig igaz, de nem invarins, akkor
J ,l f (S, J).) A mindig igaz lltsokra az sem igaz, hogy szigorthatak az t-
menetfelttelekre nzve (3.19. 3.22. 3.26. ttel) [Pra 94].
4.4. Denci (Megfelel P
h
Q-nak).
S megfelel a P
h
Q specikcis felttelnek, ha van olyan K inv
S
(

QINIT
h
Q)
invarins tulajdonsg ami mellett megfelel a felttelnek.
1
Ez a dnts megfelel a helyettestsi aximnak [Cha Mis 89, UN 88-93, Pra 94]
4.3. PEREMFELTTELEK 67
4.5. Denci. Az S program pontosan akkor felel meg az P
h
Q specikcis
felttelnek a K inv
S
(

QINIT
h
Q) mellett, ha PK
S
QK.
4.2.2. Haladsi felttelek
4.6. Denci (Megfelel P
h
Q-nak). S megfelel a P
h
Q specikcis felt-
telnek, ha van olyan K inv
S
(

QINIT
h
Q) invarins tulajdonsg ami mellett meg-
felel a felttelnek.
4.7. Denci. Az S program pontosan akkor felel meg az P
h
Q specikcis
felttelnek a K inv
S
(

QINIT
h
Q) mellett, ha PK
S
QK.
4.5. Megjegyzs (Haladsi felttelek s az temezs). A denci a 3.31. de-
ncira pl, amelyben er osen kihasznljuk a felttlenl prtatlan temezs meg-
ltt [Cha Mis 89].
4.8. Denci (Megfelel P
h
Q-nak). S pontosan akkor felel meg a P
h
Q
specikcis felttelnek, ha van olyan K inv
S
(

QINIT
h
Q) invarins tulajdonsg
ami mellett megfelel a felttelnek.
4.9. Denci. S pontosan akkor felel meg a P
h
Q specikcis felttelnek a
K inv
S
(

QINIT
h
Q) mellett, ha PK
S
QK.
4.10. Denci (Megfelel P FP
h
-nak). S pontosan akkor felel meg a PFP
h
specikcis felttelnek, ha van olyan K inv
S
(

QINIT
h
Q) invarins tulajdonsg
ami mellett megfelel a felttelnek.
4.11. Denci. S pontosan akkor felel meg a P FP
h
specikcis felttelnek
a K inv
S
(

QINIT
h
Q) mellett, ha (sp(s
0
, P) K) TERM
S
.
4.3. Peremfelttelek
4.3.1. Fixpont felttelek
4.12. Denci (Megfelel FP
h
R-nek). S pontosan akkor felel meg a FP
h
R
specikcis felttelnek, ha van olyan K inv
S
(

QINIT
h
Q) invarins tulajdonsg
ami mellett megfelel a felttelnek.
4.13. Denci. S pontosan akkor felel meg a FP
h
R specikcis felttelnek
K inv
S
(

QINIT
h
Q) mellett, ha f ixpont
S
K R.
68 4. FEJEZET. A MEGOLDS FOGALMA
4.4. Megolds K invarins tulajdonsg mellett
4.14. Denci (Megolds K invarins mellett). Azt mondjuk, hogy az S prog-
ram megoldja az F feladatot (2.1. def.) a K invarins tulajdonsg mellett, ha
b B : h F(b), hogy K inv
S
(

QINIT
h
Q) s az S program K mellett megfelel
a h-ban adott inv
h
P, P
h
U, P
h
U, P
h
U, FP
h
R, Q TERM
h
alak
specikcis felttelek mindegyiknek a Q INIT
h
kezdeti felttelek mellett.
4.5. A megolds dencijnak vizsglata
4.1. Lemma. (Megfelel (inv
h
P)-nek) S megfelel (inv
h
P) specikcis felttelnek,
ha van olyan K inv
S
(

QINIT
h
Q), hogy
sp(s
0
, (

QINIT
h
Q)) PK s PK l f (S, PK) .
Biz.: 3.27. s 4.2. dencik kzvetlen kvetkezmnye.
4.1. Kvetkezmny. S megfelel (inv
h
P) specikcis felttelnek, ha
(Q INIT
h
, K) : sp(s
0
, Q) PK s K l f (S, K) s PK l f (S, PK) .
4.2. Ttel. (Megfelel inv
h
-nak INV
S
mellett) Az S program pontosan akkor fe-
lel meg a P inv
h
specikcis felttelnek, ha megfelel a legszigorbb invarins
mellett, azaz, ha P mindig igaz (P true
S
(

QINIT
h
Q)).
Biz.: Ha megfelel a legszigorbb invarins mellett, akkor van olyan invarins,
amely mellett megfelel, gy a 4.2. denci szerint megfelel a felttelnek. Ekkor
PINV
S
(

QINIT
h
Q) inv
S
(

QINIT
h
Q). INV
S
(

QINIT
h
Q) a legszigorbb in-
varins, gy: PINV
S
(

QINIT
h
Q) = INV
S
(

QINIT
h
Q), azaz P mindig igaz.
Ha megfelel a felttelnek, akkor van olyan J invarins amely mellett megfelel, gy
a 3.11. lemma szerint a legszigorbb invarins szerint is megfelel a felttelnek.
4.3. Lemma. (Megfelel P
h
Q-nak)
S megfelel a P
h
Q specikcis felttelnek a K inv
S
(

QINIT
h
Q) invarins tu-
lajdonsg mellett, ha (PQK l f (S, (PQ) K)).
Biz: A 3.30.,4.4. dencik kzvetlen kvetkezmnye.
4.4. Ttel. (Megfelel P
h
Q-nak INV
S
mellett) Az S program pontosan akkor
felel meg a P
h
Q specikcis felttelnek, ha megfelel a legszigorbb invarins
mellett, azaz:
PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q).
4.5. A MEGOLDS DEFINCIJNAK VIZSGLATA 69
Biz.: Ha megfelel a legszigorbb invarins mellett, akkor van olyan invarins,
amely mellett megfelel, gy a 4.4. denci szerint megfelel a felttelnek. Ha
megfelel a felttelnek, akkor van olyan J invarins amely mellett megfelel, gy a
3.20. ttel szerint a legszigorbb invarins szerint is megfelel a felttelnek.
4.6. Megjegyzs.
Azt mondjuk, hogy S megfelel a P stabil
h
felttelnek, ha megfelel a P
h
Hamis
felttelnek.
4.5. Lemma. (Megfelel (P
h
Q)-nak) Az S program megfelel (P
h
Q) spe-
cikcis felttelnek a K inv
S
(

QINIT
h
Q) invarins tulajdonsg mellett, ha S
megfelel a P
h
Q felttelnek K mellett, s j J : (PQK l f (s
j
, QK)).
Biz.: 3.31. 4.6. dencik s a 4.3. lemma kzvetlen kvetkezmnye.
4.6. Ttel. (Megfelel P
h
Q-nak INV
S
mellett) Az S program pontosan akkor
felel meg a P
h
Q specikcis felttelnek, ha megfelel a legszigorbb invarins
mellett, azaz:
PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q).
Biz.: 4.4. ttel bizonytshoz hasonlan a 3.23. ttel felhasznlsval.
4.7. Ttel. (Megfelel P
h
Q-nak INV
S
mellett) Az S program pontosan akkor
felel meg a P
h
Q specikcis felttelnek, ha megfelel a legszigorbb invarins
mellett, azaz:
PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q).
Biz.: 4.4. ttel bizonytshoz hasonlan a 3.27. ttel felhasznlsval.
4.8. Lemma. (Megfelel P
h
Q-nak INV
S
mellett) Az S program pontosan akkor
felel meg a P
h
Q specikcis felttelnek, ha PINV
S
(

QINIT
h
Q)
S
Q.
Biz.: Ha PINV
S
(

QINIT
h
Q)
S
Q, akkor a 3.25. lemma miatt (a legszigorbb
invarins stabil): PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q). Az lltst az
el oz o ttel alkalmazsval kapjuk. Ha S megfelel P
h
Q-nak, akkor az el oz o
ttel szerint PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q). A 3.29. lemma
szerint a
S
jobboldala gyengthet o, gy PINV
S
(

QINIT
h
Q)
S
Q.
70 4. FEJEZET. A MEGOLDS FOGALMA
4.2. Kvetkezmny. Az S program pontosan akkor felel meg a P
h
Q speci-
kcis felttelnek, ha PINV
S
(

QINIT
h
Q)
S
Q.
Biz.: A 3.31. ttel szerint
S
=
S
.
4.9. Lemma. (Megfelel P FP
h
-nak INV
S
mellett) Az S program pontosan ak-
kor felel meg a PFP
h
specikcis felttelnek, ha sp(s
0
, P)INV
S
(

QINIT
h
Q)
S
f ixpont
S
.
Biz.: A 3.36.,4.2.,4.10. def. s 4.8. lemma kzvetlen kvetkezmnye.
4.10. Lemma. (Megfelel FP
h
R-nek) S megfelel a (FP
h
R) specikcis
felttelnek az A llapottr felett, a K inv
S
(

QINIT
h
Q) invarins mellett, ha
f ixpont
S
K R, ahol a f ixpont
S
logikai fggvny az S program A feletti x-
pontjainak halmazt adja meg (3.34. def.).
Biz.: A 3.35. s a 4.12. def. kzvetlen kvetkezmnye.
4.11. Lemma. (Megfelel FP
h
R-nek INV
S
mellett) S pontosan akkor felel meg
a (FP
h
R) kiktsnek, ha f ixpont
S
INV
S
(

QINIT
h
Q) R.
Biz.: Az el oz o lemma kvetkezmnye.
4.7. Megjegyzs (Megolds K mellett). Ha S megoldja a feladatot egy K invari-
ns tulajdonsg mellett, akkor S megoldja a feladatot. Ha S megoldja a feladatot,
akkor megoldja a legszigorbb invarins mellett is.
4.12. Ttel. (Program s feladat kiterjesztse) Legyen az F feladat s az S prog-
ram az A llapottr A
1
altere felett denilva. Ha S megoldja F-et, akkor S kiter-
jesztse A-ra megoldja az F feladat A-ra val kiterjesztst
2
.
Biz.: A 4.1. def. szerint az S program viselkedsi relcija a megolds den-
cija szerint tartalmaz minden olyan programtulajdonsgot, amely ahhoz szks-
ges, hogy S megfeleljen az F specikcis feltteleinek. A programtulajdons-
gok mindegyiknek dencija a leggyengbb el ofelttelre pl, ezrt 3.22. def.
s a 3.7. lemma szerint a programtulajdonsgok kiterjesztsei tulajdonsgai a
kiterjesztett programnak is. gy a kiterjesztett feladat (2.3. def.) specikcis
feltteleinek kielgtshez szksges valamennyi programtulajdonsg szerepel a
kiterjesztett program viselkedsi relcijban.
2
A ttel a [Ft 88] cikk egyik kiterjesztsi ttelnek ltalnostsa. A tbbi kiterjesztsi ttel megfelel oje is megfogal-
mazhat.
5. fejezet
Levezetsi szablyok
Ebben a fejezetben olyan tteleket bizonytunk be, amelyeket gyakran
alkalmazunk feladatok nomtsa sorn, vagy amelyek megknnytik annak
bizonytst, hogy egy program megfelel egy adott specikcis felttelnek.
Ezeket a tteleket levezetsi szablyoknak nevezzk. A leggyakrabban inva-
rinsok, elkerlhetetlensget kifejez o, ill. xpontfelttelek nomtsra van
szksg.
5.1. Biztonsgossgi felttelek nomtsa
5.1. Lemma. (Invarins felttel felbontsa) Ha egy S absztrakt program megfelel
az (inv
h
P
1
), (inv
h
P
2
) specikcis feltteleknek, akkor megfelel a (inv
h
P
1
P
2
)
specikcis felttelnek is.
Biz.: a 3.11. lemma kvetkezmnye.
5.2. Haladsi felttelek nomtsa
5.2. Lemma. (
h
nomtsa) S megfelel a P
h
Q specikcis felttelnek, ha
az albbi szablyok alkalmazsval levezethet o:
(1) Ha S megfelel (P
h
Q)-nak, akkor S megfelel (P
h
Q)-nak is.
(2) Tranzitivits: ha S megfelel (P
h
Q)-nak s S megfelel (Q
h
R)-nak,
akkor S megfelel (P
h
R)-nak is.
71
72 5. FEJEZET. LEVEZETSI SZABLYOK
(3) Diszjunkci: brmely W megszmllhat halmazra: ha
m : m W :: S megfelel (P(m)
h
Q)-nak, akkor
S megfelel ((m : m W :: P(m))
h
Q)-nak is.
Biz.: 3.32. def. s a 4.6.,4.7. ttelek felhasznlsval: (1) A felttel szerint
PINV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q). Ekkor 3.32. def. szerint P
INV
S
(

QINIT
h
Q)
S
QINV
S
(

QINIT
h
Q). (2)-es s (3)-as esetben hasonlan.

5.3. Lemma. (P FP
h
felttel bizonytsa) Az S program pontosan akkor felel
meg a P FP
h
specikcinak, ha
megfelel a sp(s
0
, P)
h
f ixpont
S
felttelnek, teht S biztosan xpontba jut.
Biz.: A 4.9. lemma szerint sp(s
0
, P) INV
S
(

QINIT
h
Q)
S
f ixpont
S
, gy a 4.8.
lemma felhasznlsval: S megfelel a sp(s
0
, Igaz)
h
f ixpont
S
felttelnek.
5.1. Denci (Varins fggvny). Varins fggvnynek nevezzk a t : A Z,
az llapotokhoz egszeket rendel o fggvnyeket. Legyen m Z tetsz oleges egsz
szm. A t = m, t > m : A L logikai fggvnyeket deniljuk az igazsghalma-
zukkal:
t = m::=a A[t(a) = m, t > m::=a A[t(a) > m.
A kvetkez o ttelben a UNITY indukcis elvt [Cha Mis 89] fogalmazzuk
meg a ciklus levezetsi szablyhoz hasonl alakban [Ft 83, WRMP 95].
5.4. Ttel. (Varinsfggvny alkalmazsa) Legyen P, Q : A L logikai fgg-
vny s t : AZ egy olyan varins fggvny, amelyre teljesl, hogy (PQ)
t > 0. Ha m N :: (PQt = m)
S
((Pt < m) Q), akkor P
S
Q.
Biz.: Teljes indukcival beltjuk, hogy m N : (PQt = m
S
Q). Ebb ol
a 3.32. def. alapjn, a diszjunktivits felhasznlsval
PQ(

mN
(t = m))
S
Q, azaz PQt > 0
S
Q addik.
A felttel szerint PQ t > 0, gy (PQt > 0) PQ.
Teht PQ
S
Q. A 3.24. lemma szerint PQ
S
Q. A 3.32. def., a disz-
junktivits alkalmazsval: P
S
Q.
Teljes indukci:
Alapeset: m = 1. A ttel felttele szerint: (PQt = 1)
S
((Pt < 1) Q).
Tudjuk, hogy PQt >0, gy (Pt <1)Q(PQt <1)(PQt <
5.2. HALADSI FELTTELEK FINOMTSA 73
1) Q Hamis (PQt < 1) Q Q.
Indukcis feltevs: k : k > 0 k < m :: (PQt = k
S
Q). A 3.32. def.
alapjn, a diszjunktivits felhasznlsval: (PQt > 0 t < m)
S
Q. A
3.24. lemma alapjn: Q
S
Q. A diszjunkci ismtelt alkalmazsval: (P
Qt > 0 t < m) Q
S
Q. A ttel felttele szerint: (PQt = m)
S
((PQt < m) (PQt < m) Q). PQ t > 0, gy ((PQt <
m) (PQt < m) Q) (PQt > 0 t < m) Q. Teht (PQt =
m)
S
(PQt > 0t < m) Q. A 3.32. def. szerint, a tranzitivits alkalma-
zsval: (PQt = m)
S
Q.
5.5. Ttel. (
h
nomtsa varinsfggvny alkalmazsval) Legyen P, Q: A
L logikai fggvny s t : A Z egy olyan varins fggvny, amelyre teljesl,
hogy PQ t > 0. Ha m N :: S megfelel a (PQt = m)
h
((P
t < m) Q) specikcis felttelnek, akkor S megfelel a P
h
Q specikcis
felttelnek is.
Biz.: Az el oz o ttel (5.4.) bizonytsa alapjn a bizonyts megkonstrulhat. A
bizonyts sorn a 3.32. def. helyett a 5.2. lemmra kell hivatkozni. A 3.24.
lemma helyett pedig a lemma azon kvetkezmnyre van szksg, amely szerint
tetsz oleges S program megfelel a QP
h
Q felttelnek.
5.6. Lemma. Legyen K inv
S
(

QINIT
h
Q), vlasszunk egy olyan t varins fgg-
vnyt, amelyre: K f ixpont
S
t > 0. Ha minden t

N -re (Kf ixpont


S

t =t

)
S
(Kt <t

) f ixpont
S
, akkor S megfelel tetsz oleges Q logikai fggvny
esetn a Q TERM
h
specikcis felttelnek (pl. a Igaz TERM
h
specikcis
felttelnek is).
Biz.: A felttel s a 5.4. ttel szerint: K
S
f ixpont
S
. A 3.28. ttel alapjn br-
mely P logikai fggvnnyel sz ukthetjk
S
baloldalt: PK
S
f ixpont
S
. A
4.10. def. alapjn P::=sp(s
0
, Igaz), ill. P::=sp(s
0
, Q) vlaszts mellett S megfelel
a Igaz TERM
h
, Q TERM
h
specikcis feltteleknek.
Legyen K inv
S
(

QINIT
h
Q). Ha vlasztunk egy olyan t varins fggvnyt,
amelyre Kf ixpont
S
t >0, akkor INV
S
(

QINIT
h
Q) K miatt: INV
S
(

QINIT
h
Q)
f ixpont
S
t > 0. Ha minden t

N -re (INV
S
(

QINIT
h
Q) f ixpont
S
t =
t

)
S
(INV
S
(

QINIT
h
Q) t < t

) f ixpont
S
, akkor S megfelel a tetsz oleges Q
logikai fggvny esetn a Q TERM
h
specikcis felttelnek a ttel szerint.
A 3.15. ttel szerint INV
S
(

QINIT
h
Q) ppen a program ltal elrhet o llapotok
halmaza. Ezrt megfogalmazhatjuk az albbi ttelt:
74 5. FEJEZET. LEVEZETSI SZABLYOK
5.7. Ttel. (Biztosan xpontba jut) Legyen K inv
S
(

QINIT
h
Q). Vlasszunk egy
olyan t varins fggvnyt, amelyre Kf ixpont
S
t > 0.
Ha S megfelel a f ixpont
S
t =t

h
(t <t

) f ixpont
S
specikcis felttelnek
minden t

N -re, akkor S megfelel a Igaz TERM


h
specikcis felttelnek is,
azaz biztosan xpontba jut.
5.1. Megjegyzs. A 5.7. ttel nem hasznlhat feladatok nomtsra, mert csak
akkor alkalmazhat, ha a f ixpont
S
llts ismert, azaz a program adott. A 5.7.
ttel helyessgbizonytsi eszkz.
5.8. Ttel. (A xpontfelttel nomtsa) Ha S megfelel a inv
h
P, FP
h
R spe-
cikcis feltteleknek s PR Q, akkor megfelel a FP
h
Q specikcis
felttelnek is.
Biz.: A 3.32. s a 4.10. lemma alapjn elegend o megmutatni, hogy S megfe-
lel a FP
h
PR felttelnek. A felttel s a 4.10. lemma szerint van olyan I
invarins, hogy I inv
S
(

QINIT
h
Q) s f ixpont
S
I R. 3.11. lemma szerint
ekkor I P inv
S
(

QINIT
h
Q). gy tallhat olyan I

::=I P invarins, hogy


I

inv
S
(

QINIT
h
Q) s f ixpont
S
I

P R. A 4.10. lemma alapjn ezzel


belttuk, hogy S megfelel a FP
h
PR felttelnek.
5.3. FELADATOK 75
5.3. Feladatok
5.1. Feladat. Legyen N egy termszetes szm!
V = vector([1..N] : Z)
H = set([1..N])
A =V
a

H
h

Z
m
B =V
a

a = a

INIT
a
(1)
Igaz TERM
a
(2)
R FP
a
(3)
R =j [1..N] : ((a[ j] m) (a[ j] = m j h))
j [1..N] : (a[ j] = m) a = a

Vizsgljuk meg, hogy az albbi program megfelel-e a fenti specikcinak?


s
0
: m, h :=, / 0
{
S::=
N

i=1
h, m :=

hi, m , ha a[i] < m


hi, a[i] , ha a[i] m
}
5.2. Feladat. Legyen B =0, 1, s n 1 tetsz oleges termszetes szm.
Legyen f : B
n
B
n
monoton nveked o fggvny.
f = ( f
1
, .. f
n
), ahol f
i
: B
n
B.
A =B
n
a
B =B
n
a

Igaz TERM
( f (a) = a) FP
Vizsgljuk meg, hogy az albbi program megfelel-e a fenti specikcinak?
s
0
: a := 0
{
n

i=1
a
i
:= f
i
(a)
}
76 5. FEJEZET. LEVEZETSI SZABLYOK
5.3. Feladat. A =Z
n
a
1
, . . . , a
n
: Z,
B =Z
n
a

1
, . . . , a

n
: Z,
Q::=i [1..n] : (a
i
= a

i
a

i
> 0)
Spec. 1.
Q INIT
a

1
,...,a

n
(5.1)
Q FP
a

1
,...,a

n
(5.2)
FP
a

1
,...,a

n
a
1
= lnko(a

1
, . . . , a

n
) (5.3)
Spec. 2.
inv
a

1
,...,a

n
(lnko(a

1
, . . . , a

n
) = lnko(a
1
, . . . , a
n
)) (5.4)
FP
a

1
,...,a

n
a
1
= a
2
= . . . = a
n
(5.5)
v::=
n
i=1
a
i
Igaz-e, hogy a 5.4-5.5 specikci nomtsa a 5.2 felttelnek? Igaz-e, hogy az
albbi program megoldja a 5.4-5.5 felttelekkel s a v varinsfggvny bevezet-
svel nomtott feladatot?
s
0
: SKIP
S :

i, j [1..n]
a
i
:= a
i
a
j
, ha a
i
> a
j

5.4. Feladat. V = vektor([1..n], N)


A =V V x, y : V,
B =V x

: V,
Q::=(n > 1)
Spec. 1.
Q INIT
x

Q FP
x

FP
x
y perm(x

) r(y),
ahol perm(y) azon vektorok halmaza, amelyeket y-bl az y elemeinek permutl-
sval kapunk, r(y)::=i, j [1..n] : i < j y(i) y( j).
Spec. 2. B ovtjk az llapotteret k : N -nel.
inv
x
(y(1..k) perm(x

(1..k)) r(y(1..k))) (5.6)


FP
x
k = n (5.7)
5.3. FELADATOK 77
v::=nk
Igaz-e, hogy a 5.6-5.7 specikci nomtsa a 5.4 felttelnek? Igaz-e, hogy az
albbi program megoldja a 5.6-5.7 felttelekkel s a v varinsfggvny bevezet-
svel nomtott feladatot?
s
0
: k := 0
S : k := k +1[[y(1..k +1) := beszur(y(1..k), x(k +1)), ha k < n,
ahol beszur(y(1..k), x(k +1))::=
[[
i[1..n]
y(1..k +1)(i) := f (y, k, x(k +1), i) s
f (y, k, x(k +1), i)::=

y(i), ha x(k +1) > y(i) i [1..k]


y(i 1), ha x(k +1) y(i 1) i [2..k +1]
x(k +1), ha (i = 1x(k +1) > y(i 1))
(x(k +1) y(i)) i [2..k]
Igaz-e, hogy r(x) l f (y := beszur(x, a), y perm(x, a) r(y))?
5.5. Feladat. Adottak az f , g, h : N
0
N
0
fggvnyek, melyekre:
t : f ( f (t)) = f (t)
f (t) t f (t +1) f (t)
(Hasonlan g-re illetve h-ra is.)
Legyen tovbb com : N
0
L a kvetkez o:
com(t) t = f (t) = g(t) = h(t)
Tekintsk a kvetkez o specikcit:
inv : R 0i [0, R) : com(i)
FP com(R)
FPR = k R > k
Igaz-e hogy a kvetkez o program megfelel a fenti specikcinak:
INIT: R = 0
R := f (R) R := g(R) R := h(R)
78 5. FEJEZET. LEVEZETSI SZABLYOK
5.6. Feladat. Adott az A[0..N] vektor, amelynek elemei termszetes szmok. N
0. Rendezzk az A vektort nvekv oen!
a) rjuk fel a feladat specikcijt!
b) Bizonytsuk be, hogy a kvetkez o program megfelel a specikcinak:

0 i < N
A[i], A[i +1] := A[i +1], A[i], ha A[i] > A[i +1]
5.7. Feladat. Feladat: szmoljuk ki a Pascal hromszg els o N sort (a 0-tl az
N-ig)!
Specikci:
FP (n [0..N]; k [0..n] : c[n, k] =

n
k

)
Az invarins nomt shoz hasznljuk fel:

n
0

= 1;

n
n

= 1;

n
k

n1
k

n1
k 1

Fejezzk be a specikcit, majd lssuk be, hogy az albbi program megoldja a


feladatot, ill. megfelel a specikcinak! A fenti specikcihoz adott a program:
s
0
: (i [0..N]; j [0..i] : c[i, j :] = 0)
N
[
n=0
| 0 i n : c[n, 0], c[n, n] := 1, 1
[
[
N
[
n=2
| 1 k N 1 : c[n, k] := c[n1, k 1] +c[n1, k]
6. fejezet
Programkonstrukcik
Ebben a fejezetben programok s feladatok konstrukcis mdszereit is-
mertetjk, azaz megadjuk, hogy meglv o feladatokat hogyan bonthatunk rsz-
feladatokra, illetve programokbl milyen szablyok alapjn hozhatunk ltre
sszetett programot. Bevezetjk a kompozcionlis modell fogalmt, majd
megvizsgljuk, hogy a programkonstrukcis szablyokkal kiegsztett modell
mennyiben felel meg a kompozcionalits kvetelmnynek.
Feladatok s programok konstrukciit, mint egy vagy tbb relcihoz egy re-
lcit hozzrendel o lekpezseket deniljuk.
Megengedett konstrukcis m uveletnek neveznk a tovbbiakban minden olyan
relcis m uveletet, amely
- relcik unija, metszete, klnbsge,
- relcik adott pontban felvett rtknek unija, metszete, klnbsge,
- relcik vettse, kiterjesztsei, rendezett relci n-esek komponenseire bontsa
s komponensekb ol rendezett relci n-esek el olltsa,
- relcik direkt szorzata,
- relcik kompozcija, szigor kompozcija s lezrtjai (lezrt, korltos lezrt,
tranzitv, diszjunktv lezrt),
vges sokszori egyms utni alkalmazsaknt
1
megfogalmazhat.
A modellben feladatkonstrukcinak nevezzk azokat a megengedett konstruk-
cis m uveleteket, amelyek egy vagy tbb feladatbl egy feladatot lltanak el o.
Programkonstrukcinak nevezzk azokat a megengedett konstrukcis m uvelete-
ket, amelyek egy vagy tbb programbl egy j, sszetett programot lltanak el o.
1
A denci nem formlis. A modell keretein tlmutat annak vizsglata, hogy a fent felsorolt elemi m uveletek valami-
lyen rtelemben teljes rendszert alkotnak-e.
79
80 6. FEJEZET. PROGRAMKONSTRUKCIK
6.1. Denci. Kompozcionlisnak neveznk egy programozsi modellt, ha a mo-
dell minden F feladatkonstrukcijhoz ltezik olyan S programkonstrukci, hogy
S
1
megoldsa F
1
s S
2
megoldsa F
2
esetn S
1
SS
2
megoldja F
1
F F
2
-t.
6.2. Denci. Rszlegesen kompozcionlis egy programozsi modell, ha egyes
kivlasztott F feladatkonstrukcik esetn megadhat olyan S programkonstruk-
ci, amelyre S
1
megoldsa F
1
s S
2
megoldsa F
2
esetn S
1
SS
2
megoldja F
1
F F
2
-t.
A tovbbiakban megmutatjuk, hogy a bevezetett modell rszlegesen kompo-
zcionlis.
Jelljk az S
1
program viselkedsi relcijt
p(S
1
)::=(
S
1
,
S
1
,
S
1
, FP
S
1
, TERM
S
1
, inv
S
1
)-vel, az S
2
program viselkedsi re-
lcijt p(S
2
)::=(
S
2
,
S
2
,
S
2
, FP
S
2
, TERM
S
2
, inv
S
2
)-vel.
6.1. Uni
6.3. Denci (Uni). Legyen az A
1
, A
2
tr az A llapottr altere. Jellje B az
A
1
, A
2
terek legnagyobb kzs altert. Legyen S
1
az A
1
, S
2
az A
2
altr felett
denilt program kiterjesztse (3.22. def.) A-ra. S
1
= (s
1,0
, s
1,1
, . . . , s
1,k
),
S
2
= (s
2,0
, s
2,1
, . . . , s
2,m
).
Az S = (s
0
, s
1
, . . . , s
k
, s
k+1
, s
k+2
, . . . , s
k+m
) programot, amely az A llapottren
adott, az S
1
s S
2
program unijnak nevezzk s S
1
S
2
-vel jelljk, ha
minden B altrhez tartoz v
i
vltozra teljesl, hogy az s
1,0
s s
2,0
rtkadsok
azonos rtket rendelnek hozz, azaz: F
1,0
i
= F
2,0
i
s
s
0
= s
1,0
|s
2,0
,
i [1..k] : s
i
= s
1,i
,
i [k +1..k +m] : s
i
= s
2,ik
.
6.1. Ttel. (Uni viselkedsi relcija) Legyen S::=(S
1
S
2
). Ekkor
2
:
(1)
S
=
S
1

S
2
(2)
S
=
S
1

S
2
(
S
1

S
2
)
(3) (
S
1

S
2
(
S
1

S
2
))
tdl
=
S
2
A ttel (1)-es,(2)-es s (5)-s pontja a UNITY uni ttelnek relcis alakja [Cha Mis 89].
6.1. UNI 81
(4) Q-ra, amelyre sp(s
1,0
|s
2,0
, Q) sp(s
1,0
, Q) sp(s
2,0
, Q):
inv
S
1
(Q) inv
S
2
(Q) inv
S
(Q)
3
(5)
S
=
S
1

S
2
(6) FP
S
1
FP
S
2
FP
S
(7) ((
S
1

S
2
(
S
1

S
2
))
tdl
)
(1)
(
S
1

S
2
) = TERM
S
.
Biz.:
(1) A 3.26. s a 6.3. def. alapjn: l f (S
1
S
2
, PQ) =

sS
1
S
2
l f (s, PQ) =
=

sS
1
l f (s, PQ)

sS
2
l f (s, PQ) = l f (S
1
, PQ) l f (S
2
, PQ).
Tegyk fel, hogy P
S
Q. Ekkor a 3.30. def. s a l f (S
1
S
2
, P Q) =
l f (S
1
, PQ) l f (S
2
, PQ) egyenl osg felhasznlsval:
PQ l f (S
1
, PQ) l f (S
2
, PQ). A jobboldal gyengtsvel: PQ
l f (S
1
, PQ) ill. PQ l f (S
2
, PQ), azaz P
S
1
Q s P
S
2
Q.
Ha P
S
1
Q s P
S
2
Q, akkor PQl f (S
1
, PQ) s PQl f (S
2
, PQ),
gy PQ l f (S
1
, PQ) l f (S
2
, PQ). A bizonytott egyenl osg s a 3.30.
def. alapjn: P
S
Q.
(2) Tegyk fel, hogy P
S
Q.
A 3.31. def. szerint P
S
1
S
2
Qs S
1
S
2
: PQ l f (s, Q)
{ (1) s a 6.3. def. felhasznlsval }
P
S
1
Q , P
S
2
Q s
(s S
1
: PQ l f (s, Q) s S
2
: PQ l f (s, Q)), azaz
{ 3.31. def. }
P
S
1
Q s P
S
2
Q s (P
S
1
Q vagy P
S
2
Q).
(3) A 3.32. def. s (2) kvetkezmnye.
(4) Tegyk fel, hogy P inv
S
1
(Q) s P inv
S
2
(Q). A 3.27. def. szerint ekkor
sp(s
1,0
, Q) P s sp(s
2,0
, Q) P. Ekkor sp(s
1,0
, Q) sp(s
2,0
, Q) P is telje-
sl, gy a felttel miatt sp(s
1,0
|s
2,0
, Q) P.
A 3.27. def. alapjn P l f (S
1
, P) s P l f (S
2
, P). A 3.26. s 6.3. def. szerint
3
Az llts ltalnosthat:
Q, P : ha sp(s
1,0
|s
2,0
, Q) P and P (
(1)
S
1
(Hamis)
(1)
S
2
(Hamis)), akkor P inv
S
(Q).
82 6. FEJEZET. PROGRAMKONSTRUKCIK
P l f (S
1
S
2
, P).
(5) 3.34. def. s 6.3. def. kzvetlen kvetkezmnye.
(6) (5) kvetkezmnye. Ha
S
1
R s
S
2
R, akkor
S
1

S
2
R.
(7) A 3.36. def. s a (3),(5) lltsok kvetkezmnye.
6.1. Megjegyzs ( S
1
, S
2
, Q : inv
S
1
S
2
(Q) ,= inv
S
1
(Q) inv
S
2
(Q)). A 6.1. ttel (4)-
es pontjnak bizonytshoz felhasznltuk, hogy sp(s
1,0
, Q) P s sp(s
2,0
, Q)
P esetn sp(s
1,0
, Q) sp(s
2,0
, Q) P is teljesl. Ez a segdllts nem megfor-
dthat. A 6.1. plda segtsgvel megmutatjuk, hogy az sszetett program invari-
nsa nem invarinsa az sszetev oknek.
6.1. Plda. S
1
::=(x := 1, SKIP). S
2
::=(y := 1, SKIP). Q::=Igaz.
P::=(x =1y =1). Knnyen ellen orizhet o, hogy sp(s
1,0
, Q) = (x =1), sp(s
2,0
, Q) =
(y = 1). sp(s
1,0
, Q) sp(s
2,0
, Q) P, de sp(s
1,0
, Q) ,P ill. sp(s
2,0
, Q) ,P.
6.2. Megjegyzs ( S
1
, S
2
: FP
S
1
FP
S
2
,= FP
S
1
S
2
). Az el oz o megjegyzsben le-
rt gondolatmenethez hasonlan belthat, hogy
S
1

S
2
R ,=
S
1
R s

S
2
R.
6.3. Megjegyzs (
S
1
S
2
s TERM
S
1
S
2
). A
S
1
S
2
logikai fggvny, ill. a
S
1
S
2
relci meghatrozhat az sszetev o programok viselkedsi relcijbl, gy 3.32.
s a 3.36. def. alapjn a
S
1
S
2
ill. a TERM
S
1
S
2
relci is kifejezhet o kzvetett
mdon az sszetev o komponensek viselkedsi relcijbl a ttel (3) s (7) pontja
szerint. Az uni viselkedsi relcijnak egyes komponensei, pl.
S
1
S
2
, ill.
TERM
S
1
S
2
ltalban azonban nem hatrozhatak meg az sszetev o programok
viselkedsi relcijnak megfelel o komponenseib ol. Az albbi plda (6.2.) szerint
ltalban nem igaz, hogy P
S
1
Q s P
S
2
Q esetn P
S
1
S
2
Q is teljesl.
6.2. Plda (
S
1
S
2
). S
1
::=(SKIP, s
1
: x := x +1). S
2
::=(SKIP, s
2
: x := x
1).
P::=(0 < x < 5). Q::=(x 0 x 5). A 3.32. def. alapjn knnyen igazol-
hat, hogy P
S
1
Q s P
S
2
Q. A 3.31. ttel alapjn, ha van olyan felttlenl
prtatlan temezsnek megfelel o vgrehajtsi tja S
1
S
2
-nek, amely mentn P-
b ol elkerlhet o Q, akkor P
S
1
S
2
Q nem teljesl. Vlasszuk kezd ollapotnak az
x = 3 llapotot. Az s
1
, s
2
, s
1
, s
2
.... temezs felttlenl prtatlan s sohasem jut a
program Q-beli llapotba.
6.1. UNI 83
Jelljk (F)-fel az F feladatot megold programok halmazt.
6.4. Denci (Feladatok egyestse). Legyen F
1
s F
2
kzs llapot s param-
tertren
4
adott feladat.
b B : (F
1
F
2
)(b)::= { ( (
h
1

h
2
), (
h
1

h
2
(
h
1

h
2
)),
(
h
1

h
2
(
h
1

h
2
))
tdl
,
((
h
1

h
2
(
h
1

h
2
))
tdl
)
(1)
((

S(F
1
)(F
2
)

S
)),
(FP
h
1
FP
h
2
), (inv
h
1
inv
h
2
), (INIT
h
1
INITh
2
)) [h
1
F
1
(b), h
2
F
2
(b) }.
6.2. Ttel. (Uni levezetsi szablya) Legyen F
1
s F
2
az A llapottr s a B para-
mtertr felett megadott feladat. S
1
s S
2
az A llapottrre kiterjesztett programok,
amelyek unija rtelmezett (6.3. def.). Ha S
1
megoldja F
1
-et K mellett s S
2
meg-
oldja F
2
-t K mellett s b B: h
1
F
1
(b) : h
2
F
2
(b) : sp(s
1,0
|s
2,0
, (

QINIT
h
1
Q)
(

QINIT
h
2
Q)) sp(s
1,0
, (

QINIT
h
1
Q))sp(s
2,0
, (

QINIT
h
2
Q)), akkor S
1
S
2
meg-
oldja F
1
F
2
-t.
Biz.: 4.14., 6.4. def. s 6.1. ttel kvetkezmnye.
Az uni levezetsi szablya (6.2. ttel) azt mondja ki, ha a modell szemanti-
kja sszefslses s az sszetev ok rendelkeznek egy kzs globlis invarinssal
[And 91], akkor az ezen invarins tulajdonsg mellett megoldott feladatok megfe-
lel o kompozcijt az sszetett program is megoldja. A 7.1. pldn megmutatjuk,
hogy az sszefslses szemantika milyen lnyeges az uni viselkedsi relcij-
nak meghatrozhatsgban [Cha 90].
Bizonyos esetekben programok unijnak viselkedsi relcija knnyen ki-
fejezhet o az sszetev ok viselkedsi relcija alapjn. Ez akkor lehetsges, ha
az sszetev ok klcsnhatsa (interferencija) az uni levezetsi szablyban tett
megszortsokon tl tovbbi tulajdonsgokkal is jellemezhet o.
A klcsnhats jellemzsnek alkalmas mdja lehet a nyitott specikci,
amely az ered o program egyszer ubb (ltalban biztonsgossgi) tulajdonsga-
ira tett kiktsek segtsgvel tesz indirekt kiktseket az egyik vagy mindkt
sszetev o tulajdonsgaira. A nyitott specikci mdszert rszletesen bemutatja
Chandy s Misra [Cha Mis 89].
A szekvencia programkonstrukci esetben (6.7. def.) az uni olyan speci-
lis esett fogalmazzuk majd meg, ahol az unihoz tartoz rtkadsokat olyan
4
Ha az llapottr nem kzs, akkor vlasszunk egy olyan teret, amelynek mindkt llapottr altere. A feladatokat
terjesszk ki a kzs trre (2.3. def.).
84 6. FEJEZET. PROGRAMKONSTRUKCIK
diszjunkt csoportokba sorolhatjuk, hogy az llapottr egy alkalmasan megvlasz-
tott rszhalmaza felett legfeljebb egyetlen csoporthoz tartoz rtkadsok hats-
relcii klnbznek az identitstl. Az albbi kt ttel erre a specilis esetre
vonatkozik.
6.3. Ttel. (Uni s az llapottr rszhalmazai) Legyen S = S
1
S
2
, logikai
fggvny az A llapottren oly mdon, hogy s S
2
: p(s) ( A) = id
A

(A) s
S
1
Hamis.
Ekkor
(1) ha P
S
1
Q, akkor P
S
Q,
(2) ha P
S
1
Q, akkor P
S
Q,
(3) ha P
S
1
Q, akkor P
S
Q.
Biz.:
A felttel alapjn: s S
2
: Z : A L :: p(s)(Z ) =Z , gy: Z
l f (s, (Z )).
(1) A felttelek s 3.17. lemma szerint: s S
1
: (P(Q)) l f (s, (P
) (Q)) s s S
2
: P(Q) l f (s, P(Q)) l f (s, (P
) (Q)).
(2) Az el oz o llts szerint: P
S
Q. A felttel s 3.21. lemma szerint:
s S
1
: P(Q) l f (s, Q). Ha s S
1
, akkor s S, gy az lltst
igazoltuk.
(3) Strukturlis indukcival az induktv 3.32. def. alapjn.
Alapeset: P
S
1
Q-t 1 lpsben vezettk le P
S
1
Q-bl. Az el oz o llts szerint
ekkor P
S
Q, az 3.32. def. szerint: P
S
Q.
Indukcis lps: a) eset: az utols lpsben a 3.32. def. (2) pontjt, a tranzi-
tivitst alkalmaztuk, azaz: P
S
1
Q
1
s Q
1

S
1
Q . Az indukcis felttel sze-
rint: P
S
Q
1
s Q
1

S
Q. A 3.32. def. (tranzitivits) alapjn:
P
S
Q.
b) eset: az utols lpsben a 3.32. def. (3) pontjt, a diszjunktivitst alkalmaztuk,
azaz: P = m : m W :: P(m) s m : m W :: (P(m)
S
1
Q) . Az indukcis
felttel szerint: m : (m W :: (P(m)
S
Q)), amib ol a 3.32. def. (disz-
junktivits alapjn) P
S
Q.
A ttel egy kicsit mdostott felttelekkel is kimondhat. A (3)-as llts meg-
fogalmazsnl alkalmazzuk a nyitott specikci mdszert.
6.1. UNI 85
6.4. Ttel. (Uni s az llapottr rszhalmazai (2.)) Legyen S = S
1
S
2
, lo-
gikai fggvny az A llapottren oly mdon, hogy s S
2
: p(s) ( A) =
id
A
( A),
S
1
Q. Ekkor
(1) ha P
S
1
Q, akkor P
S
Q,
(2) ha P
S
1
Q, akkor P
S
Q,
(3) ha Q
S
1
Hamis s P
S
1
Q, akkor P
S
Q.
Biz.:
A felttel alapjn: s S
2
: Z : A L :: p(s)(Z ) =Z , gy: Z
l f (s, (Z )).
(1) A felttelek szerint: s S
1
: PQl f (s, PQ) s Ql f (s, Q).
A 3.6. lemma alapjn: PQl f (s, (PQ) (Q)) = l f (s, (P) Q)
s s S
2
: PQ l f (s, PQ) l f (s, (P) Q).
(2) Az el oz o llts szerint: P
S
Q. A felttel szerint: s S
1
: PQ
l f (s, Q). PQ PQ. Ha s S
1
, akkor s S, gy az lltst igazoltuk.
(3) Struktrlis indukcival az induktv 3.32. def. alapjn.
Alapeset: P
S
1
Q-t 1 lpsben vezettk le P
S
1
Q-bl. Az el oz o llts szerint
ekkor P
S
Q, a 3.32. def. szerint: P
S
Q.
Indukcis lps: a) eset: az utols lpsben a 3.32. def. (2) pontjt, a tranzi-
tivitst alkalmaztuk, azaz: P
S
1
Q
1
s Q
1

S
1
Q A PSP ttelt (6.8. lemma)
a Q
S
1
Hamis felttelre s a Q
1

S
1
Q indukcis felttelre alkalmazva:
Q
1
Q
S
1
Q Q. A jobboldal hamis, gy a 6.9. lemma alkal-
mazsval azt kapjuk, hogy a baloldal is hamis, azaz: Q
1
( Q). Az in-
dukcis felttel szerint: P
S
Q
1
. Belttuk, hogy Q
1
Q
1
(Q), gy a
3.24. lemma szerint Q
1

S
(Q
1
) (Q
1
Q), a 3.29. lemma felhasznlsval
Q
1

S
(Q
1
) Q. Az indukcis felttel szerint: Q
1

S
Q. 3.24. lemma
alapjn: Q
S
Q A 3.32. def. (diszjunktivits) alapjn: (Q
1
) Q
S
Q. A
3.32. def. (tranzitivits) ktszeri alkalmazsval: P
S
Q.
b) eset: az utols lpsben a 3.32. def. (3) pontjt, a diszjunktivitst alkalmaztuk,
azaz: P=m: mW :: P(m) s m: mW :: (P(m)
S
1
Q) . Az indukcis felt-
tel szerint: m : (mW :: (P(m)
S
Q)), amib ol a 3.32. def. (diszjunktivits
alapjn) P
S
Q.
Az sszetett programolyan programtulajdonsgait is megfogalmazhatjuk, ame-
lyek rvnyessge csak olyan vltozktl fgg, amelyek csak az egyik ssze-
tev oben llnak a baloldalon. Az ilyen tulajdonsgokat loklisaknak nevezzk
[Cha Mis 89].
86 6. FEJEZET. PROGRAMKONSTRUKCIK
Kimondjuk az ltalnos lokalits ttelt ([UN 88-93]/17-90), a bizonyts Singh,
Misra s Knapp bizonytsai alapjn a relcis modell eszkzeivel is megkonstru-
lhat. A ttel 4. lltsa a nyitott specikci technikjt alkalmazza.
6.5. Ttel. (Lokalits ttel - ltalnos alak) Legyen S
1
s S
2
kzs llapottren
rtelmezett program. X::=V(S
1
) V(S
2
). Ha VR(P) V(S
1
)
5
, akkor
(1) P
S
1
Q =P(X = M)
S
1
S
2
Q(X ,= M)
(2) P
S
1
Q =P(X = M)
S
1
S
2
Q(X ,= M)
(3) P
S
1
Q =P(X = M)
S
1
S
2
Q(X ,= M)
(4) Adjunk meg egy egszrtk u t varins fggvnyt az X vltozhalmaz rtk-
n-esei felett. P t(X) > 0 s P
S
1
Q s P (t(X) = m)
S
1
S
2
(P
(t(X) < m)) Q =P
S
1
S
2
Q.
Biz.: Ha VR(P) V(S
1
), akkor VR(P) V(S
2
) X.
Lemma:
6
P(X = M)
S
2
(X ,= M).
Lemma bizonytsa
7
: Legyen s S
2
. Ha p(s)(PX = M) X = M, akkor
a PX = M : v VR(P) : v p(s)(a) = v(a), gy:
p(s)(P(VR(P)) X = M) P(VR(P)).
Ha p(s)(PX = M) ,X = M, akkor
p(s)(P(VR(P)) X = M) X = M P(VR(P)) s
p(s)(P(VR(P)) X = M) X ,= M X ,= M, azaz
p(s)(P(VR(P)) X = M) X ,= MP. A 3.10. lemma szerint PX =M
l f (S
2
, PX ,= M), amelyb ol ekvivalens talaktssal: PX = MX = M
l f (S
2
, (PX = M) X ,= M), azaz a 3.30. def. szerint: PX = M
S
2
X ,= M.
(1), (2), (3), (4) biz. megtallhat [UN 88-93]-ban. A bizonyts a most bizony-
tott lemmra s a
S
,
S
,
S
relcik korbban bizonytott tulajdonsgaira pl.

5
VR(P) V(S
2
) X
6
Misra lokalitsi aximja
7
P(VR(P))-vel azt a fggvnykompozcit jelljk, amely a VR(P) halmazhoz tartoz vltozkbl, mint az llapottr
projekcis fggvnyeib ol, a VR(P)-ben nem szerepl o vltozk helyett az identitsfggvnyb ol, ill. a P logikai fggvnyb ol
llthat el o. Ha a VR(P)-hez tartoz fggvnyek rtke vltozatlan, akkor P(VR(P)) fggvnykompozci rtke sem
vltozik meg.
6.2. SZUPERPOZCI 87
6.2. Szuperpozci
6.5. Denci (Szuperpozci). Legyen az S = (s
0
, s
1
, . . . , s
m
) programaz A l-
lapottr A
1
altere s az s feltteles rtkads az A llapottr felett denilva oly
mdon, hogy VL(s) az A
1
altr egyetlen vltozjt sem tartalmazza. Jellje s
j
|s
az s
j
s az s utasts szuperpozcijt (3.21. def.). Legyen az S

= (s

0
, s

1
, . . . , s

m
)
az S kiterjesztse A-ra (3.22. def.). Az
a) (s

0
, s

1
, . . . , s

m
, s) ill. az
b) S = (s

0
, s

1
, . . . (s

j
|s), . . . s

m
), ahol j [1, m]
alak programokat az S program s az s utasts szuperpozcijnak nevezzk.
6.6. Ttel. (Szuperpozci viselkedsi relcija) Legyen az A llapottren adott
S

programaz A
1
altern adott S programs az s ::=
|
i[1,n]
(v
i
:F
i
(v
1
, . . . , v
n
), ha
i
)
utasts egy szuperpozcija. Jelljk az A
1
altren adott P, Q logikai fggvnyek
A-ra val kiterjesztst P

, Q

-vel. Ekkor
8
:
(1) P
S
Q =P

S
Q

,
(2) P
S
Q =P

S
Q

,
(3) P
S
Q =P

S
Q

,
(4) Q : P inv
S
(Q) =P

inv
S
(Q

),
(5)
S
=

s
,
(6) R FP
S
=R

FP
S
,
ahol

S
a
S
logikai fggvny kiterjesztse s

s
::=(

i[1..n]
((
id
v
i
= F
i
(v
1
, . . . , v
n
)))).
Biz.:
(1), (2), (4) a 3.1. kvetkezmny s 3.9. lemma kvetkezmnye.
(3) a (2)-es pontbl 3.32. def. alapjn (P
S
Q el olltsa szerinti strukturlis
indukcival).
(5) 2.2. s 3.34. dencikbl kzvetlenl addik.
(6) az (5) llts s 3.35. def. kvetkezmnye.
8
A ttel (1)-es, (2)-es, (3)-as, (4)-es pontja a UNITY szuperpozci ttelnek relcis alakja [Cha Mis 89].
88 6. FEJEZET. PROGRAMKONSTRUKCIK
6.4. Megjegyzs. Ha a szuperpozci a) tpus, akkor a ttel (1),(2),(3) lltsa a
lokalits ttel kvetkezmnye.
6.6. Denci (Feladat gyenge kiterjesztse). F

az F feladat kiterjesztsnek
gyengtse, ha az F kiterjesztsb ol, F

-b ol, a Q TERM
h
tpus specikcis
felttelek elhagysval kapjuk.
6.7. Ttel. (Szuperpozci levezetsi szablya) Legyen F az A llapottr A
1
altere
s a B paramtertr felett megadott feladat. Ha az S program megoldja az F
feladatot, akkor az S program s az s utasts brmely szuperpozcija megoldja
az F feladat gyenge kiterjesztst.
Biz.: A 4.1. dencibl s a 6.6. ttelb ol kvetkezik.
6.3. Szekvencia
6.7. Denci (Szekvencia). Legyen S
1
= (s
1,0
, s
1,1
, . . . , s
1,k
) az A llapottr
A
1
=

iI
1
A
1i
altere felett, S
2
= (s
2,0
, s
2,1
, . . . , s
2,m
) pedig az A
2
=

iI
2
A
2i
altr
felett denilt program. Legyen u egy logikai vltoz, amelyekhez tartoz llapot-
trkomponensek nem tartoznak sem az A
1
sem az A
2
altrhez.
Jelljk S
1
-gyel az

iI
1
A
1i
L altren denilt (s
0
, s
1
, . . . , s
k
) programot, ahol
s
0
= (s

1,0
|u := hamis) (3.21. def.),
i [1..k]s
i
= ((s

1,i
) ha u) (3.20. def.).
Jelljk S
2
-vel az L

iI
2
A
2i
llapottren denilt (s
0
, s
k+2
, . . . , s
k+m+1
) progra-
mot, ahol i [k +2..k +m+1] : s
i
= ((s

2,i(k+2)+1
) , ha u).
Legyen s
k+1
= ((s

2,0
|u := igaz), ha u
S
1
),
Az S = (S
1

S
2

(s
0
, s
k+1
)

) programot az S
1
, S
2
programok szekvencijnak
nevezzzk, s S
1
; S
2
-vel jelljk.
A szekvencit teht felttelekkel kiegsztett rtkadsok s uni segtsgvel
deniltuk.
Kimondunk nhny segdttelt:
6.8. Lemma (PSP).
9
Ha P
S
Q s R
S
B, akkor PR
S
(QR) B.
Biz.: strukturlis indukcival.
9
Chandy-Misra
6.3. SZEKVENCIA 89
6.9. Lemma (Csoda kizrsa s
S
).
10
Ha P
S
Hamis, akkor P Hamis.
Biz.: strukturlis indukcival.
6.10. Lemma.
11
Ha P Q, akkor inv
S
(Q) inv
S
(P). Hasonlan: true
S
(Q)
true
S
(P).
A felttelek gyengthet oek. Elegend o, ha sp(s
0
, P) sp(s
0
, Q), gy brmely I,
amelyet a Q kezdeti felttel kezdetben igazz tesz, P-b ol indulva is teljesl. Ha
I inv
S
, akkor I
S
Hamis. A msodik llts az els o lltsbl s INV
S
(R) =
T
I[I inv
S
(R)-bl kvetkezik.
6.11. Lemma.
12
Tetsz oleges S programra, ha (P
S
)
S
Q, akkor (P
S
)
Q.
Az el oz o lemma s a PSP ttel (6.8. lemma) felhasznlsval: (
S
Q), azaz
(P
S
Q)
S
Hamis, gy (P
S
Q) = Hamis a csoda kizrsnak elve
(6.9. lemma) miatt.
6.12. Ttel. (Szekvencia viselkedsi relcijrl) Legyen S = S
1
; S
2
. Ekkor
13
:
(1) ha P
S
1

S
1
, akkor P

u
S

S
1
u,
(2) ha P
S
1

S
1
, akkor P

u
S

S
1
u,
(3) ha P
S
1

S
1
, akkor P

u
S

S
1
u,
(4) ha P
S
2
Q, akkor P

u
S
Q

u,
(5) ha P
S
2
Q, akkor P

u
S
Q

u,
(6) ha P
S
2
Q, akkor P

u
S
Q

u,
(7) u

S
2
=
S
,
(8) Ha R FP
S
2
, akkor R

FP
S
.
(9) Ha P inv
S
1
(Q), akkor s csak akkor P

u inv
S
(Q

); valamint, ha P
inv
S
2
(Q), akkor s csak akkor P

u inv
S
(Q

).
10
Chandy-Misra
11
Kozsik T.
12
Kozsik T.
13
(9)-(12): Kozsik T.
90 6. FEJEZET. PROGRAMKONSTRUKCIK
(10) Ha P inv
S
1
(Q) s P inv
S
2
(P
S
1
), akkor s csak akkor P

inv
S
(Q

).
(11) Ha P
S
1
Q, akkor (P

u)
S
(Q

u).
(12) Ha P
S
1
Q s P
S
2
Q, akkor P

S
Q

.
Biz.:
(1), (2), (3): A 2.2., 3.19., 3.30., 3.31. def. alapjn knnyen belthat, hogy
P
S
1
Q =P

u
S
1 Q

u s P
S
1
Q =P

u
S
1 Q

u. Az utb-
bibl
S
1
el olltsa szerinti strukturlis indukcival: P
S
1
Q =P

u
S
1
Q

u. A szekvencia dencija (6.7. def.) s 3.30. def. alapjn ellen-


orizhet o, hogy: (u

S
1
) (

S
1
u)
S
1 Hamis, u

S
1

S
1

S
1
u s
p(s
1,i
, ha u)=p(s
1,i
, ha u
S
1
), gy alkalmazhat a 6.4. ttel a ::=u

S
1
, Q::=

S
1
u megfeleltetssel.
(4),(5),(6): A szekvencia (6.7. def.) s 3.30. def. alapjn: u
S
2 Hamis. Alkal-
mazhat a 6.3. ttel a ::=u megfeleltetssel.
(7) Ha u
S
1
, akkor s
k+1
miatt nem lehet xpont. Ha u
S
1
, akkor S
1
, ha
u
S
2
, akkor S
2
vltoztat llapotot. Ezrt
S
u
S
2
. A msik irny a 3.34.
denci kvetkezmnye.
(8) A (7)-es llts kvetkezmnye.
(9),(10) A szekvencia programjra vonatkoz leggyengbb el ofelttelek kiszm-
tsval bizonythat.
(11)
P
S
1
Q struktrja szerinti indukcival. Alapesetben a 6.11. lemmt alkal-
mazzuk.
(12) Az els o felttelb ol s (11)-b ol: (P

u)
S
(Q

u), gy (P

u)
S
Q

.
Hasonlan (6) felhasznlsval: (P

u)
S
Q

, gy P

S
Q

.
6.13. Ttel. (Szekvencia levezetsi szablya) Legyen F
1
s F
2
az A llapottr A
1
ill. A
2
altere s a B paramtertr felett rtelmezett determinisztikus feladat, S1; S2
az A
1
altren denilt S
1
s az A
2
altren adott S
2
szekvencija. Tetsz oleges b B-
re jelljk F
1
(b) komponenseit
F
1
, h F
2
(b) komponenseit
F
2
indexszel.
Ha S
1
megfelel a P TERM
F
1
b
s a R FP
F
1
b
felttelnek a P INIT
F
1
b
kezdeti felt-
tel mellett, S
2
megfelel QTERM
F
2
b
s Z FP
F
2
b
feltteleknek a QINIT
F
2
b
felttel
mellett, s R

, akkor S
1
; S
2
megfelel P

TERM
b
s Z

FP
b
feltteleknek a
P

INIT
b
kezdeti felttel mellett
14
.
14
A ttel lltsa Misra programszekvencira vonatkoz - nem bizonytott - lltsval rokon. Misra eredeti lltsa a
kvetkez okppen fogalmazhat meg a relcis modellben:
6.3. SZEKVENCIA 91
Biz.: Afelttelekb ol a 4.9. ttel szerint sp(s
1,0
, P)INV
S
1
(P)
S
1

S
1
. sp(s
1,0
, P)
INV
S
1
(P) (3.27. def.). a 6.12. ttel (3)-as pontja s a 3.27. ttel felhasznls-
val: sp(s
1,0
, P)

S
1

S

S
1
u. INV
S
1
(P)

inv
S
1(P

), gy: sp(s
1,0
, P)

S
1

S

S
1
INV
S
1
(P)

u.
sp(s
1
, P

) =sp(s
1,0
, P)

u felhasznlsval sp(s
1
, P

S
1

S

S
1
INV
S
1
(P)

u.
4.11. lemma s 2.2. def. szerint

S
1
INV
S
1
(P)

, azaz sp(s
1
, P

S
1

S

S
1
uR

(3.29. lemma).
Mivel sp(s
1
, P

S
1
INV
S
1
(P)

S
1
R

S
1
, ezrt a (3.24.
lemma) s a 3.32. def. (diszjunktivits) alkalmazsval: sp(s
1
, P

)
S

S
1
u
R

.
u

S
1
R

S
sp(s
k+1
, R

) u.
3.32. def. (tranzitivits) alkalmazsval: sp(s
1
, P

)
S
sp(s
k+1
, R

) u.
A fentihez hasonl gondolatmenet alapjn sp(s
2,0
, Q)
S
2

S
2
INV
S
2
(Q),
amelyb ol a 6.12. ttel (6)-os pontja felhasznlsval: sp(s
2,0
, Q)

u
S

S
2

INV
S
2
(Q)

u. sp(s
k+1
, R

) sp(s
2,0
, Q)

u, gy sp(s
k+1
, R

)u
S

S
2
INV
S
2
(Q)
u. A 3.32. def. (tranzitivits) alkalmazsval: sp(s
1
, P

)
S

S
2
u. 6.12. ttel
(7)-es s (8)-as lltsaival a ttel lltst kapjuk.
ha s
2,0
= SKIP, P
S
1
QR, R
S
1
s S

2
megfelel a P

h
Q

specikcis felttelnek a

S
1
INIT
h
kezdeti fel-
ttel mellett, akkor S
1
; S
2
megfelel a P

h
Q

specikcis felttelnek ([UN 88-93]/16-90). Misra a szekvencia fogalmt


nem denilja formlisan, gy a ttelt sem bizonytja. M uveleti szemantikai megfontolsokra s a helyettestsi aximra
hivatkozva indokolja az llts helyessgt s pldkon keresztl mutatja meg, hogy hasznlata helyes kvetkeztetsek
levonshoz vezet.
92 6. FEJEZET. PROGRAMKONSTRUKCIK
6.4. Feladatok
A kvetkez o feladatok mindegyikben jellje S ::= S
1
S
2
-t.
6.1. Feladat. Igaz-e?
A
S1
B, B
S1
C, (AB)
S2
C
(AB)
S
C
6.2. Feladat. Igaz-e?
A
S1
C, B
S1
A, B
S2
C, A
S2
B
(AB)
S
C
6.3. Feladat. Igaz-e?
P
S1
P
P
S
P
6.4. Feladat. Igaz-e?
P
S1
Q, P
S2
Q
P
S
Q
6.5. Feladat. Igaz-e?
P
S1
Q, P
S2
Q , Pstabil
S1
P
S
Q
6.6. Feladat. Igaz-e?
P
S1
Q, Q R, P
S2
Q
(PQ)
S
R
6.7. Feladat. Igaz-e?
P
S1
Q, Q
S1
R, R inv
S2
P
S
R
6.8. Feladat. Igaz-e?
C::=(
W
iN
A
i
)
Cstabil
S1
, i N : (A
i

S2
B
C
S
B
6.4. FELADATOK 93
6.9. Feladat. Igaz-e?
C::=(
W
iN
A
i
)
C
S1
B , i N : (A
i

S2
B
C
S
B
6.10. Feladat. Igaz-e?
(PB)
S1
Q, (PB)
S2
R,
(PB) Q, Qstabil
S1
, Q
S2
R
P
S
R
6.11. Feladat. Igaz-e?
P
S1
QR, Pstabil
S2
, Q
S
R
(PQ)
S
R
6.12. Feladat. Igaz-e?
P
S1
Q, P
S2
R, Pstabil
S
, Q
S1
R
P
S
R
6.13. Feladat. Igaz-e?
(PB)
S1
Q, (PB)
S2
R, Q
S1
R,
Q
S2
R, (PB)
S
(PB)
P
S
R
6.14. Feladat. Igaz-e?
(PR)
S2
B, P
S1
Q
(PR)
S
(QRB)
6.15. Feladat. Igaz-e?
P
S1
Q, (PQR) f ixpont
S2
P
S
(QR)
6.16. Feladat. Igaz-e?
P
S1
(QR), (PR)
S2
Q, R P
P
S
Q
94 6. FEJEZET. PROGRAMKONSTRUKCIK
6.17. Feladat. Igaz-e?
C :=
W
nN
A
n
C stabil
S2
, n N : (A
n

S1
B)
C
S
B
6.18. Feladat. Igaz-e?
P :=
W
nN
Q
n
n N : (Q
n

S2
R), P
S1
R
P
S
R
6.19. Feladat. Igaz-e?
P stabil
S
, P
S2
Q
P
S1
(PQ)
7. fejezet
A modell tulajdonsgai
7.1. Szemantika
A 3.15. def. kvetkezmnyeknt az absztrakt program m uveleti jelleg u szemanti-
kja elgaz idej u, sszefslses s statikus. Az absztrakt program viselkedsi
relcival megfogalmazott ler jelleg u szemantikja absztraktabb [Hen 88] a m u-
veletinl.
Vals prhuzamossg esetn a komponensekre rvnyes biztonsgossgi tu-
lajdonsgok srlnek a programkompozci (6. fejezet) sorn. Ennek az az oka,
hogy az llapottr felett az sszetett program olyan j irnyokban is elmozdulhat,
amelyek a komponensek egyidej u mozgsainak ered oi [Cha 90].
7.1. Plda (Vals prhuzamossg s uni). S
1
::=(SKIP, x :=x+1). S
2
::=(SKIP, y :=
y +1).
P::=(0 < x < 50 < y < 5). Q::=((x 5y < 5) (y 5x < 5)).
P
S
1
Q s P
S
2
Q, gy a 6.1. ttel szerint P
S
1
S
2
Q.
x = 4 y = 4-b ol (PQ), vals prhuzamossg esetn az S
1
S
2
programmal
kzvetlenl el lehet jutni az (x = 5y = 5) (PQ) llapotba.
7.2. Kifejez oer o
7.2. Plda.
A =Z x :: Z B =b. F(b) =h
1
, h
2
.
P (x > 5), Q(x < 5), R (x = 5).
R INIT
h
1
, R INIT
h
2
, R
h
1
(x ,= 5), R
h
2
(x ,= 5), Q
h
1
Q, P inv
h
2
.

95
96 7. FEJEZET. A MODELL TULAJDONSGAI
A 7.2. pldban megadott feladat specikcis felttelnek elgaz idej u tem-
porlis logikai megfelel oje: A

GPA

FQ, ami nem azonos a lineris logikban


is megfogalmazhat A

(GPFQ)-val (11. fejezet). A specikcis eszkzk


kifejez oereje teht meghaladja a UNITY kifejez oerejt.
7.2.1. Programhelyessg
A szekvencilis programoktl eltr oen a most denilt absztrakt program helyes-
sgnek igazolshoz megfogalmazott programtulajdonsgok nemkln-kln az
egyes utastsokra, hanem a teljes utastshalmazra vonatkoznak. Ez gy is meg-
fogalmazhat, hogy a bizonyts s a programszveg sztvlik. Azt is mondhat-
juk, hogy a mdszer a globlis invarinsok mdszernek ltalnostsa [And 91].
(Megj.: A bizonyts s a programszveg sztvlasztsa lehetsges szekvencilis
programok esetn is, lsd: [Lam 90]).
8. fejezet
Programozsi ttelek
Ebben a fejezetben ltalnosan megfogalmazott programozsi feladatokat oldunk
meg. A kapott megoldsokat programozsi tteleknek nevezzk, mert szles kr-
ben alkalmazhatak konkrt feladatok megoldsa sorn. Ilyen alapfeladat pldul:
asszociatv m uvelet eredmnynek prhuzamos kiszmtsa (8.1 pont),
elemenknt feldolgozhat (8.6 pont), ill.
sorozatokon tbbszrs fggvnykompozcival denilt fggvny rtk-
nek kiszmtsa (8.4 pont).
Pldt mutatunk csatornavltozk hasznlatra s adatcsatorns megoldsi md-
szerekre is. Megvizsgljuk, hogy a kapott megoldsok milyen architektrkon
implementlhatk hatkonyan. Olyan megoldsokat dolgozunk ki, amelyek osz-
tott s aszinkron osztott memris rendszerekre is knnyen lekpezhet oek.
8.1. Asszociatv m uvelet eredmnynek
kiszmtsa
Legyen H tetsz oleges halmaz. : HH H tetsz oleges ktoperandus asszo-
ciatv alapm uvelet H-n.
f : H

H fggvny. f a m uvelet egyszeri vagy ismtelt alkalmazsnak


felel meg. asszociativitsa miatt tetsz oleges legalbb 3 hossz x H

sorozatra:
f (x
1
, . . . , x
[x[
) = f ( f (x
1
, . . . , x
[x[1
), x
[x[
) = f (x
1
, f (x
2
, . . . , x
[x[

) ). A tovbbiakban a (h
1
h
2
) helyett mindig f (h
1
, h
2
) t runk. f -et
kiterjeszthetjk az egyetlen elemb ol ll sorozatokra is, legyen f (h ) = h.
97
98 8. FEJEZET. PROGRAMOZSI TTELEK
Adott a H

, H-beli elemek vges, nem res sorozata. Tegyk fel, hogy a


sorozat egyes elemei kzvetlenl elrhet oek: a = a
1
, ..., a
n
, (n 1). Sz-
mtsuk ki a G
a
: [1..n] H fggvny rtkt minden i [1..n]-re, ahol n 1 s
G
a
(i) = f (a
1
, ...., a
i
).
8.1.1. A feladat specikcija
Reprezentljuk az a sorozatot s a G
a
fggvnyt egy-egy vektorral, amelyeket
a-val, illetve g-vel jellnk. A vektorok elemei H-beli rtkek. Kiktjk, hogy
xpontban a g vektor i. eleme ppen G
a
(i) legyen (8.3.), illetve a program bizto-
san elrje egy xpontjt (8.2.).
A = G G, ahol G = vektor([1..n], H), n 1
g a
B = G
a

(a = a

) INIT
a
(8.1)
Igaz FP
a
(8.2)
FP
a
(a = a

i [1..n] : g(i) = f (a
1
, ..., a
i
)) (8.3)
Megllapthatjuk, hogy a G
a
fggvny i helyen felvett rtknek meghatroz-
st megknnyti, ha ismerjk f rtkt brmely [u..v] [1..i] intervallum eleme-
ivel indexelt f (a
u
, ..., a
v
) rszsorozatra.
1
Meggyelhetjk azt is, hogy egy
rszsorozatra kapott eredmnyt brmely, a rszsorozatot tartalmaz rszsorozatra
vonatkoz eredmny meghatrozsnl hasznosthatjuk.
Ezen gondolatmenet alapjn b ovtsk a feladat llapottert s nomtsuk a
specikcit. Vezessk be a h fggvnyt oly mdon, hogy h(a, i, k) jelentse f
rtkt a azon rszsorozatra, amelynek utols eleme a
i
s hossza vagy ppen 2
k
vagy a
1
az els o eleme, ha i <2
k
. Ags ktdimenzis vektort azrt vezetjk be, hogy
segtsgvel a h fggvnyt vltozval helyettestsk [Ft 83]. A gs, k, t vltozk
s h kapcsolatt invarins lltssal rjuk le (8.6.)-(8.8.). Ugyanezt jelentjk meg
szemlletes alakban a 8.1. brn. Az brn szerepl o vonalak a gs mtrix elemei
kztt fennll kapcsolatot rjk le a 8.2. lemma alapjn, azaz gs(i, k) = h(a, i, k),
ha k k(i). egy gs(i, k) f rtke legfeljebb 2
k
hossz kezd osorozatra.
1
A lpsenknti nomts sorn alkalmazzuk a [Qui 87] 3-2. pontjban s [Cha Mis 89] 5. fejezetben ill. 6.9. pontj-
ban bemutatott megoldsi mdszerek egyes elemeit.
8.1. ASSZOCIATV M

UVELET EREDMNYE 99
1 2 3
4 5 6
i3 i2 i1 i
.......
2
1
0
...
k
3
8.1. bra. : k =log(i), asszociatv m uvelet kiszmtsnak rszeredmnyei, a
gs mtrix elemei kztt fennll kapcsolatok
A

= G G GS K T
g a gs k t
G = vektor([1..n], H),
GS = vektor([1..n, 0..(log(n))], H)
K = vektor([1..n], N
0
),
T = vektor([1..n], N
0
), n 1
Megadjuk a h : G[1..n] N
0
H parcilis fggvny pontos dencijt:
h(a, i, k) =

f (a
1
, . . . , a
i
), ha i 2
k
+1 1
f (a
(i2
k
+1),...,a
i
), ha i 2
k
+1 1.
Vlasszuk a v : A N
0
varinsfggvnyt a kvetkez okppen:
v = 4nn
n

i=1
(k(i) +(k(i) =log(i) g(i) = gs(i, k(i)))),
ahol : L 0, 1. (igaz) = 1, (hamis) = 0. A varinsfggvny lnyegben
azt adja meg, hogy a gs mtrix egyes oszlopaiban sszesen hny olyan elem van,
amely nem azonos a h fggvny megfelel o helyen felvett rtkvel, illetve a g
vektor rtke hny helyen klnbzik a G
a
fggvny rtkt ol.
100 8. FEJEZET. PROGRAMOZSI TTELEK
8.1. Lemma. (Asszociatv m uvelet - a feladat nomtsa) Az albbi specikci
nomtsa az eredetinek:
(a = a

) INIT
a
(8.4)
Igaz FP
a
(8.5)
FP
a
i [1..n] : (k(i) =log(i)) (g(i) = gs(i, log(i))) (8.6)
inv
a
(i [1..n] : k(i) log(i)
k : k k(i) : gs(i, k) = h(a, i, k)) (8.7)
inv
a
(i [1..n] : t(i) = 2
k(i)
) (8.8)
inv
a
(a = a

) (8.9)
Bizonyts:
Fixpontban (8.6.) szerint k(i) = log(i) s g(i) = gs(i, log(i)), teht a 5.8.
lemma s (8.7.) alapjn g(i) = gs(i, log(i)) = h(a, i, log(i)). 2
log(i)
i, gy
h dencijt felhasznlva h(a, i, log(i)) = f (a
1
, ..., a
i
), gy a (8.9.) invari-
ns tulajdonsg s 5.8. lemma alkalmazsval igazoltuk, hogy a (8.6.),(8.7.),(8.9.)
felttelek egyttesen nomtjk a (8.3.) felttelt.
8.1. Megjegyzs. A varins fggvnyre vonatkoz 5.7. ttel segtsgvel bizo-
nythatjuk majd azt, hogy a program megfelel a (8.2.)=(8.5.) felttelnek. Ebben
az rtelemben a varins fggvny megvlasztsa is egy nomtsi lpsknt fog-
hat fel.
8.2. Megjegyzs. A (8.8.) felttel csak az j llapottrkomponensekre tesz kik-
tst, gy ezt a felttelt nem kellett felhasznlnunk a bizonyts sorn.
8.2. Lemma.
Ha (i 2
k
1), akkor f (h(a, i 2
k
, k), h(a, i, k) ) = h(a, i, k +1).
Bizonyts:
Tudjuk, hogy i 2
k
1, teht h(a, i, k) = f (a
(i2
k
+1)
, . . . , a
i
). Ha (i 2
k
)
2
k
+1 , akkor h(a, i 2
k
, k) = f (a
(i2
k
2
k
+1)
, . . . , a
(i2
k
)
). Ekkor f asszo-
ciativitsa miatt f (h(a, i 2
k
, k), h(a, i, k) ) =
f (a
(i2
k
2
k
+1)
, . . . , a
(i2
k
)
, a
(i2
k
+1)
, . . . , a
i
) = h(a, i, k +1). Ha (i 2
k
)
2
k
+1 < 1, akkor h(a, i 2
k
, k) = f (a
1
, . . . , a
(i2
k
)
). f asszociativitsa mi-
att f ( h(a, i 2
k
, k), h(a, i, k) ) = f ( a
1
, ...a
(i2
k
)
, a
(i2
k
+1)
, , ..., a
i
) =
h(a, i, k +1).
8.1. ASSZOCIATV M

UVELET EREDMNYE 101
8.1.2. A megolds
8.3. Ttel. (Asszociatv m uvelet kiszmtsnak ttele I.) A 8.1. program megfe-
lel a (8.4.)-(8.9.) specikcinak, azaz megoldja az asszociatv m uvelet eredm-
nye kiszmtsnak feladatt.
s
0
:

i=[1..n]
gs(i, 0), t(i), k(i) := f (a
i
), 1, 0
S : {

i=[1..n]
gs(i, k(i) +1), t(i), k(i) :=

f ( gs(i, k(i)), gs(i t(i), k(i)) ), 2t(i), k(i) +1,


ha (i 2t(i) +1 1)
(k(i t(i)) k(i))
f ( gs(i, k(i)), gs(i t(i), k(i t(i))) ),
2t(i), k(i) +1,
ha (i t(i) 1) (i 2t(i) +1 < 1)
k(i t(i)) =log(i t(i))

i=[1..n]
g(i) := gs(i, k(i)), ha(k(i) =log(i))
}
8.1. absztrakt program. Asszociatv m uvelet I. vltozat
8.3. Megjegyzs.

i=[1..n]
n utasts rvidtse. Az egyes rtkadsokat pldnyo-
stssal kapjuk oly mdon, hogy az ltalnos alakban az i vltozt konkrt rtkkel
helyettestjk.
Bizonyts:
(8.9.): A programban a elemeire vonatkoz rtkads nincs. gy a (8.4.) kez-
deti felttel egyben invarins tulajdonsg is.
(8.8.): sp(s
0
, Igaz)-ben: t(i) =1 s k(i) = 0, teht a felttel kezdetben teljesl.
Az rtkadsok mindegyike egytt vltoztatja k(i) s t(i) rtkt, ezrt a (8.8.)
felttel invarins tulajdonsg.
(8.7.): sp(s
0
, Igaz) gs(i, k(i)) = h(a, i, k(i)), mert h(a, i, 0) = f (a(i) ).
sp(s
0
, Igaz) (k(i) log(i)), mert k(i) kezdetben 0.
rtkads leggyengbb el ofelttelnek meghatrozsa utn elg azt megmu-
tatni, hogy
102 8. FEJEZET. PROGRAMOZSI TTELEK
(i 2 t(i) +1 1) (k(i t(i)) k(i))-b ol s k : k k(i) : gs(i, k) =
h(a, i, k)-bl kvetkezik az egyenl osg k(i)+1-re is, azaz: f (gs(i, k(i)), gs(i
t(i), k(i)) ) = h(a, i, k(i) +1) s k(i) +1 log(i)
(i t(i) 1) (i 2 t(i) +1 < 1) (k(i t(i)) = log(i))-b ol s k :
k k(i) : gs(i, k) = h(a, i, k)-bl kvetkezik az egyenl osg k(i) +1-re is,
azaz: f (gs(i, k(i)), gs(i t(i), (log(i t(i)))) ) = h(a, i, k(i) +1) s
k(i) +1 log(i).
(i 2t(i)+1 1)(t(i) 1) (i t(i) 1) k(i) log(i 1) <log(i)
log(i).
Az els o esetben: k(i) k(i) miatt gs(i, k(i)) = h(a, i, k(i)), (k(i t(i)) k(i))
miatt gs(i t(i), k(i)) = h(a, i t(i), k(i)). A msodik esetben: k(i) k(i) miatt
gs(i, k(i)) =h(a, i, k(i)), k(i t(i)) =log(i t(i)) miatt gs(i t(i), (log(i))) =
h(a, i t(i), (log(i))). Mindkt esetben a 8.2. lemma alkalmazsval kapjuk a
bizonytand lltst.
A 3.10. megj. szerint (8.7.),(8.8.) s (8.9.) feltteleinek konjunkcija invari-
ns tulajdonsg.
(8.5.): (8.7.),(8.8.),(8.9.) felttelek konjunkcijbl kvetkezik, hogy i
[1..n] : k(i) n, gy: v > 0. A 5.7. ttel szerint elegend o beltni, hogy a program
minden utastsra igaz, hogy vagy pontosan 1-gyel cskkenti a varins fgg-
vnyt, vagy nem okoz llapotvltozst. Ha a program nincs xpontban, akkor van
olyan i [1..n] s megfelel o rtkads, amely k(i) rtkt nveli, vagy van olyan
i, hogy k(i) =log(i) s g(i) mg nem vette fel a gs(i, (log(i))) rtket.
(8.6.): a xpont dencija (3.34.,4.12. def.) alapjn
i [1..n] :
(k(i) =log(i)) g(i) = gs(i, k(i)) (8.10)
((i 2t(i) +1 < 1) (k(i t(i)) < k(i)) (8.11)
(i t(i) < 1) (i 2t(i) +1 1)
(k(i t(i)) ,=log(i t(i)))) (8.12)
Ebb ol i szerinti indukcival i [1..n] : (k(i) = log(i)). i = 1-re: (8.7.)-b ol
kvetkezik (k(1) =log(1)). Tegyk fel, hogy j < i : (k( j) =log( j)). t(i)
1 ezrt (k(i t(i)) ,= log(i t(i))) ellentmond az indukcis felttelnek. gy
(8.12.) az (i t(i) < 1) (i 2t(i) +1 1) felttellel helyettesthet o.
Ha (i 2t(i)+1 1), akkor k(i t(i)) <k(i), klnben (8.11.) nem teljesl. Az
indukcis felttel szerint t(i) 1 miatt k(i t(i)) =log(i t(i)), teht: log(i
8.1. ASSZOCIATV M

UVELET EREDMNYE 103
t(i)) <k(i). Ez azonban ellentmond a (i 2t(i)+1 1) (i t(i)t(i)+1
1) log(i t(i)) k(i) kezdeti felttelnek. Teht: (i 2t(i) +1 < 1).
(i 2 t(i) +1 < 1) (i t(i) < 1), klnben (8.12.) nem teljesl. (i t(i) <
1) k(i) log(i). A (8.7.) felttel (invarinstulajdonsg rsze) miatt k(i) =
log(i). Ekkor (8.10.) alapjn: g(i) = gs(i, k(i)) = gs(i, log(i)) is.
8.1.3. Programtranszformci
Tegyk fel, hogy (n) processzor prhuzamosan hajtja vgre a kapott programot.
A vektorok i. komponenseire vonatkoz rtkadsokat az i. logikai processzorra
kpezhetjk le. A varins fggvny dencijbl s a fenti bizonytsbl kzvet-
lenl addik, hogy a program legks obb Olog(n) llapotvltozs utn xpontba
jut. Az egyes logikai processzorok egymshoz kpest aszinkron s szinkron m-
don is m ukdhetnek.
A program jelenlegi alakjban azonban mg nem felel meg sema nom atomi-
cits szablynak [And 91](2.4), sem az osztott vltozs smnak [Cha Mis 89],
ezrt tovbbi komponensekkel b ovtjk az llapotteret. Clszer u a logaritmus
fggvnyt is kitranszformlni.
Jelljk gst(i)-vel gs(i t(i), k(i)), kt(i)-vel k(i t(i)),
gstk(i)-vel gs(i t(i), kt(i)) rtkt, ha az szksges s ismert az i. processzor sz-
mra s kt(i) rtke elegend oen nagy ahhoz, hogy a gs mtrix i. oszlopnak kvet-
kez o (k(i)+1.) elemt meghatrozhassuk (8.13.). Vezessk be a kt f (i), gst f (i), gstk f (i)
logikai vltozkat a segdvektorok kezelsnek megknnytsre. A segdvekto-
rok i. komponense loklis az i. processzorra nzve. A transzformlt program
esetn teljesl majd, hogy minden egyes rtkadsban pontosan legfeljebb egy
olyan vltozra (vektorkomponensre) hivatkozunk, amely nem loklis az i. pro-
cesszorra nzve.
8.1.4. A specikci nomtsa
A (8.4.)-(8.9.) specikcit b ovtjk az albbi invarinsokkal:
inv
a
i [1..n] : (kt(i) k(i t(i))
kt f (i) (kt(i) k(i) kt(i) = l(i t(i)))) (8.13)
inv
a
i [1..n] : (gst f (i) kt f (i) (i 2t(i) +1 1)
gst(i) = gs(i t(i), k(i))) (8.14)
104 8. FEJEZET. PROGRAMOZSI TTELEK
inv
a
i [1..n] : (gstk f (i) kt f (i) (i t(i) 1) (i 2t(i) +1 < 1)
gstk(i) = gs(i t(i), kt(i)) = gs(i t(i), k(i t(i)))) (8.15)
inv
a
i [1..n] : log(i) = l(i) (8.16)
8.1.5. A transzformlt program
8.4. Ttel. (Asszociatv m uvelet kiszmtsnak ttele II.) A 8.2. program meg-
felel a (8.4.)-(8.9.),(8.13.)-(8.16.) specikcinak.
Bizonyts: az (8.13.)-(8.16.) invarinsok teljeslst a leggyengbb el ofelt-
telek s sp(s
0
, Igaz) kiszmolsval knnyen igazolhatjuk. A (8.5.),(8.7.)-(8.8.)
kiktsek a transzformlt programra is teljeslnek, mert a kiktsekben szerepl o
vltozkra vonatkoz rtkadsok a (8.13.)-(8.16.) invarins lltsok miatt ekvi-
valensek az eredetiekkel. A (8.6.) xpontfelttel teljeslshez azt kell megmu-
tatni, hogy ha a transzformlt program xpontba jut, akkor az eredeti is xpontban
van s a (8.10.)-(8.12.) felttelek teljeslnek.
8.1.6. Hatkonysg s ltalnossg
A fenti megolds egyszer uen implementlhat szinkron, aszinkron architektrn
is, s osztott rendszerben is [Cha Mis 89]. Szinkron architektra esetn egysze-
r usthet o a megolds, kevesebb j vltoz bevezetsvel is megoldhat a feladat.
Osztott rendszer esetn csak akkor hatkony ez a megolds, ha elegend oen sok,
legalbb (log(n)) csatorna ll rendelkezsre processzoronknt s a kommuni-
kcis kltsg alacsony. Ilyen architektra pl. a hiperkocka [Qui 87]. Adatcsator-
ns megoldsra mutat hatkony megoldst [Loy Vor 90].
A ttel segtsgvel nagyon sok klasszikusnak szmt feladatot oldhatunk
meg egyszer u visszavezetssel
2
[Ft 86]. Pl.: prhuzamos sszeads, emelked o
szmsorozatok sszehasonltsa [Cha Mis 89], stb.
2
Az asszociatv fggvny kiszmtsnak ttelt eddig mr kb. 200 egyetemi hallgat alkalmazta a gyakorlatban is
sikeresen konkrt feladatok megoldsa sorn. PowerXplorer tpus, 16 processzoros, prhuzamos szmtgpen, PVM-ben
implementlt aszinkron, prhuzamos, konkrt program futsi ideje a felhasznlt processzorok szmnak emelse mellett
egyre rvidebb, ha a m uvelet elvgzshez szksges processzorid o elegend oen nagy a kommunikcis kltsgekhez
kpest.
8.1. ASSZOCIATV M

UVELET EREDMNYE 105
s
0
:

i=[1..n]
gs(i, 0), t(i), k(i), l(i), kt f (i), gstk f (i), gst f (i), kt(i) :=
f (a
i
), 1, 0, log(i), hamis, hamis, hamis, 0
S : {

i=[1..n]
kt(i) := k(i t(i)), ha kt f (i) (i t(i)) 1

i=[1..n]
kt f (i) := igaz, ha kt f (i) (i t(i)) 1
(kt(i) k(i) kt(i) = l(i t(i)))

i=[1..n]
gst(i), gst f (i) := gs(i t(i), k(i)), igaz,
ha kt f (i) (i 2t(i) +1 1) (kt(i) k(i)) gst f (i)

i=[1..n]
gstk(i), gstk f (i) := gs(i t(i), kt(i)), igaz,
ha kt f (i) (i t(i) 1) (i 2t(i) +1 < 1)
(kt(i) = l(i t(i))) gstk f (i)

i=[1..n]
gs(i, k(i) +1), t(i), k(i), kt f (i), gst f (i), gstk f (i), kt(i) :=

f ( gs(i, k(i)), gst(i) ), 2t(i), k(i) +1, hamis, hamis, hamis, 0


ha gst f (i)
f ( gs(i, k(i)), gstk(i) ), 2t(i), k(i) +1, hamis, hamis, hamis, 0
ha gstk f (i)

i=[1..n]
g(i) := gs(i, k(i)), ha (k(i) = l(i))
}
8.2. absztrakt program. Asszociatv m uvelet II. vltozat
106 8. FEJEZET. PROGRAMOZSI TTELEK
8.2. Csatornavltozk hasznlata
Prhuzamos s elosztott rendszereket gyakran runk le folyamathlzatok form-
jban [Hoa 78, Hoa 85]. A folyamatokat dobozokkal jelljk, a folyamatok k-
ztti kommunikci formja zenetklds. Az zeneteket egyirny kommuni-
kcira alkalmas csatornkon keresztl juttatja el a felad a cmzettnek, cmzet-
teknek. Felttelezzk, hogy az zenettovbbts megbzhat, zenetek nem vesz-
nek el, nem srlnek meg, csak a valban elkldtt zenetek rkeznek meg. Az
zenetklds aszinkron, a felad ltalban rgtn folytatja tevkenysgt miutn
a csatornra elhelyezte az zenetet, nem kell megvrnia az zenet tvtelt. A
csatornk sor tpus vltozknt viselkednek, tmenetileg kpesek trolni a mr
elkldtt, de mg nem fogadott zeneteket. A csatorna kapacitsa hatrozza meg
a trolhat zenetek szmt. Ha a csatorna kapacitsa korltos, akkor el ofor-
dulhat, hogy a kld o fl nem tudja rgtn elhelyezni zenett s vrakozni kell,
amg a csatorna kpes nem lesz jabb zenet fogadsra. Minden csatornhoz kt
sor tpus vltoz tartozik, az egyik a csatornn vrakoz zeneteket tartalmazza
(a csatorna aktulis llapota), a msik a csatorna trtnete. A csatorna trtnete
minden olyan zenetet tartalmaz helyes sorrendben, amelyik valaha rkerlt a
csatornra, a trtnetvltozrl a fogad fl nem tvoltja el az zeneteket. A tr-
tnetvltozt egy fellvonssal jelljk. A trtnetvltoz trolsa a valsgban
nehezen vagy egyltaln nem megoldhat, mert egy hossz ideig fut programban
az zenetek szma id ovel minden korltot meghaladhat. Trtnetvltozkat ezrt
csak gy hasznlunk rtkadsokban, hogy rtkket csak sajt j rtk megha-
trozshoz hasznljuk fel. Ezek az egyszer u rtkadsok elhagyhatak anlkl,
hogy a program tbbi rsznek m ukdse megvltozna.
P1 P2
x
A 8.2 brn kt folyamatot s az oket sszekt o x : Ch(Int) csatornt lthatjuk.
A csatornra a P1 folyamat helyezhet el zenetet, egsz szmok formjban. A
P2 folyamat olvas a csatornrl. Az albbi m uveletek tartoznak a csatorna tpus
vltozkhoz:
zenetklds (P1): x := hiext(x, e), vagy rviden: x := x; e,
8.3. TERMSZETES SZMOK GENERTORA 107
zenet eltvolts (P2) x := lorem(x), ha x ,=<>,
csatorna inicializlsa: x :=<>,
zenet olvassa (P2) x.lov, ha x ,=<>,
lekrdezs, hogy a csatorna res-e:: x =<>, illetve hny zenet vrakozik
a csatornn: length(x) or [x[.
Az albbiakban megadjuk az egyes m uveletek pontos jelentst is. Elemi m u-
veletek jelentst megadhatjuk hatsrelcijukkal, vagy azzal ekvivalens mdon
a leggyengbb el ofelttelk kiszmtsnak meghatrozsval is.
zenetklds: l f (x := x; e, R) = R
xx;e, xx;e
zenet eltvoltsa: l f (x := lorem(x), ha x ,=<>, R) =
(x ,=<>R
xlorem(x)
) (x =<>R),
csatorna inicializlsa: l f (x :=<>, R) = R
x<> x<>
.
Figyeljk meg, hogy zenetklds leggyengbb el ofelttelnek kiszmtsa-
kor a csatorna trtnett is helyettesteni kell az utfelttelben, mg az zenet el-
tvoltsa nem rinti a trtnetvltozt.
Ha a folyamatok kztti kommunikcira nem hasznlunk osztott vltozkat,
hanem kizrlag csatornavltozk segtsgvel oldjuk meg az informci cserjt,
akkor az egyes folyamatok kztti kapcsolat jl ellen orizhet ov vlik. A lokalits
ttel lltst fogalmazhatjuk jra specilis formban:
8.5. Lemma (Lokalits folyamathlzatokban).
Ha egy P llts vltozi kztt csak P1 folyamat loklis vltozi, ill. P1
kimen o csatornavltozi szerepelnek, akkor a P llts stabil a tbbi folya-
matban.
Ha P P
xx;e
s V(P) =x, akkor P stabil a teljes folyamathlzatban.
108 8. FEJEZET. PROGRAMOZSI TTELEK
P1
x
..... , 4 ,3 2 , 1
8.2. bra. Termszetes szmok genertora.
8.3. Termszetes szmok genertora
Els o pldnk csatornavltozk hasznlatra a 8.2 brn lthat termszetes sz-
mokat generl folyamat specikcija s az azt megvalst program. A P1-
gyel jellt folyamat a folyamathlzat egy eleme, az ltala generlt szmokat ms
folyamat(ok) hasznljk fel.
A folyamat llapot- s paramterterben egy egsz tpus csatornavltoz s
ugyanezen csatorna trtnetvltozja jelenik meg. Mindkt vltoz rtke kezdet-
ben az res sorozat a 8.17 kikts szerint.
A = Ch(Int) Ch(Int)
x x
B = Ch(Int) Ch(Int)
x

(x = x

=<> x = x

=<>) INIT
x

,x
(8.17)
x [1, 2, ..] inv
x

,x
(8.18)
k N
0
: [x[ = k
x

,x
[x[ = k +1 (8.19)
Az x csatorna trtnetvltozja segtsgvel knnyen megfogalmazhatjuk, hogy
a csatornn egyms utn, nvekv o sorrendben a termszetes szmok jelennek meg
(8.18): invarins, hogy a csatorna trtnetnek rtke a termszetes szmok soro-
zatnak kezd o rszsorzata. A csatornavltoz segtsgvel nagyon nehz lenne
el orni hasonl kvetelmnyt. A csatornavltoz rtke brmikor lehet az res
sorozat, gy semmilyen tmpontot sem ad arra nzve, hogy melyik volt az el oz o
8.3. TERMSZETES SZMOK GENERTORA 109
rtk, amelyik megjelent rajta. Az invarinst a legknnyebben gy teljesthetnnk,
ha soha egyetlen elemet sem helyeznnk az x csatornra, az res sorozat mindig
prexe a termszetes szmok sorozatnak. A 8.19 kikts azonban megkveteli,
hogy az x csatorna trtnetnek hossza elkerlhetetlenl nvekedjen. Figyeljk
meg, hogy a feladat nem fogalmaz meg sem terminlsi, sem xpont felttelt.
Terminls helyett vgtelen m ukdst kvetel meg.
A megolds megtallsa rdekben b ovtjk az llapotteret s nomtjuk a
specikcit:
A = Ch(Int) Ch(Int) N
0
x x i
B = Ch(Int) Ch(Int)
x

(x = x

=<>x = x

=<>) INIT
x

,x
(8.20)
i N
0
inv
x

,x
(8.21)
((i = 0x =<>) (i > 0x = [1, ..i])) inv
x

,x
(8.22)
k N
0
: [x[ = k
x

,x
[x[ = k +1 (8.23)
Knnyen belthatjuk a levezetsi szablyok segtsgvel (5. fejezet), hogy a
j specikci szigorbb az el oz onl (8.21.) s (8.22.)-b ol kvetkezik (8.18.), ill.
(8.23.)-bl kvetkezik (8.19.).
A megold program a kvetkez o:
( s
0
: i := 0,
s
1
: x, i := x; (i +1), i +1
)
Bizonyts: Megmutatjuk, hogy a program megfelel a nomtott specikci-
nak.
(8.21): Megmutatjuk, hogy i N
0
inv
S
(x = x

=<> x = x

=<>)
sp(i := 0, x = x

=<>x = x

=<>) = i = 0x = x

=<> x = x

=<>
i N
0
i N
0
(l f (x, i := x; (i +1), i +1), i N
0
) = i +1 N
0
.
(8.22): sp(i := 0, x = x

=<> x = x

=<>) = i = 0 x = x

=<> x =
x

=<>i = 0x

=<>
110 8. FEJEZET. PROGRAMOZSI TTELEK
((i = 0x =<>) (i > 0x = [1, .., i]))
(l f (x, i := x; (i +1), i +1), ((i = 0x =<>) (i > 0x = [1, ..i]))) =
((i +1 = 0x; (i +1) =<>) (i +1 > 0x; i = [1, .., i +1])) =
(x; i = [1, .., i +1])
(8.23): k N
0
: [x[ = k
x

,x
[x[ = k +1
[x[ = k l f (S, [x[ = k [x[ = k +1) =
[x; (i +1)[ = k [x; (i +1)[ = k +1
s
[x[ = k l f (s, [x[ = k +1) =[x; (i +1)[ = k +1.
8.4. Adatcsatorna ttele
Adott egy F = f
n
... f
0
fggvnykompozci, amelynek rtkt a D=<d
1
, .., d
m
>
sorozatban adott argumentumokra kell elemenknt meghatrozni. Tegyk fel,
hogy m >> n, az adatok szma nagysgrendekkel nagyobb a fggvnykompo-
zciban szerepl o fggvnykomponensek szmnl. Felttelezzk azt is, hogy
az egyes fggvnykomponensek kiszmtshoz szksges id o lnyegben azo-
nos. Ha elegend o processzor ll rendelkezsre, akkor megszervezhetjk az ered-
mny kiszmtst oly mdon, hogy az egyes komponensfggvnyek kiszmtst
egy-egy processzorra bzzuk. El oszr kiszmtjuk f
0
rtkt az els o adatra d
1
-re.
Ennek eredmnyt f
0
(d
1
)-et tovbbadjuk a kvetkez o processzornak, amelyik ki-
szmtja f
1
( f
0
(d
1
))-et. Kzben az els o processzor megkapja a msodik adatot,
d
2
-t s meghatrozza f
0
(d
2
)-t. n lps utn feltlt odik az adatcsatorna, az els o
adat eljut a n. fggvnykomponenst szmol processzorig, majd minden tovbbi
lpsben egy-egy jabb adatra kapunk vgeredmnyt. Ha a kommunikcis klt-
sgeket gyelmen kvl hagyjuk, akkor arra a kvetkeztetsre juthatunk, hogy n
processzorral az m adatbl ll sorozatra n+m lpsben el o tudjuk lltani a vg-
eredmnyt, mg ugyanezt egyetlen processzoron m lpsben tudnnk megtenni.
Tekintettel arra, hogy n << m, ezrt a kt lpsszm hnyadosa: n, azaz n pro-
cesszorral kb. n-szer gyorsabban vgznk.
x0 x1
x
i
x
i+1
x
n
x
n+1
f
1
f
n
f
0
...
....
8.3. bra. Adatcsatorna
A formlis specikci sorn el oszr csak annyit fogalmazunk meg, hogy egy
8.4. ADATCSATORNA TTELE 111
sszetett F fggvny rtkt kell elemenknt meghatrozni a D sorozatra. A D
sorozat elemei az x
0
csatornn vannak kezdetben, jabb adat nem rkezik a k-
s obbiekben s xpontban az eredmny, az F(D) sorozat az x
n+1
sorozat trtne-
tben tallhat meg. Ez azt jelenti, hogy az eredmnyek rendre rkerltek az x
n+1
csatornra, de esetleg mr nincsenek ott.
A = Ch(a) Ch(a) Ch(a) Ch(a)
x
0
x
0
x
n+1
x
n+1
B = Ch(a) Ch(a) Ch(a) Ch(a)
x

0
x
0

n+1
x
n+1

Q ::= (x
0
= x
0
= x

0
= x
0

= D
x
n+1
= x
n+1
= x

n+1
= x
n+1

=<> )
Q INIT
x

0
x
0

n+1
x
n+1


h
(8.24)
FP
h
x
n+1
= F(x
0

) = F(D) (8.25)
Q TERM
h
(8.26)
(x
0
= x
0

= D) inv
h
a teljes rendszerre (8.27)
A 8.24. kikts szerint az x
0
s trtnete kezdetben tartalmazza a D sorozatot,
s a 8.27. kikts szerint az x
0
sorozat trtnete nem is vltozhat, teht jabb
elem nem kerlhet az x
0
csatornra. refpipe1. szerint az x
n+1
csatorna kezdetben
res. Fixpontban 8.25. szerint megkveteljk, hogy az x
n+1
trtnete ppen F(D)
legyen. A 8.26. kikts szerint a programnak terminlnia kell.
A megolds el olltshoz b ovtjk az llapotteret az x
2
. . . x
n
csatornavlto-
zkkal s trtnetvltozikkal a 8.3. brnak megfelel oen s nomtjuk a spe-
cikcit a xpontnomts ttele alapjn (8.28, 8.29), illetve varinsfggvnyt
vezetnk be (8.29).
FP
h
i [0..n] : x
i
=<> (8.28)
i [0..n] : ( f
i
(x
i
x
i
) = x
i+1
) inv
h
(8.29)
varins fggvny: ([x
0
[, ..., [x
n
[) (8.30)
A 8.30. pontban bevezetett varins fggvny rtkt gy hatrozzuk meg,
hogy a rendezett n-es elemeit helyirtkkel slyozzuk, az egyes csatornkon lv o
112 8. FEJEZET. PROGRAMOZSI TTELEK
elemek szma rendre egy m+1 alap szmrendszerben felrt szm szmjegyeinek
felel meg.
A xpontnomts ttele alapjn beltjuk, hogy az j specikci nomtsa
az eredetinek. Megmutatjuk, hogy: (8.28) (8.29) (8.27) (8.25).
Jellje f
i
az els o i +1 fggvny kompozcijt: f
i
::= f
i
. . . f
0
. Teljes in-
dukcival belthat, hogy (8.28)(8.29)(8.27) (x
i+1
) = f
i
(D). A lemmbl
i = n-re kvetkezik az llts.
Az albbi program megfelel a nomtott specikcinak.
S : ( |
n
i=1
x
i
:=<>,
{
N
i=0
x
i
, x
i+1
:= lorem(x
i
), hiext(x
i+1
, f
i
(x
i
.lov)),
ha x ,=<> } )
8.3. absztrakt program. Adatcsatorna
8.5. Elgazs
Az elgazs egy olyan folyamat, melynek egy bemen o s kt kimen o csatornja
van.
FORK
x
y
z
A fenti brn lthat elgazstl a kvetkez o ngy felttel teljestst kveteljk
meg:
adat ne vesszen el, azaz minden, ami rkerl a bemenetekre, az kerljn
feldolgozsra,
a kimen o csatornkon csak olyan adat jelenjen meg, amelyik a bemen o csa-
tornn rkezett, azaz legyen a kls o zajoktl mentes,
ha rkezik adat, akkor az el obb-utbb feldolgozsra kerljn.
8.5. ELGAZS 113
Vezessnk be egy fggvnyt, melynek segtsgvel knnyebben tudjuk majd a
speciklni az elgazst:
split : ChChCh L
A split fggvnyt induktvan deniljuk:
split(<>, <>, <>) = igaz
split(a, b, c) split(a; x, b; x, c) split(a; x, b, c; x).
Legyen split a fenti kt tulajdonsggal rendelkez o fggvnyek kzl a legkisebb
igazsghalmaz.
3
.
A =ChChChChChCh
xyzxyz
A =ChChChChChCh
x

1.) Q = (x = y = z = x = y = z = x

= y

= z

= x

= y

= z

=<>)
Q init
h
2.) P = (split(xx, y, z)) inv
h
3.) k N : [x[ k
S
[y[ +[z[ k
Az invarins megkveteli, hogy ne vesszenek el adatok s zajmentes legyen a
m ukds. A haladsi felttel nem kvetel meg "prtatlansgot" abban a tekintet-
ben, hogy mindkt kimen o csatornra kerljn id onknt adat.
A feladatot megold S program a kvetkez o:
S : (SKIP, x, z := lorem(x), hiext(z, x.lov), ha x ,=<>
x, y := lorem(x), hiext(y, x.lov), ha x ,=<>)
Bizonyts:
2.) Q l f (s
0
, P) P P, mert split(<><>, <>, <>) = split(<>, <>
, <>) = igaz
3
Az megadott kt tulajdonsgnak megfelel az azonosan igaz fggvny is. Brmely kt, a tulajdonsgoknak megfelel o
fggvny konjukcija is megfelel a tulajdonsgoknak, gy egyrtelm uen ltezik legkisebb kzttk.
114 8. FEJEZET. PROGRAMOZSI TTELEK
Beltjuk, hogy P l f (S, P) = l f (s
1
, P) l f (s
2
, P)
Csak l f (s
1
, P)-t bizonytjuk. l f (s
2
, P) kiszmtsa hasonlan megy, ennek
meggondolst az olvasra bzzuk. P l f (s
1
, P) =
(x ,=<>P
yhiext(y,x.lov),yy;x.lov,xlorem(x)
) (x =<>P) =
= (x ,=<>split(xlorem(x), y; x.lov, z)) (x =<>P)
Be kell ltni, hogy
x lorem(x) = x x; x.lov
Az sszefggs teljeslst jl mutatja a kvetkez o bra:
x
x
x.lov
xx
lorem(x)
xlorem(x)
A split dencijt alkalmazva azt kapjuk, hogy ha P igaz volt, akkor igaz
marad.
3.) A haladsi felttel bizonytst az olvasra bzzuk.

8.6. Elemenknt feldolgozhat fggvnyek


Legyen H egy tetsz oleges halmaz. Az elemenknti feldolgozs trgyalsa sorn
4
az albbi jellseket hasznljuk:
X ::= X
1
... X
n
, X
i
P(H)(i [1..n]),
Y ::= Y
1
... Y
m
,Y
j
P(H)( j [1..m]),
x, x, x X.
4
Az asszociatv m uvelet eredmnynek kiszmtsakor minden egyes nomtsi lpst, ill. az absztrakt program he-
lyessgt is rszletes szmtsokkal bizonytottuk. Az elemenknti feldolgozs trgyalsa sorn a feladat rszfeladatokra
bontsnak bemutatsra s a klnbz o programkonstrukcik alkalmazsra helyezzk a hangslyt. Az egyes lpsek
bizonytsa s az absztrakt program helyessgnek igazolsa az el oz o ttelben bemutatott mdszerekkel knnyen elvgez-
het o.
8.6. ELEMENKNT FELDOLGOZHAT FGGVNYEK 115
8.1. Denci (Teljesen diszjunkt felbonts). x, x az x X teljesen diszjunkt fel-
bontsa, ha i [1, n] : x
i
= x
i
x
i
s i, j [1, n] : x
i
x
j
= / 0 .
8.2. Denci (Elemenknt feldolgozhat fggvny). Legyen f : X Y fgg-
vny. Ha minden x X brmely x, x teljesen diszjunkt felbontsra
f (x) f (x) = f (x), (8.31)
f (x) f (x) = / 0, (8.32)
akkor f elemenknt feldolgozhat fggvny [Ft 83].
8.6.1. A feladat specikcija
Kiktjk, hogy brmely xpontban az y rendezett halmaz m-es rtke ppen f (x

)
legyen (8.35.), ahol x

az x vltoz kezdeti rtke (8.33.). Megkveteljk, hogy a


program biztosan elrje valamelyik xpontjt (8.34.).
A = X Y x : X, y : Y, B = X x

: X.
(x = x

) INIT
x
(8.33)
Igaz FP
x
(8.34)
FP
x
y = f (x

), (8.35)
ahol f elemenknt feldolgozhat.
8.4. Megjegyzs. j [1..m] : y
j
= f
j
(x

1
, ..., x

n
).
Feltesszk, hogy x s x

x invarins
5
mdon az x

teljesen diszjunkt felbontsa


s x

x-re mr ismerjk az f fggvny rtkt. Felhasznlva az elemenknt fel-


dolgozhat fggvnyek azon tulajdonsgt, hogy rtkk az argumentum teljesen
diszjunkt felbontsa esetn komponensenknti diszjunkt unival meghatrozhat
a (8.33.)-(8.35.) specikci xpont felttelt az x
i
= / 0 felttellel helyettesthet-
jk.
8.6. Lemma. (Elemenknti feldolgozs - a feladat nomtsa) Az albbi speci-
kci nomtsa a (8.33.)-(8.35.) felttelekkel megadottnak.
(x = x

) INIT
x
(8.36)
5
A halmazkivons komponensenknt rtend o.
116 8. FEJEZET. PROGRAMOZSI TTELEK
Igaz FP
x
(8.37)
FP
x
i [1..n] : (x
i
= / 0) (8.38)
inv
x
(j [1, m] : (y
j
f
j
(x
1
, ..., x
n
) = f
j
(x

1
, ..., x

n
))) (8.39)
inv
x
(j [1, m] : (y
j
f
j
(x
1
, ..., x
n
) = / 0)) (8.40)
inv
x
(i, j [1, n] : (x

i
x
i
) x
j
= / 0), (8.41)
ahol f elemenknt feldolgozhat.
Biz.: A 5.8. lemma alapjn. A bizonytshoz szksges matematikai meggondo-
lsok indoklsa megtallhat [Ft 83]-ban.
8.6.2. A megolds
Deniljuk az sl fggvnyt a kvetkez okppen: sl : P(1, . . . , n) H Y,
sl(i
1
, . . . , i
k
, e)
i
::=

e, ha i i
1
, . . . , i
k

/ 0, ha i / i
1
, . . . , i
k
,
ahol i
1
, . . . , i
n
az 1, . . . , n szmok egy permutcija.
Jelljk a p s e halmazok unijt p

e-vel, ha e , p. Hasonlan, jellje


p

e a p e halmazt, ha e p. A e : memp m uvelet egy nemdeterminiszti-
kus feltteles rtkads, amely e-nek rtkl adja p egy tetsz olegesen kivlasztott
elemt, ha p nem res.
8.7. Ttel. (Elemenknti feldolgozs) A 8.4. absztrakt program megoldja az ele-
menknt feldolgozhat fggvny rtke kiszmtsnak feladatt, azaz megfelel a
(8.36.)-(8.41.) specikcinak.
Biz.: A bizonytshoz szksges matematikai meggondolsok indoklsa meg-
tallhat [Ft 83]-ban.
8.3. Denci. Meggyelhetjk, hogy az elemenknti feldolgozs 8.4. programja
az U ::=
[
i[1..n]
x
i
halmaz szmossgval arnyos szm llapotvltozs utn
jut xpontba. A tovbbiakban, amikor x mretr ol beszlnk, akkor U szmoss-
gra gondolunk. Jelljk x mrett [x[-szel.
8.6. ELEMENKNT FELDOLGOZHAT FGGVNYEK 117
s
0
:
|
j=[1..m]
y
j
:= / 0 | ch := hamis
S : { (

i=[1..n]
e : mem(x
i
) | ch := igaz), ha x
i
,= / 0ch
ch, x
i
1
, . . . , x
i
k
, y :=

...
hamis, x
i
1

e, . . . , x
i
k

e, y

f (sl(i
1
. . . i
k
, e))
ha e x
i
1
. . . e x
i
k
e / x
i
k+1
. . . e / x
i
n
ch
...
}
Az elgazsok szma 2
n
1.
8.4. absztrakt program. Elemenknti feldolgozs
8.6.3. Teljesen diszjunkt felbonts prhuzamos
el olltsa
Reprezentljuk a tovbbiakban az x
i
halmazokat olyan szigoran nvekv o mono-
ton sorozatok formjban, amelyeknek elemei s rszsorozatai kzvetlenl hoz-
zfrhet oek az indexek megadsval
6
. x
i
els o, legkisebb elemt jellje x
i
(1). x
i
hosszt x
i
.dom-mal jelljk. x
i
[i, j]-vel jelljk x
i
azon rszsorozatt, amely a
k : k (i, j] index u elemeket tartalmazza.
Felttelezve, hogy (n) processzor ll rendelkezsnkre, felbontjuk x-et n p-
ronknt teljesen diszjunkt rszre. A felbonts kiegyenslyozott, ha a legnagyobb
s a legkisebb rsz mretnek klnbsge legfeljebb 1. Kiegyenslyozott felbon-
ts esetn n processzor segtsgvel kb. n-szeresre gyorsthatjuk f kiszmtst.
Az egyes rszekre kiszmtott rszeredmnyeket vgl komponensenknti disz-
junkt unival egyesthetjk (8.2. def.).
Megadjuk a pronknt diszjunkt felbonts feladatnak formlis specikci-
jt:
A = X M x : X, m : M, B = X x

: X,
M = vektor([1..n, 0..n], N
0
)
6
Fggvny tpus reprezentcit vlasztunk [Ft 86].
118 8. FEJEZET. PROGRAMOZSI TTELEK
(x = x

) INIT
x
(8.42)
Igaz FP
x
(8.43)
FP
x
cdd(m, x) (x = x

), (8.44)
ahol cdd(m, x) igaz, ha az m mtrix x pronknt teljesen diszjunkt felbontst de-
nilja, azaz: cdd(m, x) =i, j [1, n] : k, l [0, n1] : k ,=l x
i
[m(i, k), m(i, k+
1)] x
j
[m( j, l), m( j, l +1)] = / 0.
Ahhoz, hogy egy pronknt teljesen diszjunkt felbontsrl eldnthessk, hogy
kiegyenslyozott-e, meg kell hatroznunk nemfelttlenl diszjunkt halmazok uni-
jnak szmossgt. Nem diszjunkt halmazok unija azonban elemenknt feldol-
gozhat fggvny. Ha az uni elemeinek szmt az uni elemenknti feldolgozs-
sal trtn o kiszmtsa tjn hatrozzuk meg, akkor nmagban annak eldntse,
hogy a felbonts kiegyenslyozott-e ugyanannyi szmtsi lpst ignyel, mint
a teljes elemenknti feldolgozs. Ez a mdszer nyilvnvalan nem vezet ered-
mnyre. Nyitott krds, hogy ms ton lehetsges-e n (esetleg n
2
) processzorral
pronknt teljesen diszjunkt s egyben kiegyenslyozott felbontst hatkonyan
el olltani.
Atovbbiakban megmutatjuk hogyan lehet hatkonyan pronknt teljesen disz-
junkt felbontst el olltani anlkl, hogy a kiegyenslyozottsgot garantlnnk
7
.
A felbontst a legnagyobb komponens egyenl o rszekre osztsval deniljuk,
azaz ezen egyetlen komponens felosztst terjesztjk ki fokozatosan a tbbire oly
mdon, hogy a teljesen diszjunkt felbonts ltrejjjn.
Tegyk fel, hogy x
1
az x legnagyobb elemszm komponense
8
. Bevezetjk
a t vektort, amely tjkoztat arrl, hogy a pronknt teljesen diszjunkt felbonts
mely sszetev oit ismerjk. Ezen sszetev ok egyttest x rszlegesen meghatro-
zott pronknt teljesen diszjunkt felbontsnak nevezzk.
t : vektor([1..n], 0, .., n 1). Jelljk pccd(m, t, x)-vel, ha az m mtrix ele-
meivel s a t vektor rtkeivel meghatrozott, az m(i, j)[ j t(i) osztspontok-
kal megadott, rszleges felbonts megfelel a pronknt teljesen diszjunkt felbon-
ts kvetelmnyeinek, azaz: pcdd(m, t, x) = i [1..n] : (m(i, 0) = 0 m(i, n) =
x
i
.dom)i, j [1, n] : k, l [0, n1] : k ,=l k <t(i)l <t( j) x
i
[m(i, k), m(i, k+
1)] x
j
[m( j, l), m( j, l +1)] = / 0.
7
A [Ft Hor Kozs 95] cikkben egy mdszert mutattunk arra, hogy milyen mdon oldhat meg ms ton az a feladat,
hogy az egyes processzorok kztt a feladatmegosztst kiegyenslyozzuk.
8
A legnagyobb elemszm komponens megtallsa visszavezethet o egy maximumkeressre, amely asszociatv m uve-
let. A 8.3. ttel szerint ezt a feladatot O(log(n)) lpsben megoldhatjuk. A ks obbiekben ltjuk majd, hogy O(log(n))
lps elhanyagolhat a megoldshoz szksges sszes llapotvltozshoz kpest.
8.6. ELEMENKNT FELDOLGOZHAT FGGVNYEK 119
A rszlegesen meghatrozott, pronknt teljesen diszjunkt felbonts fogalm-
nak bevezetsvel nomthatjuk a (8.42.)-(8.44.) specikcit.
8.8. Lemma. (Pronknt diszjunkt felbonts - a feladat nomtsa) Az albbi spe-
cikci nomtsa a (8.42.)-(8.44.) specikcinak:
(x = x

) INIT
x
(8.45)
Igaz FP
x
(8.46)
FP
x
i [1.n] : t(i) = n1(x = x

), (8.47)
inv
x
(pccd(m, t, x)) (8.48)
Biz.: A korbbiakhoz hasonlan a 5.8. lemma alapjn.
Vlasszuk a v : A N
0
varins fggvnyt a kvetkez okppen:
v ::= nn[m(i, j)[ j t(i)[.
8.5. Megjegyzs. A (8.43.) felttelt nem nomtottuk. A varins fggvnyre vo-
natkoz 5.7. ttel segtsgvel bizonythatjuk majd azt, hogy a program megfelel a
(8.43.)=(8.46.) felttelnek. Ebben az rtelemben a varins fggvny megvlasz-
tsa is egy nomtsi lpsknt foghat fel.
A varins fggvny rtke akkor cskken, ha a t(i) vektor elemeinek rtke
n o. Ez azt jelenti, hogy a rszlegesen meghatrozott felbontst ki kell terjeszteni,
az m mtrix tovbbi elemei rtknek meghatrozsval.
Az (8.48.) invarins, pccd(m, t, x) igaz marad, ha m(i, t(i) +1)-t azon x
i
-beli
elem indexnek vlasztjuk, amely elem kisebb vagy egyenl o x
1
(m(1, t(i) +1))-
nl, s amely elemre rkvetkez o elem x
i
-ben nagyobb, mint x
1
(m(1, t(i) +1)).
Jelljk a ( j =m( j (m, n] x
i
( j) h))(( j +1 [m, n] x
i
( j +1) >h)( j =
n)) logikai fggvnyt (x
i
, j, h)-vel. A (8.48.) felttelt a
inv
x
(i, j [1, n] : (x
i
, m(i, j), x
1
(m(1, j)))) (8.49)
felttellel nomtjuk.
Mivel x
i
monoton, a (8.49.) felttellel denilt feladat visszavezethet o szek-
vencilis logaritmikus keressre [Ft 83].
ltalnostsuk a (8.49.) felttellel denilt feladatot. Legyen H egy rendezett
halmaz, (m, n] az egsz szmok nemres intervalluma s f : (m, n] H monoton
nv o fggvny. Adott egy h H rtk. Keressk meg azt j [m, n] egsz szmot,
amelyre a ( j) tulajdonsg teljesl, ahol ( j)::=( j = m( j (m, n] f ( j)
h)) (( j +1 [m, n] f ( j +1) > h) ( j = n)).
120 8. FEJEZET. PROGRAMOZSI TTELEK
A =ZZZH, m, n, j : Z, h : H.
B =ZZH, m

, n

: Z, h

: H.
Q ::= (m n) (m = m

n = n

h = h

k, l (m, n] : k l f (k) f (l))


Q FP
m

,n

,h
(8.50)
Q INIT
m

,n

,h
, (8.51)
FP
m

,n

,h
(h = h

j [m

, n

] ( j)). (8.52)
Mivel az [m, n] intervallum nem res, ezrt biztosan ltezik olyan j [m, n] :
( j). Finomtsuk a specikcit egy invarins s egy varins fggvny bevezet-
svel. Az llapotteret kt j komponens bevezetsvel b ovtjk. u, v : N
0
.
Vlasszuk a v
1
: A N
0
varins fggvnyt a kvetkez okppen: v
1
::= v
u+1.
inv
m

,n

,h
(h = h

[u, v] [m

, n

] u v j [u, v]) (8.53)


inv
m

,n

,h
(k [m

, n

] [u, v] : (k)). (8.54)


8.9. Ttel. (Logaritmikus keress ttele) A 8.5. absztrakt program megfelel a
(8.50.)-(8.54.) specikcinak.
s
0
: u, v, j := m, n, (m+n)/2
S : { u, j := j, ( j +v)/2, ha ( j) f ( j) h
v, j := j, [(u+ j)/2], ha ( j) f ( j) > h
}
8.5. absztrakt program. Szekvencilis logaritmikus keress
Bizonyts: A bizonyts a [Ft 83]-ban adott bizonyts alapjn elvgezhet o.

Alkalmazzuk a logaritmikus keress programjt (8.5. prg.) n sorozatra (szu-


perpozci), egyenknt n1-szer (explicit szekvencializls mod(n) [Lam Sin 79]).
8.6. ELEMENKNT FELDOLGOZHAT FGGVNYEK 121
Ezzel a mdszerrel meghatrozhatjuk az m mtrix rtkt gy, hogy az x egy p-
ronknt teljesen diszjunkt felbontst denilja, azaz megkapjuk azt a programot,
amely megfelel a (8.45.)-(8.48.) specikcinak. A megolds helyessgt a szu-
perpozci s a szekvencia levezetsi szablyra hivatkozva igazolhatjuk. n 1
folyamat szekvencijt egyszer u transzformcival cikluss alaktjuk.
s
0
:

i=[1..n]
m[i, 0], m[i, n], t(i) := 0, x
i
.dom, 0

i=[1..n]
m[1, i] := i (x
1
.domDIVn)

i=[1..n]
u(i), v(i), m(i, t(i) +1) := 0, x
i
.dom, x
i
.dom/2
S : {

i=[1..n]
u(i), m(i, t(i) +1) := m(i, t(i) +1), (m(i, t(i) +1) +v(i))/2,
ha x
i
(m(i, t(i) +1)) x
1
(m(1, t(i) +1))
(x
i
, m(i, t(i) +1), x
1
(m(1, t(i) +1)))

i=[1..n]
v(i), m(i, t(i) +1) := m(i, t(i) +1), [(u(i) +m(i,t(i) +1))/2],
ha x
i
(m(i, t(i) +1)) > x
1
(m(1, t(i) +1))
(x
i
, m(i, t(i) +1), x
1
(m(1, t(i) +1)))

i=[1..n]
t(i), u(i), v(i), m(i, t(i) +1) :=t(i) +1, 0, x
i
.dom, x
i
.dom/2,
ha (x
i
, m(i, t(i) +1), x
1
(m(1, t(i) +1))) t(i) < n1
}
8.6. absztrakt program. Prhuzamos pronknt teljesen diszjunkt felbonts
8.6.4. Diszjunkt halmazok unija
Az f elemenknt feldolgozhat fggvny rtkt a pronknt teljesen diszjunkt
felbontssal kapott szeletekre fggetlenl, prhuzamosan meghatrozhatjuk. A
teljes eredmnyt a szeletekre kapott eredmny diszjunkt unijaknt lltjuk el o
(8.2. def.).
Tegyk fel, hogy f rtkt ismerjk x mind az n pronknt teljesen diszjunkt
szeletre. Jelljk a fggvnyrtkeket rendre p(1), . . . , p(n)-nel, ahol p(i) =
122 8. FEJEZET. PROGRAMOZSI TTELEK
(p(i)
1
, . . . , p(i)
m
) Y. Tudjuk, hogy i [1..n] : k, l [1..p(i).dom] : k ,= l
p(i)
k
p(i)
l
= / 0. Tetsz oleges j [1..m]-re: y
j
= f
j
(x

1
, ..., x

n
) =
S
i[1..n]
p(i)
j
. Ah-
hoz, hogy megkapjuk az y = f (x

) rtket, ki kell szmtanunk n diszjunkt halmaz


unijt minden j [1..m]-re. Tegyk fel, hogy a halmazok sorozatok formjban
adottak, s a sorozatok elemei indexeik alapjn elrhet oek. A halmazok unijt,
mint a sorozatok konkatencijt lltjuk el o. p(i)
j
elemeit y
j
azon rszsorozatba
kell bemsolnunk, amelyik kezd oindexe
i1
k=1
p(k)
j
, azaz meg kell hatroznunk a
p(k)
j
sorozatok hosszbl kapott j szerint rendezett sorozat minden kezd oszele-
tnek sszegt. Az sszeads asszociatv m uvelet, gy a feladat megoldhat a 8.2.
absztrakt program felhasznlsval.
8.6.5. A prhuzamos elemenknti feldolgozs ttele
8.10. Ttel. (A prhuzamos elemenknti feldolgozs ttele) A (8.33)-(8.35) spe-
cikcis felttelek ltal denilt feladat megoldsa a teljesen diszjunkt felbon-
ts programjnak (8.6. prg.), az elemenknti feldolgozs programja (8.4 prg.)
n-szeres szuperpozcijnak s a diszjunkt halmazok unijra adott megolds m-
szeres szuperpozcijnak szekvencija.
8.6.6. Hatkonysg s ltalnossg
A fenti megolds egyszer uen implementlhat szinkron, aszinkron architektrn
is, s osztott rendszerben is [Cha Mis 89]. Osztott rendszer esetn csak akkor
hatkony ez a megolds, ha elegend oen sok, (log(n)) (logikai) csatorna ll
rendelkezsre processzoronknt s a kommunikcis kltsg alacsony. Tegyk
fel, hogy (n) processzoron implementljuk az absztrakt programot, m = (n)
s [x[ sokkal nagyobb, mint n. A prhuzamos teljesen diszjunkt felbonts ered-
mnyt (n) processzor cserli ki egyms kztt, hogy az egyes szeletekre meg-
kezd odhessen az elemenknti feldolgozs. Az elemenknti feldolgozs eredm-
nyt ismt (n) processzor cserli ki egyms kztt
9
. A kommunikcis lpsek
szma teht (n) processzoronknt. A teljesen diszjunkt felbontshoz szksges
lpsek szma O(nlog([x[)), a szelet elemenknti feldolgozshoz szksges l-
psszm: ([x[/n) (kiegyenslyozott felbonts esetn), a rszeredmnyek konka-
tencijhoz pedig O(m log(n)) lps szksges a rszletsszegek kiszmtsa
9
Egyes prhuzamos gpek processzorai szmra a lerendszer prhuzamosan is elrhet o. Ebben az esetben a kommu-
nikcis igny kisebb.
8.6. ELEMENKNT FELDOLGOZHAT FGGVNYEK 123
miatt. Kevs vltoz (n) s sok adat (x) s kiegyenslyozott felbonts esetn a
fggvnyrtk meghatrozsnak jellemz o kltsge: [x[/n.
Elemenknt feldolgozhat fggvny rtknek kiszmtsra vezethet o vissza
rendezett sorozatok sszefslse, halmazok unija, az id oszer usts [Ft Ny 90],
Conway problmja [Cha Mis 89] s mg szmos feladat.
124 8. FEJEZET. PROGRAMOZSI TTELEK
8.7. Feladatok
8.1. Feladat. Loklis minimumok szma
Adottak az n hosszsg egszeket tartalmaz vektor. Adjuk meg, hogy hny
loklis minimum van a vektorban. (Loklis minimum egy elem, ha kisebb a balol-
dali s nem nagyobb a jobboldali szomszdjnl.) Oldjuk meg a feladatot legfel-
jebb n+100 processzorral szinkron arhitekturn a lehet o legkevesebb lpsben.
a) Specikljuk a feladatot!
b) Adjunk megold programot s mutassuk meg, hogy megfelel a specik-
cinak !
8.2. Feladat. Feltteles sszegzs
Adott az A : [1..N] Z vektor, s az f : [1..N] L fggvny.
Szmtsuk ki a
N

i=1
( f (i)) A[i]
rtket!
Ksztsk el a feladat specikcijt, rjunk fel megold programot s lssuk
be a helyessgt
8.3. Feladat. Logikai mtrix sorainak egyezse egy mintval
Adottak az n m logikai mtrix s az m-elem u logikai vektor. Adjuk meg,
hogy a mtrix hny sora egyezik meg a vektorral. Oldjuk meg a feladatot mn
processzorral szinkron arhitekturn a lehet o legkevesebb lpsben.
a) Specikljuk a feladatot!
b) Adjunk megold programot s mutassuk meg, hogy megfelel a specik-
cinak
8.4. Feladat. Logikai mtrix szorzsa
Adottak az n m logikai mtrix s az m-elem u logikai vektor. Szmtsuk ki a
mtrix s a vektor szorzatt. Oldjuk meg a feladatot mn processzorral szinkron
arhitekturn a lehet o legkevesebb lpsben.
a) Specikljuk a feladatot!
8.7. FELADATOK 125
b) Adjunk megold programot s mutassuk meg, hogy megfelel a specik-
cinak
8.5. Feladat. Els o egyezs
Adottak az f , g, h : [1..N] Z fggvnyek. Szmtsuk ki az l L s i [1..n]
rtkeket, ahol i az els o olyan index, melyre a hrom fggvny rtke megegyezik,
l az a tulajdonsg, hogy ltezik ilyen index.
a) Specikljuk a feladatot!
b) Adjunk megold programot s mutassuk meg, hogy megfelel a specik-
cinak
8.6. Feladat. Szmoljuk ki kt N bites binris szm szorzatt. Specikljuk, ad-
junk r programot, majd lssuk be, hogy a programmegoldja a feladatot, megfelel
a specikcinak. A megengedett m uveletek: lptets, bitek egyenl osgvizsglata
s bitre vonatkoz rtkads.
8.7. Feladat. Adott egy irnytott, vges, krmentes grf. Dntsk el, hogy van-
e a grfnak olyan irnytott tja, amely minden cscsot pontosan egyszer rint!
(A grfot egy n k-s mtrixban reprezentljuk.) A grf cscsainak szma: n, a
cscsok fokszma legfeljebb k. Rendelkezsre ll O(nk) processzor.
8.8. Feladat. Adott egy irnytott, vges, krmentes grf. A cscsokat 0-val, il-
letve 1-gyel cmkzzk. Dntsk el, hogy van-e a grfnak olyan irnytott tja,
amely mentn a cscsok cmkinek sorozata pontosan egy el ore megadott term-
szetes szm kettes szmrendszerben felrt alakjt adja meg! A grf cscsainak
szma: n, a cscsok fokszma legfeljebb k. (A grfot egy n(k +1)-es mtrixban
reprezentljuk.) Rendelkezsre ll O(nk) processzor.
8.9. Feladat. Visszavezets
Adott egy fekete-fehr digitalizlt kp egy sora az N hosszsg v vektorban.
A vektor egy eleme 0 vagy 1, a 0 a fekete, az 1 fehr kppontot jell. A sor minden
kppontjra llaptsuk meg (azaz rjuk a d vektor megfelel o elembe), hogy milyen
messze van t ole jobbra az els o fekete kppont ! ( Fekete pontokra ez az rtk 0)
126 8. FEJEZET. PROGRAMOZSI TTELEK
8.10. Feladat. Visszavezets
Adott egy fekete-fehr, N sorbl s M oszlopbl ll, digitalizlt kp. A kp
minden kppontjra az m mtrix tartalmazza, hogy milyen messze van t ole jobbra
az els o fekete kppont ( Fekete pontokra ez az rtk 0). A kp egy bekezdsekre
tagolt szveget tartalmaz, minden bekezds els o sora beljebb kezd odik. Meg sze-
retnnk keresni a bekezdsek kezdett a kepen. Feladat : Jelljk meg a kp
els o oszlopnak azon pontjait (azaz az l logikai vektor megfelel o elemeit lltsuk
igazra) , melyek felett van legalbb h olyan sor, melynek els o w kppontja feher.
9. fejezet
Modellek s tulajdonsgaik
9.1. Szemantikai modellek
Azt, hogy egy program futsa sorn nemkvnatos mellkhatsok nem lpnek fel,
csak akkor tudjuk igazolni, ha a modell a folyamatok klcsnhatsa sorn fellp o
jelensgek minl szlesebb krnek jellemzsre alkalmas. Clunk, hogy model-
lnk minl valsgh ubben tkrzze a sokprocesszoros multikomputereken fut
programok viselkedst, ahol az esemnyek a klnbz o processzorokon egyide-
j uleg mennek vgbe, valamint tmogassa a lpsenknti nomtst. Ezrt kvna-
tos lenne, hogy a modell alapfogalmai magukban foglaljk a vals prhuzamossg
s a vals nemdeterminisztikussg fogalmt [Bak War 91, Mak Ver 91]. Msrszt
trekednnk kell arra is, hogy modellnk ne vljon kezelhetetlenl bonyolultt.
Vals prhuzamossg-ot r le egy szemantikai modell, ha a prhuzamos prog-
ramot nem tekinti azonosnak azzal a programmal, amelyet a folyamatok eleminek
tekintett sszetev oinek sszefslsvel kapunk (a b + b a ,= a [[ b)
1
, ellenkez o
esetben sszefslses (interleaving) szemantikrl beszlnk. Az sszefslses
szemantika legnagyobb htrnya, hogy az sszefsls felttelezi az elemi m uve-
letek (atomi akcik) egy rgztett szintjt. Ha az elemi m uvelet fogalma relatv,
akkor a modell mr ellentmondsra vezet ((ab)(cd) +(cd)(ab) ?=? (ab) [[ (cd)).
Ha nem alkalmazzuk azt az egyszer ustst sem, amely szerint a programok nem-
determinisztikus viselkedse a kezd ollapotra korltozhat, akkor id oben elgaz
szemantikrl, ellenkez o esetben id oben lineris szemantikrl beszlnk (linear
time, branching time). Az id oben lineris szemantika szerint a ks obbi nemde-
terminisztikus viselkeds el ore gyelembe vehet o a kezdeti llapotra vonatkoz-
1
a [[ b - az a esemny s a b esemny id oben tfedi egymst.
a b - az a esemny megel ozi a b esemnyt.
a+b - az a esemny s a b esemny kzl pontosan egy kvetkezik be nemdeterminisztikusan.
127
128 9. FEJEZET. MODELLEK S TULAJDONSGAIK
tatva (id oben el orehozott dntsek). Ebben az esetben minden lehetsges ks obbi
nemdeterminisztikus viselkedst el ore gyelembe kell vennnk, ha a program he-
lyessgt vizsgljuk. A partner folyamatok llapotnak gyelembevtele nlkl
(tl korn) meghozott dnts holtpont kialakulst eredmnyezheti (a(b +c) ,=
ab+ac). Ha a szelektv vrakozst tartalmaz programot egyszer uen ekvivalens-
nek tekintjk azzal, amely el ore vagy az egyik vagy a msik partner mellett dnt,
akkor a lehetsges j megoldsok egy rszt eleve kizrjuk.
Ha folyamatok kztti kapcsolatok topolgija a program futsa sorn vltoz-
hat, j folyamatok jhetnek ltre korltlan szmban, illetve folyamatok sz unhet-
nek meg, akkor dinamikus modellr ol, ellenkez o esetben statikus vagy korltosan
dinamikus modellr ol beszlnk aszerint, hogy a folyamatok szma rgztett vagy
fellr ol korltos. A vltozsok matematikai lersra az llapottr kiterjesztse,
projekcija [Ft 88] biztosthat eszkzt. Szemantikai modellek teht abban k-
lnbznek, hogy mely absztrakt programokat tekintik azonosnak.
Az n. ler szemantika minden programhoz a szemantikai tartomny (pl.
az llapottren rtelmezett binris relcik halmaza vagy valamely algebrai
struktra) egy elemt rendeli hozz. A programkonstrukciknak a szeman-
tikai tartomnyon rtelmezett m uveletek (pl. relcik szigor kompozci-
ja) felelnek meg. Teljeslnie kell annak, hogy sszetett program megfele-
l oje a komponensekb ol a programkonstrukcinak megfelel o m uvelettel ll
el o (kompozcionlis megfeleltets).
M uveleti szemantika denilsakor pl. cmkzett tmenetgrfot (LTS) hasz-
nlhatunk. A grf cscsaiban helyezkednek el az absztrakt programok, az
leket ltalban elemi m uveletekkel cmkzzk. A grf azt denilja, hogy
egy (sszetett) program egy elemi m uvelet (vagy komponens program) vg-
rehajtsa utn mely programmal ekvivalens mdon m ukdik tovbb. Azt
vizsgljuk, hogy mely absztrakt programok viselkedse azonos, azaz mely
absztrakt programoknak megfelel o cscsokbl elindulva kapunk ekviva-
lensnek tekintett cmkesorozatokat. Az ekvivalencia dencija esetleg n-
magban is bonyolult. (A processzalgebrban [Hen 88] denilt tesztelsi
ekvivalencia vizsglatakor pldul grfok direkt szorzataibl indulunk ki.)
Aximatikus szemantikrl beszlnk, ha absztrakt programok ekvivalen-
cijt aximk s levezetsi szablyok segtsgvel adjuk meg.
Amikor utastsok, szekvencilis programok hatsrelcijt, mint az llapot-
tr feletti binris relcit deniljuk, akkor ler szemantikai eszkzket alkalma-
9.1. SZEMANTIKAI MODELLEK 129
zunk programok ekvivalencijnak denilsra. Ebben a modellben programok
helyessgt statikus mdon vizsgljuk (pl.: halmazok sszehasonltsra vezetjk
vissza), mg m uveleti szemantikt alkalmazva a program helyes m ukdst annak
dinamikus viselkedse elemzsvel igazolhatjuk. Ez utbbi mdszer ltalban
tbb hibalehet osget hordoz magban, de el onye, hogy a program viselkedst
szemlletes formban rja le. Az axiomatikus szemantika automatikus helyessg-
bizonytsra alkalmas els osorban.
Gyakran felvetik a krdst, hogy hromklnbz o formban denilt szeman-
tika ekvivalens-e (az aximatikus teljes s ellentmondsmentes-e illetve a m uve-
leti teljesen absztrakt-e a lerra nzve [Hen 88]), azaz pontosan ugyanazon absz-
trakt programokat tekintik-e ekvivalensnek. A krds eldntse gyakran sszetett
matematikai appartus hasznlatt ignyli, klnsen, ha a ler szemantikai tar-
tomny egy bonyolult algebrai struktra vagy metrikus tr [Bak War 91]. Ilyenkor
krdsess vlik az elmlet gyakorlati alkalmazhatsga is, mert szksgkppen
hasonlan bonyolult eszkzkre van szksg annak eldntshez is, hogy az absz-
trakt program megfelel-e a specikcinak.
A gyakorlati alkalmazs szempontjbl teht els odleges, hogy a jelensgek
minl tgabb krnek lersra alkalmas, de minl egyszer ubb matematikai struk-
trj szemantikai tartomny segtsgvel modellezzk a prhuzamos programok
vilgt.
130 9. FEJEZET. MODELLEK S TULAJDONSGAIK
10. fejezet
Irodalmi ttekints
Prhuzamos folyamatok lersra, szemantikjuk denilsra, lp-
senknti nomtsukra szmos modellt alkottak. Ezek a modellek klnbz-
nek cljukban, kifejez oerejkben, matematikai eszkzkszletkben. Ebben
a fejezetben rviden ismertetnk nhny, a dolgozatban lert modellhez ro-
kon elmletet. Azokra a fogalmakra, mdszerekre helyezzk a hangslyt,
amelyek megfelel oit megfogalmaztuk a relcis modellben is. Megemltnk
nhny olyan eredmnyt is, amely az ltalunk vlasztott kutatsi irnytl
tvolabb esik. Sem a felsorolsban, sem a kivlasztott modell elemzsben
nem trekedtnk teljessgre.
10.1. A Hoare logika kiterjesztsei
A szekvencilis programok helyessgbizonytsra Floyd, Hoare, Dijkstra s m-
sok ltal kidolgozott elmletet mr a 70-es vek elejn kiterjesztettk olyan ele-
mekkel, amelyeket konkurens viselkeds ill. szinkronizci lersra, holtpont-
mentessg s ms biztonsgossgi tulajdonsgok bizonytsra fogalmaztak meg.
A prhuzamos programot, mint szekvencilis folyamatok egyttest vizsgltk, s
olyan kvetkeztetsi szablyok megfogalmazsra trekedtek, amelyek az egyes
folyamatok helyessgnek bizonytsa s az sszetev ok klcsnhatsainak korl-
tozsa mellett a prhuzamos program helyessgt igazoltk.
Interferenciamentessg bizonytsa
Owiczki s Gries fogalmazta meg 1976-ban az interferenciamentessg kvetelm-
nyt [Owi Gri 76]. Kt szekvencilis folyamat interferenciamentes, ha az egyik
131
132 10. FEJEZET. IRODALMI TTEKINTS
helyessgbizonytsban alkalmazott kritikus felttelek teljeslst a msik folya-
mat atomi m uveletei nem rvnytelentik. Lamport a monoton prediktum fogal-
mnak bevezetsekor hasonl kvetelmnyt tmasztott az egyttm ukd o folya-
matok klcsnhatsra [Lam 77]. Ezek a felttelek egy-egy n ill. matomi lpsb ol
ll folyamatpr esetn az sszetev ok szekvencilis helyessgnek igazolshoz
szksges bizonytsi lpseken tlmen oen a prhuzamos program parcilis he-
lyessgnek beltshoz tovbbi n m bizonytsi lpst tettek szksgess. A
mdszer alkalmazsakor tovbbi nehzsget okozhat az is, hogy a prhuzamos
program komponenseinek llapota nem egyrtelm uen meghatrozott az sszetett
program vltozinak rtke ltal, ezrt a bizonytsok sorn n. segdvltozkat
vagy ms nven kontrollvltozkat is be kell vezetni. A segdvltozk a program
futsa sorn rtket kapnak, de rtkket csak a helyessgbizonyts sorn hasz-
nljuk fel. Az alkalmasan megvlasztott segdvltozk rtke alapjn meghat-
rozhatv vlik, hogy melyik sszetev ok felel osek a korbbi llapottmenetekrt,
az egyes folyamatok mely atomi m uvelet vgrehajtsnl tartanak. Ugyanezen
clt szolgljk a Lamport ltal bevezetett kontrollvltozk [Lam 90], melyek az
egyes atomi m uveletekhez rendelt logikai vltozk. Egy m uvelet kontrollvltozi
pontosan akkor vesznek fel logikai igaz rtket, amikor az adott m uvelet vgre-
hajtsa megkezd odik, ppen folyamatban van, illetve vget rt.
van Lamsweerde s Sintzoff [Lam Sin 79] a prhuzamos program szerkezett
a folyamatok halmaza helyett atomi akcik halmazaknt, iteratv programstruk-
tra alakjban rgzti. Megmutatjk, hogy n. explicit szekvencializlsi techni-
kval szekvencilis sszetev ok is felbonthatak atomi m uveletek halmazra. Mo-
delljkben a megolds levezetsn s nem a ksz programok helyessgbizony-
tsn van a hangsly. Az iteratv program ciklusinvarinsa mint a prhuzamos
program globlis invarinsa jelenik meg s nagyban megknnyti biztonsgos-
sgi felttelek megfogalmazst s bizonytst. Modelljkben egyes haladsi
tulajdonsgok kifejezsre s bizonytsra is eszkzt adnak, pl. meghatrozzk
az adott vgfelttel elrsnek leggyengbb el ofelttelt, amelyet a Dijkstra ltal
denilt leggyengbb el ofelttelb ol [Dij 76] felptett funkcionlok xpontjainak
kiszmtsval hatroznak meg. Mdszert adnak arra is, hogy hogyan hatrozzuk
meg egy adott invarins biztostst garantl szinkronizcis feltteleket, hogyan
transzformljuk a programot olyan alakba, hogy az invarinst, s gy a szinkroni-
zcis feltteleket is a lehet o leggyengbbre vlaszthassuk meg. Megadjk holt-
pontmentes s kiheztetsmentes program szintzisnek mdszert. A UNITY
1
-
ben [Cha Mis 89] s az ltalunk megfogalmazott modellben denilt absztrakt
1
Unbounded Nondeterministic Iterative Transformations
10.1. A HOARE LOGIKA KITERJESZTSEI 133
program struktrja megegyezik van Lamsweerde s Sintzoff prhuzamos prog-
ramjainak stuktrjval.
Prhuzamos programok haladsi feltteleinek lersra alkalmas prediktum-
transzformereket rajtuk kvl sokan megfogalmaztak. A leggyengbb el ofelttel-
b ol felptett monoton funkcionlok legkisebb s legnagyobb xpontjainak egyt-
tes alkalmazsval denilja Park iteratv programszerkezetek haladsi tulajdon-
sgait prtatlan temezs felttelezse mellett. Hasonl prediktumtranszformert
alkot Morris rekurzv programok haladsi tulajdonsgainak lersra. Szmos,
egyes specilis haladsi tulajdonsgokat klnbz o prtatlansgi felttelek mel-
lett kifejez o prediktumtranszformert ad meg xpontos alakban Flon s Suzuki
[Flo Suz 81], Francez [Fra 86], Lukkien [Luk Sne 92].
Globlis invarinsok bevezetse
van Lamsweerde s Sintzoff eredmnyeit alkalmazza Andrews konkurens progra-
mok szintzisre [And 91] azzal a klnbsggel, hogy a programszerkezetet nem
iteratv formban denilja, hanem visszatr az Owiczki-Gries modell program-
fogalmhoz. Mdszere a megolds lpsenknti nomtsn alapszik. El oszr
a megolds szerkezett denilja a feladat meghatrozsval egyidej uleg, azaz
megadja a megoldsban szerepl o folyamatokat, azok kzs llapottert s a kl-
csnhatsukat korltoz invarinst. Msodik lpsknt denilja az egyes folya-
matok szekvencilis vzt a bizonyts vzlatval egytt. A harmadik lpsben
van Lamsweerde s Sintzoff mdszervel meghatrozza a szinkronizcis or-
feltteleket a leggyengbb el ofelttel kalkulus alapjn. Vgl implementlja az
absztrakt programot egy konkrt nyelven s architektrn. Andrews rszletesen
elemzi azokat a heurisztikus mdszereket, amelyekkel biztosthat folyamatok in-
terferenciamentessge. Knny u garantlni, hogy kt folyamat nem interferl egy-
mssal, ha azok diszjunkt vltozkon dolgoznak, azaz amelyik vltozt az egyik
folyamat r, azt a msik folyamat egyltaln nem hasznlja. Ha a vltozk t-
fedik egymst, akkor a msik folyamat utastsainak hatst is gyelembe vve
gyengthetjk a bizonytsi vzlat kritikus feltteleit. Jl alkalmazhat a globlis
invarinsok mdszere, mikor arra treksznk, hogy az egyes atomi utastsok el o-
s utfeltteleit a globlis invarins s egy olyan llts konjunkcijaknt rjuk
fel, amely llts csak a folyamat loklis vltozitl vagy legfeljebb csak olyan
vltozktl fgg, amelyet csak az adott folyamat r. Szinkronizcit is alkalmaz-
hatunk az interferencia elkerlsre, oly mdon, hogy orfelttellel korltozzuk
az adott kritikus lltst rvnytelent o, interferencit okoz utasts vgrehajts-
nak lehet osgt olyan llapotokra, amikor interferencia nem jn ltre. Andrews
134 10. FEJEZET. IRODALMI TTEKINTS
denilja a nom atomicits s a durva atomicits fogalmt. Az atomi akcik
szintjnek megvlasztsa kihat arra, hogy a helyessgbizonyts szempontjbl
mi szmt kritikus lltsnak s egyben meghatrozza az absztrakt program imp-
lementcijnak lehetsges hatkonysgt. Programozsi ttelek szintzise sorn
trekedni fogunk arra, hogy a ttelek vgs o alakjt az Andrews ltal megfogal-
mazott legnomabb atomicits felttelezse mellett adjuk meg s minl gyengbb
szinkronizcis feltteleket hatrozzunk meg.
10.2. Egy relci alap modell
E. Best 1983-ban megfogalmazta prhuzamos programok egy relci alap sze-
mantikai modelljt [Best 83]. A szemantikai tartomny elemei olyan relcik,
amelyek az llapottr pontjaihoz rvnyes vgrehajtsi sorozatokat rendelnek
hozz. A vgrehajtsi sorozatok elemei felvltva llapotok (vltozk rtkei) il-
letve az llapottmenetrt felel os folyamatok azonosti. Kt szomszdos lla-
potot mindig az llapottmenetrt felel os atomi m uvelet hatsrelcija kapcsol
ssze. A vgrehajtsi sorozat teht alkalmas arra, hogy egy prexe egyrtelm uen
azonostsa a prhuzamos program minden egyes komponensnek llapott. A
vgrehajtsi sorozatok tulajdonsgainak elemzsvel Best denilja a holtpont,
a prtatlan temezs, a parcilis helyessg, a terminls fogalmt. Modelljben
megjelenik a feladat (cl) fogalma, amely az llapottr felett rtelmezett bin-
ris relci ([Ft 83]). Igazolja, hogy az Owiczki-Gries fle kvetkeztetsi sza-
blyrendszer helyes s teljes a denilt parcilis helyessg bizonytsra nzve.
Absztrakt programok relcis m uveleti szemantikjnak dencijban az rv-
nyes vgrehajtsi sorozat fogalmt ltalnostjuk.
10.3. Folyamatok viselkedsnek algebrai lersa
Trace-ek
Prhuzamos programok algebrai modelljei gyakran indulnak ki az egyes folyama-
tok vgrehajtsnl meggyelhet o esemnyek (atomi m uveletek) sorozataibl.
Mazurkiewicz denilja a konkurens bc fogalmt [Maz 89]. A konkurens bc
az esemnyek azonostinak halmaza s az esemnyek kztt fennll szimmet-
rikus s reexv binris fgg osgi relci rendezett prja. Kt esemnysorozat
ekvivalens, ha egyms permutltja s kt esemny csak akkor szerepel kln-
bz o sorrendben a kt sorozatban, ha nem kti oket ssze a fgg osgi relci.
10.3. FOLYAMATOK VISELKEDSNEK ALGEBRAI LERSA 135
Esemnysorozatok ekvivalenciaosztlyai a trace-ek. Trace-ek halmazt nyelvnek
nevezzk. Trace-ek felett parcilis rendezsi relci adhat meg a prex fogalm-
nak ltalnostsval. Prex zrt nyelvek folyamatok viselkedst rjk le. Trace
halmazok m uveletei programkonstrukcis m uveleteknek feleltethet oek meg. A
m uveletek algebrai tulajdonsgainak elemzsvel, homomorzmusok megads-
val programok s sszetev o folyamatok tulajdonsgait vizsglhatjuk.
Cmkzett tmenetrendszerek
Pratt a trace-ek fogalmt ltalnostva pomset-ekkel [Pra 86] adja meg prhuza-
mos programok ler szemantikjt. A modell rdekessge, hogy az eddig is-
mertetett modellekt ol eltr oen nem sszefslses szemantikj. Pratt nagyszm
konstrukcis opertort denil, kombinatorikai, logikai m uveleteket, illetve al-
gebrai lezrtakat. Pratt vals prhuzamos szemantika mellett denilt konstruk-
cis m uveleteinek megfelel o relcis m uveletek dencija nagyban nvelheti az
ltalunk megfogalmazott modell kifejez oerejt. A relcis modell ilyen irny
kiterjesztse tovbbi kutatsi feladatot jelent (6 fejezet).
Mazurkiewicz s Pratt modelljben a feladatot a megengedett esemnyso-
rozatok megadsval speciklhatjuk. A modellek folyamatok viselkedsnek
analzisre alkalmasabbak, mint prhuzamos programok szintzisre.
Milner CCS
2
modelljben [Mil 89] a meggyelhet o esemnyek azok, amikor
egy folyamat a klvilggal kommunikl. Folyamatokat sszekthetnk csator-
nkkal majd ezeket az sszetett egysgeket egyetlen egysgknt kezelhetjk oly
mdon, hogy a bels o kommunikcit elrejtjk. Feladatot is CCS folyamat alak-
jban denilunk, megadjuk a kvnt megolds csatornit s el orjuk, hogy ezen
csatornkon milyen kommunikcis viselkeds legyen meggyelhet o. Prhuza-
mos rendszerek szemantikjt Milner m uveleti szemantikval, cmkzett tmenet-
grf fal
3
adja meg. Egy sszetett rendszer megold egy feladatot, ha kvlr ol meg-
gyelhet o viselkedse ekvivalens (szigoran ekvivalens, meggyelhet oen ekvi-
valens, meggyelhet oen kongruens) a speciklt viselkedssel. Milner ler egy
egyszer u prhuzamos programozsi nyelvet, amelynek szemantikjt CCS-sel de-
nilja. Megad egy modlis logika alap specikcis nyelvet is, amellyel CCS
folyamatok viselkedsre tud el orsokat tenni.
Az ltalunk bemutatott relcis modellben folyamatok viselkedsre vonat-
koz el orsokat a modlis logikkhoz tartoz temporlis logikai m uveleteknek
2
Calculus of Communicating Systems
3
LTS - Labelled Transition System
136 10. FEJEZET. IRODALMI TTEKINTS
megfelel o relcik megfogalmazsval tesznk.
Hennessy ltalnosan fogalmazza meg a processzalgebra elmlett [Hen 88],
eredmnyei alkalmazhatak pl. a CCS-re is.
CSP
A CCS-hez hasonl Hoare CSP
4
elmlete is [Hoa 85], amely folyamatok szeman-
tikjt m uveleti szemantikval adja meg. A feladatokat a folyamat viselkedsre
vonatkoz logikai lltsokkal speciklja. A megolds dencijt a program
struktrja szerint alkalmazott kvetkeztetsi szablyrendszerre pti. A kvet-
keztetsi rendszer szablyai adottak, illetve Hoare megad egy ler szemantikt is,
amely alapjn a levezetsi szablyok bizonythatak. A specikcis nyelv a csa-
tornkhoz rendelt trtnetvltozkra vonatkoz alaplltsokbl felptett logika.
Csatornavltozkhoz rendelt trtnetvltozkbl felptett fggvnykompozci-
kat a dolgozatban bemutatott modellben is hasznlunk [Hor 93-96].
10.4. Temporlis logikai modellek
Konkurens programok tulajdonsgainak lersra alkalmas eszkz a temporlis
logika. Temporlis logikban az egyes formulkat egy olyan modell felett rtel-
mezzk amelyben a formulk igazsgrtke ltalban id opontrl id opontra vl-
toz. Szmos olyan modellt fogalmaztak meg, amely az sszetett temporlis lo-
gikai eszkzkszlet egy alkalmasan megvlasztott rszt
5
alkalmazza folyamatok
specikcijra [Cha Mis 89, Jr 92] esetleg folyamatok szemantikjnak deni-
lsra is [Lam 91].
Ezek kzl a legismertebbek kz tartozik a Lamport ltal megfogalmazott
TLA
6
. Lamport a programot is s a feladatot is TLAformulval adja meg [Lam 91],
gy a megolds fogalma knnyen bevezethet o.
A dolgozatban egy msik temporlis logika alap modellre tmaszkodunk, a
UNITY-ra [Cha Mis 89]. A UNITY biztonsgossgi s haladsi tulajdonsgokat
kifejez o oprtorai megadhatak lineris temporlis logikai alakban [Sin 91]. Ez
a modell alkalmas specikcik lpsenknti nomtsra. UNITY-ban az absz-
4
Communicating Sequential Processes, az elmlet nem azonos a Hoare ltal korbban bevezetett CSP nyelvvel
[Hoa 78].
5
A modell opertorainak jelentse megadhat a lineris temporlis logika valamely m uveletsorozata segtsgvel
[Sin 91].
6
Temporal Logic of Actions
10.5. TOVBBI MODELLEK 137
trakt program struktrja iteratv. Leggyengbb el ofelttel kalkulusra vezethet o
vissza annak igazolsa, hogy egy program rendelkezik egy adott tulajdonsggal.
A 11. fejezetben a temporlis logikkat rszletesen bemutatjuk.
10.5. Tovbbi modellek
Prhuzamos folyamatok lersra elterjedt automataelmleti eszkz pl. a Petri
hl s az I/O automata. Szmos tovbbi megkzelts lehetsges, modellezhe-
tnk prhuzamos szmtsokat neurlis hlkkal, sejtautomatkkal, stb. Lteznek
tisztn funkcionlis szmtsi modellek is, mint pl. a lambda kalkulus s a funk-
cionlis programozsi nyelvek ms modelljei. Ebben az esetben egyes redukcis
szablyok prhuzamos alkalmazhatsga alakjban jelenik meg a prhuzamossg.
Prhuzamos folyamatok modelljeit tekinti t pl. [Var 81, Lam Lyn 90, Koz 94].
138 10. FEJEZET. IRODALMI TTEKINTS
11. fejezet
Matematikai eszkzk
11.1. Temporlis logika
A temporlis logikk a klasszikus logika [Psz 93] lehetsges kiterjesztsei. A
temporlis logikai nyelvek szemantikjnak denilsakor szksgnk lesz az
id opontok halmazra
1
. Az egyes formulkat egy olyan modell felett rtelmez-
zk amelyben a formulk igazsgrtke ltalban id opontrl id opontra vltoz
2
.
Anyelv szemantikjnak denilsakor megadjuk, hogy adott id opontban mely
atomi formulk teljeslnek. Az id opontok halmaza felett egy, adott tulajdons-
gokkal rendelkez o relci
3
denilt [Ben 88]. Id ostruktrrl beszlnk, ha az
id opillanatok halmaza felett denilt relci tulajdonsgai megfelelnek az id o-
r ol alkotott alapvet o elkpzelseinknek, azaz a relci
4
irreexv s tranzitv. A
relci tovbbi tulajdonsgai hatrozzk meg az id ostruktra temporlis logikai
tpust. Megklnbztethetnk pl. lineris (x, y : x < y x > y x = y), majd-
nem sszefgg o (x, y, z : x < y (x < z z < y)), ill. elgaz idej u modellt, ahol
1
Az id opont fogalmt absztrakt rtelemben hasznljuk. Nem foglalkozunk az id opontok halmaza felett metrika deni-
lsval. Az ismertett modell egyel ore nem terjed ki a programok vals idej u vgrehejtsnak lersra [Mel 87].
2
A temporlis logikk a modlis logikk krbe tartoznak [Rcz 92]. A klasszikus logikai formula igazsgrtke a
modlis logikk formalizmusa szerint, a logika tpusa alapjn nemcsak az individumvltozktl, hanem valamilyen ms
paramtert ol, pl.: helyt ol, id ot ol, stb. is fgg. Defnilhatnnk pl. olyan modlis logikt is, amelyben a paramter id opillanat
helyett id ointervallum [Mel 87]. Egy ilyen logika alkalmas lehet vals egyidej usg lersra. A modlis paramtertr felett
egy elrsi relci denilt. A klnbz o paramterrtkekhez tartoz univerzumokban egyszerre rtelmezzk ugyanazon
formulk igazsgrtkt. A formula igazsgrtke egy adott paramterrtk ltal meghatrozott univerzumban ltalban
fgg ugyanazon vagy ms formulk az elrsi relci felhasznlsval meghatrozott univerzumokban felvett rtkeit ol.
Az ilyen jelleg u sszefggsek lersra vezetik be a modlis opertorokat, amelyek segtsgvel a modlis paramter ill.
az elrsi relci explicit hasznlata elkerlhet o. A modlis opertorokat tekinthetjk az egzisztencilis s az univerzlis
kvantor ltalnostsnak. Az ltalnostott kvantor jelentse az elrsi relci tulajdonsgaitl fgg.
3
Relcinak nevezzk halmazok direktszorzatnak egy rszhalmazt. Binris relcirl beszlnk, ha a relci ponto-
san kt halmaz direktszorzatnak rsze.
4
azaz a modlis logika elrsi relcija
139
140 11. FEJEZET. MATEMATIKAI ESZKZK
a jv obe vezet o utak diszjunktak. Vannak vges ill. vgtelen (x : y : x < y),
diszkrt (x, y : x < y z : (x < z ,u : (x < u u < z)), ill. s ur u struktrk.
Megkvetelhet o az id o homogenitsa, azaz brmely x, y id opontprhoz tallhat
olyan relcitart automorzmus, amely x-et y-ba viszi. Izotrp egy struktra, ha
izomorf azzal, amelyben a rendezsi relci fordtott, azaz amelyben a < b-nek
b < a felel meg.
A nyelv szintaxisa szempontjbl ugyangy, ahogyan a klasszikus logikban,
a temporlis logika esetn is megklnbztetjk a 0-ad s magasabbrend u logikai
nyelveket. 0-ad rend u esetben a klasszikus logika 0-ad rend u formulibl s a
temporlis opertorokbl ptjk fel a nyelvet. A temporlis opertorok hasznla-
tra vonatkoz szintaktikus szablyok hatrozzk meg a nyelv temporlis logikai
tpust. Ennek megfelel oen vlaszthat ki a nyelvet interpretl id ostruktra. Az
id opillanatok halmaza megadhat, mint egy program programllapotainak hal-
maza.
5
Endogenous az a logika, amelynek id ostruktrjt egyetlen program l-
lapotai alapjn deniljk, ill. exogenous a logika, ha programkonstrukcik is
megengedettek.
Azt mondjuk, hogy egy temporlis logikai formulnak modellje egy id ostruk-
tra, ha a struktrban van olyan id opont, amelyben a formula teljesl
6
. Egy
adott problma megoldsa a temporlis logika terminolgija szerint a feladatot
ler formulahalmaz egy modelljnek megtallsa lehet. Az automatikus prog-
ramszintzishez modellkeres o algoritmusokra van szksg. A szakirodalomban
ismertetett eredmnyek [Eme Sri 88] azt mutatjk, hogy ezek az algoritmusok l-
talban nagyon rossz hatkonysgak, a megolds el olltshoz a specikci
hosszval exponencilisan arnyos id ore van szksg. Az el olltott megolds
min osge szempontjbl az sem kzmbs, hogy a formulahalmazt kielgt o mo-
dellek melyikt tallja meg az algoritmus.
A tovbbiakban egy rgztett interpretciban rtelmezzk a 0-ad rend u el-
gaz idej u temporlis logika opertorait.
7
Az egyes temporlis logikk kztt a leglnyegesebb klnbsg a kifejez o-
er oben van. ltalban minl nagyobb a logika kifejez oereje, annl bonyolultabb
5
Az elgaz idej u temporlis logika formulinak interpretcijhoz hasznlt szoksos modellek [Eme Sri 88] s az
ltalunk denilt program (3.15 def.) knnyen megfeleltethet o egymsnak.
6
Ha megadjuk, hogy a feladat (2.1. def.) temenet- s peremfeltteleinek megfelel o temporlis logikai formulkat
hogyan rjuk fel, akkor a megolds dencijt visszavezethetjk arra, hogy formulk egy halmaznak matematikai logikai
rtelemben modellje-e a programnak megfelel o temporlis logikai struktra. Haladsi felttelek lineris temporlis logikai
megfogalmazsra mutat pldt [Lam 91] a 4.2.3. bekezdsben.
7
Egy rgztett program programllapotai ltal denilt id ostruktra esetn egy P formula az llapottr felett rtelmezett
logikai fggvnyt denil (2. fejezet). Az albbi temporlis logikai m uveletek segtsgvel teht rgztett S absztrakt
program esetn P, Q logikai fggvnyekb ol j logikai fggvnyeket konstrulhatunk.
11.1. TEMPORLIS LOGIKA 141
a logika eldntsi problmja.
8
11.1.1. Elgaz idej u temporlis logika
Az elgaz idej u temporlis logikban az id opillanatok halmaza felett olyan par-
cilis rendezs (11.12. def.) denilt, amely az id opillanatokat sszefgg o fba
rendezi. Az id ostruktra tbb lehetsges jv ot r le.
Az elgaz idej u temporlis logikk egyike a CTL (Computation Tree Logic).
Az albbiakban kvetjk [Eme Sri 88] lersmdjt s a CTL-en keresztl mutat-
juk be az elgaz idej u temporlis logikkat. Megadjuk a CTL egy vltozata, a
CTL

szintaxis s szemantika formlis dencijt (11.1., 11.6. def.).


Programok elgaz idej u temporlis logikai jellemzse sorn a programot ir-
nytott fnak feleltetik meg, azaz a ler szemantikai tartomny elemei fk. A fa
cscsai llapotok, az leket pedig az llapottmenetet megvalst programkom-
ponens azonostjval cmkzik. Az irnytott fa cscsaira ill. tjaira lltsokat
fogalmaznak meg [Eme Sri 88].
Tekintsk pldaknt a kvetkez o CTL formult: AG(CS
1
CS
2
). Az AP
alak formula egy llapotra vonatkozik, n. llapotformula. A P = G(CS
1

CS
2
) formula egy tra vonatkoz kikts. n. tformula.
Rviden ismertetjk az AP,EP,GP,FP,XP formulk jelentst:
AP(e), ha minden e -bl indul t tra P(t)
EP(e), ha van olyan e -bl indul t t, hogy P(t)
GP(t), ha a t t minden e pontjra P(e)
FP(t), ha a t ton van olyan e pont, amelyre P(e)
XP(t, e), ha a t t e utn kvetkez o e1 pontjra P(e1)
Az A,E,F,G, stb. opertorok a szintaktikus szablyok (11.1. def.) betartsval
egymsbagyazhatak.
AFP - P elkerlhetetlen,
FGP - majdnem mindentt P, jellsben:

G
P
8
A bizonytselmlet eldntsi problmjnak nevezik azt a feladatot, amely gy szl, hogy egy adott, tetsz oleges for-
mula bizonythat-e. Az eldntsproblma megoldst jelenti az automatikus ttelbizonyts algoritmusnak megadsa. A
modellelmlet eldntsproblmja az a feladat, amely gy szl, hogy egy adott, tetsz oleges formula rvnyes-e [Psz 93].
142 11. FEJEZET. MATEMATIKAI ESZKZK
GFP - vgtelenl gyakran P, jellsben:

F
P
EFP - P lehetsges
XP - legkzelebb P
PUQ - P elvezet Q-hoz
Az albbi denci hasznlja a 0-ad rend u klasszikus logika formalizlt nyel-
vnek atomi formula fogalmt
9
. Jellje A az atomi formulk halmazt.
11.1. Denci. A CTL

szintaxisnak szablyai:
S1. Minden atomi formula llapotformula.
S2. Ha P s Q llapotformula, akkor PQ s P is llapotformula.
S3. Ha P tformula, akkor EP llapotformula.
P1. Brmely llapotformula egyben tformula is.
P2. Ha P s Q tformula, akkor PQ s P is tformula.
P3. Ha P s Q tformula, akkor XP s PUQ is tformula.
11.1. Megjegyzs. Az albbi formulk rvidtsek:
AP::=EP
P Q::=PQ
FP::=IgazUP
11.2. Denci. Az S1,S2,S3,P1,P2,P3 szablyok vges sokszori alkalmazsval
generlt formulk alkotjk a CTL

nyelvet.
A CTL

szemantikjt az M = (A, R, L) rendezett hrmas ltal denilt id o-


struktra felett adjuk meg, ahol A az llapotok halmaza, R binris relci az lla-
potok felett: R AA, D
R
= A, L pedig egy cmkzs, amely az llapotokhoz
atomi formulkat rendel, L AA.
11.3. Denci. R A B. Az R relci rtelmezsi tartomnya:
D
R
::=a A[ b B : (a, b) R.
11.4. Denci. L
R
(a
0
, . . . . . .) az R AA relci vgtelen pontlnca, ha i
N : a
i
R(a
i1
).
9
Ha P egy n-vltozs prediktumszimblum s t
1
, ..t
n
termek, akkor P(t
1
, ...,t
n
) atomi formula. Az x vltozszimblum
term. Ha f n-vltozs fggvnyszimblum s t
1
, ..t
n
termek, akkor f (t
1
, ...,t
n
) term. Minden term e kt szably vges
szm alkalmazsval ll el o [Psz 93].
11.1. TEMPORLIS LOGIKA 143
11.5. Denci. Legyen n N
0
. L
R
(a
0
, . . . , a
n
) az R AA relci vges pont-
lnca, ha a
n
, D
R
i [1..n] : a
i
R(a
i1
).
Teljes tnak nevezzk s x-szel jelljk az R egy vgtelen pontlnct. Az id o-
pillanatok halmazt az R ltal generlt teljes utakon elhelyezked o pontok, progra-
mllapotok alkotjk. A cmkzs megadja, hogy mely id opillanatban mely atomi
formulk igazak. Az id opontok felett rtelmezett relcit az R denilja.
Jells: M, a [= P, M, x [= P, ha az M struktra a llapotra ill. x teljes tjra
teljesl P. Ha a struktra rgztett, akkor elhagyhat a jellsb ol. Ha a-t ill. x-et
elhagyjuk, akkor brmely llapotra ill. tra teljesl P. x
i
az x teljes t sufx-t
jelli, x
i
::=x
i
, x
i+1
, . . ..
11.6. Denci. A CTL

szemantikjnak szablyai:
S1. a [= P, ha P L(a).
S2. a [= PQ, ha a [= P s a [= Q.
a [=P, ha nem teljesl a [= P.
S3. a [= EP, ha van olyan x teljes t, hogy x
1
= a s a, x [= P.
P1. x [= P, ha x
0
[= P s P llapotformula.
P2. x [= PQ, ha x [= P s x [= Q.
x [=P, ha nem teljesl x [= P.
P3. x [= XP, ha x
1
[= P.
x [= (PUQ), ha i 0 : x
i
[= Q s j : 0 j < i : x
j
[= P.
11.7. Denci. A P llapotformulrl azt mondjuk, hogy rvnyes, ha M, a :
M, a [= P. P kielgthet o, ha M, a : M, a [= P. Ha M, a [= P, akkor M modellje
P-nek. A P tformulrl azt mondjuk, hogy rvnyes, ha M, x : M, x [= P.
Ha a 0-ad rend u klasszikus logika tautolgiiba llapotformulkat helyettes-
tnk, akkor rvnyes formulkhoz jutunk. rvnyesek az albbi sszefggsek
is:
EFP = PEXEFP
EGP = PEXEGP
E(PQ) = EPEQ
AFP = PAXAFP
AGP = PAXAGP
144 11. FEJEZET. MATEMATIKAI ESZKZK
A(PQ) = APAQ
Tovbbi rvnyes formulkra mutat pldkat [Eme Sri 88].
Bevezetjk az egyszer u tkifejezsek fogalmt. Egsztsk ki a 11.1. denci
szablyhalmazt az albbi szabllyal:
P0. brmely atomi formula tformula.
Ekkor a P0,P2 szablyok vges sokszori alkalmazsval kapjuk az egyszer u 0-ad
rend u formulkat.
11.8. Denci. A P0,P2,P3 szablyok vges sokszori alkalmazsval kapjuk az
egyszer u tkifejezseket.
11.9. Denci. Megszortott tkifejezs egy egyszer u tkifejezs, ha minden tem-
porlis opertor argumentuma egyszer u 0-ad rend u formula s minden 0-ad rend u
formula egy temporlis opertor hatskrben van.
11.1. Plda. megszortott tkifejezsre:
(PQ)U(P Q) (XPF(P Q))
Klnbz o prtatlan temezsi feltteleket (3. fejezet) denilhatunk a be-
vezetett opertorok, az exec( j) s az enabled( j) atomi formulk segtsgvel.
exec( j) akkor igaz, ha az adott llapotot kzvetlenl megel oz oen a j. program-
komponens kerlt vgrehajtsra. Az enabled( j) pedig akkor, ha a megel oz o l-
lapotban a j. programkomponens orfelttele igaz volt, vagy mskpp: a j. prog-
ramkomponens vgrehajtsra ksz volt.
11.10. Denci. Azt mondjuk, hogy az temezs
felttlenl prtatlan, ha
^
jJ

F
exec( j)
gyengn prtatlan, ha
^
jJ
(

G
enabled( j)

F
exec( j))
szigoran prtatlan, ha
^
jJ
(

F
enabled( j)

F
exec( j))
11.1. TEMPORLIS LOGIKA 145
11.2. Megjegyzs. Az exec(i) felttel n. atomi lfelttel. Az lfelttelek sze-
mantikjnak megadshoz bevezetjk az n. multiprocessz struktrkat M =
(A, R, L, L
a
). A az llapotok halmaza, R AA, L AA, A az atomi formulk
halmaza, L
a
: B P(R), ahol P(R) az R hatvnyhalmaza, B =B
1
, ..., B
m
pe-
dig az atomi lfelttelek vges nem res halmaza. Kiktjk, hogy
[
j[1..m]
L
a
(B
j
) =
R. Jelljk R
j
-vel L
a
(B
j
)-t. Ha B
j
azt jelenti, hogy az adott llapottmenetrt a
j. folyamat felel os, akkor R
j
ezen folyamatot jellemzi (v.. 3.2. def.). Kiegsztjk
a 11.6. szemantikus szablyokat a
P0

: x [= B
j
, ha (x
0
, x
1
) L
a
(B
j
)
szabllyal, ahol B egy atomi lfelttel.
Ha csak a felttlenl prtatlan temezsnek megfelel o vgrehajtsi utakra aka-
runk kiktseket tenni, akkor a Fair Computation Tree Logic m uveleteit kell al-
kalmazni. A formula akkor teljesl egy vgrehajtsi tra, ha minden folyamatra
igaz, hogy a vgrehajtst azonost exec( j) atomi lfelttel az t mentn vgtelen
sokszor szerepel.
11.11. Denci. =j [1..m] : GFexec( j),
A

P = A( P),
E

P = E(P)
11.3. Megjegyzs. Ha a struktra csak a felttlen prtatlan temezsnek meg-
felel o utakat tartalmazza, akkor nincs szksg az A

, E

m uveletek bevezetsre.
Ebben az esetben azonban a 11.6. alak szemantikamegads nem lehetsges, n.
ltalnostott szemantikadencira van szksg [Eme Sri 88]. ltalnostott sze-
mantikt egy M=(A,X,L) struktra felett adhatunk meg, ahol X az utak halmaza. A
11.6. alak szemantikamegads akkor lehetsges, ha az utak halmaza el ollthat
mint egy R relci vges s vgtelen pontlncainak halmaza, azaz az utak hal-
maza R-generlhat. A

-gal jelljk az A elemeib ol kpzett vges vagy vgtelen


sorozatok halmazt. Az X A

utak halmaza pontosan akkor R-generlhat, ha


sufx zrt (x X x
1
XZ) s fzi zrt (a A, x
1
ay
1
, x
2
ay
2
X, x
1
ay
2
X
10
)
s limit zrt (x
0
y
0
, x
0
x
1
y
1
, x
0
x
1
x
2
y
2
... X x
0
x
1
x
2
... X). Knnyen belthat,
hogy a felttlenl prtatlan temezsnek megfelel o utak grfja nem generlhat
egy relcival, azaz nem R-generlhat, mert nem zrt utak egyestsre.
10
x
i
llapotok vges, y
j
llapotok vgtelen sorozatt jelli.
146 11. FEJEZET. MATEMATIKAI ESZKZK
Az elgaz idej u temporlis logika opertorait az albbi mdon szoktk mg
jellni:
P ::= AXP.
P ::= AGP.
P ::= .
Megj.: megfelel EF-nek, teht lehet osget fejez ki.
P ::= AFP.
A teht nem lehet osget fejez ki (EF), hanem bizonyossgot!
Nem ekvivalens -tal [Eme Sri 88].
11.1.2. Lineris temporlis logika alapm uveletei
Lineris temporlis logika esetn az id ostruktrt egy program ltal generlt so-
rozatok halmaznak tekinthetjk. A sorozatok a lehetsges vgrehajtsi utak. A
program ppen aktulis vgrehajtsnak megfelel o sorozatra, t-re tehetnk kik-
tseket.
(PatnextQ)(t
i
) ::=
((j > i : Q(t
i
)) (Q(t
k
) P(t
k
) j (i, k) : Q(t
j
))) [Kr 87].
P ::= P( atnextP) GP [Kr 87].
P ::= P( atnextP) [Kr 87]. (not never)
P ::= FP. (sometimes, eventually). Megj.: =[Eme Sri 88].
PU
w
Q ::= Qatnext(P Q) (weak until) [Kr 87].
Ha egy program m ukdst akarjuk speciklni, akkor gy tekintjk, hogy
minden egyes lineris temporlis logikai felttel el implicit mdon odartuk azt
is, hogy a felttel minden a kezd ollapotbl kiindul (lehetsges) vgrehajtsi so-
rozatra teljesljn. A P lineris temporlis logikai formulval felrt specikcit
teht AP alakra fogalmazhatjuk t elgaz temporlis logikban, de az A opertor
nem disztributv [Eme Sri 88]: (A(FPGP) ,(AFPAGP))!
11
.
Hasonl a helyzet a processzalgebrbl ismert a(b+c) ,= ab+ac (id oben el-
gaz szemantikt kifejez o) sszefggs temporlis logikai megfelel oje esetn:
F(a(FbFc)) ,F(ab) F(ac) [Ben 88].
11
Sometime is Sometimes Not Never (Lamport)
11.2. LEKPEZSEK FIXPONTJA 147
11.2. Lekpezsek xpontja
11.2.1. Parcilis rendezs, irnytott halmaz
11.12. Denci (Parcilis rendezs). Legyen D egy halmaz, pedig a halmaz
felett rtelmezett binris relci. Ha a relci reexv, tranzitv s antiszimmet-
rikus, akkor parcilis rendezsnek nevezzk.
A d D elemet legkisebb elemnek nevezzk, ha d

D : d d

. Ha ltezik
legkisebb elem, akkor az egyrtelm u. Legyen Y D. d D az Y fels o korltja, ha
d

Y : d

d. Ha az Y D halmaznak ltezik legkisebb fels o korltja, akkor az


egyrtelm u. d D az Y als korltja, ha d

Y : d d

. Ha az Y D halmaznak
ltezik legnagyobb als korltja, akkor az egyrtelm u.
11.2.2. Teljes hlk
A (D, ) rendezett prt teljes hlnak nevezzk, ha a relci parcilis rendezs
a D felett s D brmely Y rszhalmaznak van legkisebb fels o s legnagyobb als
korltja D-ben.
Egy A alaphalmaz P(A) hatvnyhalmaza teljes hl a relcira nzve. Az
alaphalmaz felett denilt logikai fggvnyekre is kiterjeszthet o a parcilis ren-
dezs:
11.13. Denci (Parcilis rendezs logikai fggvnyek felett). Legyen P, RA
L. P R pontosan akkor, ha P R, ahol P a P logikai fggvny igazsg-
halmaza (1.10. def.).
11.4. Megjegyzs (Parcilis rendezs logikai relcik felett). A 11.13. def. ki-
terjeszthet o logikai relcikra is, ebben az esetben a denilt relci preorder,
amely egy parcilis rendezst generl [Hen 88] .
11.2.3. Monoton lekpezsek tulajdonsgai, xpontok
Az F : R
n
(A) R
n
(B) fggvny monoton, ha X Y F(X) F(Y). A tovb-
biakban F s G jelljenek monoton fggvnyeket: F, G : R
n
(A) R
n
(A).
X-et az F lekpezs xpontjnak nevezzk, ha F(X) = X.
11.1. Ttel. Teljes hl felett minden monoton fggvnynek van legkisebb s leg-
nagyobb xpontja [Par 79].
148 11. FEJEZET. MATEMATIKAI ESZKZK
a) F legkisebb xpontja Y : F(Y) =
T
Y[F(Y) Y, (rviden: F),
b) xpont indukci legkisebb xpontra: ha F(Z) Z, akkor F Z,
c) F(F) = F,
d) F legnagyobb xpontja: X : G(X) =
S
X[X G(X), (rviden: G),
e) xpont indukci legnagyobb xpontra: ha Z G(Z), akkor Z G,
f) G(G) =G.
12. fejezet
sszefoglals
A dolgozat prhuzamos programok tervezsnek egy olyan matematikai
modelljt adja meg, amely kiterjesztse a nemdeterminisztikus szekvencilis
programok relcis alap modelljnek [Ft 83] s egyben relcis szeman-
tikai modellje a UNITY logiknak [Cha Mis 89]. A modell tmogatja pr-
huzamos programok szintzist, eszkzkszlete b ovebb, mint a szekvencilis
modell vagy a UNITY-.
A programozsi feladatok megfogalmazsra s megoldsra korbban sikere-
sen alkalmazott mdszereket [Dij 76, Ft Hor 91] a dolgozatban ismertetett ered-
mnyek felhasznlsval prhuzamos programokra is alkalmazhatjuk. A megk-
zelts funkcionlis, ms hasonl prhuzamos programozsi modellekt ol eltr oen
a feladatnak nll szemantikai jelentse van, gy a lpsenknti nomts a fel-
adatok s nem a programok felett rtelmezett relci. Az absztrakt program s
tulajdonsgai a temporlis logikval rokon UNITY logikbl [Cha Mis 89] ismert
programfogalom relcis alap megfogalmazsai.
A modell denilja a specikcis relci, a programozsi feladat, feladat
nomtsa, kiterjesztse, feltteles rtkads, absztrakt prhuzamos program, fel-
adat kiterjesztse, nyitott specikci, utasts s program kiterjesztse, program-
tulajdonsgok, viselkedsi relci, megolds fogalomrendszert. A modell speci-
kcis eszkzeinek kifejez oereje meghaladja a lineris temporlis logika alap
UNITY kifejez oerejt, folyamatok alternatv viselkedsnek speciklsra is al-
kalmas.
Formlisan deniltuk programok szekvencijt, bevezettk a UNITY-b ol is-
mert programkonstrukcikat, az unit s a szuperpozcit. Kimondtunk levezetsi
szablyokat, amelyek segtsgvel a lpsenknti nomts sorn kapott feladatok
megoldsa utn az eredeti feladat megoldst knnyen megadhatjuk.
149
150 12. FEJEZET. SSZEFOGLALS
A modell alapfogalmainak alkalmazst kt programozsi ttel szintzise so-
rn mutattuk be. Az asszociatv m uvelet eredmnyeinek prhuzamos kiszmts-
ra levezetett ttel az egyik leggyakrabban el ofordul feladatosztly esetre nyjt
aszinkron architektrn is hatkonyan implementlhat, veriklt megoldst. Ele-
menknt feldolgozhat fggvnyek eredmnynek prhuzamos kiszmtsra al-
kalmas programozsi ttelt ismereteink szerint a szakirodalomban els oknt a dol-
gozatban ismertetett modellben fogalmaztunk meg.
A modell fogalomrendszere alkalmazhat prhuzamos programozs oktat-
sra
1
. A fogalomrendszerbe knnyen illeszkedik az zenetklds, a szinkron s
aszinkron kommunikci, a csatornavltoz fogalma [Hor 93-96]. Az adatcsator-
ns megoldsi mdszerekre [Cha Mis 89] a modell eszkzeivel levezetett progra-
mozsi ttelt [Hor 93-96] is sikeresen alkalmaztk a gyakorlatban.
Az eredmnyek alkalmazsa sorn megfogalmazsra kerlt egy formlis mo-
dell, amely absztrakt s implementlt programok kapcsolatrendszernek ler-
sra alkalmas [Hor 93-96]. Tbb szakdolgozat foglalkozott azzal a krdssel,
hogy a modellben hogyan adhat meg a tpus fogalma, illetve a UNITY mo-
dellhez hasonlan [Sin 91] hogyan speciklhat osztott objektumok viselkedse
[Fb 94, Gy or 94].
Tovbbi kutatst ignyel a haladsi tulajdonsgok s a programkonstrukcik
viszonya. Kidolgozand osztott objektumok viselkedst megad absztrakt prog-
ramok szintzisnek gyakorlatban is alkalmazhat mdszertana. A modell nem
rendelkezik elegns eszkzkkel vals idej u problmk specikcijra [Car 94].
Nehzsget okoz a kompozicionalits biztostsa vals prhuzamossg esetn [Cha 90].
1
Az asszociatv fggvny kiszmtsnak ttelt eddig mr kb. 200 hallgat alkalmazta a gyakorlatban is sikeresen
konrt feladatok megoldsa sorn.
Fggelk
151
Absztrakt programok megvalstsa C/PVM-ben
Absztrakt programok megvalstshoz a PVM szolgltatsait hasznlhatjuk. A
PVM a Parallel Virtual Machine rvidtse, egy kztes rteg, amely az opercis
rendszer s a felhasznl program kztt helyezkedik el. A PVM feladata, hogy
programozsi nyelvt ol s opercis rendszert ol fggetlen egysges felletet biz-
tostson elosztott programok komponenseinek egyttm ukdshez. A PVM szol-
gltatsait egy fggvnyknyvtron keresztl vehetjk ignybe. A knyvtr leg-
lnyegesebb elemei a pvm_mytid, a pvm_send, a pvm_recv, a pvm_spawn fgg-
vnyek, amelyek segtsgvel egy folyamat bejelentkezhet a PVM rendszerbe,
zenetet kldhet s fogadhat, illetve folymatot indthat. A PVM hasznlathoz
ismernnk kell azt a felletet is, amelyet az opercis rendszer nyjt a programok
fordtshoz, sszeszerkesztshez, futtatshoz. A futtats el ott ssze kell llta-
nunk azon szmtgpek halmazt, amelyen elosztott programunk m ukdni fog.
Az albbiakban a Linux opercis rendszerre jellemz o parancsokat mutatjuk be.
El oszr ltre kell hoznunk a pvm3/bin/LiNUX knyvtrat, ahol a PVM rendszer a
futtathat llomnyokat keresi. A futtathat programot az aimk program segts-
gvel llthatjuk el o egy megfelel o Makefile alapjn. Helyezzk el a forrszve-
get s a make le-t egy alknyvtrban majd adjuk ki az aimk parancsot. A futtat-
hat llomnyra mutat hivatkozsokat helyezzk el a pvm3/bin/LiNUX knyv-
trba. Indtsuk el a PVM konzolt a pvm paranccsal
2
, majd b ovtsk az ignybe
vett szmtgpek halmazt az add szmtgpnv paranccsal. Vgl futtassuk
a programot a spawn -> programnv utastssal. A konzolt a halt utastssal
llthatjuk le.
pvm3/src/hello: hello.c, hello\_other.c, Makefile.aimk
aimk
aimk links
pvm
pvm> spawn -> hello
2
A pvm -nlocalhost paranccsal indthatjuk el a konzolt, ha nincs hlzati sszekttets ms szmtgpekkel.
153
154 ABSZTRAKT PROGRAMOK MEGVALSTSA C/PVM-BEN
pvm> add nyl35
pvm> conf
pvm> halt
Pldaknt bemutatunk egy egyszer u C nyelv u programot, amely PVM egy
printf fggvnyhvsban bejelentkezik a PVM rendszerbe s kirja a sajt folya-
matazonostjt a kperny ore, majd elindt egy msik folyamatot (hello_other)
s zenetet fogad t ole pvm_recv. A kapott zenetet egsz szmknt rtelmezve
kicsomagolja s elhelyezi a num vltozban, majd kirja a kperny ore.
hello.c
#include <stdio.h>
#include "pvm3.h"
int main() {
int tid;
int num;
printf("im t%x\n", pvm_mytid());
pvm_spawn( "hello_other",(char**)0, 0, "", 1, &tid);
pvm_recv(-1, -1);
pvm_upkint(&num,1,1);
printf("from t%x: %d\n", tid, num);
pvm_exit();
return 0;
}
Az elindtott gyernekfolyamat is bejelentkezik a PVMrendszerbe a pvm_mytid
hvssal, majd azonostva azt ot indt folyamatot (pvm_parent) zenetknt el-
kldi ennek a folyamatnak az o szonostjt. Az zenetklds hrom lpsb ol ll,
az zenetkld o puffer inicializlsbl (pvm_initsend), az zenet becsaomago-
lsbl (pvm_pkint) s magbl az zenetkldsb ol (pvm_send).
hello_other.c
#include "pvm3.h"
int main() {
int tid = pvm_mytid();
155
int ptid = pvm_parent();
pvm_initsend(PvmDataDefault);
pvm_pkint(&tid,1,1);
pvm_send(ptid, 1);
pvm_exit();
return 0;
}
Msodik pldnk az asszociatv m uvelet eredmnyt kiszmt absztarkt prog-
ram egy lehetsges C/PVM megvalstsa. A pldaprogramban az adatok egsz
szmok, a m uvelet az sszeads. Az absztrakt program kzvetlenl hivatkozhat a
gs mtrix elemeire, osztott vltozkat hasznl. PVM-ben ez nem lehetsges, a fo-
lyamatok csak zenetek tjn cserlhetnek informcit. Az albbi megvalsts a
8.1. bra minden oszlophoz egy-egy folyamatot rendel hozz, amelyik rendre ki-
szmtja az oszlop elemeit fellr ol lefel. A kvetkez o elem kiszmtshoz min-
dig szksg van az el oz o elemre s egy msik oszlopbl (egy msik folyamattl)
egy tovbbi elemre, ha azt mr meghatroztk. Adatvezrelt megoldst ksztnk,
azaz nem a szksges adatok elkrsre kerl sor, hanem az elkszlt rszered-
mnyek krs nlkl jutnak el azokhoz a folyamatokhoz, amelyeknek szksgk
van r. Az szmtst vgz o folyamatok elejn egsz szmok kldst s fogad-
st megknnyt o segdfggvnyek tallhatak. Az i. folyamat els o lpsben sajt
s a tbbi folyamat azonostjt kapja meg az ot indt szl o folyamattl, majd
ciklusban kld rszeredmnyket s fogad adatokat. Vgl kiirja az els o i szm
sszegt.
assoc.c:
#include <stdio.h>
#include <stdlib.h>
#include "pvm3.h"
void sendInt( int to, int mit ){
pvm_initsend(PvmDataDefault);
pvm_pkint(&mit,1,1);
pvm_send(to,0);
}
int recvInt( int from ){
int data;
156 ABSZTRAKT PROGRAMOK MEGVALSTSA C/PVM-BEN
pvm_recv(from,0);
pvm_upkint(&data,1,1);
return data;
}
void main(){
int tasknum;
int *tids;
int id;
int data;
int t = 1;
pvm_mytid();
pvm_recv(pvm_parent(),0);
pvm_upkint(&tasknum,1,1);
tids = (int *)malloc(1+tasknum*sizeof(int));
pvm_upkint(&tids[1],tasknum,1);
pvm_upkint(&id,1,1);
pvm_upkint(&data,1,1);
while ( ( id+t <= tasknum ) || ( id-t >= 1 ) ) {
if ( id-t >= 1 )
sendInt(tids[id-t],data);
if ( id+t <= tasknum )
data += recvInt(tids[id+t]);
t<<=1;
}
printf("partial sum[%d..%d] =\t%d\n",id,tasknum,data);
pvm_exit();
}
A f oprogram a parancssorbl olvassa be az a vektor elemeit, majd a vektor
mretnek megfelel o szm folyamatot indt. Egy for ciklusban minden gyer-
mekfolyamatot inicializl, elkldve annak sajt s a tbbi folyamat azonostjt,
157
ill. a vektor megfelel o elemt.
#include <stdio.h>
#include <stdlib.h>
#include "pvm3.h"
void main( int argc, char *argv[] ){
int tasknum = argc-1;
if (tasknum>0) {
int i;
int *tids = (int *)malloc(1+tasknum*sizeof(int));
pvm_mytid();
pvm_spawn("assoc",(char **)NULL,
"",tasknum,&tids[1]);
for (i=1;i<=tasknum;i++){
int data = atoi(argv[i]);
pvm_initsend(PvmDataDefault);
pvm_pkint(&tasknum,1,1);
pvm_pkint(&tids[1],tasknum,1);
pvm_pkint(&i,1,1);
pvm_pkint(&data,1,1);
pvm_send(tids[i],0);
}
pvm_exit();
} else fprintf(stderr,
"The numbers are given in the command line!\n");
}
158
Fontosabb ttelek s lemmk
3.1. Az izomora relci ekvivalenciarelci . . . . . . . . . . . . . . . . . 41
3.2. Helyes cmkzs s ekvivalencia . . . . . . . . . . . . . . . . . . . . . 41
3.5. Szuperpozci hatsrelcija . . . . . . . . . . . . . . . . . . . . . . . 44
3.6. Leggyengbb el ofelttel alaptulajdonsgai . . . . . . . . . . . . . . . . 47
3.7. Kiterjeszts s leggyengbb el ofelttel . . . . . . . . . . . . . . . . . . 48
3.8. Kiegszts s leggyengbb el ofelttel . . . . . . . . . . . . . . . . . . 48
3.10. ltalnostott leggyengbb el ofelttel alaptulajdonsgai . . . . . . . . . 49
3.11. Invarinsok konjunkcija . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.12. Invarins konjunkcija kezdetben igaz lltssal . . . . . . . . . . . . . 50
3.13. Az invarins mindig igaz . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.14. Mindig igaz lltsok konjunkcija mindig igaz . . . . . . . . . . . . . 52
3.15. INV
S
(Q) s a Q-bl elrhet o llapotok . . . . . . . . . . . . . . . . . . 52
3.16. Mindig igaz s invarins konjunkcija . . . . . . . . . . . . . . . . . . 52
3.17.
S
s a stabil tulajdonsgok . . . . . . . . . . . . . . . . . . . . . . . . 53
3.18. Az invarinsok stabil tulajdonsgok . . . . . . . . . . . . . . . . . . . 53
3.19.
S
s az invarinsok szigorthatsga . . . . . . . . . . . . . . . . . . 53
3.20.
S
s a legszigorbb invarins . . . . . . . . . . . . . . . . . . . . . . 53
3.21.
S
s a stabil tulajdonsg . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.22.
S
s az invarinsok szigorthatsga . . . . . . . . . . . . . . . . . . 54
3.23.
S
s a legszigorbb invarins . . . . . . . . . . . . . . . . . . . . . . 54
3.24. s
S
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.25.
S
s a stabil tulajdonsg . . . . . . . . . . . . . . . . . . . . . . . . 55
3.26.
S
s az invarinsok szigorthatsga . . . . . . . . . . . . . . . . . . 56
3.27.
S
s a legszigorbb invarins . . . . . . . . . . . . . . . . . . . . . . 56
3.28.
S
egyelem u rszhalmazokra . . . . . . . . . . . . . . . . . . . . . . 56
3.29.
S
jobboldal gyengtse . . . . . . . . . . . . . . . . . . . . . . . . 56
3.30.
S
egyelem u rszhalmazokra . . . . . . . . . . . . . . . . . . . . . . 57
3.31.
S
helyessge s teljessge . . . . . . . . . . . . . . . . . . . . . . . 57
3.32. Fixpont tulajdonsg gyengtse . . . . . . . . . . . . . . . . . . . . . . 59
4.1. Megfelel (inv
h
P)-nek . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2. Megfelel inv
h
-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . . . . 68
159
160 FONTOSABB TTELEK S LEMMK
4.3. Megfelel P
h
Q-nak . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4. Megfelel P
h
Q-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . . 68
4.5. Megfelel (P
h
Q)-nak . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.6. Megfelel P
h
Q-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . . 69
4.7. Megfelel P
h
Q-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . . 69
4.8. Megfelel P
h
Q-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . . 69
4.9. Megfelel P FP
h
-nak INV
S
mellett . . . . . . . . . . . . . . . . . . . 70
4.10. Megfelel FP
h
R-nek . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.11. Megfelel FP
h
R-nek INV
S
mellett . . . . . . . . . . . . . . . . . . . 70
4.12. Program s feladat kiterjesztse . . . . . . . . . . . . . . . . . . . . . . 70
5.1. Invarins felttel felbontsa . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2.
h
nomtsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3. P FP
h
felttel bizonytsa . . . . . . . . . . . . . . . . . . . . . . . 72
5.4. Varinsfggvny alkalmazsa . . . . . . . . . . . . . . . . . . . . . . . 72
5.5.
h
nomtsa varinsfggvny alkalmazsval . . . . . . . . . . . . . 73
5.7. Biztosan xpontba jut . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.8. A xpontfelttel nomtsa . . . . . . . . . . . . . . . . . . . . . . . . 74
6.1. Uni viselkedsi relcija . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2. Uni levezetsi szablya . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.3. Uni s az llapottr rszhalmazai . . . . . . . . . . . . . . . . . . . . 84
6.4. Uni s az llapottr rszhalmazai (2.) . . . . . . . . . . . . . . . . . . 85
6.5. Lokalits ttel - ltalnos alak . . . . . . . . . . . . . . . . . . . . . . . 86
6.6. Szuperpozci viselkedsi relcija . . . . . . . . . . . . . . . . . . . . 87
6.7. Szuperpozci levezetsi szablya . . . . . . . . . . . . . . . . . . . . 88
6.12. Szekvencia viselkedsi relcijrl . . . . . . . . . . . . . . . . . . . . 89
6.13. Szekvencia levezetsi szablya . . . . . . . . . . . . . . . . . . . . . . 90
8.1. Asszociatv m uvelet - a feladat nomtsa . . . . . . . . . . . . . . . . 100
8.3. Asszociatv m uvelet kiszmtsnak ttele I. . . . . . . . . . . . . . . . 101
8.4. Asszociatv m uvelet kiszmtsnak ttele II. . . . . . . . . . . . . . . 104
8.6. Elemenknti feldolgozs - a feladat nomtsa . . . . . . . . . . . . . . 115
8.7. Elemenknti feldolgozs . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.8. Pronknt diszjunkt felbonts - a feladat nomtsa . . . . . . . . . . . 119
8.9. Logaritmikus keress ttele . . . . . . . . . . . . . . . . . . . . . . . . 120
8.10. A prhuzamos elemenknti feldolgozs ttele . . . . . . . . . . . . . . 122
Trgymutat
temezs, 46
prtatlan, 133, 134
felttlenl, 45 (3.23.), 46, 57, 67,
145
gyengn, 46
szigoran, 46
utfelttelre, 46 (3.24.)
llapot, 23 (1.2.)
elrhet o,
elrhet o
llapottmenetfa
cmkzett, 40
ekvivalenciaosztly, 41
generlt, 41
helyesen cmkzett, 41
izomorf, 40 (3.11.)
llapottr, 23 (1.1.), 128, 134
transzformci, 34
tmenetfelttel, 30, 66
rtkads
ltalnos, 39 (3.5.)
egyszer u, 39
feltteles, 40 (3.9.), 46
kiegsztse felttellel, 44 (3.20.),
88
szuperpozcija, 44 (3.21.), 87, 88
szimultn, 39
rtket ad,
vltoz baloldalon
orfelttel, 46, 133
absztrakt program, 38, 40, 42 (3.15.),
66, 128, 133
kiterjesztse, 45 (3.22.), 70, 80, 87
konstrukci,
programkonstrukci, 114
tulajdonsgai, 47
Ada, 37
asszociatv m uvelet, 97
atomicits
durva, 134
nom, 134
biztonsgossgi
felttel, 29, 66, 132
nomtsa, 71
tulajdonsg, 52
biztostja, 28, 29
megfelel, 67 (4.6.), 69
tulajdonsg, 54 (3.31.)
cmkzett llapottmenetfa,
llapottmenetfa
cmkzett tmenetgrf, 128, 135
cmkefggvny, 40, 45
CCS, 135
csatornavltoz, 136
CSP, 37, 136
elrhet o llapot, 42 (3.17.), 51, 52, 65
elemenknt feldolgozhat fggvny, 115
(8.2.)
elkerlhetetlen, 28, 29
161
162 TRGYMUTAT
felttel
nomtsa, 71, 73
felttlenl prtatlan temezs mel-
lett, 57 (3.33.)
megfelel, 67 (4.8.)
tulajdonsg, 55 (3.32.)
esemnysorozat, 135
fggvny, 24 (1.8.)
elemenknt feldolgozhat,
elemenknt
logikai,
logikai fggvny
monoton, 147
parcilis, 24
feladat, 23, 24, 27, 30 (2.1.), 65, 68, 134
absztrakt, 34
ekvivalens, 33 (2.5.)
nomtsa, 32, 33 (2.4.), 71, 74, 100,
115, 119
kiterjesztse, 32 (2.3.), 70, 83
konstrukci, 19, 79
egyests, 83 (6.4.)
xpont
altr felett, 58
biztosan xpontba jut, 28, 29, 72,
102, 103
felttel bizonytsa, 72
megfelel, 67 (4.10.), 70
tulajdonsg, 59 (3.36.)
felttel, 28, 29, 104
nomtsa, 74
megfelel, 67 (4.12.), 70
xpontok halmaza, 58, 58 (3.34.),
102
lekpezs, 147
legnagyobb, 147
llegkisebb, 147
teljesl xpontban, 28, 100
tulajdonsg, 59 (3.35.)
folyamat, 43
haladsi
felttel, 29, 67
nomtsa, 71
tulajdonsg, 53, 132
hatsrelci, 38 (3.2.), 40, 58, 128, 134
feltteles rtkads, 46
hatvnyhalmaz, 24 (1.6.)
helyes, 134
helyettestsi axima, 91
igaz kezdetben, 28
igazsghalmaz
logikai fggvny, 24 (1.10.), 46
relci, 25
interferencia, 83
mentessg, 131
invarins, 28, 29, 49, 98, 115, 120, 132
felttel, 103
nomtsa, 71
legszigorbb, 49, 50 (3.28.), 52
megfelel, 66 (4.2.), 68
tulajdonsg, 49 (3.27.), 100
invarins tulajdonsg, 102
iteratv program, 132
krnyezeti el ors, 30
kezdeti felttel, 2830
kompozcionlis
modell, 79
rszlegesen, 80
kompozicionalits, 59, 128, 150
konkrt program, 57
konstans felttel, 29
kontrollvltoz, 132
TRGYMUTAT 163
lpsenknti nomts, 98, 114, 133, 149
leggyengbb el ofelttel, 47, 47 (3.25.),
66, 132
ltalnostsa, 49
legszigorbb utfelttel, 47 (3.25.)
levezetsi szably, 71, 83, 88, 90, 121,
128, 136
logika
fggvny
kiterjesztse, 87
logikai
sszekt ojelek, 24
fggvny, 24, 47, 58
igazsghalmaza,
igazsghalmaz
kiterjesztse, 32 (2.2.), 48
parcilis rendezs, 147 (11.13.)
relci, 24
parcilis rendezs, 147 (11.13.)
lokalits, 85
megengedett konstrukcis m uvelet, 79
megfelel, 32, 65, 71
biztostja,
biztostja
biztosan xpontba jut,
xpont
elkerlhetetlen,
elkerlhetetlen
xpont felttel,
xpont
invarins,
invarins
stabil feltve, hogy,
stabil feltve, hogy
megolds, 32, 32, 65, 65 (4.1.), 136
invarins mellett, 68 (4.14.)
mindig igaz, 68
tulajdonsg, 51 (3.29.), 66
modlis logika, 135
modell, 19, 80
kompozcionlis,
kompozcionlis
programozsi, 19, 19
relcis, 19
modul, 43
monoton lekpezs, 147
nyelv, 135
nyitott specikci, 83, 84, 86
prtatlan temezs,
temezs
paramtertr, 30 (2.1.)
parcilis helyessg, 134
parcilis rendezs, 135, 147 (11.12.)
Partially Ordered Multisets, 135
peremfelttel, 30, 67
processzor
logikai, 43
program,
absztrakt program
konstrukci
emi, 79
programkonstrukci, 19, 128, 135
szuperpozci,
szuperpozci
szzekvencia,
szekvencia
uni,
uni
programozsi ttel, 97, 134, 150
programtulajdonsg
loklis,
lokalits
reduklt, 39
164 TRGYMUTAT
relci, 23 (1.3.), 128, 139
rtelmezsi tartomnya, 23
oskpe, 25
binris, 23, 134, 139
rtke, 23
determinisztikus, 24
fgg osgi, 134
fggetlen, 26 (1.20.)
igazsghalmaza,
igazsghalmaz
inverz kpe, 24
kiterjesztse, 40
kompozic, 25
logikai,
logikai relci
nem korltos lezrtja, 45
nem vltoztatja meg, 26 (1.21.)
specikcis, 27
szigor kompozci, 25
tranzitv diszjunktv lezrtja, 25 (1.16.),
55
SKIP, 39
sorbarendezhet osg, 43
specikci
nomtsa, 33
nyitott, 34
specikcis felttel, 27, 30, 65, 68, 71
specikcis relci, 27, 30
stabil
tulajdonsg, 53
stabil feltve, hogy, 28, 29
megfelel, 66 (4.4.), 68
tulajdonsg, 53 (3.30.)
stabilitsi felttel, 29
szekvencia, 83, 88 (6.7.), 121, 122
szemantika, 59
sszefslses, 43, 83, 95, 127, 135
aximatikus, 128
elgaz idej u, 95
ellentmondsmentes, 129
id oben elgaz, 127
id oben lineris, 127
ler, 59, 128, 135, 136
m uveleti, 42, 128, 136
relcis, 134
statikus, 95
teljes, 129
teljesen absztrakt, 129
vals prhuzamossg,
vals prhuzamossg, 127
szinkron prhuzamos, 43
szinkronizcis felttel, 132
szintzis, 132
szuperpozci, 43, 87 (6.5.), 120, 122
rtkadsok,
rtkads
tpusrtkhalmaz, 23 (1.1.)
teljes, 134
Cook-fle relatv, 57
teljes hl, 147
teljesl xpontban, 28
teljesen diszjunkt felbonts, 115 (8.1.)
pronknt, 117
kiegyenslyozott, 117
rszlegesen meghatrozott, 118
temporlis logika, 19, 96
terminl, 134
terminls, 57
terminlsi tulajdonsg, 59
TLA, 136
uni, 43, 80 (6.3.), 95
UNITY, 55, 132, 136, 149
utasts, 38 (3.1.), 46, 47, 128
TRGYMUTAT 165
rtkads,
rtkads
elemi, 39
res, 39
hatsrelci,
hatsrelci, 44
kiterjesztse, 43 (3.19.), 48
nem vltoztatja meg, 39
vltoz, 25 (1.18.), 133
baloldalon, 39 (3.6.), 42
jobboldalon, 39 (3.8.), 42
konstans, 39
paramtertrben, 31
vgrehajtsi t, 42 (3.16.), 45, 46
vgrehajtsi sorozat, 134
vals prhuzamossg, 43, 95, 127
varins fggvny, 59, 72, 72 (5.1.), 73,
99, 119, 120
vetts, 44
vetts altrre, 26 (1.19.)
viselkedsi relci, 59, 59 (3.37.), 66
visszavezets, 104
zrt rendszer, 27
166 TRGYMUTAT
Irodalomjegyzk
[ALRM 83] U.S. Department of Defense: The Programming Language Ada,
Reference Manual. American National Standards Institute, Inc.
ANSI/MIL-STD-1815A-1983, Lecture Notes in Computer Science,
Vol. 155 (Springer, Berlin, 1983).
[And 91] Andrews, G.R.: Concurrent Programming, Principles and Practice.
(Benjamin/Cummings, Redwood City, 1991).
[Bac Ser 90] Back, R.J.R.-Sere, K.: Stepwise Renement of Parallel Algorithms.
Science of Computer Programming, Vol. 13 (1989/90) 133-180.
[Bak War 91] de Bakker, J.W.-Warmerdam, J.H.A.: Four domains for concur-
rency. Theoretical Computer Science Vol. 90 (1991) 127-149.
[Ben 88] Benthem, J.: Time, Logic and Computation. In: Linear Time, Bran-
ching Time and Partial Order in Logics an Models for Concurrency,
Lecture Notes in Computer Science, Vol. 354. (Springer, Berlin,
1989) 1-49.
[Best 83] Best, E.: Relational Semantics of Concurrent Programs. In: Formal
Description of Programming Concepts, II. (1983) 431-452.
[Car 94] Carruth, A.: Real-Time Unity. Technical Report TR94-10, Univer-
sity of Texas at Austin, ftp://ftp.cs.utexas.edu. (March 29, 1994).
[Cha Mis 89] Chandy, K.M.-Misra, J.: Parallel Program Design: A Foundation.
(Addison-Wesley, 1988, 1989).
[Cha 90] Chandy, K.M.: Reasoning about continuous systems. Science of
Computer Programming, Vol. 14 (1990) 117-132.
167
168 IRODALOMJEGYZK
[Col 94] Collette, P.: Composition of assumtion-commitment specications
in a UNITY style. Science of Computer Programming, Vol. 23
(1994) 107-125.
[Dij 75] Dijkstra, E.W.: Guarded Commands, Nondeterminacy and For-
mal Derivation of Programs. Communications of the ACM, Vol. 18,
Num. 8 (1975) 453-457.
[Dij 76] Dijkstra, E.W.: A Discipline of Programming. (Prentice-Hall,
1976).
[Dij Sch 89] Dijkstra, E.W.-Scholten, C.S.: Predicate Calculus and ProgramSe-
mantics. (Springer, New York, 1989).
[Eme Sri 88] Emerson, E.A.-Srinivasan, J.: Branching Time Temporal Logic. In:
Linear Time, Branching Time and Partial Order in Logics and Mo-
dels for Concurrency, Lecture Notes in Computer Science, Vol. 354
(Springer, Berlin, 1989) 123-172.
[Fb 94] Fbin G.: Prhuzamos algoritmusok specikcija osztott objek-
tumokat hasznl rendszerek esetn UNITY mdszerrel. I. Osztott
binris fk. Szakdolgozat, ELTE, Informatika Tanszkcsoport. (T-
mavezet o: Horvth Z.) 1994.
[Flo Suz 81] Flon, L., Suzuki, N.: The Total Correctness of Parallel Programs.
SIAM Journal of Computing, Vol. 10, No. 2 (May 1981) 227-246.
[Ft 83] Fthi .: Bevezets a programozshoz. Egyetemi jegyzet (ELTE,
TTK, Budapest, 1983).
[Ft 86] Fthi .: Bevezets a programozshoz s Programozs c. el oadsa-
inak anyaga (1986-1987).
[Ft 88] Fthi .: A Mathematical Approach to Programming. Annales Uni.
Sci. Budapest de R. Etvs Nom. Sectio Computatorica, Tom. IX.
(1988) 105-114.
[Ft Hor 91] Fthi .- Horvth Z.: The Weakest Precondition and the Theorem
of the Specication. In: Koskimies,K.-Rih,K., ed., Proceedings
IRODALOMJEGYZK 169
of the Second Symposium on Programming Languages and Soft-
ware Tools, Pirkkala, Finland, August 21-23, 1991, Report A-1991-
5, University of Tampere, Department of Computer Science (Au-
gust, 1991) 39-47.
[Ft Hor 94] Fthi .- Horvth Z.: A Parallel Elementwise Processing. In:
Ferenczi Sz.-Kacsuk P., ed., Proceedings of the 2nd Austrian-
Hungarian Workshop on Transputer Applications, September 29-
October 1, 1994, Budapest, Hungary, KFKI-1995-2/M,N Report
(1995) 273-282.
[Ft Hor Kozs 95] Fthi .- Horvth Z.- Kozsik T.: Parallel Elementwise Proces-
sing A Novel Version. In: Varga L., ed., Proceedings of the Fourth
Symposiumon Programming Languages and Software Tools, Viseg-
rd, Hungary, June 9-10, 1995 (1995) 180-194. s Annales Uni. Sci.
Budapest de R. Etvs Nom. Sectio Computatorica (1996).
[Ft Ny 90] Fthi .-Nykyn Gaizler J.: Some Problems of Updating Sequen-
tial Files. To appear.
[Fra 86] Franczez, N.: Fairness. (Springer, New York, 1986).
[Fro 96] Frohner .: Prhuzamos programozst tmogat nyelvi eszkzk
sszehasonltsa. Diplomamunka, ELTE, Informatika Tanszkcso-
port. (Tmavezet o: Horvth Z.) 1996.
[Gy or 94] Gy orffy L.: Prhuzamos algoritmusok specikcija osztott objek-
tumokat hasznl rendszerek esetn UNITY mdszerrel. II. Hat-
vnylistk. Diplomamunka, ELTE, Informatika Tanszkcsoport.
(Tmavezet o: Horvth Z.) 1995.
[Hen 88] Hennessy, M.: Algebraic Theory of Processes. (The MIT Press,
1988).
[Hoa 78] Hoare, C.A.R.: Communicating Sequential Processes, Communi-
cations of the ACM Vol. 21, Num. 8 (1978) 666-677.
[Hoa 85] Hoare, C.A.R.: Communicating Sequential Processes. (Prentice-
Hall Int., Englewood Cliffs, NJ, 1985).
170 IRODALOMJEGYZK
[Hor 88] Horvth Z.: On-line folyamatirnyt szakrt oi rendszerek fejlesz-
tse. In: Fekete I., ed., Szakrt oi rendszrek az ipari folyamatirny-
tsban, kutatsi jelents, ELTE, TTK, ltalnos Szmtstudom-
nyi Tanszk (1988).
[Hor 90] Horvth Z.: Fundamental relation operations in the mathematical
models of programming. Annales Uni. Sci. Budapest de R. Et-
vs Nom. Sectio Computatorica, Tom. X. (1990) 277-298. {MR
92e68113 68Q55 68Q60}.
[Hor 93] Horvth Z.: The Weakest Precondition and the the Specication of Parallel
Programs. In: Proceedings of the Third Symposium on Programming Lan-
guages and Software Tools, Kariku, Estonia, August 21-23, 1993 (1993)
24-33.
[Hor 93-96] Horvth Z.: Prhuzamos programozs alapjai. Jegyzet. El okszletben.
(ftp://augusta.inf.elte.hu/pub/parh) 1993-1996.
[Hor 95] Horvth Z.: Parallel asynchronous computation of the values of an asso-
ciative function. Acta Cybernetica, Vol. 12, No. 1, Szeged (1995) 83-94.
[Hor 95a] Horvth Z.: The Formal Specication of a Problem Solved by a Parallel
Program a Relational Model. In: Varga L., ed., Proceedings of the Fourth
Symposium on Programming Languages and Software Tools, Visegrd,
Hungary, June 9-10, 1995 (1995) 165-179. s Annales Uni. Sci. Budapest
de R. Etvs Nom. Sectio Computatorica (1996).
[Hor Koz 94] Horvth Z.- Kozma L.: Parallel Programming Methodology. In: Bogdany
J.-Vesztergombi G., ed., Workshop on Parallel Processing. Technology
and Applications. Budapest, Hungary, 10-11 February, 1994, KFKI-94-
09/M,N Report (1994) 57-65.
[Iv 03] Ivnyi A.: Prhuzamos algoritmusok. ELTE Etvs Kiad, 2003.
[Jr 92] Jrvinen, H-M.: The Design of a Specication Language for Reactive Sys-
tems. Thesis for the degree of Doctor of Technology, Tampere University
of Technology, Publications 95, Tampere, 1992.
[Jut Kna Rao 89] Jutla, C.S., Knapp, E., Rao, J. R.: APredicate Transformer Approach to
Semantics of Parallel Programs. In: Proc. 8th Ann. ACMSIGACT/SIGOPS
Symposyum on Principles of Distributed Computing, Edmonton, Alberta,
Canada, August 14-16, 1989 (1989) 249-263.
IRODALOMJEGYZK 171
[Kna 90] Knapp, E.: A Predicate Transformer for Progress. Information Processing
Letters, Vol. 33 (1989/90) 323-330.
[Kna 92] Knapp, E.: Derivation of concurrent programs: two examples. Science of
Computer Programing, Vol. 19 (Oct. 1992) 1-23.
[Koz 94] Kozma L.: Synthesizing Methods of Parallel Systems. An Overview. In:
Proceedings of P94, Technical University Budapest, Hungary (1994)
586-.
[Koz Var 03] Kozma L., Varga L.: A szoftvertechnolgia elmleti krdsei. ELTE Et-
vs Kiad, 2003.
[Kr 87] Krger, F.: Temporal Logic of Programs. (Spriger, 1987).
[Lam 77] Lamport, L.: Proving the Correctness of Multiprocess Programs, IEEE
Transactions on Software Engeneering, Vol. SE-3, No., 2 (March 1977)
125-143.
[Lam 90] Lamport, L.: win and sin: Predicate Transformers for Concurrency. ACM
Transactions on Programming Languages and Systems, Vol. 12, No. 3
(July 1990) 396-428.
[Lam 91] Lamport, L.: The Temporal Logic of Actions. Technical Report SRC Re-
search Number TR79, Digital Equipment Corporation, Systems Research
Center, Palo Alto, CA, ftp: gatekeeper.dec.com: pub/DEC/SRC/research-
reports (December 1991).
[Lam Lyn 90] Lamport, L.-Lynch, N.: Distributed Computing Models and Methods. In:
van Leeuwen, ed., Handbook of Computer Science, vol. B (Elsevier, Ams-
terdam, 1990) 1157-1199.
[Lam Sin 79] van Lamsweerde, A., Sintzoff, M.: Formal Derivation of Strongly Correct
Concurrent Programs. Acta Informatica, Vol. 12, No. 1 (1979) 1-31.
[Lav 78] Laventhal, M.: Synthesis of Synchronization Code for Data Abstractions.
Ph.D. Thesis (MIT, 1978).
[Loy Vor 90] Loyens, L.D.J.C.-van de Vorst, J.G.G.: Two Small Parallel Programming
Exercises. Science of Computer Programming, Vol. 15 (1990) 159-169.
[Luk Sne 92] Lukkien, J., van de Snepscheut J.,L.,A.: Weakest Preconditions for Prog-
ress. Formal Aspects of Computing, Vol. 4 (1992) 195-236.
172 IRODALOMJEGYZK
[Lyn 02] Lynch, N.,A.: Osztott algoritmusok. Kiskapu Kiad, 2002.
[Maz 89] Mazurkiewicz, A.: Basic Notions of Trace Theory. In: Linear Time, Bran-
ching Time and Partial Order in Logics an Models for Concurrency, Lec-
ture Notes in Computer Science, Vol. 354. (Springer, Berlin, 1989) 285-
362.
[Mil 89] Milner, R.: Communication and Concurrency. (Prentice Hall, 1989).
[UN 88-93] Misra, J., et al.: Notes on UNITY, 1988-1993., The University of Texas,
Austin, ftp://ftp.cs.utexas.edu.
[Mis 01] Misra, J.: A Discipline of Multiprogramming - Programming Theory for
Distributed Applications, Springer, New York, 2001.
[Mor 87] Morris, J.,M.: A Theoretical Basis for Stepwise Renement and the Prog-
ramming Calculus. Science of Computer Programming, Vol. 9 (1987) 287-
306.
[Mor 90] Morris, J.,M.: Temporal Predicate Transformers and Fair Termination.
Acta Informatica, Vol. 26, 287-313, 1990.
[Mak Ver 91] Mak, R.H., Verhoeff, T.: Classication of Models, Lecture Notes on Pro-
cess Models, TU Eindhoven, manuscript, 1991.
[Mel 87] Melliar-Smyth, P.M.: Extending Interval Logic to Real Time Systems,
Lecture Notes in Computer Science, Vol. 398 (1987) 224-242.
[Owi Gri 76] Owiczki, S.S., Gries, D.: An Axiomatic Proof Technique for Parallel
Programs. Acta Informatica, Vol. 6, 319-340, 1976.
[Pac 92] Pachl, J.: A simple proof of a completeness result for leads-to in the
UNITY logic. Information Processing Letters, Vol. 41 (1992) 35-38.
[Par 79] Park, D.: On the semantics of fair parallelism In LNCS 86, pp 504-526.
Springer 1980.
[Psz 93] Psztorn Varga K.: Logikai alapozs alkalmazsokhoz. Matematikai
logika - szmtstudomny. Egyetemi jegyzet, ELTE, TTK (Budapest,
1992).
[Pra 94] Prasetya, I.S.W.B.: Error in the UNITY Substitution Rule for Subscribed
Operators. Formal Aspects of Computing, Vol. 6 (1994) 466-470.
IRODALOMJEGYZK 173
[Pra 86] Pratt, V.: Modeling Concurrency with Partial Orders. International Jour-
nal of Parallel Programing, Vol. 15, No. 1 (1986) 33-71.
[Qui 87] Quinn, M.,J.: Designing Efcient Algorithms for Parallel Computers.
(McGraw-Hill, Inc., 1987).
[Rcz 92] Rcz .: A Temporal Logic Specication of a Transaction Manager. Ph.D.
Thesis, ELTE (1992) /in Hungarian/
[Rao 95] Rao, J.,R.: Extensions of the UNITY Methodology, Lecture Notes in Com-
puter Science, Vol. 908. (Springer, 1995).
[San 91] Sanders, B.A.: Eliminating the substitution axiom from the UNITY logic.
Formal Aspects of Computing, Vol. 3 (1991) 189-205.
[Sin 91] Singh, A.,K.: Specication of concurrent objects using auxiliary variables.
Science of Computer Programming, Vol. 16 (1991) 49-88.
[Tan Ste 02] Tanenbaum, A.,S., van Steen, M.: Distributed Systems - Pronciples and
Paradigms. Prentice Hall, 2002.
[Var 81] Varga L.: Programok analzise s szintzise. (Akadmiai Kiad, Budapest,
1981).
[WRMP 95] Workgroup on Relational Models of Programming Fthi . and Fekete
I.-Gregorics T.-Horvth Z.- Koncz-Nagy M.-Kozics S.-Nyky-Gaizler J.-
Sike S.-Steingart F.-T oke P.- Vargyas M.-Venczel T.: Some Concepts of
a Relational Model of Programming. In: Varga L., ed., Proceedings of
the Fourth Symposium on Programming Languages and Software Tools,
Visegrd, Hungary, June 8-14, 1995 (1995) 434-446.
Trgymutat
temezs, 46
prtatlan, 133, 134
felttlenl, 45 (3.23.), 46, 57, 67,
145
gyengn, 46
szigoran, 46
utfelttelre, 46 (3.24.)
llapot, 23 (1.2.)
elrhet o,
elrhet o
llapottmenetfa
cmkzett, 40
ekvivalenciaosztly, 41
generlt, 41
helyesen cmkzett, 41
izomorf, 40 (3.11.)
llapottr, 23 (1.1.), 128, 134
transzformci, 34
tmenetfelttel, 30, 66
rtkads
ltalnos, 39 (3.5.)
egyszer u, 39
feltteles, 40 (3.9.), 46
kiegsztse felttellel, 44 (3.20.),
88
szuperpozcija, 44 (3.21.), 87, 88
szimultn, 39
rtket ad,
vltoz baloldalon
orfelttel, 46, 133
absztrakt program, 38, 40, 42 (3.15.),
66, 128, 133
kiterjesztse, 45 (3.22.), 70, 80, 87
konstrukci,
programkonstrukci, 114
tulajdonsgai, 47
Ada, 37
asszociatv m uvelet, 97
atomicits
durva, 134
nom, 134
biztonsgossgi
felttel, 29, 66, 132
nomtsa, 71
tulajdonsg, 52
biztostja, 28, 29
megfelel, 67 (4.6.), 69
tulajdonsg, 54 (3.31.)
cmkzett llapottmenetfa,
llapottmenetfa
cmkzett tmenetgrf, 128, 135
cmkefggvny, 40, 45
CCS, 135
csatornavltoz, 136
CSP, 37, 136
elrhet o llapot, 42 (3.17.), 51, 52, 65
elemenknt feldolgozhat fggvny, 115
(8.2.)
elkerlhetetlen, 28, 29
174
TRGYMUTAT 175
felttel
nomtsa, 71, 73
felttlenl prtatlan temezs mel-
lett, 57 (3.33.)
megfelel, 67 (4.8.)
tulajdonsg, 55 (3.32.)
esemnysorozat, 135
fggvny, 24 (1.8.)
elemenknt feldolgozhat,
elemenknt
logikai,
logikai fggvny
monoton, 147
parcilis, 24
feladat, 23, 24, 27, 30 (2.1.), 65, 68, 134
absztrakt, 34
ekvivalens, 33 (2.5.)
nomtsa, 32, 33 (2.4.), 71, 74, 100,
115, 119
kiterjesztse, 32 (2.3.), 70, 83
konstrukci, 19, 79
egyests, 83 (6.4.)
xpont
altr felett, 58
biztosan xpontba jut, 28, 29, 72,
102, 103
felttel bizonytsa, 72
megfelel, 67 (4.10.), 70
tulajdonsg, 59 (3.36.)
felttel, 28, 29, 104
nomtsa, 74
megfelel, 67 (4.12.), 70
xpontok halmaza, 58, 58 (3.34.),
102
lekpezs, 147
legnagyobb, 147
llegkisebb, 147
teljesl xpontban, 28, 100
tulajdonsg, 59 (3.35.)
folyamat, 43
haladsi
felttel, 29, 67
nomtsa, 71
tulajdonsg, 53, 132
hatsrelci, 38 (3.2.), 40, 58, 128, 134
feltteles rtkads, 46
hatvnyhalmaz, 24 (1.6.)
helyes, 134
helyettestsi axima, 91
igaz kezdetben, 28
igazsghalmaz
logikai fggvny, 24 (1.10.), 46
relci, 25
interferencia, 83
mentessg, 131
invarins, 28, 29, 49, 98, 115, 120, 132
felttel, 103
nomtsa, 71
legszigorbb, 49, 50 (3.28.), 52
megfelel, 66 (4.2.), 68
tulajdonsg, 49 (3.27.), 100
invarins tulajdonsg, 102
iteratv program, 132
krnyezeti el ors, 30
kezdeti felttel, 2830
kompozcionlis
modell, 79
rszlegesen, 80
kompozicionalits, 59, 128, 150
konkrt program, 57
konstans felttel, 29
kontrollvltoz, 132
176 TRGYMUTAT
lpsenknti nomts, 98, 114, 133, 149
leggyengbb el ofelttel, 47, 47 (3.25.),
66, 132
ltalnostsa, 49
legszigorbb utfelttel, 47 (3.25.)
levezetsi szably, 71, 83, 88, 90, 121,
128, 136
logika
fggvny
kiterjesztse, 87
logikai
sszekt ojelek, 24
fggvny, 24, 47, 58
igazsghalmaza,
igazsghalmaz
kiterjesztse, 32 (2.2.), 48
parcilis rendezs, 147 (11.13.)
relci, 24
parcilis rendezs, 147 (11.13.)
lokalits, 85
megengedett konstrukcis m uvelet, 79
megfelel, 32, 65, 71
biztostja,
biztostja
biztosan xpontba jut,
xpont
elkerlhetetlen,
elkerlhetetlen
xpont felttel,
xpont
invarins,
invarins
stabil feltve, hogy,
stabil feltve, hogy
megolds, 32, 32, 65, 65 (4.1.), 136
invarins mellett, 68 (4.14.)
mindig igaz, 68
tulajdonsg, 51 (3.29.), 66
modlis logika, 135
modell, 19, 80
kompozcionlis,
kompozcionlis
programozsi, 19, 19
relcis, 19
modul, 43
monoton lekpezs, 147
nyelv, 135
nyitott specikci, 83, 84, 86
prtatlan temezs,
temezs
paramtertr, 30 (2.1.)
parcilis helyessg, 134
parcilis rendezs, 135, 147 (11.12.)
Partially Ordered Multisets, 135
peremfelttel, 30, 67
processzor
logikai, 43
program,
absztrakt program
konstrukci
emi, 79
programkonstrukci, 19, 128, 135
szuperpozci,
szuperpozci
szzekvencia,
szekvencia
uni,
uni
programozsi ttel, 97, 134, 150
programtulajdonsg
loklis,
lokalits
reduklt, 39
TRGYMUTAT 177
relci, 23 (1.3.), 128, 139
rtelmezsi tartomnya, 23
oskpe, 25
binris, 23, 134, 139
rtke, 23
determinisztikus, 24
fgg osgi, 134
fggetlen, 26 (1.20.)
igazsghalmaza,
igazsghalmaz
inverz kpe, 24
kiterjesztse, 40
kompozic, 25
logikai,
logikai relci
nem korltos lezrtja, 45
nem vltoztatja meg, 26 (1.21.)
specikcis, 27
szigor kompozci, 25
tranzitv diszjunktv lezrtja, 25 (1.16.),
55
SKIP, 39
sorbarendezhet osg, 43
specikci
nomtsa, 33
nyitott, 34
specikcis felttel, 27, 30, 65, 68, 71
specikcis relci, 27, 30
stabil
tulajdonsg, 53
stabil feltve, hogy, 28, 29
megfelel, 66 (4.4.), 68
tulajdonsg, 53 (3.30.)
stabilitsi felttel, 29
szekvencia, 83, 88 (6.7.), 121, 122
szemantika, 59
sszefslses, 43, 83, 95, 127, 135
aximatikus, 128
elgaz idej u, 95
ellentmondsmentes, 129
id oben elgaz, 127
id oben lineris, 127
ler, 59, 128, 135, 136
m uveleti, 42, 128, 136
relcis, 134
statikus, 95
teljes, 129
teljesen absztrakt, 129
vals prhuzamossg,
vals prhuzamossg, 127
szinkron prhuzamos, 43
szinkronizcis felttel, 132
szintzis, 132
szuperpozci, 43, 87 (6.5.), 120, 122
rtkadsok,
rtkads
tpusrtkhalmaz, 23 (1.1.)
teljes, 134
Cook-fle relatv, 57
teljes hl, 147
teljesl xpontban, 28
teljesen diszjunkt felbonts, 115 (8.1.)
pronknt, 117
kiegyenslyozott, 117
rszlegesen meghatrozott, 118
temporlis logika, 19, 96
terminl, 134
terminls, 57
terminlsi tulajdonsg, 59
TLA, 136
uni, 43, 80 (6.3.), 95
UNITY, 55, 132, 136, 149
utasts, 38 (3.1.), 46, 47, 128
178 TRGYMUTAT
rtkads,
rtkads
elemi, 39
res, 39
hatsrelci,
hatsrelci, 44
kiterjesztse, 43 (3.19.), 48
nem vltoztatja meg, 39
vltoz, 25 (1.18.), 133
baloldalon, 39 (3.6.), 42
jobboldalon, 39 (3.8.), 42
konstans, 39
paramtertrben, 31
vgrehajtsi t, 42 (3.16.), 45, 46
vgrehajtsi sorozat, 134
vals prhuzamossg, 43, 95, 127
varins fggvny, 59, 72, 72 (5.1.), 73,
99, 119, 120
vetts, 44
vetts altrre, 26 (1.19.)
viselkedsi relci, 59, 59 (3.37.), 66
visszavezets, 104
zrt rendszer, 27
A dolgozat szerkesztse s szedse
L
A
T
E
X-ben kszlt.
c _Horvth Zoltn, 2005.

You might also like