Teoria das Categorias em Computação Edward Hermann Haeusler Prof. do Departamento de Informática...
Transcript of Teoria das Categorias em Computação Edward Hermann Haeusler Prof. do Departamento de Informática...
Teoria das Categorias
em Computação
Edward Hermann Haeusler
Prof. do Departamento
de Informática
PUC/RJ
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao2
Programas = Dados + Algoritmos
Programas = Tipos de Dados + Funções
Programas = (Objetos + Operações) + Funções
Programas = Objetos + ( Operações + Funções)
Categorias = Objetos + Morfismos
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao3
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao4
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao5
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao6
- 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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao7
-
a b
f
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 ?
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao8
- 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}
{}
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao9
7. Seja C com dois objetos, I e N, os morfismos
o : I N s : N N
t.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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao10
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao11
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao12
vs
(x)x (S)(!f) f: S
{#} (unitários)(S)(!f) f: S 1
(!x)x {#}“ f(x) = # “
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao13
{a,b}
{#} {a,b}fa
fb
“elementos” em categoria
fa(#) = a fb(#) = b
Intensional vs Extensional
Cria_Pilha : () Pilhas Pilha_vazia Pilhas
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao14
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao15
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao16
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
f
g
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao17
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 A
h:C A x B
h:C B
<f,g> = f <f,g> = g < h, h> = h
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao18
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 B
C A=> C A B
3. LogI: A x B = A B
4. Trans: A x B = Produto Assíncrono de A e B
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao19
3
1
2
1
2
X =
1 1
2 2
1 3
2 3
2 1
1 2
Produto Assíncrono de Sistemas de TransiçãoReflexivos
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao20
Propriedades sobre Produtos
A x B B x A
B x A A pA pB
B
A x B
!!
B x A
pA pB
IdBxA !
IdAxB
A x B
!
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao21
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao22
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao23
Qual o conceito dual de Produto ?
A x B BA
C
f gf,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+B
h:C B
h:C A+B
|f,g| = f |f,g| = g | h , h | = h
A + B = co-produto de A e B
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao24
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 C
A C=> A B C
3. LogI: A + B = A B
4. TransReflex: A + B = A x B (Verifiquem !!!!!!!)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao25
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao26
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”
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao27
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao28
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|
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao29
~
~
x
y
z
(~x x) (y ~z)
x ) x IdB) x x IdB)) (d x IdB x IdB)
B x B x B B
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao30
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao31
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!
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao32
Programa com entradas
- Como Representar programas com entradas ?
Abstração Associação
Modelos Funcionais Modelos Computacionais Baseados em “Set” de Instruções
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao33
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao34
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao35
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...
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao36
Funtores
1
T(1,n,0)
T
fn
n!
T
m!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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao37
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))
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao38
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. . . . . . . . .
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao39
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao40
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao41
O 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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao42
C D
F
G
H
C D
F
H
Se 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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao43
Semântica
Significado
Mundo Sintático Mundo "Real"
[[ ]]
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao44
- 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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao45
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))
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao46
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao47
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao48
===> 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....... ....................
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao49
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao50
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao51
Architectural connectors
- Sequential Composition
- Parallel synchronous composition
- Parallel asynchronous composition *
- Behavior inheritance
- Factorization of common Behaviors
Software Architecture = components + structure
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao52
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao53
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao54
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
M
M
Off
On
t_off
t_on
link
S
S
S
new2
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao55
In categorial terms the horizontal composition is a Colimit
CatL
Th(Brake) Th(Motor)
x={,} Th(x)
Th(Car)
b_onb_off
linkunlink
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao56
OO ProjectsTTS
RETOOLTheories
Mathematicaly
F
G
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao57
InteroperabilityHom. Project
= PL Code
= Logic Spec
= TTS
= OO Spec
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao58
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao59
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao60
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao61
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao62
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)
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao63
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
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao64
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 )
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao65
L
L’
L’’
Th(L)
Th(L’)
Th(L’’)
SL
SL’
SL’’
ThProjSig
FlatFlat
Grothendieck Const. Grothendieck Const.
CAT
LOG
CATModMod
Bridges
Map
ProjSig
LOGThLOG ProjSig
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao66
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.
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao67
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 ??
TECMFEdward Hermann Haeusler
Teoria das Categorias e Computacao68
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