По мотивам возникшего на пустом месте обсуждения, возможно, стоит написать чуть подробнее, почему именно континуум и мощности выше счетных бесконечных множеств не существуют в конструктивной математике. Разъяснить этот факт можно разными способами. Я же выберу, может быть, не самый корректный, но зато простой с точки зрения теории вычислимости, имея в виду аудиторию, знакомую с «computer science».

Итак, оттолкнемся от определения множества вещественных чисел на отрезке [0, 1], скажем, по «Теории функций вещественной переменной» Натансона: это множество всех бесконечных последовательностей из нулей и единиц. То есть от 0,000… = 0 до 0,111… = 1 в бинарной системе исчисления. Вскоре после определения идут хитрые выкладки, показывающие в конечном итоге, что мощность обозначенного множества больше, чем у множества натуральных чисел. Сама выкладка, конечно, корректна и вполне могла бы иметь место в конструктивной математике, если бы только сам объект [0, 1] был построен, а не просто назван. Поэтому опустим известные из стандартного курса теории множеств далеко идущие следствия гипотезы о существовании континуума: арифметику кардинальных чисел, континуум-гипотезу, противоречия в классическом варианте теории и непротиворечивые системы аксиом.

Вместо этого, попробуем составить конструктивное определение [0, 1]. По определению мы видим, что каждый элемент данного множества есть по сути функция из N в {0, 1}, возвращающая i-ый знак после запятой. Согласно самой теории множеств, множество таких функций обладает мощностью континуума. Однако, множество тех функций, которые можно построить конструктивно, ограничено вычислимыми функциями, а их, в свою очередь, счетное множество, а не континуум. На практике это означает, что любое известное трансцендентное число, например π или e, описывается вычислимой функцией. Обычно последняя возвращает не i-ый знак после запятой, а i-ый элемент последовательности рациональных чисел (их счетное множество), сумма которой имеет предел, равный кодируемому числу.

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

P. S. Надо же, какой наброс удался, давно так не получалось.
Изучая программирование, на определенном этапе я натолкнулся на функциональное программирование и, в частности, язык LISP. В первую очередь я изучил так называемый Pure LISP, который позволяет оперировать списками, построенными из других списков и атомов. Все структуры данных в нем, включая сами выражения языка, по сути, представляют собой бинарные деревья с атомами в узлах. Такие структуры в нем называют S-выражениями.

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

Следующим важным шагом стало обнаружение чистого бестипового лямбда-исчисления, которое отвечало на вопрос о том, какие именно конструкции в Pure LISP необходимы: бесконечный набор атомов в качестве имен переменных и безымянная функция. Остальные функции можно определить с помощью аппликации.

Продвинувшись еще немного в лямбда-исчислении, а именно затронув раздел комбинаторной логики, я нашел ответ и на второй поставленный вопрос. Оказывается, существует бесконечное счетное множество комбинаторов X, которые составляют одноточечные базисы комбинаторной логики.

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

Таким образом я вернулся к системе λβη, и посвятил остальное время изучению различных способов её реализации. Начав с исторически первых стековых абстрактных машин, вплоть до машин для редукции графов, я решил добавить к требованиям определенный вид состояний абстрактной машины редукции. А именно, я затребовал однородную память в качестве состояния, имея в виду отказ от каких-либо стеков и других типов данных, кроме указателей. Однако, формализовать это требование удалось не сразу. Теперь я у меня есть четкое определение такого состояния и свойств машины на его основе, которое также сопряжено с непростым вопросом об одновременном выполнении этих свойств.

С другой стороны, в конечном итоге, я понял, что именно такая непопулярная тема, как оптимальная редукция, снова поднимает проблему вычислений, закрытую отрицательно в монографии Барендрегта: не существует оптимальной стратегии вычисления для λβη. Оказывается, при определенном представлении лямбда-выражений графами оптимальная редукция становится возможной. И так как это немедленно оказывается самым эффективным способом вычислений в общем случае на очень больших выражениях, я, конечно, сосредоточил свои усилия на изучении данной темы. Коротко говоря, цель моей небольшой теоретической работы можно описать как реализацию оптимальной редукции на основе однородной памяти.

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

