Teoria das Categorias em Computação

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

description

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). - PowerPoint PPT Presentation

Transcript of Teoria das Categorias em Computação

Page 1: Teoria das Categorias  em  Computação

Teoria das Categorias

em Computação

Edward Hermann HaeuslerProf. do Departamento

de InformáticaPUC/RJ

Page 2: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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

Page 3: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 3

Requisito minimo para Operações/Funções :

P1; P2; P3 = P1; (P2; P3) = (P1; P2); P3

IdT = Program Identidade; Var x : T begin read(x); write(x) end.

- Programas (compatíveis) podem ser sequenciados (;)P1 : T1 T2 P2 : T2 T3

P1; P2 : T1 T3 - Sequenciamento e Encapsulamento sao compatíveis

- Para todo tipo pode-se escrever um programa que mantem inalterados os dados do tipo.

P1 : T1 T2

IdT1; P1 = P1 = P1; IdT2

Page 4: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 4

Def: Uma Categoria C é definida como uma coleção de objetos OBJ(C) e uma coleção de morfismos Hom(C) juntamente com umaoperação t.q.

2- para todo T OBJ(C) existe IdT t.q. se

f:T1 T2 Hom(C)então IdT2 f = f = fIdT1

1- para todo f1:T1 T2 Hom(C) e f2:T2 T3 Hom(C)existe f2 f1 : T1 T3 Hom(C)

3- f3 (f2 f1) = (f3 f2) f1

Page 5: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 5

EXEMPLOS

- SETS Objetos = Conjuntos Morfismos = Funções entre conjuntos

- Categoria Vazia

- Um objeto e um morfismo (identidade no objeto)

a

-

a

b

c

f

g f

g

Page 6: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 6

- Um objeto “ * “ e como morfismos (endomorfismos) as palavras sobre o alfabeto = {a,b,...,z,A,B,...,Z}.

* * * * * * * * * *Categoria

categoria

- 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

Page 7: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 7

-

a bf

g

f g = Idb

g f = Ida

Def. Um Morfismo f:A B em uma categoria C para o qual existe f -1: B A ,

t.q.

f f -1 = Idb

f -1 f = Ida

e dito ser um isomorfismo, e denota-se por a b (a e b sao isomórficos)sempre que tal f existir.

c

h1 h2

h2 h1 = ????

Como sao os isomorfismos em LogI ?

Page 8: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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}

{}

Page 9: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 9

7. Seja C com dois objetos, I e N, os morfismos

o : I N s : N Nt.q.

fo = o e fs = s s f

Ex. f s s s o = s s s s s s o

=> Categorias Livremente Geradas - Geradores - Relações

Coleção de Objetos

(é um conjunto) => Categorias Pequenas

(nao é um conjunto) => Categorias Grandes

Page 10: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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

Page 11: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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)

Page 12: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 12

vs

(x)x (S)(!f) f: S

{#} (unitários)(S)(!f) f: S 1

(!x)x {#}“ f(x) = # “

Page 13: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 13

{a,b}

{#} {a,b}fa

fb

“elementos” em categoria

fa(#) = a fb(#) = b

Intensional vs Extensional

Cria_Pilha : () Pilhas Pilha_vazia Pilhas

Page 14: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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.

0 c!

Prop: Objetos terminais e iniciais sao únicos a menos de isomorfismo.

Page 15: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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 f) em Cop e (f g) em C

Prop: Objetos terminais em C são iniciais em Cop e vice-versa.

Page 16: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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.

a

b

c

fg

h

di

j

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 f = h e j i = g

Page 17: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 17

Produto Cartesiano

A x B BA

C

f gf,g>

Em SETS <f,g>(x) = (f(x),g(x))

f:C A g:C B<f,g>:C A x B

h:C A x B

h:C Ah:C A x B

h:C B

<f,g> = f <f,g> = g < h, h> = h

Page 18: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 18

Exemplos

1. SETS : A x B = { (x,y) / x A e y B }

2. P(X): A x B = A B

A A B B

C

C BC A

=> C A B

3. LogI: A x B = A B

4. Trans: A x B = Produto Assíncrono de A e B

Page 19: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 19

3

12

1

2

X =

1 1

2 2

1 32 3

2 1

1 2

Produto Assíncrono de Sistemas de TransiçãoReflexivos

Page 20: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 20

Propriedades sobre Produtos

A x B B x A

B x A A pA pB

B

A x B

!!

B x A

pA pBIdBxA !

IdAxB

A x B

!

Page 21: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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)

A x A A

IdAIdA

A

A

dA

tA,B: A x B B x A t(x,y) = (y,x) ( em SETS)

Page 22: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 22

A x B A A B

B

A Execução em Paralelo de Morfismos:

A C B Df g

C x D C C D

D

f x gf g

f x g (x,y) = (f(x),g(y))

Parbegin f; g;Parend

A x B

C x D

Page 23: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 23

Qual o conceito dual de Produto ?

A x B BA

Cf g

f,g>

A + B BA

C

f g|f,g|

f:A C g:B C|f,g|:A+B C

h:C A

h:C A+Bh:C B

h:C A+B

|f,g| = f |f,g| = g | h , h | = h

A + B = co-produto de A e B

Page 24: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 24

Exemplos

1. SETS : A + B = { (1,x) / x A } { (2,y) / y B }

2. P(X): A + B = A B

A A B B

C

B CA C

=> A B C

3. LogI: A + B = A B

4. TransReflex: A + B = A x B (Verifiquem !!!!!!!)

Page 25: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 25

A + B A A B

B

Seleção de Morfismos:

A C B Df g

C + D C C D

D

f x gf g

f x g (x,y) = (f(x),g(y))

if A? then f else gfi

A + B

C + D

Page 26: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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

cd(1,x) = xcd(2,x) = x

A + A A

IdAIdA

A

A

cdA

Em SETS:

“ esqueça os casos”

Page 27: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 27

A x (B + C) A x B + A x C

if ..... Then <cmd_B> Else <cmd_C>fi;

<cmd_A>;Parbegin

Parend

if ..... Then Parbegin <cmd_A>; <cmd_B>; Parend Else Parbegin <cmd_A>; <cmd_C>; Parendfi;

Categoria Distributiva

A x 0 0

Page 28: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 28

Circuitos Lógicos

B = 1 + 1 1 1 + 1 1v f

X + Y Y + Xcx,y

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

Page 29: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 29

~

~

x

y

z

(~x x) (y ~z)

x ) x IdB) x x IdB)) (d x IdB x IdB)B x B x B B

