Teoría Homotópica de Tipos

Niveles de Homotopía y Equivalencias

No todos los tipos son iguales en complejidad: algunos son triviales (contractibles), otros tienen a lo sumo un elemento (proposiciones), otros se comportan como conjuntos discretos, y otros tienen estructura de caminos arbitrariamente compleja. Los niveles de homotopía (h-levels) clasifican esta complejidad.

Equivalencias

A veces queremos que los tipos se comporten como proposiciones (sin estructura). Otras veces nos interesa su estructura. Necesitamos una buena noción de "ser equivalencia" que sea ella misma una proposición.

Definición 1 — Equivalencia

Una función f:ABf : A \to B es una equivalencia si:

isEquiv(f):b:BisContr(a:Af(a)=b)\text{isEquiv}(f) :\equiv \prod_{b:B} \text{isContr}\left(\sum_{a:A} f(a) = b\right)

Es decir, cada fibra a:Af(a)=b\sum_{a:A} f(a) = b es contractible.

Escribimos AB:f:ABisEquiv(f)A \simeq B :\equiv \sum_{f:A \to B} \text{isEquiv}(f).

Ejemplo 1

Todo tipo contractible es equivalente a 1\mathbb{1}.

Teorema 2 — Reflexividad de equivalencias

Para todo tipo AA, AAA \simeq A. Luego podemos definir una función:

idtoequiv:(A=B)(AB)\text{idtoequiv} : (A = B) \to (A \simeq B)

El axioma de univalencia

Axioma 1 — Axioma de Univalencia

ua:isEquiv(idtoequiv)\text{ua} : \text{isEquiv}(\text{idtoequiv})

Es decir, la función canónica (A=B)(AB)(A = B) \to (A \simeq B) es ella misma una equivalencia. Luego:

(A=B)(AB)(A = B) \simeq (A \simeq B)

Niveles de homotopía

Definición 2 — h-level

Un tipo TT tiene h-level 00 (es contractible) si:

hlevel  0  T:t:Ts:Ts=t\text{hlevel}\; 0\; T :\equiv \sum_{t:T} \prod_{s:T} s = t

Un tipo TT tiene h-level S(n)S(n) si:

hlevel  (Sn)  T:s,t:Thlevel  n  (s=t)\text{hlevel}\;(Sn)\; T :\equiv \prod_{s,t:T} \text{hlevel}\; n\; (s = t)

Esto define una función hlevel:NTypeType\text{hlevel} : \mathbb{N} \to \text{Type} \to \text{Type}.

h-level 0: Contractibles

Definición 3 — Tipos contractibles

Un tipo TT es contractible si tiene un centro de contracción: un punto t:Tt : T tal que todo otro punto es igual a tt.

Ejemplo 3

1\mathbb{1} es contractible.

h-level 1: Proposiciones

Definición 4 — Proposiciones (isProp\text{isProp})

Un tipo TT es una proposición si cualesquiera dos elementos son iguales:

isProp(T):x,y:Tx=y\text{isProp}(T) :\equiv \prod_{x,y:T} x = y

Equivalentemente, TT tiene h-level 1.

Ejemplo 4

\emptyset y 1\mathbb{1} son proposiciones.

Teorema 5 — Proposición habitada es contractible

Si una proposición está habitada, entonces es contractible.

Intuitivamente, una proposición es \emptyset o 1\mathbb{1}. Así, las proposiciones se comportan como las proposiciones lógicas clásicas, donde Σ\Sigma se comporta como \exists, etc.

Teorema 6 — Contractible implica proposición

Todo tipo contractible es una proposición.

h-level 2: Conjuntos

Definición 5 — Conjuntos (isSet\text{isSet})

Un tipo TT es un conjunto si todos sus tipos de igualdad son proposiciones:

isSet(T):s,t:TisProp(s=t)\text{isSet}(T) :\equiv \prod_{s,t:T} \text{isProp}(s = t)

Equivalentemente, TT tiene h-level 2.

Ejemplo 7

bool\text{bool} y N\mathbb{N} son conjuntos (de hecho, sus tipos de igualdad son proposiciones).

h-level 3: Groupoids

Definición 6 — Groupoids

Un tipo de h-level 3 es un groupoid: sus tipos de igualdad son conjuntos.

Teorema 8 — Type\text{Type} tiene h-level al menos 3

El tipo universo U\mathcal{U} tiene h-level al menos 3 (es un groupoid).

Teorema 9 — Cumulative h-levels

Si un tipo TT tiene h-level nn, entonces tiene h-level n+1n+1.

Univalencia para la lógica y los conjuntos

Definición 7 — Subtipos

Dado un tipo TT y un predicado P:TPropP : T \to \text{Prop}, el subtipo de TT dado por PP es:

t:TP(t)\sum_{t:T} P(t)

La proyección π1:t:TP(t)T\pi_1 : \sum_{t:T} P(t) \to T nos da la "inclusión".

Ejemplo 10

isContr\text{isContr}, isProp\text{isProp} y isSet\text{isSet} son todos predicados (sus valores son proposiciones). Luego son predicados UProp\mathcal{U} \to \text{Prop}.

Definición 8 — Prop\text{Prop} y Set\text{Set}

Prop:P:TypeisProp(P)\text{Prop} :\equiv \sum_{P:\text{Type}} \text{isProp}(P) Set:S:TypeisSet(S)\text{Set} :\equiv \sum_{S:\text{Type}} \text{isSet}(S)

Teorema 11 — Univalencia para proposiciones

El axioma de univalencia implica:

(P=PropQ)(PQ)(P =_{\text{Prop}} Q) \simeq (P \leftrightarrow Q)

donde PQP \leftrightarrow Q es una proposición. Luego Prop\text{Prop} es un conjunto.

Teorema 12 — Univalencia para conjuntos

El axioma de univalencia implica:

(P=SetQ)(PQ)(P =_{\text{Set}} Q) \simeq (P \cong Q)

donde PQP \cong Q es un conjunto. Luego Set\text{Set} es un groupoid.

Univalencia para estructuras algebraicas

Definición 9 — Grupos en HoTT

Grp:G:Sete:Gm:GGGi:GG(x:Gm(e,x)=x×m(x,e)=x)×(x,y,z:Gm(m(x,y),z)=m(x,m(y,z)))×(x:Gm(i(x),x)=e×m(x,i(x))=e)\text{Grp} :\equiv \sum_{G:\text{Set}} \sum_{e:G} \sum_{m:G \to G \to G} \sum_{i:G \to G} \left(\prod_{x:G} m(e,x) = x \times m(x,e) = x\right) \times \left(\prod_{x,y,z:G} m(m(x,y),z) = m(x,m(y,z))\right) \times \left(\prod_{x:G} m(i(x),x) = e \times m(x,i(x)) = e\right)

Teorema 13 — Univalencia para grupos

El axioma de univalencia implica:

(G=GrpH)(GH)(G =_{\text{Grp}} H) \simeq (G \cong H)

donde \cong denota isomorfismo de grupos. Luego Grp\text{Grp} es un groupoid.

Teorema 14 — Principio de univalencia para estructuras algebraicas

El mismo principio vale para cualquier estructura algebraica sobre un conjunto: la igualdad en el tipo de tales estructuras coincide con el isomorfismo.

Moraleja: la univalencia nos permite hacer matemáticas up to la noción apropiada de equivalencia en cada tipo. Esto se conoce como el principio de identidad de estructura (Aczel, Coquand) o la identidad de los indiscernibles (Leibniz).