Вторую же, в свою очередь, я обнаружил, почти случайно подобрав четыре правила редукции, которые заменяют обычную подстановку. Потребовалось немало усилий, чтобы найти упоминания этих правил в литературе, и в этом мне очень помогли профессор Барендрегт, профессор Клоп и теперь уже тоже профессор ван Оостром. Также совместными усилиями удалось закрыть прежде открытый вопрос о нормализующей стратегии для такой системы правил редукции: я предложил неформально описанную стратегию, а ван Оостром в очень сжатые сроки представил ее формализацию и доказательство нормализующего свойства. Кстати, настоящий текст является наброском того рассказа, который бы я мог представить на возможном семинаре, о котором упомянул Клоп в недавней личной переписке, в частности, по поводу оптимальных TRS, с которыми, возможно, связана дистрибутивная редукция.
I have just got mail, namely previously mentioned “The Optimal Implementation of Functional Programming Languages” by Andrea Asperti and Stefano Guerrini (Cambridge University Press), the most relevant book ever written in the context of my personal research in lambda calculi.

Оказывается, профессор Барендрегт — автор не только известной монографии и многих фундаментальных работ в лямбда-исчислении, но и следующих публикаций:

Buddhist Phenomenology, Part I.
Proceedings of the Conference on Topics and Perspectives of Contemporary Logic and Philosophy of Science,
Cesena, Italy, January 7-10, 1987, (Ed. M. dalla Chiara), Clueb, Bologna, 1988, 37-55.
[Experience with vipassana; the three fundamental characteristics of existence.]

Mysticism and beyond, Buddhist Phenomenology, Part II.
The Eastern Buddhist, New Series, vol XXIX, 1996, 262-287.
[The cover-up model of the mind, a contemporary view on the four nobel truths.]

Brain distribution and evidence for both central and neurohormonal actions of
cocaine- and amphetamine-regulated transcript peptide in Xenopus laevis
.
E.W. Roubos, Lázár, G., Calle, M., Barendregt, H.P., Gaszner, B. and Kozicz, L.T.
Journal of Comparative Neurology. 507 (4), pp. 1622-1638.

Effect of starvation on Fos and neuropeptide immunoreactivities in the brain and pituitary gland of Xenopus laevis.
M. Calle and T. Kozicz and E. van der Linden and A. Desfeux and J.G. Veening and H.P. Barendregt and E.W. Roubos
General and Comparative Endocrinology. vol. 147. pp. 237-246.

Evidence that urocortin1 acts as a neurohormone to stimulate alpha-MSH releasein the toad Xenopus laevis.
M. Calle and G.J.H. Corstens and L.C. Wang and T. Kozicz and R.J. Denver and H.P. Barendregt and E.W. Roubos
Brain Res. vol. 1040. pp. 14-28.

Opioid peptides, CRF, and Urocortin in cerebrospinal fluid-contacting neurons in Xenopus leavis.
M. Calle and I.E.W.M. Claassen and J.G. Veening and T. Kozicz and E.W. Roubos and H.P. Barendregt
Trends in Comparative Endocrinology and Neurobiology. vol. 1040. pp. 249-252.

Reflection and its Use, from Meditation to Science.
Spiritual Information, 100 perspectives on science and religion. Edited by Ch.L. Harper Jr..
Philadelphia and London. Templeton Foundation Press. pp. 415-423.
Dutch version: Reflectie: van Wetenschap via Meditatie tot Lambda Calculus.
Wijsgerig Perspectief. vol. 44. 2004. pp. 39-54.

Вот такая трава.
По совету [livejournal.com profile] ulysses4ever отправил вопрос о дистрибутивной стратегии также в раздел «Theoretical Computer Science» ресурса StackExchange. Реакции я пока не получил, зато подписался на уведомления по электронной почте о новых вопросах по интересующим меня темам: лямбда-исчисление и «term rewriting systems». Получившийся в результате фильтр для записей доступен и другим пользователям.