Page 30: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 30

Programas Imperativos

Iteração :

T T f

while ..... do f; od

Exemplo: T = N x N x B N x N + N x N

f é tal que:

(x,y,flag)

(x.y,y-1,0) se y >= 1 e flag = 0

(SETS)

(x,y,1) se y < 1 ou flag = 1

(1,x,0) (x,x-1,0) (x.(x-1),x-2,0) . . . . (x!,0,1) . . . . . . . f f f f

Page 31: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 31

Def. Um Programa Imperativo é um morfismo

f : T T

definido (construído), a partir de um conjunto dado de morfismos (instruçõesbásicas), em uma categoria distributiva.

1

T(1,n,0)

T

fn

n!

Page 32: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 32

Programa com entradas

- Como Representar programas com entradas ?

Abstração Associação

Modelos Funcionais Modelos Computacionais Baseados em “Set” de Instruções

Page 33: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 33

x + y2

N x N N

N NNx.x + y2

N NNy. x + y2

1 NNyx.x + y2 N

App(x.x + y2,2)

NN

N NApp

1 1 x

x

2x.x + y2

App ((x.x + y2 ) x 2)

Page 34: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 34

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.

A BApp

A D x

x

IdA

BA

e

ê

ou,

Hom(D x A, B) Hom(D, BA)

Prop. Uma categoria com Co-produtos e exponencial é distributiva

Page 35: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 35

Def. Uma Categoria é dita ser Cartesiana Fechada (CCF), sss, possui produtos finitos e exponenciais.

-O -calculus tipado é a linguagem interna das CCF’s

- CCF são modelos para o -calculus tipado

.

.

x...

y...

Page 36: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 36

Funtores

1

T(1,n,0)

T

fn

n!

Tm!

fm

(m+n)!

fm+n

* *n

m

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 g) = M(f) M(g)

Page 37: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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))

Page 38: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 38

Exemplos

- C = * * D arbitrária

- C = * * D = SETS

F : C D é o mesmo que Arestas Vértices org

dest

