PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK

Hasonló dokumentumok
5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Bevezetés a programozáshoz I. Feladatok

, &!!! )! ),!% ), &! )..! ). 7!# &!!,!! 6 ) &! & 6! ) &!! #! 7! ( % ) ) 0!! ) & 6 # &! #! 7.!#! 9 : %!!0!

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

(2) A R. 3. (2) bekezdése helyébe a következő rendelkezés lép: (2) A képviselő-testület az önkormányzat összes kiadását

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

A digitális számítás elmélete

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria I.

3. előadás. Programozás-elmélet. A változó fogalma Kiterjesztések A feladat kiterjesztése A program kiterjesztése Kiterjesztési tételek Példa

Az F# nyelv erőforrásanalízise

Feszített vasbeton gerendatartó tervezése költségoptimumra

3. Strukturált programok

Programozási Módszertan definíciók, stb.

Fejezetek az abszolút geometriából 6. Merőleges és párhuzamos egyenesek

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

Soukup Dániel, Matematikus Bsc III. év cím: Témavezető: Szentmiklóssy Zoltán, egyetemi adjunktus

Matematikai logika. Nagy Károly 2009

Fogaskerék hajtások I. alapfogalmak

ELŐFESZÍTETT VASBETON TARTÓ TERVEZÉSE AZ EUROCODE SZERINT

FELADATOK A. A feladatsorban használt jelölések: R + = {r R r>0}, R = {r R r < 0}, [a; b] = {r R a r b}, ahol a, b R és a b.

Lineáris Algebra gyakorlatok

Válasz Szőnyi Tamásnak az Optimális térlefedő kódok kutatása című doktori értekezés opponensi bírálatára

Bevezetés az informatikába

Az optikai jelátvitel alapjai. A fény két természete, terjedése

Lineáris algebra I. Kovács Zoltán. Előadásvázlat (2006. február 22.)

Elektronika 2. TFBE1302

BEVEZETÉS AZ ÁBRÁZOLÓ GEOMETRIÁBA

Kockázati folyamatok. Sz cs Gábor. Szeged, szi félév. Szegedi Tudományegyetem, Bolyai Intézet

A matematika alapjai. Nagy Károly 2014

PRÓBAÉRETTSÉGI MATEMATIKA május-június SZÓBELI EMELT SZINT. Tanulói példány. Vizsgafejlesztő Központ

Dr. Jelasity Márk. Mesterséges Intelligencia I. Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin

választással azaz ha c 0 -t választjuk sebesség-egységnek: c 0 :=1, akkor a Topa-féle sebességkör teljes hossza 4 (sebesség-)egységnyi.

Számítástudomány matematikai alapjai segédlet táv és levelező

Lineáris algebrai módszerek a kombinatorikában

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria V.

Egy emelt szintű érettségi feladat kapcsán Ábrahám Gábor, Szeged

Széchenyi István Egyetem, 2005

Mikrohullámok vizsgálata. x o

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Mesterséges Intelligencia I. (I602, IB602)

Bizonytalanság Valószín ség Bayes szabály. Bizonytalanság. November 5, Bizonytalanság

SZILÁRDSÁGTAN A minimum teszt kérdései a gépészmérnöki szak egyetemi ágon tanuló hallgatói részére (2004/2005 tavaszi félév, szigorlat)

A matematika alapjai 1 A MATEMATIKA ALAPJAI. Pécsi Tudományegyetem, 2006

6 x 2,8 mm AGYAS LÁNCKEREKEK 04B - 1 DIN ISO/R 606. Osztás 6,0 Bels szélesség 2,8 Görg átmér 4,0

Lektorálták: Dr. Kincses János (JATE) Dr. Nagy Péter (KLTE)

Debrecen. Bevezetés A digitális képfeldolgozás közel hetven éves múlttal rendelkezik. A kezdeti problémák

Tómács Tibor. Matematikai statisztika

Energetikai minőségtanúsítvány összesítő

Függvény deriváltja FÜGGVÉNY DERIVÁLTJA - DIFFERENCIÁLHÁNYADOS. lim határértékkel egyenlő, amennyiben az létezik ( lásd Fig. 16).