Просмотрев некоторое количество обсуждений в рамках данной выборки, обнаружил упоминание проекта Reduceron, нацеленного на разработку процессора на основе FPGA, который бы был эффективен для работы функциональных программ. Более подробно с проектом можно ознакомиться по материалам и статьям, доступным на его странице.
Задавшись вопросом об этимологии значка «λ», выбранном Черчем для обозначения абстракции в λ-исчислении, я скоро натолкнулся на статью «History of Lambda-calculus and Combinatory Logic» (Felice Cardone, J. Roger Hindley), где, в частности, поднимается история этого обозначения. Оказывается, изначально для некоторого другого типа абстракции Whitehead и Russell использовали запись «x̂». Для новой конструкции, чтобы отличать ее от прежней абстракции, Черч заменил обозначение сначала на «∧x», а затем на «λx», очевидно, интерпретировав первый символ как заглавную букву «Λ», для упрощения набора:

«By the way, why did Church choose the notation “λ”? In [Church, 1964, §2] he stated clearly that it came from the notation “x̂” used for class-abstraction by Whitehead and Russell, by first modifying “x̂” to “∧x” to distinguish function-abstraction from class-abstraction, and then changing “∧” to “λ” for ease of printing. This origin was also reported in [Rosser, 1984, p.338]. On the other hand, in his later years Church told two enquirers that the choice was more accidental: a symbol was needed and “λ” just happened to be chosen».

До обнаружения приведенного отрывка в голове крутились лишь два варианта: первый заключался в указании альтернативности λ-исчисления логике («logics») первого порядка, а второй относился к связи абстракции с квантором общности (см., например, «Аппликативные вычислительные системы» Вольфенгагена, часть VI «Логика»).
Ранее мы уже рассматривали математику как подмножество человеческих языков, если считать языками множество текстов на них, а математикой — множество математических текстов. Заметим, что если мы пронумеруем значения слов языка, например, натуральными числами или эквивалентными конструктивными объектами, то математическая часть может описывать весь остальной человеческий язык.

Теперь, если мы ограничим рассмотренное подмножество до конструктивной математики, то математическое подмножество продолжит порождать человеческий язык, так как множество текстов счетно. Заметим, что в системе λβη описываются любые конструктивные объекты, так как для этого необходимо и достаточно иметь вычислимые функции, рекурсивно перечисляющие множества тех или иных конструктивных объектов. Будем считать, что человеческий язык построен на основе λβη, не вдаваясь ни в детали, ни в механизм перечисления терминов; обратим внимание лишь на следующее.

У слов, которые тем или иным образом оказались закодированы термами, есть некоторые параметры — свободные переменные — они должны обозначать все, от чего зависит объективная интерпретация выражений-фраз, например, контекст, область, ссылки. Снова опустим детали и перейдем от слов, которые имеют значения, необходимые для объективной (точной) интерпретации фразы, к словам, которые таких значений не имеют (быть может, кроме как в очень узких областях человеческой деятельности). Например, возьмем слово «хороший» — его свободные переменные, по крайней мере, включают субъект, которому принадлежит данное отношение к объекту. Таким образом, мы можем даже из слов, не имеющих объективного (точного) значения — мы их будем называть субъективными терминами — построить объективную фразу: абстрагировав субъект, введя по сути общность, и сделав фразу неизбежно неверной (так как всегда найдется субъект, для которого такое отношение не имеет места), либо применив абстракцию к конкретному субъекту, например, говорящему, и тогда анализировать фразу не лишено смысла. Разумеется, время есть тоже часть параметров фразы, но зачастую во фразах время абстрагируется.

