Jednoduché specifikace

Podobné dokumenty
Základy algebraických specifikací

Odpřednesenou látku naleznete v kapitolách skript Abstraktní a konkrétní lineární algebra.

Okruh Lineární rovnice v Z m Těleso Gaussova eliminace (GEM) Okruh Z m. Jiří Velebil: X01DML 19. listopadu 2007: Okruh Z m 1/20

Hlubší věty o počítání modulo

Aritmetika s didaktikou I.

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Odpřednesenou látku naleznete v kapitole 3.1 skript Abstraktní a konkrétní lineární algebra.

Úvod do lineární algebry

Lineární algebra nad obecným Z m, lineární kódy

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Střípky z LA Letem světem algebry

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

Základy elementární teorie čísel

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Věta o dělení polynomů se zbytkem

Transformace souřadnic

Algebraické struktury s jednou binární operací

Co je to univerzální algebra?

Teorie grup 1 Příklad axiomatické teorie

ALGEBRA. Téma 4: Grupy, okruhy a pole

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Výroková a predikátová logika - VII

Lineární algebra : Úvod a opakování

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Booleovy algebry. Irina Perfilieva. logo

Báze a dimense. Odpřednesenou látku naleznete v kapitolách a 3.6 skript Abstraktní a konkrétní lineární algebra.

Relace a kongruence modulo

7 Analytické vyjádření shodnosti

Matice. a m1 a m2... a mn

Výroková a predikátová logika - XII

Formální systém výrokové logiky

Odpřednesenou látku naleznete v dodatku A skript Abstraktní a konkrétní lineární algebra.

Lineární algebra Kapitola 1 - Základní matematické pojmy

Matematika pro informatiku 1

Západočeská univerzita v Plzni

Hlubší věty o počítání modulo

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).

Učební texty k státní bakalářské zkoušce Matematika Algebra. študenti MFF 15. augusta 2008

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Relace a kongruence modulo

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Základy logiky a teorie množin

Výroková logika syntaxe a sémantika

Výroková a predikátová logika - XI

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody

Základy matematiky pro FEK

Vysoké učení technické v Brně Fakulta informačních technologií. Regulární pologrupy. Semestrální práce do předmětu Algebra, Kombinatorika, Grafy

MOORE-PENROSEOVA INVERZE MATICE A JEJÍ APLIKACE. 1. Úvod

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

SVD rozklad a pseudoinverse

Booleova algebra Luboš Štěpánek

Matematická logika. Miroslav Kolařík

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Základy elementární teorie čísel

Rezoluce v predikátové logice

Rezoluce ve výrokové logice

6. Matice. Algebraické vlastnosti

Výroková logika. Teoretická informatika Tomáš Foltýnek

Výroková a predikátová logika - III

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

Lineární algebra : Násobení matic a inverzní matice

6 Samodružné body a směry afinity

Rekurentní rovnice, strukturální indukce

Matematika B101MA1, B101MA2

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Logické proměnné a logické funkce

Lineární algebra Operace s vektory a maticemi

Principy indukce a rekurentní rovnice

Výroková a predikátová logika - III

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

Výroková a predikátová logika - VII

Lineární prostory. - vektorové veličiny(síla, rychlost, zrychlení,...), skládání, násobení reálným číslem

Algoritmus pro hledání vlastních čísel kvaternionových matic

1. Pologrupy, monoidy a grupy

Matematická analýza 1

Lineární algebra : Násobení matic a inverzní matice

Kapitola 11: Vektory a matice 1/19

Cyklické grupy a grupy permutací

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Matematika pro informatiku 2

Sémantika predikátové logiky

Predikátová logika dokončení

Matematika IV - 7. přednáška Uspořádané množiny, svazy a Booleovy algebry

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

Aritmetika s didaktikou I.

1 Mnohočleny a algebraické rovnice

Maturitní téma: Programovací jazyk JAVA

4.2 Syntaxe predikátové logiky

Obsah. Množiny (opakování) Relace a zobrazení (opakování) Relace Binární relace na množině Zobrazení Rozklady, ekvivalence Uspořádání

0.1 Úvod do lineární algebry

Transkript:

Jednoduché specifikace Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 1/19

