Teoria das Categorias em Computação

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
Inversor Trifásicos com Três Pernas
A busca das mulheres para alcançar seu espaço dentro das organizações
Circuitos Lógicos e Organização de Computadores Capítulo 3 – Tecnologia de Implementação Ricardo Pannain
Circuitos Lógicos e Organização de Computadores Capítulo 4 – Implementações Otimizadas de Funções Lógicas Ricardo Pannain
MÁQUINAS UNIVERSAIS Fabrício Dias
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Capa Disciplina: Ajustamento de Observações
CARACTERIZAÇÃO E IMPLEMENTAÇÃO DE MECANISMOS DE RESILIÊNCIA A ATAQUES Alex Borges Outubro de
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Teoria da Computação FIC– Ciência da Computação
Álgebra Linear e Geometria Analítica
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 11.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 10.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 4.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Curso de ADMINISTRAÇÃO
Resolução.
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
FUNÇÃO MODULAR.
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
INVERSÃO DE MATRIZES.
Provas de Concursos Anteriores
Instituto de Geociências Universidade Federal de Minas Gerais
Renda até 2 SM.
MECÂNICA - ESTÁTICA Cabos Cap. 7.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Equilíbrio de uma Partícula Diagramas de Corpo Livre Cap. 3
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
Lemas (Sudkamp)  .
Trabalho sobre Cor Thiago Marques Toledo.
Coordenação Geral de Ensino da Faculdade
Histórico, exemplos e problemas
SISTEMAS DIGITAIS ALGEBRA DE BOOLE E SIMPLIFICAÇÃO DE CIRC. LÓGICOS
Plataforma Brasil – Submissão de pesquisa
PERFIL DOS BENEFICIÁRIOS E NÃO-BENEFICIÁRIOS DO PROGRAMA BOLSA FAMÍLIA EM TERMOS DE MERCADO DE TRABALHO: CONSIDERAÇÕES METODOLÓGICAS E SUBSTANTIVAS Alessandra.
Estudo dos Gases Prof. Fabio Costa.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Irradiações 1- Definição 2- Mecânica da Irradiação
Projeto Medindo minha escola.
Equilíbrio de uma Partícula Cap. 3
Semântica de Linguagens de Programação
Linguagem Funcional 2 Linguagem Funcional 2 - LF2 Estende LF1 com funções de alta ordem Uma função passa a ser um valor O contexto inclui um único componente:
DIEGO RICARDO DE ARAUJO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE CIÊNCIA EXATAS UNIVERSIDADE FEDERAL DE JUIZ DE FORA Seleção de Características.
Conceitos básicos em grafos
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Atuação do Terceiro Setor: Relações Sustentáveis? Sustentabilidade da Sociedade Civil & Sustentabilidade das Organizações da Sociedade Civil Mário Aquino.
Máquina de Turing Universal
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
AM020C A interface entre Meio Ambiente, Sociedade e Economia Indicadores de produtividade e empregabilidade da agricultura do Brasil. Aluna Andressa Santos.
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Transcrição da apresentação:

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

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

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

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

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

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

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 a @ b (a e b sao isomórficos) sempre que tal f existir. Como sao os isomorfismos em LogI ? TECMF

- 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

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

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

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

Î vs ("S)(!$f) f: O S ("x)x Ï O ("S)(!$f) f: S 1 {#} (unitários) “ f(x) = # “ (!$x)x Î {#} TECMF

Î “elementos” em categoria {a,b} fa(#) = a fb(#) = b fa {#} {a,b} fb Intensional vs Extensional Î Cria_Pilha : () Pilhas Pilha_vazia Pilhas TECMF

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

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

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

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

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

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

Propriedades sobre Produtos A x B @ 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

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

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

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

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

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

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

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 + C) @ A x B + A x C A x 0 @ 0 TECMF

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

Ù 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

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

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

- 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

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

é 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, B) @ Hom(D, BA) Prop. Uma categoria com Co-produtos e exponencial é distributiva TECMF

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

* 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

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

* * * * 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

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

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

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

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

Semântica [[ ]] TECMF

- 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

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

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

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

===> 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

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

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

Architectural connectors Software Architecture = components + structure Architectural connectors - Sequential Composition - Parallel synchronous composition - Parallel asynchronous composition * - Behavior inheritance - Factorization of common Behaviors TECMF

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

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

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

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

Mathematicaly OO Projects TTS F G RETOOL Theories TECMF

Interoperability Hom. Project = PL Code = Logic Spec = TTS = OO Spec TECMF

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

Mapeamentos entre Instituições (Categoria das Instituições) <, ,  > <SIGN1, Sen1, Mod1, 1 > <SIGN2, Sen2, Mod2, 2 > 1-  : SIGN1  SIGN2 2-  : Sen1 Sen2   3-  : Mod2  op Mod1, tal que o diagrama abaixo comuta   1 Mod1() Sen1() () () 2 Mod2(()) Sen2(()) TECMF

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

Mapeamentos Simples entre instituições (Meseguer) <,, ,  > <SIGN1, Sen1, Mod1, 1 > <SIGN2, Sen2, Mod2, 2 > 1-  : SIGN1  SIGN2 e  : SIGN1  Th2 () = < (),   > 2-  : Sen1 Sen2   3-  : ModR2   op Mod1, tal que o diagrama abaixo comuta   1 Mod1() Sen1() () () 2 ModR2(()) Sen2(()) TECMF

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

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

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

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

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

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

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