Анализ таких фраз может быть построен в рамках того, что субъект сам о себе говорил, или что показывают психологические данные. При доверии к человеку и без должной подготовки в психологии можно лишь замыкать все субъективные утверждения на говорящем, и анализировать их в рамках того, что он сам о себе говорил до этого. Наконец, заметим, что под субъективные утверждения, интерпретация которых как бы заблокирована в общем контексте, попадают любые выражения с незакрытыми термами, а иногда из-за сарказма, к которому ведет определенный стиль и очевидно намеренная ложность фразы, субъективными становятся термины, даже имея объективные значения, но блокируя их ввиду потери контекста (сужения их множества до пустого), в котором фраза верна.
Исходные объекты для построения теорий всегда выбраны из счетного множества: например, из имен; имена счетны ввиду счетности языка как множества текстов. Далее, при попытке ввести множество всех подмножеств такого или некоторого производного счетного множества возникает проблема континуума. Однако, конструктивно доказать, что континуальные множества вообще существуют, не представляется возможным.

Проблема с континуальными множествами довольно остро проявилась в прошлом веке при развитии теории вычислимости, где требовалась математическая модель для счетных множеств, которые бы состояли из отображений внутри него. Разрешилась она тогда, когда Скотт предложил топологию дерева и урезал отображения до непрерывных. С другой стороны, привести конструктивный пример функции, которая вне такого множества, невозможно, так как язык описывает в точности частично-рекурсивные функции.

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

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

Наконец, учитывая, что система λβη соответствует максимальным непротиворечивым теориям и при этом в виду тезиза Черча–Тьюринга имеет максимальную выразительность, любые мыслимые конструкции оказываются возможными для определения внутри нее. И это может, в свою очередь, служить дополнительным аргументом в сторону ее использования и большей концентрации внимания на эквивалентных системах и на теории вычислимости вообще.
Ниже будут использованы обозначения, ранее введенные кратко, но доступен также комментарий к бессловесному определению. Мотивацией вводимого ниже метрического пространства послужил замечательный доклад Ю. И. Манина «Ренормализация и теория вычислимости» на общеинститутском математическом семинаре Санкт-Петербургского отделения Математического института им. В. А. Стеклова РАН.

Определим метрику ρ(Μ, Ν) на лямбда-термах Μ, Ν ∈ Λ (можно ограничиться и комбинаторами Λ⁰) следующим образом:

ρ(M, N) = {0, если M = N, иначе 1 + min{ρ(Fˡ(Μ), Ν), ρ(Μ, Fˡ(Ν))}.

Для термов, не являющихся βη-конвертируемыми, допустим значение ∞ в стиле нестандартного анализа, обозначая им ситуацию, когда вычисление расстояния не завершается вовсе.

Теперь покажем, что метрика корректна:

1) ρ(M, Μ) = 0 по определению;
2) симметричность тривиальна;
3) для случая термов, не являющихся βη-конвертируемыми, свойство треугольника очевидно [а для случая экстенсионально равных это интуитивно верное утверждение, но пока оставшееся без доказательства, напоминает свойство ромба у редукции, то есть свойство Черча-Россера].

Если разрешить проблему с экстенсиональностью в определении «n-равенства», то для некоторых термов, не равных экстенсионально, но при этом достаточно осмысленных, значение расстояния ∞, можно вычислять, обнаруживая первое несовпадение в префиксных кодах. Разумеется, в каждом подпространстве, состоящем из βη-конвертируемых термов, метрика всегда вычислима и конечна.
Выношу из комментариев цитату о дельта-редукции (Х. Барендрегт, «Лямбда-исчисление. Его синтаксис и семантика», перевод с английского Г. Е. Минца под редакцией А. С. Кузичева, 1985, глава 15 «Другие понятия редукции», § 3 «Дельта-редукция»).

Дельта-редукция — это не какое-то одно понятие редукции, а целая их совокупность. Все они определены на некотором расширении множества Λ [то есть множества λ-термов].

15.3.1. Определение. (i) Пусть δ — некоторая константа. Тогда Λδ обозначает множество λ-термов, построенных из переменных и константы δ с обычным использованием аппликации и абстракции [доступно краткое определение].

(ii) Аналогично определяется множество Λδ̅, где δ̅ — последовательность констант.

