~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 2C8CFF0EDCE518101146E4DE7A3B7E9D__1706752920 ✰
Заголовок документа оригинал.:
✰ Lambda cube - Wikipedia ✰
Заголовок документа перевод.:
✰ Лямбда-куб — ​​Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Lambda_cube ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/2c/9d/2c8cff0edce518101146e4de7a3b7e9d.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/2c/9d/2c8cff0edce518101146e4de7a3b7e9d__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 18:59:26 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 1 February 2024, at 05:02 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Лямбда-куб — ​​Википедия Jump to content

Лямбда-куб

Из Википедии, бесплатной энциклопедии
Лямбда-куб. Направление каждой стрелки соответствует направлению включения.

В математической логике и теории типов λ -куб (также называемый лямбда-куб ) — это основа, представленная Хенком Барендрегтом. [1] исследовать различные измерения, в которых исчисление конструкций является обобщением просто типизированного λ-исчисления . Каждое измерение куба соответствует новому виду зависимости между терминами и типами. Здесь «зависимость» относится к способности термина или типа связывать термин или тип. Соответствующие размеры λ-куба соответствуют:

  • ось X ( ): типы, которые могут связывать термины, соответствующие зависимым типам .
  • ось Y ( ): термины, которые могут связывать типы, соответствующие полиморфизму .
  • ось Z ( ): типы, которые могут связывать типы, соответствующие операторам типа (привязки) .

Различные способы объединения этих трех измерений дают 8 вершин куба, каждая из которых соответствует разному типу типизированной системы. λ-куб можно обобщить до понятия системы чистого типа .

Примеры систем [ править ]

(λ→) Просто напечатанное лямбда-исчисление [ править ]

Самая простая система, обнаруженная в λ-кубе, — это просто типизированное лямбда-исчисление , также называемое λ→. В этой системе единственный способ создать абстракцию — сделать термин зависимым от термина с помощью правила типизации :

(λ2) Система F [ править ]

В системе F (также называемой λ2 для «типизированного лямбда-исчисления второго порядка») [2] есть другой тип абстракции, написанный с помощью , что позволяет терминам зависеть от типов со следующим правилом:

Термины, начинающиеся с называются полиморфными , так как их можно применять к разным типам для получения разных функций, аналогично полиморфным функциям в ML-подобных языках . Например, полиморфное тождество

весело   х   ->   х 

OCaml имеет тип

'  а   ->   '  а 

это означает, что он может принимать аргумент любого типа 'aи вернуть элемент этого типа. Этот тип соответствует по λ2 типу .

ω ) Система F ω [ править ]

В системе F вводится конструкция для типов поставок, которые зависят от других типов . Это называется конструктором типа и позволяет создать «функцию с типом в качестве значения ». [3] Примером такого конструктора типа является тип бинарных деревьев с листьями, помеченными данными заданного типа. : , где " "неофициально" означает " является типом». Это функция, которая принимает параметр типа. в качестве аргумента и возвращает тип значений типа . В конкретном программировании эта особенность соответствует возможности определять конструкторы типов внутри языка, а не рассматривать их как примитивы. Предыдущий конструктор типа примерно соответствует следующему определению дерева с помеченными листьями в OCaml:

введите   '  дерево    =   |    Лист    '  а   |    Узел    '  дерева    *   '  дерева  

Этот конструктор типа можно применять к другим типам для получения новых типов. Например, чтобы получить тип дерева целых чисел:

введите   int_tree   =   целое   дерево 

Система Ф обычно не используется сам по себе, но полезен для выделения независимой функции конструкторов типов. [4]

(λP) Лямбда-П [ править ]

В системе λP , также называемой ΛΠ и тесно связанной с LF Logical Framework , существуют так называемые зависимые типы . Это типы, которым разрешено зависеть от термов . Важнейшим правилом внедрения системы является

где представляет допустимые типы. Новый конструктор типов через изоморфизм Карри-Говарда соответствует квантору универсальности, а система λP в целом соответствует логике первого порядка с импликацией как единственной связкой. Примером таких зависимых типов в конкретном программировании является тип векторов определенной длины: длина — это термин, от которого зависит тип.

(Λω) Система Fω [ править ]

Система Fω сочетает в себе конструктор системы F и конструкторы типов из системы F . Таким образом, система Fω предоставляет как термины, зависящие от типов , так и типы, зависящие от типов .

(λC) Исчисление конструкций [ править ]

В исчислении конструкций обозначается как λC в кубе или как λPω, [1] : 130  эти четыре характеристики сосуществуют, так что и типы, и термины могут зависеть от типов и терминов. Четкая граница, существующая в λ→ между терминами и типами, несколько упразднена, поскольку все типы, кроме универсального, сами являются терминами типа.

