teoria das categorias em computação edward hermann haeusler prof. do departamento de informática...
TRANSCRIPT
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