Estoy leyendo este conocido artículo sobre los universos en la teoría de tipos . Al principio esperaba algo similar a Setω
Agda, pero resulta que es incluso algo más general. Parece generalizar la construcción del universo de un tipo simple inductivo-recursivo a una carpeta (similar a y Σ ). La pregunta principal que quiero hacer es, ¿cuál es la intención detrás de esto?
Aquí hay un código Idris que define los universos habituales de estilo Tarski:
mutual
public export data U : (level : Nat) -> Type where
GroundU : Ground -> U level
BinderU : Binder -> (a : U level) -> (b : (x : T {level} a) -> U level) -> U level
UnivU : U (S level)
LiftU : U level -> U (S level)
public export T : {level : Nat} -> (code : U level) -> Type
Estoy tratando de generalizarlo en algo como
mutual
public export data U : (a : Type) -> (b : (x : a) -> Type) -> Type where
GroundU : Ground -> U a ???
...
¿Qué debería ???
ser? El autor del artículo acaba de decir que los universos deberían cerrarse bajo formadores establecidos.
editar: creo que ???
es simplemente b
...
Nat
muchos universos? No está claro lo que está preguntando.Setω
, así que busqué documentos sobre superuniversos para ver si puedo aprender algo. Realmente hay pocos documentos al respecto, y este es el principal. Para entenderlo, intenté implementarlo yo mismo. Aunque ahora no creo que proporcione información sobre mi nueva idea, todavía quiero entenderla.Respuestas:
También hay un lado más práctico de tener muchos universos. Es útil tener tipos inductivos-recursivos en la teoría de tipos, para todo tipo de propósitos. Pero nos dejan definir nuevos universos, entonces la pregunta es ¿cuántos ? Para tener una idea de lo que está haciendo Palmgren, en lugar de disparar para el superuniverso de inmediato, intente la siguiente secuencia de construcciones en Agda (usando inducción-recursión):
fuente
nat
nat
bool
bool