Формальное определение [ править ]

Что касается всех систем, основанных на просто типизированном лямбда-исчислении, все системы в кубе задаются в два этапа: сначала необработанные термины вместе с понятием β-редукции , а затем правила типизации, которые позволяют типизировать эти термины.

Множество сортов определяется как , сорта обозначаются буквой . Также есть набор переменных, представленных буквами . Необработанные члены восьми систем куба задаются следующим синтаксисом:

и обозначающий когда не возникает свободно в .

Среды, как обычно в типизированных системах, задаются формулой

Понятие β-редукции является общим для всех систем куба. Это написано и задано правилами

Его рефлексивное, транзитивное замыкание записывается .

Следующие правила типизации также являются общими для всех систем в кубе:

Разница между системами заключается в парах сортов которые разрешены в следующих двух правилах ввода:

Соответствие между системами и парами в правилах разрешено следующее:

λ→ Да Нет Нет Нет
λP Да Да Нет Нет
л2 Да Нет Да Нет
ло о Да Нет Нет Да
λP2 Да Да Да Нет
λP ω Да Да Нет Да
вот Да Нет Да Да
λС Да Да Да Да

Каждому направлению куба соответствует одна пара (исключая пару общие для всех систем), и в свою очередь каждая пара соответствует одной возможности зависимости между терминами и типами:

  • позволяет условиям зависеть от условий.
  • позволяет типам зависеть от терминов.
  • позволяет терминам зависеть от типов.
  • позволяет типам зависеть от типов.

Сравнение систем [ править ]

λ→ [ править ]

Типичный вывод, который можно получить:

или с помощью ярлыка со стрелкой
очень напоминающий тождество (типа ) обычного λ→. Обратите внимание, что все используемые типы должны присутствовать в контексте, поскольку единственный вывод, который можно выполнить в пустом контексте, — это .

Вычислительная мощность довольно слабая, соответствует расширенным полиномам (многочленам вместе с условным оператором). [5]

λ2 [ править ]

В λ2 такие члены можно получить как

с . Если кто-то читает как универсальная квантификация через изоморфизм Карри-Ховарда, это можно рассматривать как доказательство принципа взрыва. В общем, λ2 добавляет возможность иметь непредикативные типы, такие как , то есть термины, количественно оценивающие все типы, включая самих себя.
Полиморфизм также позволяет строить функции, которые невозможно построить в λ→. Точнее, функции, определяемые в λ2, — это те функции, которые доказуемо полны в арифметике Пеано второго порядка . [6] В частности, все примитивно-рекурсивные функции определимы.

λP [ править ]

В λP возможность иметь типы в зависимости от термов означает, что можно выражать логические предикаты. Например, можно вывести следующее:

что соответствует, посредством изоморфизма Карри-Говарда, доказательству .
Однако с вычислительной точки зрения наличие зависимых типов не увеличивает вычислительную мощность, а только дает возможность выразить более точные свойства типа. [7]

Правило преобразования крайне необходимо при работе с зависимыми типами, поскольку оно позволяет выполнять вычисления над терминами типа. Например, если у вас есть и , вам необходимо применить правило преобразования, чтобы получить иметь возможность печатать .

ло [ править ]

В λω следующий оператор

определимо, то есть . Вывод
можно получить уже в λ2, однако полиморфный может быть определено только в том случае, если правило тоже присутствует.

С вычислительной точки зрения λω чрезвычайно силен и считается основой языков программирования. [8]

λC [ править ]

Исчисление конструкций обладает как выразительностью предикатов λP, так и вычислительной мощностью λω, поэтому λC также называется λPω, [1] : 130  так что он очень мощный, как с логической, так и с вычислительной стороны.

Связь с другими системами [ править ]

Система Automath аналогична λ2 с логической точки зрения. ML -подобные языки с точки зрения типизации лежат где-то между λ→ и λ2, поскольку они допускают ограниченный вид полиморфных типов, то есть типов в пренексной нормальной форме. Однако, поскольку они содержат некоторые операторы рекурсии, их вычислительная мощность больше, чем у λ2. [7] Система Coq основана на расширении λC с помощью линейной иерархии вселенных, а не только одной нетипизированной системы. и умение строить индуктивные типы.

Системы чистых типов можно рассматривать как обобщение куба с произвольным набором сортов, аксиомами, правилами произведения и абстракции. И наоборот, системы лямбда-куба можно выразить как системы чистого типа с двумя видами: , единственная аксиома и набор правил такой, что . [1]

