Индекс Де Брейна
В математической логике индекс де Брёйна — это инструмент, изобретенный голландским математиком Николаасом Говертом де Брёйном для представления членов лямбда-исчисления без указания связанных переменных. [1] Термы, записанные с использованием этих индексов, инвариантны относительно α-преобразования , поэтому проверка α-эквивалентности такая же, как и проверка синтаксического равенства. Каждый индекс де Брейна представляет собой натуральное число , которое представляет вхождение переменной в λ-терм и обозначает количество связующих , находящихся в области действия между этим вхождением и соответствующей связующей. Ниже приведены некоторые примеры:
- Термин λ x . лям y . x , иногда называемый K-комбинатором , записывается как λ λ 2 с индексами де Брейна. Связующим для вхождения x является второй λ в области видимости.
- Термин λ x . лям y . λ z . x z ( y z ) ( S-комбинатор ) с индексами де Брёйна равен λ λ λ 3 1 (2 1).
- Термин λ z . (λ y . y (λ x . x )) (λ x . z x ) есть λ (λ 1 (λ 1)) (λ 2 1). См. следующий рисунок, где папки окрашены в цвет, а ссылки показаны стрелками.
Индексы де Брёйна обычно используются в системах рассуждения более высокого порядка, таких как автоматизированные средства доказательства теорем и логического программирования . системы [2]
Формальное определение
[ редактировать ]Формально λ-термы ( M , N , ...), записанные с использованием индексов де Брейна, имеют следующий синтаксис (круглые скобки допускаются свободно):
- М , N , ... ::= n | М Н | λM
где n — натуральные числа, большие 0, — переменные. Переменная n является связанной , если она находится в области действия как минимум n связующих (λ); в противном случае это бесплатно . Местом связывания для переменной n является n- которой она находится я связующая, в области действия , начиная с самой внутренней связующей.
Самая примитивная операция над λ-термами — это замена : замена свободных переменных в терме другими термами. в β-редукции (λ M ) N Например, мы должны
- найти экземпляры переменных n 1 , n 2 , ..., nk которые в M, связаны λ в λ M ,
- уменьшить свободные переменные M , чтобы они соответствовали удалению внешнего λ-связующего, и
- замените n 1 , n 2 , ..., nk , на N соответствующим образом увеличивая свободные переменные, встречающиеся в N каждый раз, чтобы соответствовать количеству λ-связующих, при которых соответствующая переменная встречается, когда N заменяет одну из n я .
Для иллюстрации рассмотрим приложение
- (λ λ 4 2 (λ 1 3)) (λ 5 1)
что могло бы соответствовать следующему члену, записанному в обычных обозначениях
- (λ x . λ y . z x (λ u . u x )) (λ x . w x ).
После шага 1 получаем терм λ 4 □ (λ 1 □), где переменные, предназначенные для замены, заменяются квадратиками. Шаг 2 уменьшает свободные переменные, давая λ 3 □ (λ 1 □). Наконец, на шаге 3 мы заменяем поля с аргументом, а именно λ 5 1; первый блок находится под одной связкой, поэтому мы заменяем его на λ 6 1 (что равно λ 5 1 с увеличенными на 1 свободными переменными); второй находится под двумя связками, поэтому заменим его на λ 7 1. Конечный результат — λ 3 (λ 6 1) (λ 1 (λ 7 1)).
Формально замена представляет собой неограниченный список термов, обозначаемый M 1 . M 2 ..., где Mi — замена i-й свободной переменной. Операцию увеличения на шаге 3 иногда называют сдвигом и пишут ↑ к где k — натуральное число, указывающее на величину увеличения переменных, и определяется формулой
Например, ↑ 0 — это замена идентичности, оставляющая термин неизменным. Конечный список термов M 1 . M 2 ... M n сокращает замену M 1 . M 2 ... M n .(n+1).(n+2)... оставляя без изменений все переменные, большие n. Применение замены s к терму M записывается M [ s ]. Композиция двух замен s 1 и s 2 записывается как s 1 s 2 и определяется формулой
- ( М 1 . М 2 ...) s знак равно М 1 [ s ]. М 2 [ с ]...
удовлетворение собственности
- M [ s 1 s 2 ] = ( M [ s 1 ]) [ s 2 ],
и замена определяется следующим образом:
Таким образом, шаги, описанные выше для β-восстановления, более кратко выражаются следующим образом:
- (λ M ) N → β M [ N ].
Альтернативы индексам де Брёйна
[ редактировать ]При использовании стандартного «именованного» представления λ-термов, где переменные рассматриваются как метки или строки, необходимо явно обрабатывать α-преобразование при определении любой операции с терминами. На практике это громоздко, неэффективно и часто подвержено ошибкам. Поэтому это привело к поиску различных представлений таких терминов. С другой стороны, именованное представление λ-термов является более распространенным и может быть более понятным для других, поскольку переменным можно давать описательные имена. Таким образом, даже если система использует внутри себя индексы де Брейна, она будет представлять пользовательский интерфейс с именами.
Альтернативный способ просмотра индексов де Брёйна — это уровни де Брёйна, которые индексируют переменные снизу стека, а не сверху. Это устраняет необходимость переиндексации свободных переменных, например, при ослаблении контекста, тогда как индексы де Брёйна устраняют необходимость переиндексации связанных переменных, например, когда подстановка закрытого выражения в другой контекст. [3]
Индексы де Брёйна — не единственное представление λ-термов, позволяющее избежать проблемы α-конверсии. Среди именованных представлений номинальные методы Питтса и Габбея являются одним из подходов, в котором представление λ-терма рассматривается как класс эквивалентности всех термов, перезаписываемых в него с использованием перестановок переменных. [4] Этот подход используется в пакете номинальных типов данных Isabelle/HOL . [5]
Другая распространенная альтернатива — обращение к представлениям более высокого порядка , где λ-связующее рассматривается как истинная функция. В таких представлениях вопросы α-эквивалентности, замены и т. д. отождествляются с теми же операциями в металогике .
Рассуждая о метатеоретических свойствах дедуктивной системы в помощнике по доказательству , иногда желательно ограничиться представлениями первого порядка и иметь возможность называть или переименовывать предположения. Локально безымянный подход использует смешанное представление переменных — индексы де Брейна для связанных переменных и имена для свободных переменных — которое может извлечь выгоду из α-канонической формы индексированных терминов де Брейна, когда это необходимо. [6] [7]
Соглашение о переменных Барендрегта
[ редактировать ]Соглашение о переменных Барендрегта [8] это соглашение, обычно используемое в доказательствах и определениях, где предполагается, что:
- связанные переменные отличаются от свободных переменных, и
- все связыватели связывают переменные, которые еще не находятся в области видимости.
В общем контексте индуктивного определения невозможно применить α-преобразование, необходимое для преобразования индуктивного определения, использующего соглашение, в определение, в котором соглашение не используется, поскольку переменная может появляться как в обязательной, так и в необязательной позиции. -обязательное положение в правиле. Принцип индукции справедлив, если каждое правило удовлетворяет следующим двум условиям: [9]
- правило эквивариантно в смысле номинальной логики, то есть его действительность не меняется при переименовании переменных.
- Если исходить из посылок правила, то переменные в обязательных позициях в правиле различны и свободны в заключении.
См. также
[ редактировать ]- Обозначение де Брейна для λ-термов.
- Комбинаторная логика — более существенный способ устранения имен переменных.
Ссылки
[ редактировать ]- ^ де Брейн, Николаас Говерт (1972). «Обозначение лямбда-исчисления с безымянными манекенами: инструмент для автоматического манипулирования формулами с применением к теореме Чёрча-Россера» (PDF) . Indagationes Mathematicae . 34 : 381–392. ISSN 0019-3577 . Архивировано (PDF) из оригинала 20 мая 2011 г.
- ^ Габбай, Мердок Дж.; Питтс, Энди М. (1999). «Новый подход к абстрактному синтаксису, включающему связующие» (PDF) . 14-й ежегодный симпозиум IEEE по логике в информатике . стр. 214–224. дои : 10.1109/LICS.1999.782617 . Архивировано (PDF) из оригинала 27 июля 2004 г.
- ^ Бауэр, Андрей. «Как реализовать теорию зависимых типов III» . Математика и вычисления . Архивировано из оригинала 7 августа 2016 г. Проверено 20 октября 2021 г.
- ^ Питтс, Энди М. (2003). «Номинальная логика: теория имен и связывания первого порядка» . Информация и вычисления . 186 (2): 165–193. дои : 10.1016/S0890-5401(03)00138-X . ISSN 0890-5401 .
- ^ «Именный веб-сайт Изабель» . Архивировано из оригинала 14 декабря 2014 г. Проверено 28 марта 2007 г.
- ^ Макбрайд, Конор ; Маккинна, Джеймс (2004). Функциональная жемчужина: я не число, я свободная переменная (PDF) . Нью-Йорк, Нью-Йорк, США: ACM Press. дои : 10.1145/1017472.1017477 . Архивировано из оригинала (PDF) 28 сентября 2013 г.
- ^ Айдемир, Брайан; Шаргеро, Артюр; Пирс, Бенджамин Кроуфорд ; Поллак, Рэнди; Вейрих, Стефани (2008). «Инженерная формальная метатеория» (PDF) . Материалы 35-го ежегодного симпозиума ACM SIGPLAN-SIGACT по принципам языков программирования . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 3–15. дои : 10.1145/1328438.1328443 . ISBN 9781595936899 . Архивировано из оригинала 27 июля 2010 г.
- ^ Барендрегт, Хендрик Питер (1984). Лямбда-исчисление: его синтаксис и семантика . Северная Голландия . п. 26. ISBN 978-0-444-87508-2 .
- ^ Городской, христианский; Бергхофер, Стефан; Норриш, Майкл (2007). «Соглашение о переменных Барендрегта при индукции правил» (PDF) . Автоматизированный вычет – CADE-21 . Конспекты лекций по информатике. Том. 4603. стр. 35–50. дои : 10.1007/978-3-540-73595-3_4 . ISBN 978-3-540-73594-6 . Архивировано (PDF) из оригинала 6 июля 2017 г.