Size: a a a

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

2019 October 30

МБ

Михаил Бахтерев in Теория категорий
Yuriy Syrovetskiy
и как она определена?
Ну, в Hask, видимо, она определена, как каррирование. А КАМ она определена, как защита куска кода от исполнения. Но вот в этом месте я не понимаю, что такое сам морфизм.
источник

YS

Yuriy Syrovetskiy in Теория категорий
а что здесь X и Z^Y? одно из них функции, а другое — коды функций? что из них что?

извините, я, наверно, совсем не разбираюсь в ТК и задаю глупые вопросы, но издалека λg выглядит как что-то вроде соответствия между кодом функции и семантикой.

и каррирования здесь я не вижу совсем
источник

NI

Nick Ivanych in Теория категорий
Михаил Бахтерев
Не подскажете ли, где можно почитать философские (ну, качественные) объяснения того, что такое экспоненциал? Я вот чего не понимаю.

Возьмём категорию Hask. Объекты — это типы, типизированные термы - это морфизмы. Но что тогда такое lambda? Отображение, переводящее терм в форме lambda (x, y) ... в терм в форме lambda x. lambda y ... и "сохранение" его во множестве a -> b -> c? То есть, чисто текстовое такое преобразование? Но это как-то расходится с тем, что про lambda пишут в большинстве других случаев, где lambda — это нечто вроде конструктора кода вычисления.

Что бы такое почитать, чтобы прояснить все детали? С абстрактной точки зрения, конечно, определение очевидно. Но вот концептуально я плыву.
Это множество стрелок a→b с операцией
eval : (a→b)×a → b
источник

YS

Yuriy Syrovetskiy in Теория категорий
да, судя по https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB, λ здесь обозначено каррирование
источник

YS

Yuriy Syrovetskiy in Теория категорий
Yuriy Syrovetskiy
а что здесь X и Z^Y? одно из них функции, а другое — коды функций? что из них что?

извините, я, наверно, совсем не разбираюсь в ТК и задаю глупые вопросы, но издалека λg выглядит как что-то вроде соответствия между кодом функции и семантикой.

и каррирования здесь я не вижу совсем
короче, всё наоборот. нет здесь никакой семантики и кода. только каррирование
источник

YS

Yuriy Syrovetskiy in Теория категорий
в Хаске экспоненциал — это (->), eval = flip id
источник

NI

Nick Ivanych in Теория категорий
Yuriy Syrovetskiy
в Хаске экспоненциал — это (->), eval = flip id
Ну да. Чуть перефразирую подлиньше то "философское" объяснение, что написал выше.
Экспоненциал, это множество всех стрелок между a и b, обозначается через bª.
К нему есть приспособа eval, которая берёт элемент этого множества bª (который является стрелкой из a в b), элемент из a и применяет эту стрелку к этому элементу.
То есть, имеет тип eval : bª × a → b
Объект вместе с eval'ом должны быть универсальными среди всех стрелок такого типа.
Т.е., в некотором смысле, bª должно быть"наибольшим" множеством, множеством всех-всех таких стрелок.
источник

NI

Nick Ivanych in Теория категорий
В хаскеле, это сопряжение соответствует каррированию-декаррированию.
источник

YS

Yuriy Syrovetskiy in Теория категорий
Nick Ivanych
В хаскеле, это сопряжение соответствует каррированию-декаррированию.
какое сопряжение?
источник

МБ

Михаил Бахтерев in Теория категорий
Yuriy Syrovetskiy
какое сопряжение?
Экспоненциала и произведения
источник

NI

Nick Ivanych in Теория категорий
Yuriy Syrovetskiy
какое сопряжение?
Тут написано —
https://ru.wikipedia.org/wiki/Экспоненциал
Если экспоненциал zʸ существует для всех z в C, то функтор, отправляющий z в zʸ является правым сопряжённым к [_] × y.
источник

МБ

Михаил Бахтерев in Теория категорий
Nick Ivanych
В хаскеле, это сопряжение соответствует каррированию-декаррированию.
Ну, то есть, в Hask, стрелками являются термы. Равенство между стрелками -- это равенство нормальных форм, а lambda - каррирование?
источник

МБ

Михаил Бахтерев in Теория категорий
Каррирование, как перевод терма lambda (x, y) ... в терм lambda x. lambda y ...?
источник

NI

Nick Ivanych in Теория категорий
Михаил Бахтерев
Каррирование, как перевод терма lambda (x, y) ... в терм lambda x. lambda y ...?
Да.
источник

NI

Nick Ivanych in Теория категорий
Равенство можно по-разному определять ;-)
Но наверное, равенство нормальных форм сойдёт, хоть его и не всегда можно вычислить.
источник

NI

Nick Ivanych in Теория категорий
Михаил Бахтерев
Каррирование, как перевод терма lambda (x, y) ... в терм lambda x. lambda y ...?
Было бы проще про хаскель хаскелевским синтаксисом, он не очень громоздкий ;-)
источник

МБ

Михаил Бахтерев in Теория категорий
Ускользает от меня тут то, что многие авторы называют "computation".
источник

МБ

Михаил Бахтерев in Теория категорий
Nick Ivanych
Было бы проще про хаскель хаскелевским синтаксисом, он не очень громоздкий ;-)
Я специально для себя, чтобы не зажигать лишние ассоциации :)
источник

NI

Nick Ivanych in Теория категорий
Каррированная форма функции от двух преременных, это x→zʸ.
Или в хаскелевском синтаксисе, x→(y→z), ну а учитывая ассоциативность, можно и без скобок x→y→z.
Декаррированная форма этой функции, это x×y→z
Просто уточнил.
источник

МБ

Михаил Бахтерев in Теория категорий
Nick Ivanych
Равенство можно по-разному определять ;-)
Но наверное, равенство нормальных форм сойдёт, хоть его и не всегда можно вычислить.
Ну, обычно же, это равенство устанавливается через сведение термов к чему-то одинаковому по правилам редукции. Ну, эти знаменитые equational reasoning. Ну, да. Хорошо. Наверное, равенство надо устанавливать так: термы сводятся к чему-то одному, тогда стрелки равны.
источник