Size: a a a

Теория категорий

2019 November 21

V

Valery in Теория категорий
toriningen
т.к. ⊥ будучи типом с 0 инхабитантов является вроде как субтипом всех возможных типов
⊥ это же значение, а не тип
источник

t

toriningen in Теория категорий
это не "пустой тип"? как я понял, это не значение, потому что значений этого типа как раз нет
источник

V

Valery in Теория категорий
toriningen
теперь понял. значит, если бы Hask был категорией (которой он не является, но почему, я узнаю позже) - то было бы 3*3 функций, из них реализуемы только те, которые не от ⊥, так?
откуда берется 3*3? говорю же, что не 9
источник

t

toriningen in Теория категорий
т.е. как я понял, нельзя получить терм типа ⊥
источник

V

Valery in Теория категорий
toriningen
т.е. как я понял, нельзя получить терм типа ⊥
ок, если ⊥ обозначать пустой тип, то при чем тут он? мы же вроде Bool обсуждали и функции на нем
источник

t

toriningen in Теория категорий
Valery
откуда берется 3*3? говорю же, что не 9
почему? если считать, что в Boolean включен боттом, то это

True -> ⊥
True -> True
True -> False
False -> ⊥
False -> True
False -> False
⊥ -> ⊥ (не реализуема)
⊥ -> True (не реализуема)
⊥ -> False (не реализуема)
источник

t

toriningen in Теория категорий
Valery
ок, если ⊥ обозначать пустой тип, то при чем тут он? мы же вроде Bool обсуждали и функции на нем
тогда я запутался :с извините.
источник

V

Valery in Теория категорий
toriningen
почему? если считать, что в Boolean включен боттом, то это

True -> ⊥
True -> True
True -> False
False -> ⊥
False -> True
False -> False
⊥ -> ⊥ (не реализуема)
⊥ -> True (не реализуема)
⊥ -> False (не реализуема)
всего функций на 3-элементном множестве не 3*3, а 3^3, и да, не все из них реализуемы
источник

t

toriningen in Теория категорий
почему 3-элементном? в задаче было "от Bool до Bool", т.е. не от двух аргументов
источник

V

Valery in Теория категорий
Bool = { True, False, ⊥ }
источник

t

toriningen in Теория категорий
да, откуда тогда 27? чисто комбинаторно есть только 3*3 вариантов
источник

t

toriningen in Теория категорий
было бы Bool -> Bool -> Bool, тогда да
источник

V

Valery in Теория категорий
toriningen
да, откуда тогда 27? чисто комбинаторно есть только 3*3 вариантов
функций из n-элементного множества в m-элементное всего m^n
источник

Oℕ

Oleg ℕizhnik in Теория категорий
нет, комбинаторно X -> Y |Y| ^ |X| вариантов
источник

Oℕ

Oleg ℕizhnik in Теория категорий
у вас есть |X| ячеек для каждой из  которых нужно определить значение |Y| поэтому со многих точек зрения X -> Y - это X- кратное произведение Y самого на себя
источник

t

toriningen in Теория категорий
Valery
ок, если ⊥ обозначать пустой тип, то при чем тут он? мы же вроде Bool обсуждали и функции на нем
я так понял, что ⊥ является типом... объектом в категории. К нему всегда есть стрелка от любого другого типа, потому что любая функция может вместо одного из термов в результирующем типе "не вернуться", т.е. по факту иметь тип результата ⊥
источник

V

Valery in Теория категорий
toriningen
почему? если считать, что в Boolean включен боттом, то это

True -> ⊥
True -> True
True -> False
False -> ⊥
False -> True
False -> False
⊥ -> ⊥ (не реализуема)
⊥ -> True (не реализуема)
⊥ -> False (не реализуема)
ну вот в этом же сообщении вы используете этот символ как элемент Bool
источник

t

toriningen in Теория категорий
Oleg ℕizhnik
нет, комбинаторно X -> Y |Y| ^ |X| вариантов
а, подождите, я, кажется, понял.
источник

V

Valery in Теория категорий
toriningen
я так понял, что ⊥ является типом... объектом в категории. К нему всегда есть стрелка от любого другого типа, потому что любая функция может вместо одного из термов в результирующем типе "не вернуться", т.е. по факту иметь тип результата ⊥
тип функции известен статически. если функция не завершается, то она _возвращает_ значение ⊥, но тип у нее не меняется, он фиксирован
источник

t

toriningen in Теория категорий
я совершенно упустил из виду, что результат функции зависит от аргумента
источник