Příklad (Připomenutí) Řešení rovnice ax = b, a 0, probíhá stejně v Q, v R, v C, i v jakémkoli Z p, p prvočíslo. (Jde o tělesa!) ax = b (a má inversi a násobení je operace) a 1 (ax) = a 1 b (násobení je asociativní) (a 1 a) x = a 1 b (a 1 a = 1) 1 x = a 1 b (1 je neutrální k násobení) x = a 1 b Polymorfní algoritmus, protože pracujeme s modely abstraktního datového typu (ADT) těleso. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 2/19

Příklad (Specifikace seznamů jako ADT) 1 spec LIST is 2 sorts: list 3 operations: nil: --> list; 4 _#_:list,list --> list 5 variables: x,y,z:list 6 equations: x#nil=x; 7 nil#x=x; 8 x#(y#z)=(x#y)#z 9 endspec Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 3/19

Příklad (Specifikace zásobníků jako ADT) 1 spec STACK is 2 sorts: alphabet, stack 3 operations: a1: --> alphabet; 4 a2: --> alphabet; 5 a3: --> alphabet; 6 a4: --> alphabet; 7 nil: --> stack; 8 pop(_): stack --> stack; 9 push(_,_): alphabet,stack --> stack 10 variables: x:alphabet, s:stack 11 equations: pop(nil)=nil; 12 pop(push(x,s))=s 13 endspec Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 4/19

Zápis je pseudokód, připomínající specifikační jazyk OBJ3. Viz například 1 K. Richta a J. Velebil, Sémantika programovacích jazyků, Karolinum, Praha 1997 2 J. A. Goguen, D. Coleman a R. Gallimore (eds.), Applications of Algebraic Specification Using OBJ, Cambridge University Press, 1992 http://www-cse.ucsd.edu/users/goguen/sys/obj.html 3 Předmět Prototypování algebraických specifikací, katedra počítačů. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 5/19

Další specifikační jazyky 1 CASL (Common Algebraic Specification Language), viz http://www.cofi.info/casl.html 2... a řada dalších. Možná literatura 1 W. Wechler, Universal Algebra for Computer Scientists, Springer-Verlag, Berlin, 1992 Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 6/19

Problémy: 1 Co je operace? Co je rovnice? 2 Co je model rovnicové specifikace? 3 Jak modely porovnávat? 4 Co je zamýšlená sémantika rovnicové specifikace? Odpovědi: 1 Operace jsou popsány finitárním typem. Rovnice jsou dvojice termů. 2 Modelem rovnicové specifikace je algebra daného typu, která splňuje dané rovnice. 3 Modely porovnáváme pomocí homomorfismů algeber. 4 Zamýšlená sémantika je iniciální algebra (doktrína no-junk-no-confusion). Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 7/19

Příklad (Nejjednodušší jednosortová specifikace) spec NO_OPERATIONS is sorts: something endspec 1 Jedna sorta, žádné operace, žádné rovnice. 2 Model je jakákoli množina: X 3 Homomorfismus modelů je jakékoli zobrazení x f (x) X f Y Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 8/19

Příklad (Abstraktní násobení bez axiomů specifikace grupoidu) spec BINARY is sorts: binary operations: _*_:binary,binary --> binary endspec 1 Jedna sorta, jedna binární operace, žádné rovnice. 2 Model je jakákoli množina, vybavena binární operací: Modelu říkáme grupoid. X X X X Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 9/19

Příklad (grupoidy, pokrač.) 3 Homomorfismus modelů je jakékoli zobrazení, které respektuje dané operace: (x, x ) (f (x), f (x )) X X f f Y Y X X f Y Y x X x f (x X x ) f (x) Y f (x ) Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 10/19

Příklad (Grupoidy) 1 Na X = existuje jediná binární operace, prázdné zobrazení :. Proto, je příklad grupoidu. 2 Na X = {a, b, c} definujeme binární operaci takto: x X y = x pro všechna x, y X. Popis X tabulkou: X a b c a a a a b b b b c c c c Je-li x v i-tém řádku a y v j-tém sloupci tabulky, pak v položce (i, j) je zapsán výsledek x X y. Dvojice X, X je grupoid. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 11/19

