Estou lendo este artigo bem conhecido sobre Universos na teoria dos tipos . No começo, eu esperava algo semelhante ao Setω
da Agda, mas acontece que é algo ainda mais geral. Parece generalizar a construção do universo de um tipo indutivo-recursivo simples para um aglutinante (semelhante a e ). A principal pergunta que quero fazer é: qual é a intenção por trás disso?
Aqui estão alguns códigos Idris que definem os universos usuais no 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
Estou tentando generalizá-lo em algo como
mutual
public export data U : (a : Type) -> (b : (x : a) -> Type) -> Type where
GroundU : Ground -> U a ???
...
O que deveria ???
ser? O autor do artigo acabou de dizer que os universos devem ser fechados sob formadores.
edit: Eu acho que ???
é simplesmente b
...
Setω
, então procurei artigos sobre super universos para ver se consigo aprender alguma coisa. Existem realmente poucos trabalhos sobre o assunto, e este é o principal. Para entender isso, tentei implementá-lo eu mesmo. Embora agora eu não pense que isso forneceria insights para minha nova ideia, ainda quero entender.
Nat
muitos universos? Não está claro o que você está perguntando.