Как определяется двойственность типов?

12

В рекурсивных типах Wadler бесплатно! [1], он продемонстрировал два типа и , и утверждал, что они двойственны . В частности, он указал, что тип является не двойственным прежним. Кажется, что рассматриваемая двойственность отличается от дуальности Де Моргана в логике. Интересно, как определяется двойственность типов, особенно для трех упомянутых типов, почему второй является двойственным по отношению к первому, а третий - нет. Благодарю.X . ( Х Р ( Х ) ) × Х Х . X ( X F ( X ) )X.(F(X)X)XX.(XF(X))×XX.X(XF(X))

[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt

день
источник
Я не собираюсь здесь сильно помогать, но это звучит как теория.
Энтони

Ответы:

8

В этом контексте двойственность означает взятие наименьшей фиксированной точки в одном случае и наибольшей фиксированной точки в другом. Мы должны попытаться понять, в каком смысле и являются "наименее" и "наибольшим" решением рекурсивного уравнения .G = Х . ( X F ( X ) ) × X F ( X ) XL=X.(F(X)X)XG=X.(XF(X))×XF(X)X

Прежде всего, и действительно являются фиксированными точками (при определенных технических предположениях, которые ограничивают природу ), потому что сравнение отображает и заданное и являются изоморфизмами. Обратите внимание, что мы использовали тот факт, что является функтором, т. Е. Монотонным, когда применяем его к функциям.G F v : F ( L ) L w : G F ( G ) vLGFv:F(L)Lw:GF(G)w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
F
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

Пусть любого решения с посредническим изоморфизмом . Тогда у нас есть канонические карты определяемые как и Следовательно, является наименьшим, потому что мы можем отобразить из него любое другое решение, а является наибольшим, потому что мы можем отобразить из любого другого решения его. Мы могли бы сделать все это более точным, говоря о начальных алгебрах и конечных коалгебрах, но я хочу, чтобы мой ответ был коротким и приятным, и Коди все равно объяснил алгебры.F ( Y ) Y u : F ( Y ) Y α : L Y  и  β : Y G αYF(Y)Yu:F(Y)Y

α:LY and β:YG
β
αf=fYu
L G
βy=(Y,(u1,y)).
LG

На практике наименьшее количество решений - это нетерпеливые типы данных, а наибольшие решения - это ленивые типы данных. Например, если , то в первом случае мы получаем конечные списки «s и во втором конечных и бесконечных списков » с.A AF(X)=1+A×XAA

Андрей Бауэр
источник
В моем ответе отсутствует доказательство того, что и являются фиксированными точками (при некоторых предположениях о , которые могут остаться неустановленными). Как записать карты сравнения и ? G F F ( L ) L G F ( G )LGFF(L)LGF(G)
Андрей Бауэр
Хорошо, нашел карты и с Coq. Wvw
Андрей Бауэр
Кажется, что есть другой кандидат для , а именно , Может кто-нибудь объяснить, что происходит? w ( X , ( f , x ) ) = F ( λ y : Xww(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
Андрей Бауэр
1
Я предполагаю, что вы доказали, что w'это изоморфизм, но дает ли он действительную коалгебру? (Я предполагаю, что так и должно быть, но я могу ошибаться ...) Не похоже, что квадрат будет добираться.
CA McCann
В своей заметке: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… Вадлер дает первую версию. Однако он пишет это немного по-другому: w (X, (f, x)) = F (развернуть X k) (fx). Это делает структуру коалгебры более четкой и почти сразу же дает коммутацию соответствующих морфизмов керкурсинга. Как говорит Camcann, я думаю, что ваша другая версия не делает эти квадраты коммутирующими.
Коди
7

ICF:CCF

  • AC
    α:F(A)A
  • как стрелки: квадраты

    Морфизм F-алгебры

IFI

  1. in:F(I)I
  2. F(A,α)fold:IA

I=X.(F(X)X)Xfold

fold=λi:I.i A α:IA
inF, что можно рассматривать как требование позитивности.

FF

  • ZC
    ω:ZF(Z)
  • Fαβ

T

  1. out:TF(T)
  2. FZcofold:ZT

T=X.(XF(X))×X

cofold=λz:Z.(Z,ω,z):ZT
T=X.X(XF(X))
Коди
источник
6

λπ

Когда вы переводите (декомпозируете) типы в исчисление процессов, двойственность становится простой: входные данные двойственны выходным, и наоборот . В дуальности больше нет (много).

πα=(Bool,Int)ααxx¯false,7α¯(v,w)vwα¯(bool,int)α¯xc(v,w).0

β=(int,(int))(v,w)vwβ¯=(int,(int))αα¯PαxQα¯xPQββ¯

X.(X,(X))(v,w)vXwXx

x(vw).w¯v
X.(X,(X))

Что означает универсальная количественная оценка на уровне процесса? Существует прямая интерпретация: если данные типизируются переменной типа, они не могут быть использованы как объект вывода, только как объект. Поэтому мы не можем проверить эти данные, мы можем только передать их или забыть.

X.(X,(X))X.(X,(X))

Теория этого была детально разработана в [1, 2, 3] и некоторых других, более труднодоступных работах, и очень точно связана с поляризованной линейной логикой и ее понятием двойственности в 4 .

λλπλπλ

π

π

π

4 К. Хонда и др. Точное соответствие между типизированным пи-исчислением и поляризованными сетями доказательств .

5 Р. Мильнер, Функции как процессы .

Мартин Бергер
источник
1
re: Ваша точка зрения о количестве жителей типа ∀X. (X, (X) ↑) ↓. Существует ли аналог «свободных теорем» для пи-исчисления? Если да, где это обсуждается?
Доминик Маллиган
1
Здравствуйте @DominicMulligan, да, есть «свободные теоремы», и мы немного исследовали это в [1, 2]. Я думаю, что в этом направлении можно сказать гораздо больше.
Мартин Бергер
1
@MartinBerger: Можете ли вы использовать параметричность, чтобы выяснить, каково «правильное» понятие эквивалентности процесса для типизированного пи-исчисления? Например, в Системе F параметрическое логическое отношение соответствует контекстуальной эквивалентности. По аналогии, я ожидал бы, что любое понятие эквивалентности процесса соответствует параметрическому логическому отношению для пи-исчисления, чтобы быть особенно интересным.
Нил Кришнасвами
π
Характеристики, основанные на бисимуляции, полезны для практических рассуждений, потому что они не требуют замыкания во всех контекстах.
Мартин Бергер