Благодаря изоморфизму Карри-Говарда существует взаимно однозначное соответствие между системами в лямбда-кубе и логическими системами: [1] а именно:

Система куба Логическая система
λ→ (Нулевой порядок) Исчисление высказываний
л2 Исчисление высказываний второго порядка
ло о Слабое исчисление высказываний высшего порядка
вот Исчисление высказываний высшего порядка
λP (Первый порядок) Логика предикатов
λP2 Исчисление предикатов второго порядка
λP ω Слабое исчисление предикатов высшего порядка
λС Расчет конструкций

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

Общие свойства [ править ]

Все системы в кубе пользуются

  • свойство Чёрча -Россера : если и тогда существует такой, что и ;
  • свойство предметного сокращения : если и затем ;
  • уникальность типов: если и затем .

Все это можно доказать на общих системах чистых типов. [9]

Любой терм, хорошо типизированный в системе куба, является сильно нормализующим. [1] хотя это свойство не является общим для всех систем чистых типов. Ни одна система в кубе не является полной по Тьюрингу. [7]

Подтипы [ править ]

Однако подтипы не представлены в кубе, хотя такие системы, как , известная как ограниченная квантификация высшего порядка , которая сочетает в себе подтипирование и полиморфизм, представляет практический интерес и может быть далее обобщена на операторы ограниченного типа . Дальнейшие расширения разрешить определение чисто функциональных объектов ; эти системы обычно разрабатывались после публикации статьи о лямбда-кубе. [10]

Идея куба принадлежит математику Хенку Барендрегту (1991). Структура систем чистых типов обобщает лямбда-куб в том смысле, что все углы куба, а также многие другие системы могут быть представлены как экземпляры этой общей структуры. [11] Этот фреймворк появился на пару лет раньше лямбда-куба. В своей статье 1991 года Барендрегт также определяет углы куба в этой системе.

См. также [ править ]

  • В своем Разрешении руководить исследованиями [12] Оливье Риду дает вырезанный шаблон лямбда-куба, а также двойственное представление куба в виде октаэдра, где 8 вершин заменены гранями, а также двойственное представление в виде додекаэдра, где 12 ребер заменены гранями. лица.

Примечания [ править ]

  1. ^ Перейти обратно: а б с д Это ж Барендрегт, Хенк (1991). «Введение в системы обобщенных типов». Журнал функционального программирования . 1 (2): 125–154. дои : 10.1017/s0956796800020025 . hdl : 2066/17240 . ISSN   0956-7968 . S2CID   44757552 .
  2. ^ Недерпельт, Роб; Геверс, Герман (2014). Теория типов и формальное доказательство . Издательство Кембриджского университета. п. 69. ИСБН  9781107036505 .
  3. ^ Nederpelt & Geuvers 2014 , с. 85
  4. ^ Nederpelt & Geuvers 2014 , с. 100
  5. ^ Швихтенберг, Гельмут (1975). «Определимые функции в λ-исчислении с типами». Архив математической логики и фундаментальных исследований (на немецком языке). 17 (3–4): 113–114. дои : 10.1007/bf02276799 . ISSN   0933-5846 . S2CID   11598130 .
  6. ^ Жирар, Жан-Ив; Лафон, Ив; Тейлор, Пол (1989). Доказательства и типы . Кембриджские трактаты по теоретической информатике. Том. 7. Издательство Кембриджского университета. ISBN  9780521371810 .
  7. ^ Перейти обратно: а б с Риду, Оливье (1998). Лямбда-Пролог от А до Я... или почти (PDF) . [сн] OCLC   494473554 .
  8. ^ Пирс, Бенджамин; Дитцен, Скотт; Михайлов, Спиро (1989). Программирование в типизированных лямбда-исчислениях высшего порядка . Факультет компьютерных наук Университета Карнеги-Меллон. OCLC   20442222 . КМУ-КС-89-111 ЭРГО-89-075.
  9. ^ Соренсен, Мортен Хейне; Ужичин, Павел (2006). «Системы чистого типа и λ-куб». Лекции по изоморфизму Карри-Говарда . Эльзевир. стр. 343–359. дои : 10.1016/s0049-237x(06)80015-7 . ISBN  9780444520777 .
  10. ^ Пирс, Бенджамин (2002). Типы и языки программирования . МТИ Пресс. стр. 467–490. ISBN  978-0262162098 . ОСЛК   300712077 .
  11. ^ Пирс 2002 , с. 466
  12. ^ Риду 1998 , с. 70

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 2C8CFF0EDCE518101146E4DE7A3B7E9D__1706752920
URL1:https://en.wikipedia.org/wiki/Lambda_cube
Заголовок, (Title) документа по адресу, URL1:
Lambda cube - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)