Дельта-редукция служит для того чтобы можно было сделать внутренними многие внешние функции ƒ на множестве Λ, постулировав δΜ̅ → ƒ(Μ̅) [Μ̅ — некоторая последовательность аргументов, специфичная для δ]. Это полезно для прикладного (особенно ориентированного на программирование) λ-исчисления.

Первый пример δ-редукции вводит тест на равенство двух н. ф. [нормальных форм].

15.3.2. Определение (δ-символ Черча). Пусть δC— некоторая константа. На множестве ΛδC введем следующее понятие редукции δC:

δCMN → T [T ≡ λxy.x, истина], если M, N ∈ βδC-NF⁰, M ≡ N [равны с точностью до альфа-конверсии],
δCMN → F [F ≡ λxy.y, ложь], если M, N ∈ βδC-NF⁰, M ≢ N,

где βδC-NF⁰ ⊆ ΛδC⁰ — множество замкнутых β-н.ф., не содержащих подтермов вида δCPQ.
Выношу построчный комментарий к бессловесному определению чистого бестипового экстенсионального лямбда-исчисления «From ordinary variables x, y, z… to λβη», составленному мной больше года назад. Доступен также вариант в два столбика.

Лямбда-выражения строятся из переменных
с помощью абстракций и аппликаций;
причем аппликация лево-ассоциативна.

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

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

Вхождения связанной переменной можно заменить на другую переменную (альфа-конверсия).

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

Выражение считается подвыражением самого себя; тело абстракции
и обе части аппликации также являются подвыражениями;
данное отношение транзитивно.

Определение нормальной стратегии: переменная не может быть редексом;
если выражение является редексом, то за ним приоритет;
если абстракция не является эта-редексом, то следует рассмотреть ее тело;
если аппликация не является бета-редексом, то приоритет за левой ее частью с подвыражением-редексом,
иначе остается лишь правая часть аппликации.
Хочу 1) интерпретируемый язык программирования 2) со следующим синтаксисом (пример кода) или, по крайней мере, похожий в нотации для выражений:

<text> ::= <term> | <assign> <text>;

<assign> ::= <ID> '=' <term> ';';

<term> ::= <appl> | <abstr>;

<abstr> ::= <ID> ':' <term> | <ID> ',' <abstr>;

<appl> ::= <atom> | <appl> <atom>;

<atom> ::= <ID> | '[' <term> ']' | '{' <term> '}' | '(' <term> ')';

3) бестиповый или со слабой типизацией, 4) возможно, с набором дельта-функций для быстрых операций на числах, строках и т.п., и, наконец, 5) с нормальным порядком вычисления.

