Я читаю эту известную статью о вселенных в теории типов . Сначала я ожидал чего-то подобного Setω
в Агде, но оказалось, что это даже что-то более общее. Кажется, это обобщает построение вселенной от простого индуктивно-рекурсивного типа до связующего (аналогично и ). Главный вопрос, который я хочу задать, - что за этим стоит?
Вот код Idris, определяющий обычные вселенные в стиле Тарского:
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
Я пытаюсь обобщить это в нечто вроде
mutual
public export data U : (a : Type) -> (b : (x : a) -> Type) -> Type where
GroundU : Ground -> U a ???
...
Что должно ???
быть? Автор статьи только что сказал, что вселенные должны быть закрыты в соответствии с установленными формами.
редактировать: я думаю, ???
это просто b
...
Setω
, поэтому я искал статьи о супер-вселенных, чтобы посмотреть, смогу ли я чему-то научиться. Об этом действительно мало статей, и эта статья является основной. Чтобы понять это, я попытался реализовать это сам. Хотя сейчас я не думаю, что это даст понимание моей новой идеи, я все же хочу понять это.
Nat
вселенных? Непонятно, о чем вы спрашиваете.