- C = 0 1 2 3 4 5 ..... n .... (

D = SETS

F : C D é o mesmo que :

X1 X2 X3 Xn. . . . . . . . .

Page 39: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 39

Programas Imperativos com entradas

Entradas = *

Def. Um Programa Imperativo com entrada é um FUNTOR de * em SETS.

S S (a fa

construído a partir de um conjunto de instruções básicas por meio dasoperações possíveis em um categoria distributiva.

Page 40: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 40

Transformações Naturais

ReversoT: Lista(T) Lista(T)

Lista(T1) Lista(T2)T1 T2f Lista(f)

Lista(T1) Lista(T2)Lista(f)

ReversoT1 ReversoT2

A coleção de morfismos ReversoT, para T em SETS, é uma transformação natural do funtor Lista nele mesmo

Transformações Naturais Polimorfismo

Page 41: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 41O Determinante é uma Transformação Natural

Corpos

Ka

Kb

h

MatrizKa

MatrizKb

Det: Matriz Inc

Matriz(h)

Ka

Kb

h

DetKa

DetKb

Inc

Matriz

Det

Matrizes Quadradas

Page 42: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 42

C D

F

G

H

C D

F

HSe então é

definida componente a componente como :

T= TT

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: SETS (categoria dos conjuntos variando no tempo discreto)

Page 43: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 43

Semântica

Significado

Mundo Sintático Mundo "Real"

[[ ]]

Page 44: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 44

- Semântica deve ser composicional, em particular, desde que:

F(t1,...,tn) [Vars s] = F(t1[Vars s],...., tn[Vars s])

t1:T1[Vars] ... tn:Tn[Vars]

FF(t1,...,tn):F(T1,...,Tn)[Vars]1.

2.

3. [[ti]] : [[E]] [[Ti]]

[[F(t1,...,tn)]]: [[E]] [[F(T1,...,Tn)]]

Assim,

[[F]] : Hom([[E]],[[T1]])x....xHom([[E]],[[Tn]]) Hom([[E]],[[F(T1,...,Tn)]])

obs: Vars = x1:E1,...,xn:En

Por (2) a substituição é natural.

Page 45: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 45

O Funtor Hom

Sets

E

E’

s

Cop

Hom(s,IdT) t = t s

t

[[F(t)[x s]]] = [[F(t[x s])]]

Hom(E’,T) Hom(E’,F(T))

= t[xs] Hom(s,IdF(T)) =F(t) s = F(t)[xs]

Hom(E,T) Hom(E,F(T))t F(t)

t[xs] F(t [xs] )

Condição de Naturalidade dentre os funtores Hom(_,T) e Hom(_,F(T))

Page 46: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 46

Logica Categorica

Fórmulas Tipos Objetos

Conectivos Construtores Funtores

Provas Termos Componentesde Transf. Nat.

Regras de Inferência

Regras deForm. Termos Trans. Natural

Lógica -Calculus-Tipado Categorias

Page 47: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 47

Semântica de TAD’s

bool

~

t

f

~t = f~ ~b = bb t = b b f = fb ~b= fb ~b = t

t f

Novo

C

C(x) = ~C(x) [x:novo]

D com produtos

[[bool]] [[bool]]~

[[bool]] x [[bool]] [[bool]]~

[[bool]] x [[bool]] [[bool]]~

1

t

f

1

<b,f>f

Page 48: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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]

[[Novo]] [[bool]]

[[bool]]

~

C

C

1e

f t

[[Novo]] = Inicial =

Mas, em Sets

[[Novo]] não precisa ser o objeto inicial

A A A....... ....................

Page 49: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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:

Hom(a,a)

Hom(a,b)

F(a)

F(b)

a

b

Hom(a,f) F(f)

a

b

f F(f) (a(ida)) = b (f o ida) = b (f)

Page 50: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 50

Teorema de Cayley

1- Um grupo G pode ser visto como uma categoria CatG com somente um objeto “*” eos 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

Page 51: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 51

Architectural connectors- Sequential Composition

- Parallel synchronous composition

- Parallel asynchronous composition *

- Behavior inheritance

- Factorization of common Behaviors

Software Architecture = components + structure

Page 52: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 52

An Example: Harel Statecharts

- Conditions and Actions

- Design Hierarchy

- On-entry, on-exit during actions

- Independent Threads of Control

- Visual synchronization/complex Transition (as in Petri-nets)

?condition!action

Page 53: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 53

CORBA

OOProjects

Gen. of RETOOL Theories

Gen. of C++Code

ProjectsBase

RETOOLTheorem

Prover

Model-Chec.Spec.

Generation.

Model-Checker

FormalValidationLayer

Projeto ARTS (PUC-RIO/SIEMENS 1994-1998)

Page 54: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 54

Pattern used in ARTS (Haeusler & Fontoura 99) - Horizontal Composition

M

S

b_off

b_on

Brake

Car

Off

On

t_off

t_on

Lunlink

linkMotor

sync(b_off,link)

sync(b_on,unlink)

Off

On

t_off

t_on

L

new1

MM

Off

On

t_off

t_on

link

SS

Snew2

Page 55: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 55

In categorial terms the horizontal composition is a Colimit

CatL

Th(Brake) Th(Motor)

x={,} Th(x)

Th(Car)

b_onb_off

linkunlink

Page 56: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 56

OO Projects TTS

RETOOLTheories

Mathematicaly

F

G

Page 57: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 57

InteroperabilityHom. Project

= PL Code

= Logic Spec

= TTS

= OO Spec

Page 58: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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.

Page 59: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 59

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

Mod1()

Mod2(())

Sen1()

Sen2(())

()()

1

2

Page 60: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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.

Page 61: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 61

Mapeamentos Simples entre instituições

<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

Mod1()

ModR2(())

Sen1()

Sen2(())

()()

1

2

(Meseguer)

Page 62: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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)

Page 63: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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

Page 64: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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 )

Page 65: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 65

LL’

L’’

Th(L)

Th(L’)

Th(L’’)

SL

SL’

SL’’

ThProjSig

FlatFlat

Grothendieck Const. Grothendieck Const.

CAT

LOG

CATModMod

Bridges

Map

ProjSig

LOGThLOG ProjSig

Page 66: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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.

Page 67: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 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 ??

Page 68: Teoria das Categorias  em  Computação

TECMFEdward Hermann Haeusler

Teoria das Categorias e Computacao 68

Teoria das Categorias

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