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


12

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

Прежде всего, и действительно являются фиксированными точками (при определенных технических предположениях, которые ограничивают природу ), потому что сравнение отображает и заданное и являются изоморфизмами. Обратите внимание, что мы использовали тот факт, что является функтором, т. Е. Монотонным, когда применяем его к функциям.G F v : F ( L ) → L w : G → F ( G ) vLGFv:F(L)→Lw:G→F(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

α:L→Y and β:Y→G
β
αf=fYu
L G
βy=(Y,(u−1,y)).
LG

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


В моем ответе отсутствует доказательство того, что и являются фиксированными точками (при некоторых предположениях о , которые могут остаться неустановленными). Как записать карты сравнения и ? G F F ( L ) → L G → F ( G )LGFF(L)→LG→F(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:C→CF

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

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

IFI

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

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

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

FF

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

T

  1. out:T→F(T)
  2. FZcofold:Z→T

T=∃X.(X→F(X))×X

cofold=λz:Z.(Z,ω,z):Z→T
T=∃X.X→(X→F(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 параметрическое логическое отношение соответствует контекстуальной эквивалентности. По аналогии, я ожидал бы, что любое понятие эквивалентности процесса соответствует параметрическому логическому отношению для пи-исчисления, чтобы быть особенно интересным.
— Нил Кришнасвами

π

Характеристики, основанные на бисимуляции, полезны для практических рассуждений, потому что они не требуют замыкания во всех контекстах.
— Мартин Бергер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.