Вычислимая топология
Эту статью может потребовать очистки Википедии , чтобы она соответствовала стандартам качества . Конкретная проблема заключается в следующем: множество вопросов, касающихся пунктуации и заглавных букв, а также соглашений WP:MOS и WP:MOSMATH необходимо рассмотреть ( декабрь 2013 г. ) |
Вычислимая топология — это математическая дисциплина, изучающая топологическую и алгебраическую структуру вычислений . Вычислимую топологию не следует путать с алгоритмической или вычислительной топологией , которая изучает применение вычислений в топологии.
Топология лямбда-исчисления
[ редактировать ]Как показали Алан Тьюринг и Алонсо Чёрч , λ-исчисление достаточно сильное, чтобы описать все механически вычислимые функции (см. тезис Чёрча – Тьюринга ). [1] [2] [3] Таким образом, лямбда-исчисление фактически является языком программирования, на основе которого могут быть созданы другие языки. По этой причине при рассмотрении топологии вычислений принято сосредотачиваться на топологии λ-исчисления. Обратите внимание, что это не обязательно полное описание топологии вычислений, поскольку функции, эквивалентные в смысле Чёрча-Тьюринга, все равно могут иметь разные топологии.
Топологией λ λ-исчисления является топология Скотта , и когда оно ограничено непрерывными функциями, -исчисление без типов представляет собой топологическое пространство, зависящее от древовидной топологии . И топологии Скотта, и Древа демонстрируют непрерывность относительно бинарных операторов применения ( f применительно к a = fa ) и абстракции ((λx.t(x))a = t(a)) с модульным отношением эквивалентности, основанным на конгруэнтность . λ-алгебра, описывающая алгебраическую структуру лямбда-исчисления, оказывается расширением комбинаторной алгебры с элементом, введенным для обеспечения абстракции.
без типов λ-исчисление рассматривает функции как правила и не различает функции и объекты, к которым они применяются, то есть λ-исчисление не имеет типов . Побочным продуктом λ-исчисления без типов является эффективная вычислимость, эквивалентная общей рекурсии и машинам Тьюринга . [4] Набор λ-термов можно рассматривать как функциональную топологию, в которую может быть встроено функциональное пространство , то есть λ-отображения внутри пространства X таковы, что λ:X → X. [4] [5] Представленная в ноябре 1969 года нетипизированная теоретико-множественная модель Даны Скотт построила правильную топологию для любой модели λ-исчисления, функциональное пространство которой ограничено непрерывными функциями. [4] [5] Результатом топологии непрерывного λ-исчисления Скотта является функциональное пространство, построенное на семантике программирования, допускающей комбинаторику с фиксированной точкой, такую как Y-комбинатор , и типы данных. [6] [7] К 1971 году λ-исчисление было способно определять любые последовательные вычисления и могло быть легко адаптировано к параллельным вычислениям. [8] Сводимость всех вычислений к λ-исчислению позволяет этим λ-топологическим свойствам быть принятыми всеми языками программирования. [4]
Вычислительная алгебра из алгебры λ-исчисления
[ редактировать ]На основе операторов лямбда-исчисления , применения и абстракции можно разработать алгебру, групповая структура которой использует применение и абстракцию в качестве бинарных операторов. Применение определяется как операция между лямбда-терминами , создающая λ-термин, например, применение λ к лямбда-термину a дает лямбда-термин λa . Абстракция включает неопределенные переменные, обозначая λx.t(x) как функцию, присваивающую переменную a лямбда-терму со значением t(a) посредством операции ((λ xt(x))a = t(a)). Наконец, возникает отношение эквивалентности , которое идентифицирует λ-термины по модулю конвертируемых термов, примером является бета-нормальная форма .
Топология Скотта
[ редактировать ]Топология Скотта важна для понимания топологической структуры вычислений, выраженной через λ-исчисление. Скотт обнаружил, что после построения функционального пространства с использованием λ-исчисления можно получить пространство Колмогорова , топологическое пространство, которое демонстрирует поточечную сходимость , короче говоря, топологию произведения . [9] Именно способность самогомеоморфизма, а также способность вкладывать каждое пространство в такое пространство, обозначенное как непрерывное Скотта , как описано ранее, позволяет топологии Скотта быть применимой к логике и теории рекурсивных функций. Скотт приближается к своему выводу, используя полную решетку , что приводит к топологии, зависящей от структуры решетки. Обобщить теорию Скотта можно с использованием полных частичных порядков . По этой причине более общее понимание вычислительной топологии обеспечивается посредством полных частичных порядков. Мы повторим это еще раз, чтобы ознакомиться с обозначениями, которые будут использоваться при обсуждении топологии Скотта.
Полные частичные заказы определяются следующим образом:
Во-первых, для частично упорядоченного множества D=(D,妻) непустое подмножество X ⊆ D является направленным , если ∀ x,y ∈ X ∃ z ∈ X, где x ⩽ z & y ⩽ z .
D является полным частичным порядком (cpo), если:
- ⋅ Каждое направленное X ⊆D имеет верхнюю грань и:
- ∃ нижний элемент ⊥ ∈ D такой, что ∀ x ∈ D ⊥ ≤ x .
Теперь мы можем определить топологию Скотта над cpo (D, ≤).
O ⊆ D открыт , если:
- если x ∈ O и x ≤ y, то y ∈ O, т. е. O — верхнее множество .
- для направленного множества X ⊆ D и супремума (X) ∈ O, то X ∩ O ≠ ∅.
Используя топологическое определение открытости Скотта, становится очевидным, что все топологические свойства соблюдены.
- ⋅∅ и D, т. е. пустое множество и все пространство, открыты.
- ⋅Произвольные объединения открытых множеств открыты:
- Доказательство : предположим открыт там, где i ∈ I, где I — набор индексов. Определим U = ∪{ ; я € I}. Возьмем b как элемент верхнего множества U, поэтому a ⩽ b для некоторого a ∈ U. Должно быть, что a ∈ для некоторого i аналогично b ∈ расстроен( ). Следовательно, U также должно быть верхним, поскольку € У.
- ⋅Произвольные объединения открытых множеств открыты:
- Аналогично, если D — ориентированное множество с супремумом в U, то по предположению sup(D) ∈ где открыт. Таким образом, существует a b ∈ D, где b ∈ . Объединение открытых множеств поэтому открыт.
- ⋅Открытые множества под пересечением открыты:
- Доказательство . Для двух открытых множеств, и V , определим W = U ∩ V. U Если W = ∅, то W открыт. Если непусто, скажем, b ∈ беспорядка(W) (верхнее множество W), то для некоторого a ∈ W , a ⩽ b . Поскольку a ∈ U ∩ V и b — элемент верхнего множества как U так и V , то b ∈ W. ,
- ⋅Открытые множества под пересечением открыты:
- Наконец, если D — направленное множество с супремумом в W , то по предположению sup( D ) ∈ . Итак, существует a ∈ и b ∈ . Поскольку D направлено, существует c ∈ D такой, что ; и поскольку U и V — верхние множества, c ∈ также.
Хотя здесь это не показано, но это тот случай, когда карта является непрерывным тогда и только тогда, когда f (sup( X )) = sup( f ( X )) для всех направленных X ⊆ D , где f ( X ) = { f ( x ) | x ∈ X } и вторая верхняя грань в . [4]
Прежде чем мы начнем объяснять, что применение, обычное для λ-исчисления, непрерывно в топологии Скотта, нам потребуется определенное понимание поведения супремумов над непрерывными функциями, а также условий, необходимых для того, чтобы произведение пространств было непрерывным, а именно:
- С быть ориентированным семейством отображений, тогда если они четко определены и непрерывны.
- Если Ф направлен и cpo и cpo, где sup({ f ( x ) | f ∈ F }).
Теперь мы покажем непрерывность применения . Используя определение приложения следующим образом:
- Ап: где Ap ( ж , Икс ) = Ж ( Икс ).
Ap непрерывен относительно топологии Скотта на произведении ( ) :
- Доказательство : λx.f(x) = f непрерывно. Пусть h = λ ff(x). Для направленного F
- час (суп( F )) = суп( F )( Икс )
- знак равно суп ( { ж ( Икс ) | ж ∈ F } )
- знак равно суп ( { час ( ж ) | ж ∈ F } )
- знак равно суп( час ( F ) )
- По определению непрерывности Скотта h было показано непрерывным. Все, что теперь требуется доказать, это то, что приложение является непрерывным, когда его отдельные аргументы непрерывны, т.е. и непрерывны, в нашем случае f и h .
- Теперь абстрагируем наш аргумент, чтобы показать с и в качестве аргументов в пользу D и соответственно, то для направленного X ⊆ D
- = f( суп( (x, ) | х € X} ))
- (поскольку f непрерывна и {(x, ) | x ∈ X}) направлен):
- = суп( {f(x, ) | х € X})
- = суп(г(Х))
- поэтому g непрерывен. Тот же процесс можно использовать, чтобы показать, что d непрерывен.
- Теперь было показано, что приложение является непрерывным в топологии Скотта.
Чтобы продемонстрировать, что топология Скотта подходит для λ-исчисления, необходимо доказать, что абстракция остается непрерывной в топологии Скотта. После завершения будет показано, что математическая основа λ-исчисления представляет собой четко определенную и подходящую функциональную парадигму-кандидата для топологии Скотта.
С мы определяем (x) =λ y ∈ f(x,y)Покажем:
- (я) является непрерывным, то есть ∈
- (ii) л является непрерывным.
- Доказательство (i): пусть X ⊆ D направлено, тогда
- (sup(X)) = λyf(sup(X),y)
- = λ у. ( е (х, у) )
- = ( λy.f(x,y) )
- = суп( (Х))
- Доказательство (ii): определение L = λ тогда для Ф направленный
- L(sup(F)) = λ x λ y. (sup(F))(x,y))
- = λ х λ у. е (х, у)
- = λx λy.f(x,y)
- = суп(L(F))
Не было продемонстрировано, как и почему λ-исчисление определяет топологию Скотта.
Деревья Бема и вычислительная топология
[ редактировать ]Деревья Бема , легко представленные графически, выражают вычислительное поведение лямбда-члена . Функциональность данного лямбда-выражения можно предсказать, обратившись к соответствующему ему дереву Бема. [4] Деревья Бема можно рассматривать как нечто аналогичное где дерево Бема данного набора похоже на непрерывную дробь действительного числа, и, более того, дерево Бема, соответствующее последовательности в нормальной форме , конечно, подобно рациональному подмножеству действительных чисел.
Деревья Бема определяются отображением элементов внутри последовательности чисел с порядком (≤, lh) и бинарным оператором * в набор символов. Тогда дерево Бема представляет собой отношение между набором символов посредством частичного отображения ψ.
Неформально деревья Бема можно представить следующим образом:
- Дано: Σ = { λ x_{1} x_{n} . и | n ∈ y — переменные, и обозначая BT(M) как дерево Бема для лямбда-терма M, мы тогда имеем:
- BT(M) = ⊥, если M неразрешима (следовательно, один узел)
БТ(М) = λ .и
/ \
БТ( БТ( ) ; если M разрешимо
Более формально:
Σ определяется как набор символов. Дерево Бёма λ-терма M, обозначаемого BT(M), представляет собой дерево с меткой Σ, определяемое следующим образом:
- Если M неразрешимо:
- БТ(М)( ) неразрешима
Если M разрешимо, где M = λ x_{1} :
- ВТ(М)(< >) = λ x_{1}
- БТ(М)( ) = БТ(M_k)( ) и к < м
- = не определено и k ≥ m
Теперь мы можем перейти к показу, что деревья Бема действуют как подходящие отображения древесной топологии в топологию Скотта. Позволяет рассматривать вычислительные конструкции, будь то в рамках топологии Скотта или дерева, как древовидные образования Бема.
Дерево Бема и древовидная топология.
[ редактировать ]Обнаружено, что деревья Бёма допускают непрерывное отображение древесной топологии в топологию Скотта. Более конкретно:
Начнем с cpo B = (B,⊆) в топологии Скотта, с упорядочивания деревьев Бёма, обозначаемых M⊆ N, что означает, что M, N являются деревьями, а M являются результатами N. Древовидная топология на множестве Ɣ — это наименьшее множество позволяющая создать непрерывную карту
- БТ: Б.
Эквивалентным определением было бы сказать, что открытые множества Ɣ являются образом обратного дерева Бема. (O) где O — Скотт, открытый B. в
Применимость деревьев Бёма и древовидной топологии имеет множество интересных последствий для λ-членов, выраженных топологически:
- Обнаружено, что нормальные формы существуют как изолированные точки.
- Неразрешимые λ-члены являются точками компактификации.
- Приложение и абстракция, подобно топологии Скотта, непрерывны в древовидной топологии.
Алгебраическая структура вычислений
[ редактировать ]Новые методы интерпретации λ-исчисления не только интересны сами по себе, но и позволяют по-новому взглянуть на поведение информатики. Бинарный оператор в λ-алгебре A является прикладным. Приложение обозначается ⋅ и считается, что оно дает структуру . Комбинаторная алгебра допускает использование оператора приложения и выступает в качестве полезной отправной точки, но остается недостаточной для λ-исчисления, поскольку не может выразить абстракцию. Алгебра λ становится комбинаторной алгеброй M в сочетании с синтаксическим оператором λ*, который преобразует терм B(x,y) с константами из M в C( )≡ λ* xB(x, ). Также возможно определить модель расширения , чтобы обойти необходимость использования оператора λ*, разрешив ∀x (fx =gx) ⇒ f =g. Построение λ-алгебры путем введения оператора абстракции происходит следующим образом:
Мы должны построить алгебру, которая допускает решения таких уравнений, как axy = xyy, такие, что a = λ xy.xyy, и возникает необходимость в комбинаторной алгебре. Соответствующими атрибутами комбинаторной алгебры являются:
В рамках комбинаторной алгебры существуют аппликативные структуры . Аппликативная структура W представляет собой комбинаторную алгебру при условии:
- ⋅W нетривиален, то есть мощность W > 1.
- ⋅W обладает комбинаторной полнотой (см. полноту базиса SK ). Более конкретно: для каждого терма A ∈ множества термов W и со свободными переменными A внутри затем:
- где
Комбинаторная алгебра – это:
- Никогда не коммутативен
- Не ассоциативно.
- Никогда не ограничен.
- Никогда не рекурсивно.
Комбинаторные алгебры по-прежнему не могут выступать в качестве алгебраической структуры для λ-исчисления, а отсутствие рекурсии является основным недостатком. Однако существование аппликативного термина ) обеспечивает хорошую отправную точку для построения алгебры λ-исчисления. Что необходимо, так это введение лямбда-члена , т.е. включить λx.A(x, ).
Начнем с использования того факта, что в комбинаторной алгебре M с A(x, ) внутри множества слагаемых, то:
- st bx = A(x, ).
Затем мы требуем, чтобы b зависело от в результате чего:
- Б( )x = A(x, ).
Б( ) становится эквивалентным члену λ и поэтому подходящим образом определяется следующим образом: B( л*.
) . Теперь можно определить пре-λ-алгебру (pλA
- pλA — аппликативная структура W = (X,⋅) такая, что для каждого терма A внутри множества термов внутри W и для каждого x существует терм λ*xA ∈ T(W) (T(W) ≡ термы из W) где (множество свободных переменных λ*xA) = (множество свободных переменных A) — {x}. W также должен продемонстрировать:
- (λ*xA)x = А
- λ*xA≡ λ*xA[x:=y] при условии, что y не является свободной переменной A
- (λ*xA)[y:=z]≡λ*xA[x:=y] при условии, что y,z ≠ x и z не является свободной переменной A
Прежде чем определить полную λ-алгебру, мы должны ввести следующее определение множества λ-термов внутри W, обозначаемых со следующими требованиями:
- а € W
- х € для x ∈ ( )
- M,N ∈ (МН) ∈
- М € (λx.M) ∈
Сопоставление терминов внутри всем членам λ внутри W, обозначенным * : , то можно спроектировать следующим образом:
- (МН)* = М* Н*
- (λx.M)* = λ* x*.M*
Теперь мы определяем λ (M) для обозначения расширения после оценки членов внутри .
- λx.(λy.yx) = λx. x в λ (Вт).
Наконец, мы получаем полную λ-алгебру посредством следующего определения:
- (1) λ-алгебра – это pλA W такая, что для M,N ∈ Ɣ(W):
- λ (W) ⊢ M = N ⇒ W ⊨ M = N.
- (1) λ-алгебра – это pλA W такая, что для M,N ∈ Ɣ(W):
Несмотря на трудности, была заложена основа для правильной алгебраической структуры, в которой λ-исчисление и, следовательно, вычисления могут быть исследованы теоретико-групповым способом.
Ссылки
[ редактировать ]- ↑ Церковь 1934:90, сноска в Дэвисе, 1952 г.
- ^ Тьюринг 1936–7 в Дэвисе 1952: 149
- ^ Барендрегт, HP, Синтаксис и семантика лямбда-исчисления. Издательство Северной Голландии. 1981 год
- ^ Jump up to: а б с д и ж Барендрегт, Х.П., Синтаксис и семантика лямбда-исчисления. Издательство Северной Голландии. 1981.
- ^ Jump up to: а б Д.С. Скотт. Модели для λ-исчисления. Неофициально распространено, 1969 г. Примечания, декабрь 1969 г., Oxford Univ.
- ^ Гордон, MJC, Денотационное описание языков программирования. Шпрингер Верлаг, Берлин. 1979.
- ^ Скотт, Д.С. и Стрейчи, К. На пути к математической семантике компьютерных языков, Proc. Симп. по компьютерам и автоматам, Политехнический институт Бруклина, 21, стр. 19 46. 1971.
- ^ Г. Берри, Последовательные алгоритмы для конкретных структур данных, Theoretical Computer Science 20, 265 321 (1982).
- ^ DS Скотт. «Непрерывные решетки». Вычислительная лаборатория Оксфордского университета, август 1971 года.