Каппа-исчисление
В математической логике , теории категорий и информатика , каппа-исчисление - это формальная система определения первого порядка функций .
В отличие от лямбда-исчисления , каппа-исчисление не имеет функции высшего порядка ; его функциине первоклассные объекты . Каппа-исчисление может бытьрассматривается как «переформулировка фрагмента первого порядка типизированноголямбда-исчисление». [1]
Поскольку его функции не являются первоклассными объектами, оценка каппаматематические выражения не требуют закрытия .
Определение [ править ]
Приведенное ниже определение было адаптировано на основе диаграмм Хасэгавы на страницах 205 и 207. [1]
Грамматика [ править ]
Каппа-исчисление состоит из типов и выражений, заданныхграмматика ниже:
Другими словами,
- 1 это тип
- Если и тогда это типы это тип.
- Каждая переменная является выражением
- Если τ — тип, то это выражение
- Если τ — тип, то это выражение
- Если τ — тип, а e — выражение, то это выражение
- Если и тогда это выражения это выражение
- Если x — переменная, τ — тип, а e — выражение, то это выражение
The и индексы id , ! , и являютсяиногда опускаются, если их можно однозначно определить изконтекст.
Сопоставление часто используется как сокращение для комбинации и состав:
Правила набора текста [ править ]
В представлении здесь используются секвенции ( ), а не гипотетические суждения, чтобы облегчить сравнение с просто типизированным лямбда-исчислением. Для этого требуется дополнительное правило Var, которого нет в Hasegawa. [1]
В каппа-исчислении выражение имеет два типа: тип источника и тип цели . Обозначения используется для указания того, что выражение e имеет тип источника и тип цели .
Выражениям в каппа-исчислении присваиваются типы в соответствии со следующими правилами:
(был) (Идентификатор) (Хлопнуть) (Комп) (Поднимать) (Каппа)
Другими словами,
- Было: если предположить позволяет вам сделать вывод, что
- Id: для любого типа τ ,
- Взрыв: любого типа τ для
- Comp: если целевой тип соответствует типу источника они могут быть составлены так, чтобы сформировать выражение с типом источника и целевой тип
- Лифт: если , затем
- Каппа: если мы сможем заключить, что в предположении, что мы можем заключить, , то без этого предположения что
Равенства [ править ]
Каппа-исчисление подчиняется следующим равенствам:
- Нейтралитет: если затем и
- Ассоциативность: Если , , и , затем .
- Терминальность: Если и затем
- Лифт-Уменьшение:
- Каппа-редукция: если x не свободен в h
Последние два равенства представляют собой правила редукции исчисления:переписываем слева направо.
Свойства [ править ]
Тип 1 можно рассматривать как тип устройства . По этой причине любые две функции, тип аргумента которых один и тот же, а тип результата равен 1, должны быть равны — поскольку существует только одно значение типа 1, обе функции должны возвращать это значение для каждого аргумента ( Terminality ).
Выражения с типом можно рассматривать как «константы» или значения «типа земли»; это потому, что 1 — это тип единицы, и поэтому функция этого типа обязательно является постоянной функцией. Обратите внимание, что правило каппы допускает абстракции только в том случае, если абстрагируемая переменная имеет тип для некоторого τ . Это базовый механизм, который гарантирует, что все функции имеют первый порядок.
Категориальная семантика [ править ]
Каппа-исчисление задумано как внутренний язык контекстуально полные категории.
Примеры [ править ]
Выражения с несколькими аргументами имеют исходные типы, которые«правонесбалансированные» бинарные деревья. Например, функция f с тремяаргументы типов A, B и C и тип результата D будут иметь тип
Если мы определим левоассоциативное сопоставление как аббревиатурадля , тогда – предполагая, что , , и – мы можем применить эту функцию:
Поскольку выражение имеет исходный тип 1 , это «основное значение» и может быть передано в качестве аргумента другой функции. Если , затем
Очень похоже на каррированную функцию типа в лямбда-исчислении, частичноевозможно применение:
Однако никакие более высокие типы (т.е. ) участвуют. Обратите внимание: поскольку исходный тип fa не равен 1 , следующее выражение не может быть правильно типизировано при упомянутых до сих пор предположениях:
Поскольку последовательное применение используется для несколькихаргументов не обязательно знать арность функции впорядок определения его типизации; например, если мы знаем, что тогда выражение
- Джей Си
хорошо типизирован, пока j имеет тип
- для некоторого α
и β . Это свойство важно при расчетеосновной тип выражения, что-точто может быть затруднительно при попытке исключитьфункции из типизированных лямбда-исчислений путем ограничения грамматики типов.
История [ править ]
Первоначально представлен Барендрегт [2] термин«функциональная полнота» в контексте комбинаторной алгебры.Каппа-исчисление возникло благодаря усилиям Ламбека. [3] сформулировать соответствующий аналог функционалаполнота для произвольных категорий (см. Hermida and Jacobs, [4] раздел 1). Позже у Хасэгавы развилась каппа.исчисления в удобный (хотя и простой) язык программирования, включающийарифметика над натуральными числами и примитивная рекурсия. [1] Соединения со стрелками позже были расследованы [5] Пауэром, Тилеке и другими.
Варианты [ править ]
Можно изучить версии каппа-исчисления с помощью субструктурные типы, такие как линейный , аффинный ,и упорядоченные типы. Эти расширения требуют устранения илиограничение выражение. В таких обстоятельствахоператор типа × не является настоящим декартовым произведением,и обычно пишется ⊗, чтобы это было ясно.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с д Хасэгава, Масахито (1995). «Разложение типизированного лямбда-исчисления на пару категориальных языков программирования». В Питте, Дэвид; Райдхард, Дэвид Э.; Джонстон, Питер (ред.). Категория Теория и информатика . Конспекты лекций по информатике. Том. 953. Шпрингер-Верлаг Берлин Гейдельберг. стр. 200–219. CiteSeerX 10.1.1.53.715 . дои : 10.1007/3-540-60164-3_28 . ISBN 978-3-540-60164-7 . ISSN 0302-9743 .
- Адам (31 августа 2010 г.). «Что такое κаппа-категории?» . MathOverflow .
- ^ Барендрегт, Хендрик Питер, изд. (1 октября 1984 г.). Лямбда-исчисление: его синтаксис и семантика . Исследования по логике и основам математики. Том. 103 (пересмотренная ред.). Амстердам, Северная Голландия: Elsevier Science. ISBN 978-0-444-87508-2 .
- ^ Ламбек, Иоахим (1 августа 1973 г.). «Функциональная полнота декартовых категорий». Анналы математической логики . 6 (3–4) (опубликовано в марте 1974 г.): 259–292. дои : 10.1016/0003-4843(74)90003-5 . ISSN 0003-4843 .
- Адам (31 августа 2010 г.). «Что такое κаппа-категории?» . MathOverflow .
- ^ Эрмида, Клаудио; Джейкобс, Барт (декабрь 1995 г.). «Расслоения с неопределенными: контекстная и функциональная полнота полиморфных лямбда-исчислений» . Математические структуры в информатике . 5 (4): 501–531. дои : 10.1017/S0960129500001213 . ISSN 1469-8072 . S2CID 3428512 .
- ^ Пауэр, Джон; Тилеке, Хайо (1999). «Закрытые Фрейд- и κ-категории». В Видерманне, Иржи; ван Эмде Боас, Питер ; Нильсен, Могенс (ред.). Автоматы, языки и программирование . Конспекты лекций по информатике. Том. 1644. Шпрингер-Верлаг Берлин Гейдельберг. стр. 625–634. CiteSeerX 10.1.1.42.2151 . дои : 10.1007/3-540-48523-6_59 . ISBN 978-3-540-66224-2 . ISSN 0302-9743 .