Основная причина избегания множеств в семантике типов заключается в том, что типичный язык программирования позволяет нам определять произвольные рекурсивные функции. Следовательно, каким бы ни был смысл типа, он должен иметь свойство с фиксированной точкой. Единственное множество с таким свойством - одноэлементное множество.
Чтобы быть более точным, рекурсивно определенное значение типа (где обычно является типом функции) определяется уравнением с фиксированной точкой где может быть любой программой. Если интерпретируется как множество то мы ожидаем, что каждый будет иметь фиксированную точку. Но единственным множеством с этим свойством является синглтон.vττv = Φ ( v )Φ : τ→ ττTе: T→ TT
Конечно, вы также можете понять, что виновником является классическая логика. Если вы работаете с интуиционистской теорией множеств, то можно предположить, что существует множество множеств со свойством фиксированной точки. Фактически, это использовалось, чтобы дать семантику языка программирования, см., Например,
Алекс Симпсон, Вычислительная адекватность для рекурсивных типов в моделях теории интуиционистских множеств , В летописи чистой и прикладной логики, 130: 207-275, 2004.