В рекурсивных типах Wadler бесплатно! [1], он продемонстрировал два типа и , и утверждал, что они двойственны . В частности, он указал, что тип является не двойственным прежним. Кажется, что рассматриваемая двойственность отличается от дуальности Де Моргана в логике. Интересно, как определяется двойственность типов, особенно для трех упомянутых типов, почему второй является двойственным по отношению к первому, а третий - нет. Благодарю.∃ X . ( Х → Р ( Х ) ) × Х ∃ Х . X → ( X → F ( X ) )
[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt
lo.logic
type-theory
день
источник
источник
Ответы:
В этом контексте двойственность означает взятие наименьшей фиксированной точки в одном случае и наибольшей фиксированной точки в другом. Мы должны попытаться понять, в каком смысле и являются "наименее" и "наибольшим" решением рекурсивного уравнения .G = ∃ Х . ( X → F ( X ) ) × X F ( X ) ≅ XL = ∀ X, ( F( Х) → X) → X G = ∃ X, ( Х→ F( Х) ) × X F( Х) ≅Икс
Прежде всего, и действительно являются фиксированными точками (при определенных технических предположениях, которые ограничивают природу ), потому что сравнение отображает и заданное и являются изоморфизмами. Обратите внимание, что мы использовали тот факт, что является функтором, т. Е. Монотонным, когда применяем его к функциям.G F v : F ( L ) → L w : G → F ( G ) vL грамм F V : F( L ) → L w : G → F( G ) w ( X , ( f , x ) ) = F ( λ y : X
Пусть любого решения с посредническим изоморфизмом . Тогда у нас есть канонические карты определяемые как и Следовательно, является наименьшим, потому что мы можем отобразить из него любое другое решение, а является наибольшим, потому что мы можем отобразить из любого другого решения его. Мы могли бы сделать все это более точным, говоря о начальных алгебрах и конечных коалгебрах, но я хочу, чтобы мой ответ был коротким и приятным, и Коди все равно объяснил алгебры.F ( Y ) ≅ Y u : F ( Y ) → Y α : L → Y и β : Y → G αY F( Y) ≅Y U : F( Y) → Y
На практике наименьшее количество решений - это нетерпеливые типы данных, а наибольшие решения - это ленивые типы данных. Например, если , то в первом случае мы получаем конечные списки «s и во втором конечных и бесконечных списков » с.A AF( Х) = 1 + A × X A A
источник
w'
это изоморфизм, но дает ли он действительную коалгебру? (Я предполагаю, что так и должно быть, но я могу ошибаться ...) Не похоже, что квадрат будет добираться.как стрелки: квадраты
источник
Когда вы переводите (декомпозируете) типы в исчисление процессов, двойственность становится простой: входные данные двойственны выходным, и наоборот . В дуальности больше нет (много).
Что означает универсальная количественная оценка на уровне процесса? Существует прямая интерпретация: если данные типизируются переменной типа, они не могут быть использованы как объект вывода, только как объект. Поэтому мы не можем проверить эти данные, мы можем только передать их или забыть.
Теория этого была детально разработана в [1, 2, 3] и некоторых других, более труднодоступных работах, и очень точно связана с поляризованной линейной логикой и ее понятием двойственности в 4 .
4 К. Хонда и др. Точное соответствие между типизированным пи-исчислением и поляризованными сетями доказательств .
5 Р. Мильнер, Функции как процессы .
источник