A = fx j P (x) igazg ; A = fx j 1 x 7; x prímszámg : A [ B = fx j x 2 A, vagy x 2 Bg ; [a::b] := [a; b] \ Z

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

MATEMATIKA 9. osztály Segédanyag 4 óra/hét

Előadó: Dr. Bukovics Ádám

Munkafüzet megoldások 7. osztályos tanulók számára. Makara Ágnes Bankáné Mező Katalin Argayné Magyar Bernadette Vépy-Benyhe Judit

Villamos kapcsolókészülékek BMEVIVEA336

Bevezető Mi a statisztika? Mérés Feldolgozás Adatok rendezése Adatok jellemzése Időbeli elemzés Feladatok. Statisztika I.

Algoritmusok. Hogyan csináljam?

100% BIO Natur/Bio kozmetikumok és testápolás

86 MAM112M előadásjegyzet, 2008/2009

Debreceni Egyetem, Közgazdaság- és Gazdaságtudományi Kar. Feladatok a Gazdasági matematika I. tárgy gyakorlataihoz. Halmazelmélet

Információs Technológia

(anyagmérnök nappali BSc + felsőf. szakk.) Oktatók: Dr. Varga Péter ETF (előtan. feltétel): ---

2. Hatványozás, gyökvonás

Halmazelmélet. 2. fejezet 2-1


Mikroökonómia I. ELTE TáTK Közgazdaságtudományi Tanszék. 6. hét PREFERENCIÁK, HASZNOSSÁG 2. RÉSZ

MATEMATIKA ÍRÁSBELI ÉRETTSÉGI-FELVÉTELI FELADATOK május 19. du. JAVÍTÁSI ÚTMUTATÓ

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

E L Ő T E R J E S Z T É S a Képviselőtestület szeptember 18-i ülésére

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. Párosítások

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

Analízis előadás és gyakorlat vázlat

Lineáris algebra - jegyzet. Kupán Pál

OPERÁCIÓKUTATÁS PÉLDATÁR

Matematika emelt szintû érettségi témakörök Összeállította: Kovácsné Németh Sarolta (gimnáziumi tanár)

ANALÍZIS III. ELMÉLETI KÉRDÉSEK

Analízis 1. (BSc) vizsgakérdések Programtervez informatikus szak tanév 2. félév

4. előadás. Vektorok

Funkcionálanalízis az alkalmazott matematikában

Komplex számok szeptember Feladat: Legyen z 1 = 2 3i és z 2 = 4i 1. Határozza meg az alábbi kifejezés értékét!

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Halmazelmélet alapfogalmai

3. Az ítéletlogika szemantikája

VÉGES CIKLIKUS CSOPORTOKNAK VÉGES CIKLIKUS CSOPORTOKKAL VALÓ SZÉTES BVÍTÉSEIRL

Kvantum-hibajavítás II.

7. Szisztolikus rendszerek (Eberhard Zehendner)

Mikroökonómia II. B. ELTE TáTK Közgazdaságtudományi Tanszék. 2. hét TÉNYEZŽPIACOK ÉS JÖVEDELEMELOSZTÁS 2. RÉSZ

Geometriai axiómarendszerek és modellek

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

11. Matematikai statisztika

1. Bevezetés. A számítógéptudomány ezt a problémát a feladat elvégzéséhez szükséges erőforrások (idő, tár, program,... ) mennyiségével méri.

SZAKDOLGOZAT. Takács László

Többváltozós függvények Riemann integrálja

Programozás 3. Dr. Iványi Péter

Analízisfeladat-gyűjtemény IV.

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS II. ***************

Átírás:

PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK Szerkesztette: Bókay Csongor 2012 tavaszi félév Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2012. június 14. Ez a Mű a Creative Commons Nevezd meg! - Ne add el! - Így add tovább! 3.0 Unported Licenc feltételeinek megfelelően szabadon felhasználható. 1

A csillagozott tételeket és definíciókat nem tartalmazza a hivatalos tételsor, ám szükségesek az említett tételek, illetve definíciók felírásához. Szürke háttérrel a piroskeretes tételeket jelöltem. I. rész Alapfogalmak 1. Állapottér I egy véges halmaz; = A i, i I tetszőleges véges vagy megszámlálható halmazok. Ekkor az A = i I A i halmazt állapottérnek, az A i halmazokat pedig típusértékhalmazoknak nevezzük. 2. Feladat Egy F A A relációt feladatnak nevezzük. 3. Program Egy S A A relációt programnak nevezünk, ha 1. D S = A; 2. α R S : α = red(α); 3. a A : α S(a) : α 0 α 1 = a. 4. Programfüggvény A p(s) A A reláció az S A A program programfüggvénye, ha 1. D p(s) = {a A S(a) A }; 2. a D p(s) : p(s)(a) = {b A α S(a) : τ(α) = b}. 5. Megoldás Azt mondjuk, hogy az S program megoldja az F feladatot, ha 1. D F D p(s) ; 2. a D F : p(s)(a) F (a). 6. Szigorítás Azt mondjuk, hogy az F 1 A A feladat szigorúbb, mint az F 2 A A, ha 1. D F2 D F1 ; 2. a D F2 : F 1 (a) F 2 (a). Állítás Ha F 1 szigorúbb, mint F 2, és S megoldása F 1 -nek, akkor S megoldása F 2 -nek is. Állítás Ha S program megoldása F 1 A A feladatnak, az F 2 B B szintén feladat és F 1 = F 2, akkor S megoldása F 2 -nek is. 7. Programozási feladat Legyen A = i I A i. Az (F, P, K) hármast programozási feladatnak nevezzük, ahol F A A egy feladat, P a primitív programok véges halmaza ( S P : S A A ), K a megengedett programkonstrukciók véges halmaza, K K egy az A-n értelmezett programok halmazán értelmezett művelet. Programozási feladat megoldása Az (F, P, K) programozási feladatnak az S program megoldása, ha S a primitív programokból a megengedett konstrukciókkal előállítható, és megoldása F -nek. 2

II. rész Kiterjesztés 8. Feladat kiterjesztése A, B állapotterek; B A. Az F { A A relációt az F B B feladat kiterjesztésének nevezzük, ha F = (x, y) A A ( pr B (x), pr B (y) ) } F. 9. Program kiterjesztése A, B állapotterek; B A; B a B kiegészítő altere A-ra; S B B. Ekkor S A A relációt az S program kiterjesztésének nevezzük, ha a A : S (a) = { α A pr B (α) S(pr B (a)) i D α : pr B (α i ) = pr B (a) }. Állítás A, B állapotterek; B A; B a B kiegészítő altere A-ra; S B B ; S az S kiterjesztése A-ra. Ekkor S program. 10. Programok ekvivalenciája * S 1 A 1 A 1, S 2 A 2 A 2 programok; B A 1 B A 2. Azt mondjuk, hogy az S 1 ekvivalens S 2 -vel B-n, ha pr B (p(s 1 )) = pr B (p(s 2 )). Állítás Egy program kiterjesztése és az eredeti program az eredeti állapottéren ekvivalens. 11. Bővített identitás * B A; B a B kiegészítő altere A-ra, G A A reláció. A G bővített identitás B felett, ha (a, a ) G : a A : (a, a ) G pr B (a) = pr B (a ) pr B (a ) = pr B (a ). 12. Vetítéstartás * B A; G A A feladat. A G vetítéstartó B felett, ha a 1, a 2 D G : ( pr B (a 1 ) = pr B (a 2 ) ) ( ( pr B G(a1 ) ) ( = pr B G(a2 ) )). 13. Félkiterjesztés * B A; G A A feladat; H B. Azt mondjuk, hogy a G félkiterjesztés H felett, ha pr 1 B (H) D G. 14. Kiterjesztési tételek B A; B a B kiegészítő altere A-ra, S B B program; F B B feladat; S, illetve F az S-nek, illetve az F -nek a kiterjesztése A-ra; ˆF A A : pr B ( ˆF ) = F feladat; Ŝ A A program ekvivalens S-sel B-n. Ekkor a következő állítások teljesülnek: 1. S megoldása F -nek S megoldása F -nek; 2. S megoldása ˆF -nek S megoldása F -nek; 3. Ŝ megoldása F -nek S megoldása F -nek; 4. (a) Ŝ megoldása ˆF -nek p(ŝ) vetítéstartó B felett S megoldása F -nek; (b) Ŝ megoldása ˆF -nek ˆF félkiterjesztés D F felett S megoldása F -nek; 5. S megoldása F -nek S megoldása F -nek; 6. S megoldása F -nek ˆF bővített identitás B felett és vetítéstartó B felett S megoldása ˆF -nek; 7. S megoldása F -nek p(ŝ) félkiterjesztés D F felett Ŝ megoldása F -nek. 3

III. rész A megoldás fogalmának általánosításai 15. A megoldás fogalmának kiterjesztése A = i I A i, B = j J B j ; F A A feladat; S B B program. Ha C : A C B C, és S kiterjesztése C-re eredeti értelemben megoldása F C-re való kiterjesztettjének, akkor azt mondjuk, hogy S kiterjesztett értelemben megoldása F -nek. 16. Ekvivalens állapottér * Az A = i I A i állapottér ekvivalens a B = j J B j állapottérrel, ha f : I J bijekció, hogy i I : A i = B f(i). Jelölés: A f B. 17. Megoldás átnevezéssel A f B; F A A feladat; S B B program. Azt mondjuk, hogy az S az f átnevezéssel megoldása F -nek, ha 1. D F D γf p(s) γ ( 1) ; f 2. a D F : γ f p(s) γ ( 1) f (a) F (a). 18. Általánosított megoldás F A A feladat; S B B program. Ha C, D : C f D A C B D S kiterjesztése D-re átnevezéssel megoldása F C-re való kiterjesztettjének, akkor azt mondjuk, hogy S általános értelemben megoldása F -nek. 19. Reláció szerinti megoldás F A A; S B B ; γ B A. Azt mondjuk, hogy S γ reláció szerint megoldása F -nek, ha 1. D F D γ p(s) γ ( 1); 2. a D F : γ p(s) γ ( 1) (a) F (a). 20. Reláció szerinti megoldás tétele F tetszőleges feladat, állapottere A, egy paramétere B, elő- és utófeltétele pedig Q b és R b ; S C C program; γ C A tetszőleges olyan reláció, melyre D F R γ. Definiáljuk a következő függvényeket: Q γ b = Q b γ és R γ b = R b γ. Ekkor ha b B : Q γ b lf(s, Rγ b ), akkor az S program γ szerint megoldja az F feladatot. 4

IV. rész Specifikáció 21. Leggyengébb előfeltétel S A A program; R : A L állítás. Ekkor az S program R utófeltételhez { tartozó leggyengébb előfeltétele } az az lf(s, R) : A L függvény, amelyre lf(s, R) = a A a D p(s) p(s)(a) R. Állítás lf(s, R) = R p(s). 22. Az lf tulajdonságai S A A program; Q, R : A L állítások. Ekkor: 1. lf(s, Hamis) = Hamis; 2. ha Q R, akkor lf(s, Q) lf(s, R); 3. lf(s, Q) lf(s, R) = lf(s, Q R); 4. lf(s, Q) lf(s, R) lf(s, Q R). 23. Változó Az A = i I A i állapottér v i : A A i egydimneziós projekciós függvényeit változóknak nevezzük. 24. Paraméter * F A A feladat. A B halmazt a feladat paraméterterének nevezzük, ha van olyan F 1 és F 2 reláció, hogy F 1 A B; F 2 B A; F = F 2 F 1. 25. Specifikáció tétele F A A feladat; B az F egy paramétere; F 1 A B; F 2 B A; F = F 2 F 1. Legyen b B, és definiáljuk a következő állításokat: Q b = {a A (a, b) F 1 } = F ( 1) 1 (b); R b = {a A (b, a) F 2 } = F 2 (b). Ekkor, ha b B : Q b lf(s, R b ), akkor az S program megoldja az F feladatot. Állítás (jó specifikáció) Ha a feladat specifikációjának felírásakor úgy választjuk meg a paraméterteret és az elő-, utófeltételeket, hogy rájuk a következő két feltétel teljesüljön: 1. b B : Q b = R b = ; 2. b 1, b 2 B : Q b1 Q b2 = ( Q b1 = Q b2 R b1 = R b2 ), akkor a specifikáció tétele megfordítható. 5

V. rész Szekvencia 26. Definíció Felhasznált jelölés α A ; β A. χ 2 (α, β) := red(kon(α, β)). S 1, S 2 A A programok. Az S A A relációt az S 1 és S 2 szekvenciájának nevezzük, ha a A : S(a) = { α A α S 1 (a) } { χ 2 (α, β) A α S 1 (a) A ( ) } β S 2 τ(α). Jelölés (S 1 ; S 2 ). Struktogram Az S = (S 1 ; S 2 ) szekvencia struktogramja: S S 1 S 2 27. Programfüggvény A tetszőleges állapottér; S 1, S 2 programok A-n; S = (S 1 ; S 2 ). Ekkor p(s) = p(s 2 ) p(s 1 ). 28. Levezetési szabály S = (S 1 ; S 2 ); Q, R, Q állítások A-n. ( (Q lf(s1, Q ) ) ( Q lf(s 2, R) )) ( Q lf(s, R) ). 29. Levezetési szabály megfordítása * S = (S 1 ; S 2 ); Q, R olyan állítások A-n, amelyekre Q lf(s, R). Ekkor Q : A L állítás, amelyre ( Q lf(s 1, Q ) ) ( Q lf(s 2, R) ). 6

VI. rész Elágazás 30. Definíció π 1,..., π n : A L feltételek; S 1,..., S n programok A-n. Ekkor az IF A A relációt az S i -kből képzett, π i -k által meghatározott elágazásnak nevezünk. n a A : IF (a) = w i (a) w 0 (a) ahol i [1..n] : S i (a), ha a π i ; w i (a) = különben. Jelölés (π 1 : S 1,..., π n : S n ). i=1 { a, a,... }, ha i [1..n] : a / π i ; és w 0 (a) = különben. Struktogram Az IF = (π 1 : S 1,..., π n : S n ) elágazás struktogramja: IF 31. Programfüggvény π 1 S 1...... S 1,..., S n A A programok; π 1,..., π n : A L feltételek az A-n; IF = (π 1 : S 1,..., π n : S n ) Ekkor { n } 1. D p(if ) = a A a π i i [1..n] : a π i a D p(si ) 2. a D p(if ) : p(if )(a) = i=1 n i=1 32. Levezetési szabály p(s i ) πi (a). IF = (π 1 : S 1,..., π n : S n ); Q, R állítások A-n. n Ha Q π i és i [1..n] : Q π i lf(s i, R), akkor Q lf(if, R). i=1 33. Levezetési szabály megfordítása * IF = (π 1 : S 1,..., π n : S n ); Q, R olyan állítások A-n, amelyekre Q lf(if, R). n Ekkor Q π i és i [1..n] : Q π i lf(s i, R). i=1 π n S n 7

VII. rész Ciklus 34. Definíció π : A L feltétel; S 0 A A. A DO A A relációt az S 0 -ból a π feltétellel képzett ciklusnak nevezzük, ha a / π : DO(a) = { a }; a π : { DO(a) = α A α 1,..., α n A : α = χ n (α 1,..., α n ) Jelölés (π, S 0 ). α 1 S 0 (a) ( ) i [1..n 1] : α i A α i+1 S 0 (τ(α i )) τ(α i ) π ( ( α n A α n A τ(α n ) / π ) )} { α A i N : α i A : α = χ (α 1, α 2,... ) α 1 S 0 (a) ( i N : α i A α i+1 S 0 (τ(α i )) τ(α i ) π ) }. Struktogram A DO = (π, S 0 ) ciklus struktogramja: DO π S 0 35. Programfüggvény A tetszőleges állapottér; S program; π feltétel A-n; DO = (π, S). Ekkor: p(do) = p(s) π. 36. Levezetési szabály P, Q, R állítás A-n; t : A Z; DO = (π, S 0 ). Ha 1. Q P, 2. P π R, 3. P π t > 0, 4. P π lf(s 0, P ), 5. P π t = t 0 lf(s 0, t < t 0 ), akkor Q lf(do, R). 37. Levezetési szabály megfordítása * DO = (π, S 0 ); Q, R olyan állítások A-n, amelyekre Q lf(do, R), és tfh. p(do) = p(s 0 ) π. Ekkor létezik P állítás és t : A Z függvény, amelyekre 1. Q P, 2. P π R, 3. P π t > 0, 4. P π lf(s 0, P ), 5. P π t = t 0 lf(s 0, t < t 0 ). 8

VIII. rész Elemi programok 38. Elemi program * Egy S A A programot eleminek nevezünk, ha a A : S(a) { a, a, a,..., a, b b a }. 39. SKIP * SKIP -nek nevezzük azt a programot, amelyre a A : SKIP (a) = { a }. 40. ABORT * ABORT -tal jelöljük azt a programot, amelyre a A : ABORT (a) = { a, a,... }. 41. Értékadás A = A 1 A n ; F = (F 1,..., F n ). Az S program általános értékadás, ha { red( a, b ) b F (a) }, ha a D F ; a A : S(a) = { } a, a,..., ha a / DF. Általános értékadás speciális esetei D F = A S programot értékkiválasztásnak nevezzük. F reláció függvény, akkor az S programot értékadásnak nevezzük. D F A S programot parciális értékkiválasztásnak nevezzük. D F A F determinisztikus, akkor az S programot parciális értékadásnak nevezzük. 42. Leggyengébb előfeltételük 1. lf(skip, R) = R; 2. lf(abort, R) = Hamis; 3. Értékadás esetén: lf(a := F (a), R) = R F ; 4. Parciális értékadás esetén: R F (b), ha b D F ; b A : lf(a := F (a), R)(b) = Hamis, ha b / D F. 5. Értékkiválasztás esetén: Igaz, b A : lf(a : F (a), R)(b) = Hamis, 6. Parciális értékkiválasztás esetén: Igaz, b A : lf(a : F (a), R)(b) = Hamis, ha F (b) R ; egyébként. ha a D F F (b) R ; egyébként. 9

IX. rész Típus 43. Típusspecifikáció A T s = (H, I s, F) hármast típusspecifikációnak nevezzük, ha 1. H az alaphalmaz, 2. I s : H L a specifikációs invariáns, 3. T T = { (T, x) x I s } a típusértékhalmaz, 4. F = {F 1, F 2,..., F n } a típusműveletek specifikációja ahol, i [1..n] : F i A i A i, A i = A i1 A ini úgy, hogy j [1..n i ] : A ij = T T. 44. Típus A T = (ϱ, I, S) hármast típusnak nevezzük, ha 1. ϱ E T a reprezentációs függvény, ahol T a típusértékhalmaz, E az elemi típusértékhalmaz, 2. I : E L típusinvariáns, 3. S = {S 1, S 2,..., S m }, ahol i [1..m] : S i B i Bi program, B i = B i1 B imi úgy, hogy j [1..m i ] : B ij = E és j [1..m i ] : B ij = T. Elemi típus Egy T = (ϱ, I, S) típus elemi, ha T = E és ϱ I = Id E. Illeszkedés A C = C 1 C r és D = D 1 D r állapotterek illeszkednek, ha E, ha C i = T T ; i [1..r] : D r = C i, különben. 45. Megoldás ϱ-n keresztül * S B B program a ϱ-n keresztül megoldja az F A A feladatot, ha C, D illeszkedő terek, amelynek altere A, illetve B, hogy S γ szerint megoldása F -nek, ahol γ D C a fenti értelemben definiált leképezés, S az S kiterjesztése D-re, F pedig az F kiterjesztése C-re. 46. Megfelelés Egy T = (ϱ, I, S) típus megfelel a T s = (H, I s, F) típusspecifikációnak, ha 1. ϱ( I ) = T T, 2. F F : S S : S a ϱ-n keresztül megoldja F -et. 47. Típusspecifikáció tétele T s = (H, I s, F) és T = (ϱ, I, S) adott típusspecifikáció és típus; ϱ( I ) = T T ; F F; F állapottere A, egy paramétere B, elő- és utófeltétele pedig Q b és R b. Legyen S S, és tfh. S állapottere illeszkedik F állapotteréhez. Definiáljuk a következő állításokat: Q γ b = Q b γ, R γ b = R b γ, ahol γ a program és a feladat állapottere közötti, a ϱ-n keresztüli megoldás definíciójában szereplő leképezés. Ekkor ha b B : Q γ b lf(s, Rγ b ), akkor az S program ϱ-n keresztül megoldja az F feladatot. 10

48. Megfelelés általánosítása A T = (ϱ, I, S) típus általános értelemben megfelel a T s = (H, I s, F) típusspecifikációnak, ha létezik olyan ekvivalens típusspecifikáció, amelynek az eredeti értelemben megfelel. 49. Absztrakt típus T = (ϱ, I, S) egy típus; A p(t ) = (p(ϱ), p(s))-t T absztrakt típusának nevezzzük, ha 1. ε E : p(ϱ)(ε) = ϱ I (ε) 2, 2. p(s) = {p(s) S S}. Forrás [1] Fóthi Á.: Bevezetés a programozáshoz. Egyetemi jegyzet. ELTE IK, 2012. 11