Я читаю эту известную статью о вселенных в теории типов . Сначала я ожидал чего-то подобного 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
...
Nat
вселенных? Непонятно, о чем вы спрашиваете.Setω
, поэтому я искал статьи о супер-вселенных, чтобы посмотреть, смогу ли я чему-то научиться. Об этом действительно мало статей, и эта статья является основной. Чтобы понять это, я попытался реализовать это сам. Хотя сейчас я не думаю, что это даст понимание моей новой идеи, я все же хочу понять это.Ответы:
Одна из целей создания оператора вселенной и закрытой под ним супер-вселенной состоит в том, чтобы дать теоретико-типовую версию больших кардинальных аксиом, известных из теории множеств. Недостижимое кардинальное подобен вселенной типа теоретико-. Следующим интересным видом кардинала является кардинал Мало . Говоря интуитивно, кардинал Мало - это тот, у кого «много» недоступных кардиналов. Что бы это было в терминах теории типов? Это должна быть какая-то вселенная с множеством вселенных. Это то, к чему обращается Палмгрен, когда рассматривает супер-вселенные.U
Существует также более практическая сторона наличия множества вселенных. Полезно иметь индуктивно-рекурсивные типы в теории типов для любых целей. Но они позволяют нам определять новые вселенные, поэтому вопрос в том, сколько ? Чтобы понять, что делает Palmgren, вместо того, чтобы сразу же стрелять в супер-вселенную, попробуйте следующую последовательность конструкций в Agda (используя индукцию-рекурсию):
Определите одну вселенную , содержащую (код) N и замкнутую относительно Π и Σ . Этот вид вселенной соответствует недоступному кардиналу .U0 N Π Σ
Определите оператор который принимает любой тип и определяет юниверс, который содержит (код) и замкнут относительно Π и Σ . Такого рода оператор вселенной сродни аксиоме вселенной Гротендика . Сколько вселенных мы можем получить, многократно применяя U , начиная с N ?U A A Π Σ U N
Чтобы получить еще больше вселенных, мы постулируем супер-вселенную которая содержит множество вселенных, следующим образом:В
Сколько вселенных содержит ? Обратите внимание, что мы можем получить семейство B : N → V, такое, что B ( n ) - это n-я вселенная, и поэтому V должен содержать вселенную U ω, которая содержит все из них. И это только начало!V B:N→V B(n) n V Uω
источник
nat
вместо , так что это не мета-теоретический, а просто тип натуральных чисел. Это даже не так важно, как у вас , я просто использовал его как базовый тип, с которого мы можем начать. Если бы я использовал , у вас тоже все было бы в порядке (за исключением того, что вам нужно было бы подняться на одну вселенную выше, чтобы добраться до бесконечных типов, поскольку первая вселенная содержала бы только конечные типы, построенные из использования Π и Σ ).nat
bool
bool