stringtranslate.com

Явная замена

В информатике говорят , что лямбда-исчисления имеют явные подстановки , если они уделяют особое внимание формализации процесса подстановки . Это контрастирует со стандартным лямбда-исчислением , где подстановки выполняются бета-редукциями неявным образом, который не выражается в исчислении; условия «свежести» в таких неявных исчислениях являются печально известным источником ошибок. [1] Эта концепция появилась в большом количестве опубликованных статей в совершенно разных областях, таких как абстрактные машины , предикатная логика и символьные вычисления .

Обзор

Простым примером лямбда-исчисления с явной подстановкой является «λx», которое добавляет одну новую форму термина в лямбда-исчисление , а именно форму M⟨x:=N⟩, которая читается как «M, где x будет заменен на N». (Значение нового термина такое же, как и распространенная идиома let x:=N ​​в M из многих языков программирования.) λx можно записать с помощью следующих правил переписывания :

  1. (λx.M) N → M⟨x:=N⟩
  2. х⟨х:=N⟩ → N
  3. x⟨y:=N⟩ → x (x≠y)
  4. 1 М 2 ) ⟨x:=N⟩ → (М 1 ⟨x:=N⟩) (М 2 ⟨x:=N⟩)
  5. (λx.M) ⟨y:=N⟩ → λx.(M⟨y:=N⟩) (x≠y и x не свободен в N)

Хотя эта формулировка делает подстановку явной, она все еще сохраняет сложность "переменной конвенции" лямбда-исчисления , требуя произвольного переименования переменных во время редукции, чтобы гарантировать, что условие "(x≠y и x не свободны в N)" в последнем правиле всегда выполняется до применения правила. Поэтому многие исчисления явной подстановки вообще избегают имен переменных, используя так называемую "свободную от имени" индексную нотацию Де Брейна .

История

Явные подстановки были набросаны в предисловии к книге Карри по комбинаторной логике [2] и выросли из «трюка реализации», используемого, например, AUTOMATH , и стали уважаемой синтаксической теорией в лямбда-исчислении и теории переписывания . Хотя на самом деле она возникла у де Брейна [3], идея конкретного исчисления, где подстановки являются частью объектного языка, а не неформальной метатеории, традиционно приписывается Абади , Карделли , Курьену и Леви. Их основополагающая статья [4] по исчислению λσ объясняет, что реализации лямбда-исчисления должны быть очень осторожны при работе с подстановками. Без сложных механизмов для совместного использования структур подстановки могут вызвать взрывной рост размера, и поэтому на практике подстановки задерживаются и явно записываются. Это делает соответствие между теорией и реализацией крайне нетривиальным, а правильность реализаций может быть трудно установить. Одним из решений является включение подстановок в исчисление, то есть создание исчисления явных подстановок.

Однако, как только замена сделана явной, основные свойства замены меняются с семантических на синтаксические. Одним из наиболее важных примеров является «лемма замены», которая с обозначением λx становится

Удивительный контрпример, предложенный Мельесом [5], показывает, что способ, которым это правило закодировано в исходном исчислении явных подстановок, не является строго нормализующим . После этого было описано множество исчислений, пытающихся предложить наилучший компромисс между синтаксическими свойствами исчислений явных подстановок. [6] [7] [8]

Смотрите также

Ссылки

  1. ^ Клустон, Ранальд; Бизяк, Алеш; Гратволь, Ханс; Биркедал, Ларс (27 апреля 2017 г.). «Охраняемое лямбда-исчисление: программирование и рассуждения с защищенной рекурсией для коиндуктивных типов». Логические методы в информатике . 12 (3): 36. arXiv : 1606.09455 . doi : 10.2168/LMCS-12(3:7)2016.
  2. ^ Карри, Хаскелл; Фейс, Роберт (1958). Комбинаторная логика, том I. Амстердам: North-Holland Publishing Company.
  3. ^ Н. Г. де Брейн: Безымянное лямбда-исчисление с возможностями внутреннего определения выражений и сегментов. Технологический университет Эйндховена, Нидерланды, математический факультет, (1978), (TH-Report), номер 78-WSK-03.
  4. ^ М. Абади, Л. Карделли, П. Л. Куриен и Дж. Дж. Леви, Явные подстановки, Журнал функционального программирования 1, 4 (октябрь 1991 г.), 375–416.
  5. ^ PA. Melliès: Типизированные лямбда-исчисления с явными подстановками могут не завершаться. TLCA 1995: 328–334
  6. ^ П. Лесканн, От λσ к λυ: путешествие по исчислениям явных подстановок, POPL 1994, стр. 60–69.
  7. ^ KH Rose, Явная замена – Учебное пособие и обзор, BRICS LS-96-3, сентябрь 1996 г. (ps.gz).
  8. ^ Делия Кеснер: Теория явных замен с безопасной и полной композицией. Логические методы в информатике 5(3) (2009)