Дайте.
The `test.mlc' file changed in MLC source codes. Now it represents sample syntactic sugar defined in a different way than earlier. Namely, the new version aims at more readable and transparent form of basic combinators. For each definition, there have also been added comments meant to provide some rationale.

The resulting text )
Написано по просьбе [livejournal.com profile] babybitch_

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

С другой стороны, в 1930 году была доказана теорема Геделя о неполноте любой непротиворечивой теории, которая включает арифметику, то есть такая теория всегда содержит некоторое утверждение, которое нельзя доказать внутри нее. Иначе говоря, если теория полна, то она неизбежно противоречива, и в ней можно доказать любое утверждение, включая заведомо неверные. В связи с этим, уместен вопрос о максимальной непротиворечивой теории, которая бы позволяла записывать логические утверждения, содержащие общность, существования, переменные, функции и их свойства. Более формально, такия система называется логикой первого порядка, или, что то же самое, логикой предикатов.

Оказывается, максимальным непротиворечивым теориям соответствуют полные по Гильберту-Посту теории, утверждениями которых являются равенства. Такие теории называются эквациональными (от английского "равенство") и сами по себе свободны от логики, но с их помощью, тем не менее, можно описывать утверждения логики первого порядка. Полнота по Гильберту-Посту, в свою очередь, говорит о том, что любое верное утверждение доказуемо, а любое неверное утверждение делает систему противоречивой. Это свойство, естественно, слабее полноты теории в общем смысле, о котором идет речь в упомянутой теореме Геделя: ложность неверных утверждений в общем случае невозможно доказать.

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

Известно, что когда дети учатся говорить, они строят в своей голове заново учебник, описывая грамматику языка. Это означает, что люди генетически приспособлены к изучению грамматики. При преподавании математики в школе, однако, эта способность мало используется: часто имеют место неформальные определения и "объяснение на пальцах". В противоположность такому подходу, для некоторых детей, изучающих математику, возможно, было бы более естественно изучить сначала новый язык описания, и уже на этом языке увидеть определяемые математические конструкции. Ввиду простоты, на роль такого языка годится бестиповое экстенсиональное лямбда-исчисление.
Mathematics can be considered as Turing- and HP-complete untyped equational theory λβη: every true statement is provable, and any false one makes the theory inconsistent. Negation of mathematical statements can be expressed, for instance, using Church's syntactic sugar. Mathematics including calculus without any paradoxes is thereby claimed to be covered by λβη with real numbers limited to recursive ones. Within such consideration, continuum hypothesis does not make any sense, since the whole theory is then a countable set of statements. In turn, recursive real numbers are known to be all and the only real numbers able to be described. There can be provided no contrary instances.

It is significant that the untyped variant has been chosen because any type system will eliminate either Turing-completeness (and therefore, the resulting system will be weaker than mathematical language), or consistency of the theory. Weak Curry-style types are inconsistent while strong Church's ones do not save Turing-completeness.

Pure untyped extensional lambda calculus (or equivalent system) is therefore the most powerful consistent theory. This is the reason to consider only real-time lazy (optimal by Levi) graph reduction machines based on it. One of the simplest ways is to use Micro Lambda Calculus which is being planned to be implemented in Macro Lambda Calculus.

Within such a system, any proofs are not just possible, but also all efficient. Any two lambda expressions, that is, any two computable functions are proved to be extensionally equivalent if they have one and the same normal form. If the normal form does not exist, they are considered unequal in λβη. (In fact, there is a version of the theory where all the expressions which have no head normal form are said to be equal. This version is HP-complete itself as well.) Normalizing strategy provides the efficient algorithm to find the normal form if it exists at all. For λβη, one of normalizing strategies is the normal strategy also known as the left-most strategy. It is however not normalizing for Distributive Lambda Calculus (a formal term to describe the system of Micro Lambda Calculus proposed by Vincent van Oostrom). A one-step normalizing strategy a little bit different from the normal one for this system has been found earlier and later proved to be normalizing by Vincent van Oostrom himself in private correspondence.

Advantages of the chosen way to describe mathematics include simplicity in full formal construction of mathematical objects. That allows teaching mathematics as a theory with only easy grammar, two rules for reducing expressions, and a normalizing strategy for reduction to achive normal forms if any, and without any axioms. Opposed to usual informal definitions and a lot of axioms when teaching elementary mathematics in schools, the proposed method is likely to be easier to understand by children who are known to re-invent their own grammar rules for the first human language to learn.
Using yacc(1) and lex(1), specified by POSIX and available in Debian through packages `bison' and `flex', respectively, a parser was automatically generated for a simple language called Macro Lambda Calculus.

x ∈ Λ;
M, N ∈ Λ ⇒ λx.M ∈ Λ ∧ M N ∈ Λ;
(M) = M, M N P = (M N) P.

x[x := P] = P;
y[x := P] = y;
(λx.M)[x := P] = λx.M;
(λy.M)[x := P] = λy.M[x := P];
(M N)[x := P] = M[x := P] N[x := P].

FV(x) = {x};
FV(λx.M) = FV(M) ∖ {x};
FV(M N) = FV(M) ∪ FV(N).

y ∉ FV(M) ⇒ λx.M = λy.M[x := y].

β = {((λx.M) N, M[x := N]) | M, N ∈ Λ};
η = {(λx.M x, M) | M ∈ Λ, x ∉ FV(M)};
βη = β ∪ η.

