Итак, я читаю немного о разработке, в частности, алгоритмах, основанных на двухцветном исчислении конструкции, и я немного запутался. Я не понимаю, какова цель . Кажется, он идентичен за исключением того, что существует различие между неявными и явными аргументами для функций. В частности, я не вижу, как он позволяет писать вместо . Если мы примем систему глобальных определений, то
а также
.
Правила действительно позволяют ? Конечно, синтаксис есть, но я не вижу его в типизации. Я что-то пропустил? Я неправильно понимаю роль ?
Кроме того, не потеряно ли свойство слияния? Думаю, моя проблема в том, что я читаю о разработке, не читая много о до этого. Какая хорошая статья, которая представляет это и это один?
Изменить: Чтобы быть более точным, я спрашиваю, как принимается вместо когда правила для явного и неявного приложения идентичны по модулю sytnax , Я не вижу разницы между иправила для обоих кажутся одинаковыми.
Изменить: я не говорю о неявном исчислении конструкций, который является другой теорией и имеет разные правила для явных (приложение против поколения.)
Изменить: Хорошо, я думаю, что я начинаю понимать это, но я не буду отвечать на этот вопрос, пока я не уверен. По сути не проверяет тип, и фактически он просто разработан для непосредственно перед проверкой типа или выполнен как вторичная ответственность алгоритма проверки типа. По сути, эти неявные исчисления предназначены для языков интерфейса (пользовательского), которые разрабатываются в обычные (явные) исчисления или, по крайней мере, в явный фрагмент неявных исчислений перед проверкой типов. Если это так, то я думаю, что вижу общую картину. Может кто-нибудь, пожалуйста, подтвердите это?
Ответы:
В «Неявном исчислении конструкций, расширяющем системы чистого типа с помощью связующего и подтипов типов пересечений» , Александр Микель представляет основные понятия для неявного исчисления конструкций, которые, как я полагаю, являются синонимом двухцветного исчисления конструкций.
Суть в том, чтобы (помимо всего прочего) иметь исчисление без беспорядка явных аннотаций типов везде. Вывод типа (весьма вероятно) неразрешим.
В этом исчислении, если мы возьмем , тогда вы можете получить просто используя явный продукт и неявные правила продукта в последовательности. Тогда правило инстанцирования для неявного продукта позволяет и т. Д. Система допускает сокращение и слияние даже на нетипизированных терминах (что на самом деле не подходит для исчислений с аннотациями абстракции). ). Все это можно найти в диссертации Александра, к сожалению, на французском языке. Не уверен, что у меня есть лучший справочник для этих результатов, хотя я боюсь.id=λx.x
источник
id !1 0
уточняется доid Nat 0
. В этом тексте проработка