Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Teoria das Categorias em Computação
Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ
2
Programas = Dados + Algoritmos
Programas = Tipos de Dados + Funções Programas = (Objetos + Operações) + Funções Programas = Objetos + ( Operações + Funções) Categorias = Objetos + Morfismos TECMF
3
Requisito minimo para Operações/Funções :
- Programas (compatíveis) podem ser sequenciados (;) P1 : T1 T2 P2 : T2 T3 P1; P2 : T1 T3 - Sequenciamento e Encapsulamento sao compatíveis P1; P2; P3 = P1; (P2; P3) = (P1; P2); P3 - Para todo tipo pode-se escrever um programa que mantem inalterados os dados do tipo. IdT = Program Identidade; Var x : T begin read(x); write(x) end. P1 : T1 T2 IdT1; P1 = P1 = P1; IdT2 TECMF
4
Def: Uma Categoria C é definida como uma coleção de objetos
OBJ(C) e uma coleção de morfismos Hom(C) juntamente com uma operação o t.q. 1- para todo f1:T1 T2 Î Hom(C) e f2:T2 T3 Î Hom(C) existe f2 o f1 : T1 T3 Î Hom(C) 2- para todo T Î OBJ(C) existe IdT t.q. se f:T1 T2 Î Hom(C) então IdT2 o f = f = f o IdT1 3- f3 o (f2 o f1) = (f3 o f2) o f1 TECMF
5
Morfismos = Funções entre conjuntos
EXEMPLOS - SETS Objetos = Conjuntos Morfismos = Funções entre conjuntos - Categoria Vazia - Um objeto e um morfismo (identidade no objeto) a - b f a g g o f c TECMF
6
objetos = formulas da lógica de primeira ordem
- Um objeto “ * “ e como morfismos (endomorfismos) as palavras sobre o alfabeto S = {a,b,...,z,A,B,...,Z}. * * * * * * * * * * a i r o g e t a C coaotoeogoooroioa - LogI objetos = formulas da lógica de primeira ordem morfismos = relação de consequência lógica A Ù B A B A Ú A A Ú B TECMF
7
Como sao os isomorfismos em LogI ?
- f f o g = Idb a b g o f = Ida g h1 h2 h2 o h1 = ???? c Def. Um Morfismo f:A B em uma categoria C para o qual existe f -1: B A , t.q. f o f -1 = Idb f -1 o f = Ida e dito ser um isomorfismo, e denota-se por b (a e b sao isomórficos) sempre que tal f existir. Como sao os isomorfismos em LogI ? TECMF
8
- P(X) (conjunto potencia de X)
objetos = subconjuntos de X morfismos = relação de inclusão {1,2,3} {1,2} {2,3} {3,1} {1} {2} {3} {} TECMF
9
Ex. f o s o s o s o o = s o s o s o s o s o s o o
7. Seja C com dois objetos, I e N, os morfismos o : I N s : N N t.q. f o o = o e f o s = s o s o f Ex. f o s o s o s o o = s o s o s o s o s o s o o => Categorias Livremente Geradas - Geradores - Relações (é um conjunto) => Categorias Pequenas Coleção de Objetos (nao é um conjunto) => Categorias Grandes TECMF
10
Exemplos de Categorias Grandes.
1. SETS 2. Vect : Objetos Espaços Vetoriais de dimensão finita Morfismos Transformações Lineares 3. Top : Objetos Espacos Topológicos Morfismos Funções contínuas 4. Rel : Objetos Conjuntos Morfismos Relações binárias 5. Par : Objetos Conjuntos Morfismos Funções Parciais 6. Trans : Objetos Sistemas de Transição Morfismos Mapeamento de comportamento TECMF
11
Teoria dos conjuntos x Teoria das Categorias
Program UM; Var x,y, z : Integer; begin read(x,y); z:= x - y; writeln(z) end. Program OUTRO; Var a,b,c : Integer; begin read(a,b); c:= a - b; writeln(c) end. => A “máquina” nao diferencia os programas acima quanto ao comportamento +> Nomes, em geral, nao sao significativos em computação. <+ {x,y,z} é distinto de {a,b,c} em teoria dos conjuntos {x,y,z} e {a,b,c} sao indistinguíveis em SETS (inspeção interna) TECMF
12
Î vs ("S)(!$f) f: O S ("x)x Ï O ("S)(!$f) f: S 1 {#} (unitários)
“ f(x) = # “ (!$x)x Î {#} TECMF
13
Î “elementos” em categoria {a,b} fa(#) = a fb(#) = b fa {#} {a,b} fb
Intensional vs Extensional Î Cria_Pilha : () Pilhas Pilha_vazia Pilhas TECMF
14
Def. Em uma categoria C um objeto 1 é dito ser terminal, sss, para
todo objeto c de C existe um único morfismo de c para 1. ! c 1 Def. Em uma categoria C um objeto 0 é dito ser inicial, sss, para todo objeto c de C existe um único morfismo de 0 para c. ! c Prop: Objetos terminais e iniciais sao únicos a menos de isomorfismo. TECMF
15
Para qualquer categoria C podemos construir sua dual, ou oposta Cop.
Categoria Dual Para qualquer categoria C podemos construir sua dual, ou oposta Cop. - Cop tem os mesmo objetos e morfismos que C; - Os morfismos de Cop “vão” na direcao contrária se f:A B em C então f:B A em Cop ; - A composição é operada no sentido contrário: (g o f) em Cop e (f o g) em C Prop: Objetos terminais em C são iniciais em Cop e vice-versa. TECMF
16
Diagramas e Diagramas Comutativos
Def. Um Diagrama em uma categoria C é um grafo (dirigido) que tem suas arestas rotuladas com morfismos de C e seus vértices rotulados com os respectivos objetos. f b i d g a j h c Def. Um Diagrama em uma categoria C é dito ser comutativo, ou comutar, sss, todos os caminhos entre quaisquer dois vértices representam o mesmo morfismo. Obs : Para o diagrama acima ser comutativo basta que: g o f = h e j o i = g TECMF
17
Produto Cartesiano pA pB A A x B B <f,g> f g C
Em SETS <f,g>(x) = (f(x),g(x)) f:C A g:C B h:C A x B h:C A x B <f,g>:C A x B pAo h:C A pB o h:C B pAo <f,g> = f pBo <f,g> = g < pAo h, pBo h> = h TECMF
18
1. SETS : A x B = { (x,y) / x Î A e y Î B }
Exemplos 1. SETS : A x B = { (x,y) / x Î A e y Î B } 2. P(X): A x B = A Ç B A Ç B A B C Ì B C Ì A Ç B => C Ì A C 3. LogI: A x B = A Ù B 4. Trans: A x B = Produto Assíncrono de A e B TECMF
19
Produto Assíncrono de Sistemas de Transição
3 1 1 2 1 2 1 2 2 X = 1 2 2 1 3 1 3 2 Produto Assíncrono de Sistemas de Transição Reflexivos TECMF
20
Propriedades sobre Produtos
A x B x A IdAxB A x B ! pA pB B x A A pA pB B A x B ! B x A pA pB IdBxA ! TECMF
21
Prop: O Produto de dois objetos em uma categoria é único a menos de
isomorfismo. Prop: A x (B x x B) x C dA: A A x A d(x) = (x,x) ( em SETS) pA pA A A x A A dA IdA IdA A tA,B: A x B B x A t(x,y) = (y,x) ( em SETS) TECMF
22
A Execução em Paralelo de Morfismos:
g A C B D A x B pA pB A A x B B Parbegin f; g; Parend f f x g g pC pD C C x D D C x D f x g (x,y) = (f(x),g(y)) TECMF
23
Qual o conceito dual de Produto ?
iA iB A A + B B pA pB A A x B B |f,g| <f,g> f g f g C C A + B = co-produto de A e B f:A C g:B C h:C A h:C B |f,g|:A+B C iAo h:C A+B iB o h:C A+B |f,g| o iA = f |f,g| o iB = g | h o iA, h o iB| = h TECMF
24
1. SETS : A + B = { (1,x) / x Î A } È { (2,y) / y Î B }
Exemplos 1. SETS : A + B = { (1,x) / x Î A } È { (2,y) / y Î B } 2. P(X): A + B = A È B A È B A B B Ì C A È B Ì C => A Ì C C 3. LogI: A + B = A Ú B 4. TransReflex: A + B = A x B (Verifiquem !!!!!!!) TECMF
25
Seleção de Morfismos: f g A C B D A + B iA iB A A + B B if A? then f
else g fi f f x g g iC iD C C + D D C + D f x g (x,y) = (f(x),g(y)) TECMF
26
Prop: O Co-produto de dois objetos em uma categoria é único a menos de
isomorfismo. Prop: A + (B + (A + B) + C cdA: A+A A Em SETS: cd(1,x) = x cd(2,x) = x iA iA A A + A A cdA “ esqueça os casos” IdA IdA A TECMF
27
Categoria Distributiva
if Then Parbegin <cmd_A>; <cmd_B>; Parend Else <cmd_C>; fi; Parbegin <cmd_A>; if Then <cmd_B> Else <cmd_C> fi; Parend Categoria Distributiva A x (B + A x B + A x C A x 0 TECMF
28
Ù = |v,f,f,f| Ú = |v,v,v,f| Circuitos Lógicos v f B = 1 + 1 1 1 + 1 1
cx,y X + Y Y + X ~ = c1,1 B x B = (1 + 1) x (1 + (1 + 1) x1 + ( Ù = |v,f,f,f| Ú = |v,v,v,f| TECMF
29
Ù o (Ú x Ú) o ((~ x IdB) x (~ x IdB)) o (d x IdB x IdB)
(~x Ú x) Ù (y Ú ~z) x ~ Ú Ù y Ú z ~ Ù o (Ú x Ú) o ((~ x IdB) x (~ x IdB)) o (d x IdB x IdB) B x B x B B TECMF
30
Programas Imperativos
Iteração : f T T while do f; od (SETS) Exemplo: T = N x N x N x N + N x N f é tal que: (x.y,y-1,0) se y >= 1 e flag = 0 (x,y,flag) (x,y,1) se y < 1 ou flag = 1 f f f f (1,x,0) (x,x-1,0) (x.(x-1),x-2,0) (x!,0,1) TECMF
31
Def. Um Programa Imperativo é um morfismo
f : T T definido (construído), a partir de um conjunto dado de morfismos (instruções básicas), em uma categoria distributiva. T fn (1,n,0) 1 T n! TECMF
32
- Como Representar programas com entradas ?
Programa com entradas - Como Representar programas com entradas ? Abstração Associação Modelos Funcionais Modelos Computacionais Baseados em “Set” de Instruções TECMF
33
x + y2 N x N N lx.x + y2 ly. x + y2 N N N N N N N ly .lx.x + y2 N 1 N
App N x N N lx.x + y2 App(lx.x + y2,2) 2 App o ((lx.x + y2 ) x 2) 1 x 1 TECMF
34
é um objeto BA com um morfismo App: BA x A A t.q. para qualquer
Def. Em uma categoria C , o exponencial de dois objetos A e B, respectivamente, é um objeto BA com um morfismo App: BA x A A t.q. para qualquer morfismo e:D BA existe um único morfismo ê t.q. o diagrama abaixo comuta. App BA x A B e IdA ê D x A ou, Hom(D x A, Hom(D, BA) Prop. Uma categoria com Co-produtos e exponencial é distributiva TECMF
35
finitos e exponenciais.
Def. Uma Categoria é dita ser Cartesiana Fechada (CCF), sss, possui produtos finitos e exponenciais. - O l-calculus tipado é a linguagem interna das CCF’s - CCF são modelos para o l-calculus tipado . lx... . ly... TECMF
36
* Funtores n m m+n 1 T (1,n,0) fn n! m! fm (m+n)! fm+n
Def. Um Funtor entre duas categorias C e D é um par de mapeamentos (O,M), onde O : Obj(C) Obj(D) e M: Morf(C) Morf(D), t.q. - f : a b está em C então M(f):O(a) O(b) está em D. - M(Ida)= IdObj(a) - M(f o g) = M(f) o M(g) TECMF
37
Um Funtor de C em D pode ser visto como um esboço de C em D.
Um Funtor de C em D pode ser visto como uma construção: Lista: SETS SETS Lista(X) = { L / L é lista sobre X} f : X Y Lista(f) : Lista(X) Lista(Y) (x1,...,xn) (f(x1),....,f(xn)) TECMF
38
* * * * Exemplos - C = D arbitrária - C = D = SETS org F : C D
é o mesmo que Arestas Vértices dest - C = n (w) D = SETS F : C D é o mesmo que : X1 X2 X3 Xn . . . TECMF
39
Programas Imperativos com entradas
Entradas = S* Def. Um Programa Imperativo com entrada é um FUNTOR de S* em SETS. fa (a Î S) S S construído a partir de um conjunto de instruções básicas por meio das operações possíveis em um categoria distributiva. TECMF
40
Transformações Naturais
ReversoT: Lista(T) Lista(T) Lista(f) f T1 T2 Lista(T1) Lista(T2) ReversoT1 ReversoT2 Lista(f) Lista(T1) Lista(T2) A coleção de morfismos ReversoT, para T em SETS, é uma transformação natural do funtor Lista nele mesmo Transformações Naturais Polimorfismo TECMF
41
O Determinante é uma Transformação Natural
Matrizes Quadradas Corpos Matriz DetKa Ka MatrizKa Ka Det h h Matriz(h) DetKb Kb MatrizKb Kb Inc Det: Matriz Inc TECMF
42
C C F F n G e o n Def : Se D então D é e H H
definida componente a componente como : (e o n)T= eT o nT Def. Sejam C e D duas categorias, então CD tem como objetos funtores de D em C e como morfismos transformações naturais. Exemplo: SETSw (categoria dos conjuntos variando no tempo discreto) TECMF
43
Semântica [[ ]] TECMF
44
- Semântica deve ser composicional, em particular, desde que:
t1:T1[Vars] ... tn:Tn[Vars] 1. obs: Vars = x1:E1,...,xn:En F(t1,...,tn):F(T1,...,Tn)[Vars] 2. F(t1,...,tn) [Vars s] = F(t1[Vars s],...., tn[Vars s]) [[ti]] : [[E]] [[Ti]] 3. [[F(t1,...,tn)]]: [[E]] [[F(T1,...,Tn)]] Assim, [[F]] : Hom([[E]],[[T1]])x....xHom([[E]],[[Tn]]) Hom([[E]],[[F(T1,...,Tn)]]) Por (2) a substituição é natural. TECMF
45
O Funtor Hom Sets E E’ s Cop t Hom(E,T) Hom(E,F(T)) t F(t)
Hom(s,IdT) t = t s = t[xs] Hom(s,IdF(T)) =F(t) s = F(t)[xs] Hom(E’,T) Hom(E’,F(T)) t[xs] F(t [xs] ) [[F(t)[x s]]] = [[F(t[x s])]] Condição de Naturalidade dentre os funtores Hom(_,T) e Hom(_,F(T)) TECMF
46
Logica Categorica -Calculus-Tipado Categorias Lógica Fórmulas Tipos
Objetos Conectivos Construtores Funtores Provas Termos Componentes de Transf. Nat. Regras de Inferência Regras de Form. Termos Trans. Natural -Calculus-Tipado Categorias Lógica TECMF
47
D com produtos Semântica de TAD’s Ù bool [[bool]] [[bool]] Ù
~ Semântica de TAD’s D com produtos 1 Ù bool f Ú t t f ~ [[bool]] [[bool]] C 1 f <b,f> ~t = f ~ ~b = b b Ù t = b b Ù f = f b Ù ~b= f b Ú ~b = t t f ~ Ù Novo [[bool]] x [[bool]] [[bool]] ~ Ú [[bool]] x [[bool]] [[bool]] C(x) = ~C(x) [x:novo] TECMF
48
===> Sets não serve como interpretação (útil) para o TAD anterior
===> Não existe funtor de TAD para Sets preservando produtos, objetos terminais e os diagramas essenciais, pois : C(x) = ~C(x) [x:novo] e C 1 [[Novo]] [[bool]] [[Novo]] = Inicial = ~ C f t [[bool]] Mas, em Sets [[Novo]] não precisa ser o objeto inicial A A A TECMF
49
O Lema de Yoneda Seja C uma categoria localmente pequena, e F: C Sets um funtor. Então existe uma bijeção a : Nat(Hom(a,_),F) F(a) natural em a. Prova : Notar que se é uma transformação natural de Hom(a,_) para F então: a Hom(a,a) F(a) a F(f) F(f) (a(ida)) = b (f o ida) = b (f) f Hom(a,f) Hom(a,b) F(b) b b TECMF
50
Teorema de Cayley 1- Um grupo G pode ser visto como uma categoria CatG com somente um objeto “*” e os morfismos como sendo os elementos do grupo. Operação ???? 2- Seja o Funtor F: CatG Sets F(*) = G e F( * g * ) = g g: G G com g(h) = hg 3- Nat(Hom(*,_),F) Perm(G), 4- Pelo lema de Yoneda Nat(Hom(*,_),F) F(*) = G TECMF
51
Architectural connectors
Software Architecture = components + structure Architectural connectors - Sequential Composition - Parallel synchronous composition - Parallel asynchronous composition * - Behavior inheritance - Factorization of common Behaviors TECMF
52
An Example: Harel Statecharts
?condition - Conditions and Actions !action - Design Hierarchy - On-entry, on-exit during actions - Independent Threads of Control - Visual synchronization/complex Transition (as in Petri-nets) TECMF
53
Projeto ARTS (PUC-RIO/SIEMENS 1994-1998)
CORBA Gen. of RETOOL Theories OO Projects RETOOL Theorem Prover Projects Base Formal Validation Layer Model-Chec. Spec. Generation. Gen. of C++ Code Model- Checker TECMF
54
Pattern used in ARTS (Haeusler & Fontoura 99)
Off On t_off t_on L new1 M link S new2 - Horizontal Composition Car sync(b_off,link) sync(b_on,unlink) t_off Off b_off M On t_on Motor S b_on link unlink Brake L TECMF
55
In categorial terms the horizontal composition is a Colimit
x={,} Th(x) b_on b_off link unlink Th(Brake) Th(Motor) Th(Car) TECMF
56
Mathematicaly OO Projects TTS F G RETOOL Theories TECMF
57
Interoperability Hom. Project = PL Code = Logic Spec = TTS = OO Spec
TECMF
58
Instituições e Formalismos/modelos em Engenharia de Software
Def. Uma Instituição é uma estrutura <SIGN, Sen, Mod, > - SIGN é uma categoria (assinaturas, ou o léxico da linguagem) - Sen : SIGN Set é o funtor que define a linguagem (Sentenças) - Mod : SIGNop Cat é o funtor que atribui modelos a cada assinatura é uma família de relações |Mod()| x |Sen()| Obj(SIGN) Exemplos : Lógica de Primeira Ordem, Lógica Equacional, Lógica de Reescrita, Logica Modal, Sistemas de Transição, Álgebras de Processo, Linguagens de Programação, etc. TECMF
59
Mapeamentos entre Instituições (Categoria das Instituições)
<, , > <SIGN1, Sen1, Mod1, > <SIGN2, Sen2, Mod2, > 1- : SIGN1 SIGN2 2- : Sen Sen2 3- : Mod2 op Mod1, tal que o diagrama abaixo comuta 1 Mod1() Sen1() () () 2 Mod2(()) Sen2(()) TECMF
60
Apresentação de Teorias em uma Instituição
Def. Seja I uma instituição, uma (apresentação) de teoria é um par < , > , com Obj(SIGN) e Sen() Def. Fecho de uma apresentação < , > é < , > , com = { / } Definições alternativas para morfismos e categoria das teorias para uma Inst. <, > 1- < 1, 1 > < 2, 2 >, tal que 2 Sen()( 1). “Preserva Axiomas” <, > 2- < 1, 1 > < 2, 2 >, tal que 2 Sen()( 1). “Preserva Teoremas” Categorias Th0I e ThI, respectivamente. 3 - ModR(< , >) é a subcategoria cheia de Mod() que valida ==== > ModR é um funtor. TECMF
61
Mapeamentos Simples entre instituições
(Meseguer) <,, , > <SIGN1, Sen1, Mod1, > <SIGN2, Sen2, Mod2, > 1- : SIGN1 SIGN e : SIGN1 Th () = < (), > 2- : Sen Sen2 3- : ModR2 op Mod1, tal que o diagrama abaixo comuta 1 Mod1() Sen1() () () 2 ModR2(()) Sen2(()) TECMF
62
Semantics of the NCM Model (Coordinated Model)
- Modules are Timed Automata (RTTS) or RETOOL Theories - Architectural Connectors are: - Horizontal = Colimits - Vertical (OO) = Extension Morphisms (Inheritance Morphisms) - Validation of application: - Consistency - Schedulability ( work of Meseguer and Ölvesczky on RT-RWL) TECMF
63
The Mathematical Foundation for Interoperability
- Institutions = Logics and Spec/Prog Formalisms - Plain and Simple Maps between Institutions - Bridges : Mapping between theories in different institutions - Fibered Category - Grothendieck Construction - Architectural Connectors as Co-limits TECMF
64
Bridges entre Teorias em diferentes instituições (Martini & Wolter)
<,, , > I1 I2 Um mapeamento simples Def. Sejam < 1, 1 > e < 2, 2> em Th1 e Th2 respectivamente. Uma bridge é um morfismo : (1) 2 em SIGN2 tal que : 2 2 Sen( ) ((1)(1) 1 ) TECMF
65
LOG ProjSig LOGTh Mod CAT Mod ProjSig SL’ SL SL’’
Bridges SL SL’’ Grothendieck Const. LOG ProjSig LOGTh Grothendieck Const. Flat Flat Th(L’) Th(L) Th(L’’) CAT ProjSig Th LOG L’ Map L L’’ TECMF
66
A Categoria Bridges é Finitamente Cocompleta (Haeusler, Martini & Wolter)
1- Construção do Push-out em Bridges ===> Cocompletude finita de Bridges 2- Cat ser cocompleta garante a existência de uma categoria SIGN de assinaturas para o Push-Out. 3- Cat Sets herda cocompletude de Cat, daí a construção do funtor SEN para o Push-Out. 4- Fibra a Fibra (para cada assinatura) constrói-se o pull-back Mod para cada assinatura. Esta construção é Universal , e, portanto estende-se de forma única a um funtor ModR de SIGN em Cat. 5- <SIGN, SEN, ModR> Induz uma instituição de forma única. 6- Como Cocomp (a subcategoria de Cat formada por categorias cocompletas e funtores co-contínuos ) é Cocompleta (cons. Lema de Yoneda) SIGN é cocompleta. 7- A teoria que forma o push-out em Bridges tem assinatura obtida em 6 e sentenças contruídas por SEN como o push-out em Sets das imagens dos morfismos que formam o push-out em SIGN. TECMF
67
Resumo : 1. Teoria das Categorias é o ambiente natural para a formalização de modelos computacionais 2. Teoria das Categorias encapsula conceitos de computação/programação em conceitos categóricos bem conhecidos. 3. Provê meios “geométricos” para análise de conceitos formais em L.P.’s e Eng. Software Desvantagens ou falta de costume ?? TECMF
68
Livro : Teoria das Categorias para Ciência da Computação
Paulo Blauth Menezes & Edward Hermann Haeusler Série Livros Didáticos (UFRGS - Ed. Sagra Luzzato) 2001 TECMF
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.