M ⊂ M ⊂ λx.M;
M ⊂ M N ⊃ N;
M ⊂ N ∧ N ⊂ P ⇒ M ⊂ P.

Fˡ(x) = x;
∃Q ∈ Λ: (M, Q) ∈ βη ⇒ Fˡ(M) = Q;
∄Q ∈ Λ: (λx.M, Q) ∈ βη ⇒ Fˡ(λx.M) = λx.Fˡ(M);
∄Q ∈ Λ: (M N, Q) ∈ βη ∧ ∃P ⊂ M: ∃Q ∈ Λ: (P, Q) ∈ βη ⇒ Fˡ(M N) = Fˡ(M) N;
∄Q ∈ Λ: (M N, Q) ∈ βη ∧ ∄P ⊂ M: ∃Q ∈ Λ: (P, Q) ∈ βη ⇒ Fˡ(M N) = M Fˡ(N).
Теорема о неподвижной точке. Для любого F существует X, такой, что F X = X.

Доказательство. Пусть W ≣ λx.F (x x) и X ≣ W W. Тогда имеем X ≣ W W ≣ (λx.F (x x)) W = F (W W) = F X, что и требовалось доказать…

Теорема… о неподвижной точке - один из основных результатов лямбда-исчисления. Читатель, возможно, заметил одну особенность в доказательстве этой теоремы. Чтобы установить, что F X = X, мы начинаем с терма X и редуцируем его к F X, а не наоборот…

Определение. Комбинатор неподвижной точки - это терм M, такой, что для любого F имеет место M F = F (M F), то есть M F - неподвижная точка для F…

Пусть Y ≣ λf.(λx.f (x x)) (λx.f (x x)). Тогда Y — комбинатор неподвижной точки…

Задача. Построить F, такой, что F x y = F y x F.

Решение. F x y = F y x F следует из равенства F = λxy.F y x F, а оно вытекает из F = (λfxy.f y x f) F. Теперь положим F ≣ Y (λfxy.f y x f), и все в порядке.

— «Ламбда-исчисление. Его синтаксис и семантика», Барендрегт Х., 1985 (перевод с английского Г. Е. Минца под редакцией А. С. Кузичева)»
Почти сразу после отправления в сообщество [livejournal.com profile] ru_math вопроса о применимости счетного представимого подмножества континуума вещественных чисел была приведена ссылка на так называемый "конструктивный вещественный анализ", описанный, к примеру, в диссертации "Constructive Real Analysis" (Luis Cruz-Filipe). Сами же числа, содержащиеся в построенном ранее множестве, эквивалентны так называемым "рекурсивным вещественным числам", определяемым в статье "Recursive Real Numbers" (H. G. Rice).

Упомянутый раздел изучает точно представимые и решаемые задачи в континуальной математике, поэтому он тесно связан с лямбда-исчислением.
Dedicated to [livejournal.com profile] dmvo:
\documentclass{article}
\title{The Representable Continuum Set}
\author{Anton Salikhmetov}

\begin{document}
\maketitle

\begin{abstract}
This paper introduces a new mathematical structure representing
all rational numbers’ sequences that can be defined to provide a
countable replacement for the usual continuum set of real
numbers, the question whether it is appropriate, say, for physics
being still open.
\end{abstract}

The Representable Continuum Set consists of all combinators that
are computable for all Church numerals and for each Church
numeral return a lambda expression of the list form
${\lambda x. x b [m] [n]}$, where $m$ and $n$ are natural
numbers, and $b$ is a boolean value representing sign, which
corresponds to a rational number ${\pm m / n}$.
If $S_i$ is the corresponding rational number for ${(M [i])}$,
an element $M$ from this set is considered as
${\lim_{n \rightarrow \infty} \sum_{i = 0}^n S_i}$.
\end{document}

Profile

Anton Salikhmetov

November 2018

S M T W T F S
    123
45678 910
11121314151617
18192021222324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 2nd, 2025 06:20 am
Powered by Dreamwidth Studios