Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaGizella Tamásné Megváltozta több, mint 10 éve
1
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
2
SPEC = (S,OP,E); SPEC = ( ,E); Szignatúra morfizmus: '; A h: ' szignatúra morfizmus kiterjesztése változókra: Ahol X, X' rendre a , ' változói. T (X), T '(X') rendre a , ' termeknek halmazai. Példa: '; = (null..., succ..., plusz...); '= (0..., _+1..., _+_... ;); h(plusz(succ(x),null)) = (x+1) + 0; A h: ' szignatúra morfizmus kiterjesztése egyenletek formájában adott axiómákra.
3
Definíció. Termek származtatása (termek derivációja). Adva SPEC = (S,OP,E). Helyettesítési szabály: t 1 t 2. Ha -a t 1 t 2 szabály alkalmazható egy t T OP (X) term-re, -és t 1 a t-nek egy rész term-je, akkor t 1 helyettesítése t 2 term-mel a t term-ben egy újabb t' term-et eredményez. Jelölés: t' = t(t 1 /t 2 ). Rögzített X = X e, minden e = (X,L,R) E két helyettesítési szabályt definiál: L R; R L; (t' term közvetlen származtatása t term-nek az E axiómái által a t 1 t 2 szabály felhasználásával).
4
Adott a t 0 t 1 ... t n (közvetlen származtatások egy sorozata) Elnevezés: Az e'= (t, t') egyenlet E-ből származtatott egyenletnek nevezzük rögzített X mellett, ha t = t 0 és t' = t n. Jelölés: t t'. Definíció. A származtatott egyenlet helyes az A szigmaalgebra szerint, ha minden ass: X A ass(t) = ass(t').
5
bool is a type specification = sorts: bool oprs: T: bool F: bool ~_ : bool bool : bool bool bool [infix] eqns: b bool; ~T = F ~(~b) = b b T = b b F = F end bool;
6
Tétel: ~F = T; 1.) AxiómaTétel b T ~(T) F ~(~b) = b ~(~(T)) = T ~ F = T; 2.) Tétel:Axióma ~ T F T b ~ F = T ~(~(T)) = T ~(~b) = b
7
PAREXP = (S,OP); -algebra = (S A,OP A ); SPEC A = (S A, OP A, E A ); d a = (A, F, E a ); d a = ({A 0, A 1,..., A n }, {f 0 A 0,..., f m : A i... A j A k }, {..., (a) f s (f c (a)) = h(a),... }; a A : (a i,...,a k ) (A i ... A j ); Jelölések: F = F c F s ; f c F c ; f s F s ; Egyenlőség axióma: a 1 = a 2 ([a 1 = f 0 a 2 = f 0 ] [( f s F s )(f s (a 1 ) = f s (a 2 ))]); A helyettesítési szabály: a 1 = a 2 ([a 1 = f 0 a 2 = f 0 ] [( f s F s )(f s (a 1 ) = f s (a 2 ))]); Például: n 1 = n 2 ([n 1 = zerus n 2 = zerus] [ prec(n 1 ) = prec(n 2 )]);
8
Egyenlőségi axióma: a 1 = a 2 ([a 1 = f 0 a 2 = f 0 ] [( f s F s )(f s (a 1 ) = fs(a 2 ))]); A helyettesítési szabály: a 1 = a 2 ([a 1 = f 0 a 2 = f 0 ] [( f s F s )(fs(a 1 ) = f s (a 2 ))]); Például: n 1 = n 2 ([n 1 = zerus n 2 = zerus] [ prec(n 1 ) = prec(n 2 ) ]); Példa. Axióma: prec(succ(n)) = n; Tétel: n zerus succ(prec(n)) = n; Bizonyítás: n 1 = n 2 prec(n 1 ) = prec(n 2 ) n zerus succ(prec(n)) = n prec(succ(m)) m prec(succ(prec(n))) = prec(n) (prec(n) = prec(n)) T.
9
Strukturális indukció. Adott = (S,OP); a szignatúrához tartozó X változókkal és p: T OP (X) bool. Ha bebizonyítjuk, hogy 1. ( t K és t X)(p(t) = "true"); (A strukturális indukció bizonyítása;) 2. ( N(t 1,...,t n ) T OP (X)); esetén Ha (p(t 1 ) = "true" ... p(t n ) = "true") p(N(t 1,...,t n )) = "true"; (Strukturális indukciós lépés;) Akkor p(t)= "true" minden t T OP (X) esetén;
10
Támadási stratégiák Támadási stratégia 1. Adott = (S,OP); t T OP (X); Tétel:H 1 (f s (t)) = H 2 (t); Legyen t 1 = H 1 (f s (t)); t 2 = H 2 (t); Tekintsük az f s (f c (t)) = H sc (t); axiómát. Bizonyítás. Alapeset. Bizonyítsuk be f 0 konstans szimbólumra, hogy t = f 0 esetén: H 1 (f s (f 0 )) = H 2 (f 0 ); Strukturális indukciós lépés: Mutassuk ki minden t = f c (t') T OP (X) konstrukciós műveletre: H 1 (f s (f c (t'))) = H 2 (f c (t')) T, akkor H 1 (f s (t)) = H 2 (t) T;
11
Példa. Verem. Axiómák: pop(create) = create; top(create) = ; pop(push(s,e)) = s; top(push(s,e)) = e; Egyenlőségi axióma: s1 = s2 (s1 = create s2 = create) ( pop(s1) = pop(s2) top(s1) = top(s2)); Tétel: push(pop(s), top(s)) = s; Bizonyítás: Alapeset: s = create; (push(pop(s), top(s)) = s) (push(pop(create), top(create)) = create) (push(create, ) = create) (create = create) T. Indukciós lépés: s = push(s',e); (push(pop(s), top(s)) = s) (push(pop(push(s',e)), top(push(s',e))) = push(s',e) (push(s',e) = push(s',e)) T.
12
Támadási stratégia 2. Adott = (S,OP); t T OP (X); Legyen t 1 = f c (H 1 (t)); t 2 = H 2 (t); Tekintsük az f s (f c (t)) = H SC (t); axiómát. Tétel:f c (H 1 (t)) = H 2 (t); Alkalmazva az egyenlőség axiómát, kapjuk az egyenlőség származtatási szabályát: f s (f c (H 1 (t))) = f s (H 2 (t)) T H SC (H 1 (t)) = f s (H 2 (t)) T
13
Példa. Halmaz. Axióma: has(insert(s,e),a) = if e = a then "true" else has(s,a) fi; Egyenlőség axióma: s 1 = s 2 (s 1 = empty s 2 = empty) ( a elem)(has(s 1,a) = has(s 2,a)); Tétel: insert(insert(s,e),e) = insert(s,e); Bizonyítás. has(insert(insert(s,e),e),a) = has(insert(s,e),a) if e = a then "true" else has(insert(s,e),a) fi = has(insert(s,e),a);
14
Kettős specifikáció: e par exp i = eb imp bod ib absztrakt specifikáció konkrét specifikáció Reprezentációs függvény.
15
Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,..., C m }; F = {f 0 : A 0,..., f i : A j...A k A /,... }; G = {g 0 : C 0,..., g i : C j... C k C /,... }; Az absztrakt és konkrét objektumok az egymáshoz való viszonya: : C A = ( 0,..., n ), ahol 0 : C 0 A 0 ; 1 : C 1 A 1 ;...; n : C n A n ; Definíció. A C objektumhalmazt az A objektumhalmaz egy reprezentánsának nevezzük az adott mellett, ha minden a A objektumnak létezik legalább egy c C reprezentánsa, azaz a = (c).
16
Tétel (reprezentáció tétele). Adva d a absztrakt és d c konkrét típusspecifikációk azonos szingatúrával. : C A morfizmus. F c F a konstrukciós műveletek halmaza. Feltevés: f c F c konstrukciós műveletre fennáll a A f c (a) A c C g c (c) C a = (c), esetén: Állítás. Ha ( c C f c F c )(f c ( (c)) = (g c (c))), akkor C objektumhalmaz az A egy reprezentációja. Bizonyítás. Strukturális indukcióval: Alapeset : a = f 0. f 0 A 0, g 0 C 0, feltevésünk szerint f 0 = (g0). (Tehát a = f 0 esetén létezik olyan c C 0, hogy a = (c)). Indukció: a' = f c (a), ahol feltesszük, hogy a = (c) és c C 0. Tehát a' = f c ( (c)) és művelettartásra vonatkozó feltevésünk alapján: a'= (g c (c)), és c' = g c (c) választás mellett a' = (c') és c' C 0.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.