A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teoria das Categorias em Computação

Apresentações semelhantes


Apresentação em tema: "Teoria das Categorias em Computação"— Transcrição da apresentação:

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[xs] Hom(s,IdF(T)) =F(t)  s = F(t)[xs] Hom(E’,T) Hom(E’,F(T)) t[xs] F(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 -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


Carregar ppt "Teoria das Categorias em Computação"

Apresentações semelhantes


Anúncios Google