Я думаю, что лучший способ понять это - рассмотреть эти вещи как теоретико-множественные множества, а не как Agda Set
. предположим, у вас есть A = {a,b,c}
. Примером функции f : A → A
является набор пар, скажем f = { (a,a) , (b,b) , (c,c) }
, который удовлетворяет некоторым свойствам, которые не имеют значения для этого обсуждения. Другими словами, элементы f
- это то же самое, что и элементы A
- это просто значения или пары значений, ничего слишком "большого".
Теперь рассмотрим функцию F : A → Set
. Это тоже набор пар, но выглядят его пары иначе: F = { (a,A) , (b,Nat) , (c,Bool) }
так. Первый элемент каждой пары - это просто элемент A
, поэтому это довольно просто, но вторым элементом каждой пары является Set
! То есть второй элемент сам по себе является «большим». Таким образом, A → Set
не может быть установлен, потому что, если бы это было так, то у нас могло бы быть несколько G : A → Set
, которые выглядят как G = { (a,G) , ... }
. Как только мы получим это, мы сможем получить парадокс Рассела. Поэтому вместо этого мы говорим A → Set : Set1
.
Это также решает вопрос о том, должен ли Set → A
также быть в Set1
вместо Set
, потому что функции в Set → A
такие же, как функции в A → Set
, за исключением того, что A
s справа, а Set
s слева, пары.
person
augur
schedule
25.09.2012