1 / 68

Teoria das Categorias em Computação

Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ. Teoria das Categorias em Computação . Programas = Dados + Algoritmos. Programas = Tipos de Dados + Funções. Programas = (Objetos + Operações) + Funções. Programas = Objetos + ( Operações + Funções).

salene
Download Presentation

Teoria das Categorias em Computação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Teoria das Categorias em Computação

  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 beginread(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 ot.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 of = f = foIdT1 3- f3 o (f2 o f1) = (f3 o f2) o f1 TECMF

  5. 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. - 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. - f f o g = Idb a b g o f = Ida g h1 h2 h2 oh1 = ???? 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 -1o f = Ida e dito ser um isomorfismo, e denota-se por a @ 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. 7. Seja C com dois objetos, I e N, os morfismos o : I N s : N N t.q. e f o o = o 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 Cum 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 Cum objeto 0 é dito ser inicial, sss, para todo objeto c de C existe um único morfismo de 0 para c. ! 0 c Prop: Objetos terminais e iniciais sao únicos a menos de isomorfismo. TECMF

  15. 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. 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 Reflexivos TECMF

  20. A x B pA pB ! IdAxB pA pB A B x A B ! ! pA pB A x B pA pB IdBxA ! B x A Propriedades sobre Produtos A x B @ B x A TECMF

  21. Prop: O Produto de dois objetos em uma categoria é único a menos de isomorfismo. Prop: A x (B x C) @(A 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: f 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 pA pB A A + B B 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. 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 + C) @ (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. if ..... Then Parbegin <cmd_A>; <cmd_B>; Parend Else Parbegin <cmd_A>; <cmd_C>; Parend fi; Parbegin <cmd_A>; if ..... Then <cmd_B> Else <cmd_C> fi; Parend Categoria Distributiva A x (B + C) @ A x B + A x C A x 0 @ 0 TECMF

  28. 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 + 1) x1 + (1 + 1)x1 @ 1 + 1 + 1 + 1 Ù = |v,f,f,f| Ú = |v,v,v,f| TECMF

  29. (~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 B @ 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. 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 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. Def. Em uma categoria C , o exponencial de dois objetos A e B, respectivamente, é um objeto BAcom 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, B) @ Hom(D, BA) Prop. Uma categoria com Co-produtos e exponencial é distributiva TECMF

  35. 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. m T fn (1,n,0) n * * 1 T fm+n n! fm m! m+n T (m+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) • Funtores 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 = 0 1 2 3 4 5 ..... 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 MatrizKa Ka Ka Det h Matriz(h) h DetKb MatrizKb Kb Kb Inc Det: Matriz Inc TECMF

  42. F F n G e o n C C 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 CDtem 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. Cop Hom(E,F(T)) Hom(E,T) t F(t) E s E’ Hom(E’,F(T)) Hom(E’,T) t[xs]F(t [xs] ) O Funtor Hom Sets t  Hom(s,IdT) Hom(s,IdF(T)) =F(t)  s = F(t)[xs] t = t  s = t[xs] [[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 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 1 Ù f bool Ú 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 ~ Ù [[bool]] Novo [[bool]] x [[bool]] ~ Ú [[bool]] [[bool]] x [[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 [[Novo]] 1 [[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: F(a) a Hom(a,a) a F(f) (a(ida)) = b (f o ida) = b (f) F(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

More Related