Apêndice 1 - Teoria das Categorias (breve referência)
Neste apêndice fazemos uma muito breve introdução à Teoria das Categorias, definindo o que é uma
categoria e dando exemplos de categorias, e introduzindo alguns conceitos categoriais elementares.
Para o estudo e aplicações da teoria das categorias pode consultar-se p.ex. [1, 2, 26, 36]. (Sobre a
utilização das categorias no âmbito da teoria das especificações algébricas de tipos de dados abstractos pode
também consultar-se p.ex. [43].)
Teoria de conjuntos versus teoria das categorias (motivação).
A teoria dos conjuntos pretende construir, ou fundamentar, toda a matemática (as diversas construções
matemáticas), a partir da noção básica de “pertença a um conjunto”. Isto é, continuando a falar
informalmente, podemos dizer que a abordagem usual da teoria de conjuntos começa com os elementos e
constrói todas as suas noções em termos destes (repare-se que dois conjuntos são iguais sse têm os
mesmos elementos – “princípio da extensionalidade”).
Dito de outra forma, as entidades matemáticas são expressas no âmbito da teoria de conjuntos através
da referência à sua estrutura interna, isto é, através da referência às suas componentes. A maneira como é
representado o conceito de aplicação na teoria de conjuntos, como um conjunto de pares ordenados, é bem
um exemplo dessa visão estática da teoria dos conjuntos em que as entidades (conjuntos, ...) são descritas
indicando como é que são formadas internamente.
Até que ponto é que será possível definir as propriedades de uma colecção não por referência aos seus
membros, i.e. à sua estrutura interna, mas sim por referência às suas relações externas com outras
colecções ?
É essa a perspectiva da teoria das categorias que tem como motivação fundamental a ideia de que, para
muitos propósitos, não é realmente importante saber o que são exactamente os objectos que estamos a
estudar, mas sim o modo como eles se relacionam (i.e. as propriedades dos relacionamentos entre eles). E
a realidade é que se podem estabelecer propriedades universais para certos tipos de relacionamentos, as quais
são verdadeiras mesmo que as suas correspondentes definições elemento-a-elemento possam ser
drasticamente diversas em diferentes domínios do discurso.
Tal não significa que a teoria de conjuntos deixe de ser relevante; passamos é a dispor de duas
abordagens com perspectivas diferentes e, conforme os domínios de trabalho, poderá ser mais conveniente
considerar uma ou outra, ou as duas.
Usemos o caso dos conjuntos e das aplicações como exemplo motivador para a extracção do que devem
ser as componentes básicas desta perspectiva.
Na teoria dos conjuntos, os conjuntos são descritos pela referência aos seus elementos e uma aplicação
f pode ser representada por um triplo, especificando o conjunto de partida (A), o conjunto de chegada (B) e
a relação elemento a elemento entre os dois conjuntos (Rf) que é estabelecida por essa aplicação:
f=(A,B,Rf) com Rf ⊆ AxB.
Vamos agora tentar seguir a ideia de que não é importante conhecer, à partida, qual a estrutura exacta
dos diferentes objectos mas sim como eles se relacionam. Ora, neste universo de trabalho, os nossos
475
objectos são os conjuntos e a mandeira óbvia de relacionar conjuntos é através de aplicações. Só que agora
queremos ver essas aplicações como elementos primitivos e não por referência directa ao modo como
transformam cada elemento de um conjunto num elemento do outro, e isto até porque pretendemos evitar
falar nos elementos desses conjuntos. Isto é, devemos ver as aplicações como entidades da forma
A
x
f
input x
B
x
output f(x)
Mais ainda, como pretendemos que a regra subjacente à aplicação f, que transforma os elementos de A
em elementos de B, não seja explicitada (uma espécie de caixa negra), podemos ver uma aplicação
simplesmente como uma ligação da forma (uma seta)
A
x
f
B
x
ou
f: A→B
Resta saber até que ponto esta visão nos permite captar, ou recuperar, as diferentes propriedades que
podem ser normalmente associadas às aplicações e aos conjuntos. Ora, se for possível recuperar tais
propriedades, tal não advirá certamente da análise de uma aplicação f: A → B por si só (uma vez que
escondemos o modo como ela nos permite passar explicitamente dos elementos de A para os elementos de
B). Se os nossos elementos primitivos passaram a ser “pontos”/”objectos” sem estrutura (ou melhor, no
caso em análise, com uma estrutura interna – são conjuntos – mas que não queremos explicitar, ou da qual
nos pretendemos abstrair) e ligações entre objectos, traduzidas por setas (representando aplicações), a única
maneira de poder recuperar alguma informação (se existir) é estudar a forma como se relacionam essas
ligações, para o que temos de ver como essas ligações podem ser compostas. Ora, no caso vertente, as
ligações em questão estão a denotar aplicações, pelo que as regras a exigir à forma como relacionamos
essas setas devem reflectir o modo usual como compomos aplicações.
Consideremos duas aplicaões f: A → B e g: D → C. Ora, a composição de f com g (denotada por gof)
está definida somente se o conjunto de partida de g é igual ao conjunto de chegada de f (D = B), e nesse
caso a composição de f e g é definida como sendo a aplicação:
gof:A→C
x |→ gof(x) = g(f(x))
Temos portanto que dadas duas setas
A
•
f
B
•
g
go f
•C
deverá ser sempre possível construir uma nova seta (ligação) entre A e C (na figura a tracejado) que
podemos denotar por gof ou por f;g (e que se pode ler “g aplicado a f”, “f seguido de g”, ou “g após f”).
Que mais propriedades devemos impor a esta operação de composição de setas (ou ligações) ? Em
particular como se deve comportar a composição sucessiva de setas ?
476
Considere-se outra vez o modelo que temos em mente e cujas propriedades queremos abstrair, e
suponha-se que temos três aplicações: f: A → B, g: B → C e h: C → D. Ora, como sabemos, as
aplicações ho(gof) e (hog)of são iguais (pelo que podemos escrever simplesmente hogof).
Portanto, como a nossa operação de composição de setas tem de ter algumas propriedades (se queremos
poder deduzir dela alguma coisa), surge natural generalizar o que se passa com a composição de aplicações
e supor que a composição de setas deverá ser sempre associativa.
Usando a linguagem diagramática (linguagem gráfica muito utilizada na teoria das categorias1),
podemos traduzir a associatividade da composição de setas dizendo que o diagrama a seguir comuta:
A
•
f
B
•
ho g
ho(gof)
(hog)of
g
go f
•
B
h
•
A
Observação 1 (diagramas comutativos):
Informalmente, podemos considerar que um2 diagrama consiste simplesmente na exibição de alguns
objectos (que podemos representar por pontos • ou x, normalmente etiquetados), juntamente com algumas
setas entre esses objectos, ligando-os (eventualmente com repetições de objectos e/ou setas3). E diz-se que
um diagrama comuta, ou que é um diagrama comutativo, se quaisquer dois “caminhos” entre dois objectos
que possam ser seguidos no diagrama, são vistos como uma mesma ligação entre esses dois objectos4.
Por exemplo, o triângulo
A
•
f
B
•
g
h
•C
constitui uma ilustração de um diagrama (muito simples), e o diagrama anterior comuta5 se h = g o f.
∇
Prosseguindo, que mais propriedades devemos impor à operação de composição de setas (ou ligações) ?
1 E que já usámos no capítulo 4 (ainda que informalmente).
2 Os conceitos a seguir podem ser formalizados recorrendo a grafos, mas não o faremos aqui.
3 Saliente-se também que podemos ter várias setas diferentes entre dois objectos.
4 Isto é, no modelo que por enquanto temos em mente, como uma mesma aplicação entre os conjuntos denotados por esses
objectos (recorde a última observação do capítulo 4).
5 No diagrama anterior existem dois caminhos para ir de A para C: por h ou compondo f e g (seguindo primeiro f e depois g);
dizer que o diagrama anterior é comutativo é dizer que esses caminhos são indistinguíveis.
477
Deverá a composição de setas ser comutativa? Não: a composição de aplicações gof pode estar
definida, sem que fog o esteja; e, mesmo que estejam ambas definidas, pode ter-se fog ≠ gof (basta
considerar, por exemplo, f, g : |N0 → |N0 com f(x) = x2 e g(x) = x+1). Assim, se estamos à procura de um
modelo geral, que em particular possa modelar os conjuntos e as aplicações, e se nesse caso a composição
de setas pode não ser comutativa, então tal não pode ser imposto no modelo geral.
Finalmente, resta-nos analisar se há alguma aplicação que tenha um comportamento tal, quando se
compõe com qualquer outras aplicações, que se deva reflectir, na estrutura (genérica) que pretendemos
construir, por uma seta especial que se comporte de modo análogo quando se compõe com outras setas.
Ora a aplicação identidade num conjunto (p.ex.) B tem a seguinte propriedade:
quaisquer que sejam as aplicações f: A→B e g:B→C, tem-se idBof = f e goidB=g, o que pode ser
expresso graficamente, dizendo que o diagrama a seguir (considerando as setas a tracejado) comuta:
f
A
B
idB
g
f
B
C
g
e considerou-se que era necessário (útil) incluir, em qualquer categoria, setas com um comportamento
análogo ao das funções identidade, isto é, na estrutura que pretendemos construir deverá existir, para todo o
objecto B, uma seta (que designaremos por idB) que se comporte para a composição como em cima.
Definição de categoria.
Sintetizando o que vimos, parece que se pretendemos caracterizar o universo de trabalho dos conjuntos,
descrevendo-os não pela sua composição interna, mas sim pelas ligações com os outros conjuntos,
devemos considerar uma estrutura que inclua:
• uma colecção de objectos (que intuitivamente denotam conjuntos);
• uma colecção de setas (que intuitivamente denotam aplicações entre conjuntos);
• duas funções associando a cada seta, respectivamente, o seu objecto origem (conjunto de partida) e o
seu objecto destino (conjunto de chegada)6 ;
• uma operação de composição de setas, que deverá ser associativa;
• para cada objecto B, uma seta idB, que se comporte para a operação de composição de setas como a
função identidade se comporta para a composição de aplicações.
A uma estrutura com estas características7 chamamos de categoria. Antes de passarmos a uma definição
rigorosa, apenas alguns breves comentários, sobre duas questões que podem surgir naturalmente.
6 Estas funções são essenciais, uma vez que a operação de composição de duas setas f e g só está definida quando o destino de f
coincide com a origem de g.
7 Estrutura que podemos ver como um multigrafo (usando a terminologia do exemplo 6.5.4), que inclua para cada par de setas
contíguas uma outra seta, vista como a composta daquelas, e que inclua para cada vértice/objecto uma seta dele em si próprio
(um “lacete”) que se comporte como uma espécie de elemento neutro para essa operação (parcial) de composição de setas.
478
Em primeiro lugar, será que apenas com estes “ingredientes” conseguimos captar os vários conceitos
relevantes que são expressos na teoria dos conjuntos? Por exemplo, será que recorrendo apenas às
identidades e à composição podemos captar noções como a de função injectiva, que tipicamente são
expressas através de propriedades sobre o modo como estão a ser relacionados (pela função) os elementos
dos conjuntos de partida e chegada? A resposta é que sim, conseguimos captar (pelo menos) os conceitos
mais importantes, e neste apêndice daremos uma ou outra ilustração (e designadamente a da injectividade).
Em segundo lugar, pode questionar-se por que não impor na estrutura, que queremos caracterizar, outros
objectos e/ou setas? Destacou-se uma particular tipo de setas, como a função identidade num conjunto.
Mas não existirão outros objectos/conjuntos e/ou setas/aplicações que pelas suas propriedades devam
também ser distinguidos? Por exemplo, não deverá ser imposto na estrutura a existência de um objecto
especial que desempenhe o papel que nos conjuntos é desempenhado pelo conjunto vazio?
A questão é que, embora se esteja a motivar aqui a noção de categoria a partir do universo dos
conjuntos e das aplicações entre eles, pretende-se que a estrutura a definir (a que chamaremos de
“categoria”) seja suficientemente genérica para permitir modelar (de forma abstracta) variadíssimos
universos de trabalho, e a análise destes levou à conclusão de que devíamos apenas considerar aqueles
conceitos/“ingredientes”, se pretendíamos ter uma “linguagem”/estrutura que permitisse modelar
(“descrever”/”caracterizar”) todos esses vários universos de trabalho.
Dito de outra forma, esses objectos e setas, que no contexto dos conjuntos e aplicações têm um
comportamento especial, são demasiado específicos para poderem ser considerados de relevância
“universal”. Embora eles devam ser (e sejam) definíveis na categoria em que os objectos são interpretados
como conjuntos e as setas como aplicações8, existem universos de trabalho, que podem ser modelados à
custa de objectos e de setas/ligações entre objectos, onde esses conceitos não têm contraponto, pelo que
não deverão ser incluídos na definição mais geral do conceito de categoria.
Passemos então à definição rigorosa do conceito de categoria, após o que ilustraremos como vários
universos de trabalho podem ser encarados como categorias, ou, se se quiser, podem ser vistos como
modelos do conceito abstracto de categoria, ou exemplos de categorias.
Como veremos, embora em muitos dos modelos de categorias que vamos considerar, os objectos sejam
interpretados como conjuntos (normalmente com uma estrutura associada) e as setas como funções
(funções que preservam essa estrutura, e a que chamámos de morfismos no capítulo 6), tal não é
obrigatório, e podem existir modelos em que os objectos e as setas tenham um significado completamente
distinto, pelo que é perigoso, por exemplo, pensar intuitivamente nas setas como funções. Saliente-se que
quanto mais geral - mais “fraco” (menos exigente) - é o conceito abstracto, como é o caso do conceito de
categoria, mais modelos ele tem, e daí maior é a probabilidade de se obter modelos muito distintos do
modelo inicial, dos conjuntos e aplicações, que usámos como motivação (da abstracção) desse conceito.
É possível dar várias definições equivalentes do que é uma categoria. A definição a seguir é a que nos
parece mais simples.
8 No sentido de que podem ser caracterizados nessa categoria recorrendo apenas aos conceitos referidos acima.
479
Definição 1 (Categoria):
Uma categoria C é um sextuplo9
(Obj, Mor, orig, dest, comp, id)
onde:
a) Obj é uma colecção de entidades designadas de objectos (os C-objectos ou objectos da categoria C);
b) Mor é uma colecção de entidades designadas de m o r f i s m o s ou setas (podendo usar-se a notação
f:A→B para indicar que f é uma seta/morfismo do objecto A para o objecto B);
c) orig é uma aplicação de Mor em Obj, que associa a cada seta um objecto chamado a origem (ou
domínio) da seta (usando a notação anterior, se f:A→B, então orig(f) = A);
d) dest é uma aplicação de Mor em Obj, que associa a cada seta um objecto chamado o destino (ou
codomínio) da seta (usando a notação anterior, se f:A→B, então dest(f) = B);
e) comp é uma função parcial de Mor x Mor em Mor, dita de composição, que satisfaz as condições:
-
comp(f, g) está definido sse dest(f) = orig(g), em cujo caso se diz que comp(f, g) é a composição
(em sequência) de f e g, e se denota essa seta por
gof
ou
f;g
-
se comp(f, g) está definido, então orig(g o f) = orig(f) e dest(g o f) = dest(g)
-
a operação comp é associativa, significando isso que comp(f,comp(g,h)) está definido sse
comp(comp(f,g),h) o está, em cujo caso são iguais (denotam a mesma seta);
f) id é uma aplicação de Obj em Mor, que associa a cada objecto A uma seta que se designa por identidade
em A, e se representa por idA, que satisfaz as seguintes condições:
-
orig(idA) = dest(idA) = A (i.e. idA:A→A)
-
dada uma qualquer seta com origem em A, tem-se que f o idA = f
-
dada uma qualquer seta com destino A, tem-se que idA o f = f
∇
Antes de passarmos aos exemplos, apenas um resultado.
Teorema 1:
Numa categoria C existe uma e uma só seta identidade em cada objecto.
(Isto é, se existir uma seta u de um objecto A para si próprio, tal que f o u = f, para qualquer seta com
origem em A, e u o f = f, para qualquer seta com destino A, então u = idA.)
Demonstração: exercício (demonstração análoga à demonstração do teorema 4.3.1).
∇
Alguns exemplos de categorias.
• Categoria 0
A categoria mais pequena que podemos considerar é a categoria vazia, em que Obj e Mor são o
conjunto ∅ e orig, dest, comp e id são as funções vazias do ∅ em si próprio, designada de categoria 0.
9 Podemos escrever ObjC, MorC, origC, destC, compC e idC para nos referirmos às componentes de uma categoria C, sempre que
não for evidente pelo contexto qual a categoria C em causa.
480
• Categoria 1
Designa-se por categoria 1 a categoria (ou, talvez melhor, qualquer categoria) que tem um só objecto e
uma só seta (a função identidade nesse objecto).
• Categoria 1+1
Designa-se por categoria 1+1 uma categoria formada por dois objectos e por apenas duas setas (as
identidades, que terão sempre de existir), que podemos visualizar graficamente como se segue:
•
•
• Categoria 2
Designa-se por categoria 2 uma categoria formada por dois objectos e por três setas (as identidades mais
uma seta entre os dois objectos), que podemos visualizar graficamente como se segue:
•
•
• Categoria 3
Suponha-se agora que pretendemos considferar uma estrutura da forma
f
•
g
•
•
Não poderá ser uma categoria, pois falta a seta gof (ou f;g) correspondente à composição de f e g.
Chama-se categoria 3 a uma categoria com 3 objectos e 6 setas, da forma
•
•
•
• Categoria Set
A categoria Set é a categoria dos conjuntos e das aplicações entre eles. Isto é, em Set, Obj é a colecção
de todos os conjuntos10 e Mor é a colecção de todas as aplicações entre conjuntos.
• Categoria Fin (em alguns textos SetFin)
A categoria Fin é a categoria que tem como objectos (todos) os conjuntos finitos e como setas todas as
aplicações entre esses conjuntos.
• Categoria Par
A categoria Par é a categoria dos conjuntos e das funções (parciais) entre eles. Isto é, em Par, Obj é a
colecção de todos os conjuntos e Mor é a colecção de todas as funções (parciais) entre conjuntos.
10 Colecção “demasiado grande” para poder ser considerada um conjunto: recorde a nota de rodapé número 4, da secção 1 do
capítulo 2.
481
Seguem-se alguns exemplos de categorias que representam classes de estruturas do mesmo tipo, i.e. em
que os objectos são conjuntos equipados com uma estrutura (de um certo tipo) e as setas são os morfismos
entre esses conjuntos com estrutura (recorde o capítulo 6).
• Categoria Poset
A categoria Poset é a categoria dos conjuntos parcialmente ordenados e dos morfismos entre eles (as
aplicações monótonas).
• Categoria Rel
A categoria Rel é a categoria cujos objectos são os conjuntos equipados com uma relação binária (no
conjunto em causa) e cujas setas são os morfismos entre eles.
• Categoria Mon
A categoria Mon é a categoria dos monóides e dos homomorfismos entre eles.
• Categoria Grp
A categoria Grp é a categoria dos grupos e dos homomorfismos entre eles.
Nos exemplos anteriores ilustrámos categorias que representam classes de estruturas do mesmo tipo. Cada
uma das estruturas dessas classes pode também muitas vezes ser encarada como uma categoria. Vejamos
dois exemplos.
• A categoria C(A ,
p)
A categoria C(A, p ) induzida (ou gerada) por um cpo (A, p ) é a categoria cujos objectos são os
elementos de A, e em que, para quaisquer dois objectos a e b, existe no máximo uma seta de a para b:
existe uma seta de a para b, que poderemos designar de <a, b>, sse a
As identidades são as setas <a, a>, que existem sempre em virtude de
pb
p ser reflexiva, e o facto de p
ser transitiva garante que a composição de setas está definida quando deve estar (tendo-se <a,b>;<b,c> =
<b,c>o<a,b> = <a,c>). Facilmente se verifica que são satisfeitas as diversas condições impostas na
definição de uma categoria.
Vejamos agora um exemplo menos óbvio.
• A categoria C(A, θ, e)
A categoria C(A, θ, e) induzida por um monóide (A, θ, e) é a categoria que tem um único objecto, que
podemos considerar que é o próprio conjunto A (i.e. Obj ={A}), e cujas setas são os elementos de A.
A composição de setas está sempre definida, sendo dada por (onde a e b designam quaisquer
elementos de A): a ; b = b o a = θ(a,b). Graficamente:
A
•
a
A
•
b
θ(a,b)
•A
482
Como se trata de um monóide, a composição, assim definida, é associativa. E a seta identidade é o
elemento neutro (e) do monóide.
Alguns conceitos categoriais elementares.
Uma propriedade que é definida estritamente em termos do papel que um objecto ou seta têm na categoria,
em vez de ser em termos do que é na realidade esse objecto ou seta (i.e. em termos do que representa na
realidade), é uma definição categorial. Tais definições são abstractas, no sentido de que a propriedade que a
entidade (objecto ou seta) pode ter é definida puramente em termos das interacções externas dessa entidade
com as outras entidades da categoria, recorrendo apenas às ligações descritas/suportadas pela categoria, e
independentemente do que elas significam em cada caso concreto.
No que se segue ilustraremos algumas definições categoriais.
Alguns “tipos” de setas com particular importância.
Definição 2 (monomorfismos, epimorfismos e isomorfismos):
Seja C uma categoria.
a) Um morfismo (ou seta) f: A → B de C é um monomorfismo (ou “é mono”) sse para qualquer objecto
X e quaisquer morfismos g, h: X → A, se tem que f o g = f o h ⇒ g = h.
Isto é, usando a linguagem dos diagramas (ver p.ex. [1]), f é mono se sempre que o diagrama a seguir
comuta
X
•
g
A
•
f
B
•
h
se tem que g = h.
b) Um morfismo f: A → B de C é um epimorfismo (ou “é epi”) sse para qualquer objecto X e quaisquer
morfismos g, h: B → X, se tem que g o f = h o f ⇒ g = h.
Isto é, usando a linguagem dos diagramas, f é epi se sempre que o diagrama a seguir comuta
A
•
f
B
•
g
X
•
h
se tem que g = h.
c) Um morfismo f: A → B de
C
diz-se um isomorfismo (ou que “é iso” ou que é invertível em C) sse
admite um morfismo inverso, onde um morfismo inverso de um morfismo f: A → B é um morfismo
g: B → A que satisfaz g o f = idA e f o g = idB.
Como o inverso de um morfismo f, quando existe, é único (ver resultado a seguir), pode falar-se
então no inverso de f e representá-lo por f-1.
Quando existe um isomorfismo entre dois objectos A e B, também se diz que os objectos são
isomorfos, o que se pode denotar escrevendo A
≅ B.
∇
€
483
Teorema 2:
a) Um morfismo f: A → B admite no máximo um inverso.
b) O inverso de um isomorfismo também é um isomorfismo
c) As identidades são isomorfismos (tendo-se a si próprias por inversas, i.e. idA-1 = idA)
d) Se f é iso, então f é mono e f é epi.
Demonstração:
a) Exercício (demonstração análoga à demonstração do teorema 4.3.2).
b) Imediata.
c) Imediata.
d) Suponha-se que f: A → B é iso.
d-i) Dem. de que f é mono:
Sejam g, h: X → A quaisquer tais que f o g = f o h. Queremos provar que g = h.
Ora:
fog = foh
⇓
-1
f o (f o g) = f-1 o (f o h)
⇓
-1
(f o f) o g = (f-1 o f) o h
⇓
idA o g = idA o h
⇓
g=h
Logo g = h (c.q.d.)
d-ii) Dem. de que f é epi: exercício (demonstração análoga à anterior).
∇
O próximo resultado mostra que é possível caracterizar as noções de aplicação injectiva, sobrejectiva e
bijectiva, recorrendo apenas à composição de aplicações e às funções identidade, e sem qualquer referência
aos elementos dos conjuntos que estão a ser ligados por essas aplicações.
Teorema 3:
Na categoria Set:
a) f: A → B é mono sse f é injectiva
b) f: A → B é epi sse f é sobrejectiva
c) f: A → B é iso sse f é bijectiva
Demonstração:
a) ⇒:
Demonstremos o contra-recíproco.
Suponha-se que f não é injectiva. Queremos provar que então existem X e morfismos g, h: X → A
484
X
•
g
A
•
f
B
•
h
tais f o g = f o h e g ≠ h.
Como f não é injectiva, existem a1 e a2 pertencentes a A tais que a1≠a2 e f(a1)=f(a2).
Seja X=A, g=idA e defina-se h como se segue: h(x) = x, se x≠a1 e h(a1) = a2
Então h(a1) ≠ g(a1), pelo que h≠g, e f o g = f o h (como é imediato verificar).
⇐:
Suponha-se que f é injectiva e sejam X e g, h: X → A quaisquer
X
•
g
A
•
f
B
•
h
tais f o g = f o h. Queremos provar que g = h.
Como g e h têm os mesmos conjuntos de partida e de chegada, basta-nos mostrar que atribuem o
mesmo valor a todo o elemento a de A. Ora:
f o g (a) = f o h (a)
⇓
f(g(a)) = f(h(a))
⇓ (f é injectiva)
g(a) = h(a)
Logo, como f o g (a) = f o h (a) (pois f o g = f o h), conclui-se que g(a) = h(a) (c.q.d.)
b) ⇒:
Demonstremos o contra-recíproco.
Suponha-se que f não é sobrejectiva. Queremos provar que então existe X e morfismos g, h: B → X
A
•
f
B
•
g
X
•
h
tais g o f = h o f e g ≠ h.
Como f não é sobrejectiva, existe b pertencente a B tal que b∉f[A].
• Suponha-se que existe b1 pertencente a B tal que b1≠b.
Então, seja X=B, g=idB e defina-se h como se segue: h(x) = x, se x≠b e h(b)=b1
É imediato que g≠h e que gof = hof (verifique).
• Suponha-se que B={b}.
Nesse caso, como f é uma aplicação e b∉f[A], terá de ter-se A=∅ e f a aplicação vazia em B.
Seja então X={1,2}, g tal que g(b)=1 e h tal que h(b)=2.
Tem-se g≠h e gof = hof (c.q.d.).
⇐:
Suponha-se que f é sobrejectiva e sejam X e g, h: B → X quaisquer
A
•
f
B
•
g
X
•
h
485
tais g o f = h o f. Queremos provar que g = h.
Seja b∈B qualquer. Como f é sobrejectiva, existe a∈A tal que f(a)=b, e tem-se:
g(b) = g(f(a)) = gof(a) = hof(a) = h(f(a)) = h(b)
(c.q.d.)
c) ⇒:
Sai de a) e de b) e do teorema 2-d) anterior.
Refira-se, no entanto, que a demonstração acabada de efectuar não é generalizável a todas as categorias
em que os objectos são conjuntos (eventualmente equipados com estruturas) e as setas são aplicações
entre esses conjuntos (não necessariamente todas as aplicações entre esses conjuntos: p.ex., se estes
tiverem equipados com estruturas, apenas aquelas aplicações que preservam essa estrutura) 11.
Que em qualquer categoria, em que os objectos são conjuntos e as setas são aplicações entre esses
conjuntos (não necessariamente todas as aplicações entre esses conjuntos), se verifica que “se uma seta
f é um isomorfismo então é uma bijecção”, sai, contudo, do teorema 4.5.3 (veja-se também a
observação 4.5.3-a), que se lhe segue).
⇐:
Sai do teorema 4.5.112.
∇
Observação 2:
a) No que respeita às categorias cujos objectos são os conjuntos equipados com (um certo tipo de)
estrutura e as setas são as aplicações entre esses objectos que preservam a estrutura (a que já chamámos
de morfismos no capítulo 6), pode afirmar-se o seguinte:
• Como decorre da demonstração efectuada das alíneas a) e b) do teorema anterior (ver penúltima nota
de rodapé): os morfismos injectivos são mono (i.e. são monomorfismos) e os morfismos
sobrejectivos são epi (i.e. são epimorfismos).
• No que respeita aos recíprocos das afirmações anteriores, já as demonstrações das alíneas a) e b) do
teorema anterior não são directamente generalizáveis (ver igualmente a penúltima nota de rodapé).
E, embora em geral os monomorfismos coincidam com os morfismos injectivos, em algumas
11 Como se refere na observação 2-a) a seguir, em algumas dessas categorias não se verifica nomeadamente que todo o
epimorfismo é sobrejectivo. Repare-se que as demonstrações anteriores de que “f: A → B é mono ⇒ f é injectiva” e “f: A → B
é epi ⇒ f é sobrejectiva” não são imediatamente válidas em todas essas categorias, pois será necessário mostrar que as
aplicações construídas (e, nomeadamente, as aplicações designadas de h) são morfismos nas categorias em causa, e não apenas
aplicações. Pelo contrário, as demonstrações anteriores dos seus recíprocos já são válidas em qualquer categoria em que as setas
sejam aplicações e a composição de setas seja a composição de aplicações (tendo-se portanto, nessas categorias, que “se um
morfismo f é uma aplicação injectiva, então é mono”, e que “se um morfismo f é uma aplicação sobrejectiva, então é epi”).
12 Esta demonstração também não é imediatamente válida em todas as categorias em que os objectos são conjuntos e em que as
setas são (apenas algumas) aplicações entre esses conjuntos, pois poderá acontecer que a aplicação inversa de um morfismo f
bijectivo não seja um morfismo na categoria em causa (recorde-se o que se viu no capítulo 6 a propósito dos isomorfismos entre
estruturas relacionais).
486
dessas categorias (de classes de conjuntos com estrutura) existem epimorfismos que não são
sobrejectivos: tal é p.ex. o que se verifica na categoria Mon 13, como se mostra a seguir.
Considere-se a categoria Mon, dos monóides e dos homomorfismos entre eles, e a função de
inclusão de |N0 em Z (i.e. a aplicação inc: |N0 → Z, dada por ∀x∈|N0 inc(x) = x).
É imediato que se trata de um homomorfismo entre o monóide (|N0, +, 0) e o monóide (Z , +,
0), que não é sobrejectivo.
No entanto é um epimorfismo. Para o ver, considere-se um qualquer monóide (M, θ, e) e dois
quaisquer homomorfismos g, h: Z → M tais que g o inc = h o inc. Queremos provar que g = h.
Ora, se f é um (qualquer) homomorfismo entre o monóide (Z , +, 0) e um monóide (M, θ, e),
então o valor de f em qualquer inteiro n, é completamente determinado pelo valor f atribui a 1:
f(0)=e; se n>0, então f(n) = f(1+...+1) (n parcelas) = f(1)θ...θf(1); e se n<0, então f(n) = f((-1)+...+
(-1)) (n parcelas) = f(-1)θ...θf(-1), onde f(-1) é o inverso14 de f(1).
Mas então
g o inc = h o inc
⇓
goinc(1) = hoinc(1)
⇓
g(1) = h(1)
⇓
g=h
Logo g=h (c.q.d.)
• No que respeita aos isomorfismos, estes são sempre aplicações bijectivas (veja-se a demonstração
do teorema 3-c) anterior), mas em algumas dessas categorias poderão existir morfismos bijectivos
que não são isomorfismos, por a sua aplicação inversa não ser um morfismo.
Nomeadamente, de acordo com o que observámos no capíttulo 6, os (homo)morfismos
bijectivos entre estruturas algébricas são sempre isomorfismos, mas o mesmo não se verifica em
relação aos morfismos bijectivos entre estruturas relacionais. Por exemplo, na categoria Rel. sendo
f: |N0 → |N0 a função identidade, tem-se que f é um morfismo entre (|N0, =) e (|N0, ≤), mas a sua
aplicação inversa não é um morfismo (em Rel) entre (|N0, ≤) e (|N0, =).
b) O último exemplo mostra que o recíproco do teorema 2-d), embora se verifique na categoria Set, não se
verifica em todas as categorias (uma vez que a função f é mono e é epi, por ser um morfismo,
rerspectivamente, injectivo e sobrejectivo, mas não é iso).
Um outro contra-exemplo, do recíproco do teorema 2-d), agora na categoria Mon, é dado pela
função inc, de inclusão de |N0 em Z. De facto, como se referiu em a) desta observação, trata-se de um
(homo)morfismo entre o monóide (|N0, +, 0) e o monóide (Z, +, 0), que é epi. E, como é injectivo, é
também mono. No entanto não é iso, pois se o fosse teria de ser uma aplicação bijectiva.
c) Na categoria Par:
13 No entanto, na categoria Grp, dos grupos e seus homomorfismos, pode provar-se que já se verifica que um homomorfismo é
epi sse é sobrejectivo (veja-se p.ex. [1], página 58, exercício 6).
14 Como e=f(0)=f(1+(-1))=f(1)θf(-1), tem-se que f(-1) é inverso direito de f(1). Analogamente se verifica que f(-1) é inverso
esquerdo de f(1). Logo (ver observação na secção 3 do capítulo 4), f(-1) é o inverso de f(1), i.e. f(-1) = f(1)- 1.
487
• um morfismo é um epimorfismo sse é uma sobrejecção15;
• um monomorfismo é uma função injectiva, mas nem toda a função injectiva é um monomorfismo
(de facto, tal como em Set, os monomorfismos de Par coincidem com as aplicações injectivas);
• os isomorfismos coincidem com as aplicações bijectivas.
d) Na categoria C(A ,
p ) induzida por um cpo (A , p ) todo o morfismo é epi e mono, mas os únicos
isomorfismos são as identidades (em virtude da anti-simetria de
p ). Estamos assim perante mais um
exemplo que mostra que o recíproco do teorema 2-d) nem semptre se verifica.
Por sua vez, na categoria C(A ,
pré-ordem apenas se exige que
p ) induzida (ou gerada) por uma pré-ordem (A , p ), onde numa
p seja reflexiva e transitiva (categoria que se define tal como a categoria
gerada por um cpo), todo o morfismo é mono e epi, e existe um isomorfismo entre dois objectos a e b
sse a
p b ∧ b p a.
e) Na categoria C(|N0, +, 0) induzida pelo monóide (|N0, +, 0) todo o morfismo é epi e mono, mas o
único isomorfismo é o zero (i.e. a identidade). Mais um contra-exemplo do recíproco do teorema 2-d).
Apesar de em C(|N0, +, 0) todo o morfismo ser epi e mono, o mesmo não se verifica em todas as
categoria C(A, θ, e) geradas por monóides (A, θ, e): p.ex. em C(|N0, *, 1) o morfismo 0 não é epi,
nem mono.
∇
Como já obsrervámos no capítulo 6, a propósito das categorias de classes de estruturas de um mesmo
tipo (mas a que então não chamámos de categorias), duas estruturas isomorfas são essencialmente (para
muitos fins) idênticas. Podemos passar de uma para a outra, por uma ligação iso, sem “perder informação
relevante” (trata-se essencialmente de uma re-etiquetação dos elementos e das relações/operações que a
compõem). Em geral, se uma estrutura satisfaz uma propriedade, as estruturas que lhe são isomorfas
também a satisfazem16.
Mais geralmente, podemos dizer que esta ideia é um ingrediente metodológico essencial da teoria das
categorias: “ser isomórfico” é quase a mesma coisa que “ser igual” (quase indistinguível) do ponto de vista
categorial, e a maior parte das definições e construções básicas que são efectuadas em categorias não
especificam “as entidades” de forma única, mas sim “a menos de um isomorfismo” (uma propriedade P(x)
é satisfeita, numa categoria, por "um único objecto a, a menos de um isomorfismo" sse se verifica P(a) e,
qualquer que seja o objecto b, verifica-se P(b) sse b é isomorfo a a).
Observação 3:
Provar que dois objectos de uma categoria não são isomorfos é muitas vezes mais difícil do que
demonstrar que dois objectos são isomorfos (quando o são).
15 Que não terá de ser uma aplicação. A noção de sobrejecção estende-se trivialmente às funções (parciais) em que o domínio
não coincide necessariamente com o conjunto de partida.
16 Pode dizer-se, em termos genéricos, que uma das preocupações de certo tipo de teorias matemáticas consiste precisamente
em estudar as construções e propriedades que são invariantes (se mantêm) debaixo dos isomorfismos da teoria em causa.
488
Para provar que dois objectos são isomorfos, basta-nos exibir um isomorfismo entre eles, ao passo que
para provar que dois objectos não são isomorfos é necessário demonstrar que não é possível definir um tal
isomorfismo.
Uma estratégia que pode ser usada para mostrar que dois objectos não são isomorfos consiste em
mostrar que um dos objectos satisfaz uma propriedade que é preservada por isomorfismos, ao passo que o
outro objecto não satisfaz essa propriedade.
Suponha-se, por exemplo, que se quer mostrar que os seguintes dois objectos, equipados com umas
relação binária (de facto dois cpo’s), não são isomorfos:
(A1, R1) = ({a,b,c}, {(a,a), (a,b), (a,c), (b,b), (c,c)}) e (A2, R2) = ({1,2,3}, ≤)
Para isso, podemos procurar uma propriedade (respeitante à estrutura interna dos objectos em causa) que
seja preservada pelos isomorfismos da categoria Rel e que seja satisfeita por um dos objectos, mas não
pelo outro. Ora, a propriedade dicotómica (recorde a definição 3.3.2) é preservada pelos isomorfimos em
causa (demonstre!), e ({1,2,3}, ≤) satisfaz essa propriedade e (A1, R1) não (pois nem b está em relação com
c por R1, nem c está em relação com b por R1). Logo aquelas estruturas relacionais não podem ser
isomorfas na categoria Rel.
∇
Alguns “tipos” de objectos com interesse.
Para terminar este apêndice, caracterizemos alguns objectos com interesse, que (como ilustraremos) não
têm de existir em todas as categorias.
Definição 3 (objectos iniciais e objectos terminais):
Seja C uma categoria.
a) Um objecto I numa categoria C diz-se inicial sse para todo o objecto A de C existe uma e uma só seta
de I para A (i.e. uma seta f: I → A).
É usual denotar o objecto inicial de 0, e o único morfismo de 0 para um objecto A costuma-se
denotar por 0A.
b) Um objecto T numa categoria C diz-se terminal sse para todo o objecto A de
C
existe uma e uma só
seta de A para T (i.e. uma seta f: A → T).
É usual denotar17 o objecto terminal de 1, e o único morfismo de um objecto A para 1 costuma-se
denotar por 1A.
∇
Teorema 4:
Numa categoria C:
a) As propriedades de “ser inicial” e “ser terminal”são preservadas por isomorfismos.
b) Um objecto inicial, quando existe, é único a menos de um isomorfismo, significando:
17 Estas designações de 0 e 1 têm a ver com a cardinalidade dos objectos iniciais e terminais na categoria Set (ver à frente).
489
• quaisquer dois eventuais objectos iniciais são isomorfos, e
• um objecto que é isomorfo a um objecto inicial, também é inicial (o que decorre logo de a)).
c) Um objecto terminal, quando existe, é único a menos de um isomorfismo.
Demonstração:
a) (Demonstremos apenas a preservação de “ser inicial”; a preservação de “ser terminal” é análoga.)
Suponha-se que um objecto I é inicial e que existe um isomofismo f: I → A. Quer-se provar que A
também é inicial.
Considere-se um objecto B qualquer. Quer-se mostrar que existe um e em só morfismo de A para B.
Existência: Como I é inicial, existe g: I → B. Logo gof-1: A → B (c.q.d.)
Unicidade: Sejam h1, h2: A → B. Então h1of: I → B e h2of: I → B, e, como I é inicial, h1of=h2of.
Mas:
h1of = h2of
⇓
(h1of) of-1 = (h2of) of-1
⇓
-1
h1o(fof ) = h2o(fof-1)
⇓
h1oidA = h2oidA
⇓
h1 = h2
Logo h1 = h2 (c.q.d.)
b) Atendendo a a), basta-nos demonstrar que se I e A são dois objectos iniciais, então são isomorfos.
Ora se I é inicial existe f: I → A, e se A é inicial existe g: A → I.
Então gof: I → I. Mas idI: I → I. Logo, como I é inicial, gof = idI.
Analogamente, fog = idA.
Mas então g é um morfismo inverso de f, pelo que f é um isomorfismo (c.q.d.)
c) Demonstração análoga à de b).
∇
O próximo resultado caracteriza os objectos iniciais e terminais em Set. O papel distintivo do conjunto
vazio na teoria de conjuntos traduz-se categorialmente por o vazio ser o único objecto inicial em Set.
Teorema 5:
Na categoria Set:
a) ∅ é o único objecto inicial
b) Os objectos terminais são os conjuntos de cardinalidade 1 (i.e. os conjuntos singulares).
Demonstração:
a) É imediato que o ∅ é inicial, pois dado um qualquer conjunto A existe uma e uma só aplkicação de ∅
em A, a chamada aplicação vazia em A.
490
Que ∅ é o único objecto inicial decorre de, pelo teorema 4-b) anterior, qualquer outro objecto inicial
ter de ser isomorfo ao ∅ (em Set), e só ser possível estabelecer uma bijecção enttre o ∅ e um conjunto
A se este também for o ∅.
b) Que um conjunto singular é terminal é imediato (pois dado um qualquer conjunto A existe uma e uma
só aplicação f de A para um conjunto singular {b}: aquela em que todos os elementos de A são
aplicados em b).
Que não existe qualquer outro objecto terminal, decorre de não ser possível estabelecer uma bijecção
entre um conjunto singular e um conjunto não singular (e todos os objectos terminais terem de ser
isomorfos, pelo teorema 4-c)).
∇
Observação 4:
a) Na categoria Par, o único objecto inicial é o ∅ e o único objecto terminal é igualmente o ∅. Porquê?
b) Na categoria Rel, existe um objecto inicial que é único (igual a (∅,∅)), e os objectos terminais são da
forma (A,R) como A um conjunto singular e R = AxA.
c) Na categoria Mon, os objectos iniciais são os monóides só com um elemento (i.e. em que o respectivo
conjunto suporte é singular), e o mesmo se verifica com os objectos terminais.
No entanto se considerarmos a categoria dos semi-grupos, então o único objecto inicial é o semigrupo vazio (i.e. aquele em que o respectivo conjunto suporte é o ∅), e os objectos terminais são os
semi-grupos só com um elemento.
Se considerarmos apenas a categoria dos semi-grupos não vazios (em geral não se considera a
existência de semi-grupos, nem de grupóides, vazios), então não existem objectos iniciais, como se
mostra a seguir:
Seja A=({a,b},θ), com a≠b, o seguinte semi-grupo: aθb=bθa=a, aθa=a e bθb=b (verifique que se
trata de uma operação associativa). De facto, trata-se de um monóide comutativo, em que o
elemento neutro é b, e em que a é elemento absorvente.
Considere-se um qualquer semi-grupo B=(B,ρ), com B≠∅. Então é sempre possível definir (pelo
menos) dois morfismos, f e g, de B para A, como se segue:
∀x∈B f(x)=a
e
∀x∈B f(x)=b
Como aθa=a e bθb=b, é imediato que f e g preservam a operação ρ, pelo que são morfismos entre
os semi-grupos em causa (repare-se que já não seriam morfismos na categoria Mon, pois aí teria de
se preservar o elemento neutro de um monóide B, pelo que este não poderia ser aplicado em a,
como o faria f). E, como f e g são dois morfismos distintos (uma vez que B≠∅), nenhum semigrupo B será um objecto inicial na categoria em questão.
d) Na categoria C(A ,
p ), induzida por um cpo (A , p ), um elemento é inicial (resp. terminal) sse for o
elemento mínimo (resp. máximo).
491
Por sua vez, na categoria C(A ,
p ), induzida por uma pré-ordem (A , p ), os objectos iniciais são
os elementos mínimos (mínimos e não apenas minimais)18, e os objectos terminais são os elementos
máximos.
c) Na categoria C(A, θ, e), gerada por um monóide (A, θ, e), como há um só objecto (A), este será
inicial (resp. terminal) sse existir uma só seta, que terá de ser a identidade. Logo em C(A, θ, e) o único
objecto é inicial e terminal se #A=1; caso contrário não há objectos iniciais nem terminais.
∇
Concluímos aqui a nossa muito breve introdução à teoria das categorias. Para o estudo desta teoria e
conhecimento das suas aplicações, nomeadamente em alguns domínios da ciência da computação,
aconselhamos a leitura p.ex. dos textos referidos no início deste apêndice.
18 Note-se que numa pré-ordem pode existir mais do que um mínimo, bem como mais do que um máximo.
492
Download

Apêndice1