Příklad (Grupoidy, pokrač.) 3 Ať X je množina všech zobrazení z {0, 1} do {0, 1}. Množina X má čtyři prvky: f 1 : 0 0 f 2 : 0 0 1 1 1 0 f 3 : 0 1 f 4 : 0 1 1 1 1 0 Skládání funkcí je binární operace na množině X, a proto je X, grupoid. Příslušná tabulka je: f 1 f 2 f 3 f 4 f 1 f 1 f 2 f 3 f 4 f 2 f 2 f 2 f 2 f 2 f 3 f 3 f 3 f 3 f 3 f 4 f 4 f 3 f 2 f 1 Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 12/19

Asociativita, komutativita, neutralita Abstraktní výpočty Definice (Vlastnosti abstraktního násobení) Ať je binární operace na množině X. 1 Operace je asociativní, pokud pro všechna x, y, z X platí rovnost x (y z) = (x y) z. 2 Operace je komutativní, pokud pro všechna x, y X platí rovnost x y = y x. 3 Prvek e l je levý neutrální prvek operace, pokud pro všechna x X platí rovnost e l x = x. 4 Prvek e r je pravý neutrální prvek operace, pokud pro všechna x X platí rovnost x e r = x. 5 Prvek e je neutrální prvek operace, pokud je pravým i levým neutrálním prvkem, tj. když pro všechna x X platí rovnost e x = x e = x. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 13/19

Asociativita, komutativita, neutralita Abstraktní výpočty Příklad Operace X : X a b c a a a a b b b b c c c c 1 Je asociativní, protože podle definice pro všechna x, y, z {a, b, c} platí x X (y X z) = x a (x X y) X z = x X z = x. 2 Není komutativní, protože například platí a = a X b b X a = b. 3 Každý prvek množiny {a, b, c} je pravým neutrálním prvkem operace X : například a je pravý neutrální prvek, protože pro všechna x {a, b, c} platí x X a = x. Podobně: b i c jsou pravé neutrální prvky. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 14/19

Asociativita, komutativita, neutralita Abstraktní výpočty Příklad (pokrač.) 4 Operace X nemá žádný levý neutrální prvek, a tudíž žádný neutrální prvek. Příklad Na množině N definujeme: n m = n m. Protože platí 2 27 = 2 (3 3) (2 3) 3 = 2 9 není binární operace asociativní. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 15/19

Asociativita, komutativita, neutralita Abstraktní výpočty Příklad abstraktního výpočtu: Lemma Jestliže binární operace na množině X má levý neutrální prvek e l a pravý neutrální prvek e r, pak platí e l = e r. Důkaz. e l x = x pro všechna x X (protože e l je levý neutrální). Speciálně: e l e r = e r. Ale e l = e l e r (protože e r je pravý neutrální). Celkem: e l = e r. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 16/19

Asociativita, komutativita, neutralita Abstraktní výpočty Další příklad abstraktního výpočtu: Lemma Každá binární operace má nanejvýš jeden neutrální prvek. Důkaz. Pokud e a e jsou neutrální prvky, potom e je pravý neutrální prvek a e je levý neutrální prvek, a proto podle předchozího musí platit rovnost e = e. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 17/19

Asociativita, komutativita, neutralita Abstraktní výpočty Ve zbytku semestru vybudujeme 1 Rozumné násobení: ADT, ve kterém jdou dobře řešit lineární rovnice. Výsledný ADT = grupa. 2 Další možný projekt (viz skripta): klasické pravdivostní hodnoty: ADT, ve kterém jde dobře dělat klasická výroková logika. Výsledný ADT = Booleova algebra. Dělat nebudeme! Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 18/19

Asociativita, komutativita, neutralita Abstraktní výpočty Použitá metoda = refinement ADT 1 Začneme se základním (velmi jednoduchým) ADT. 2 Postupně přidáváme sorty, operace, rovnice (= zjemňování původního ADT). Ve specifikačních jazycích = import jednoduššího ADT do výsledného složitějšího ADT. 3 Problémy: 1 Nedojde ke kolizi starého ADT s novým ADT? 2 Nepřidáváme zbytečně mnoho operací, rovnic? 3 Změní se homomorfismy nového ADT? Pokud ano, jak? 4... a řada dalších. Jiří Velebil: X01DML 10. prosince 2010: Jednoduché specifikace 19/19