Функции, которые напечатали лямбда-исчисление, не могут вычислить


12

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

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

Благодарю.

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


Для калькуляций существует множество дисциплин печатания, и ответ на ваш запрос частично зависит от того, какой выбор дисциплины печатания вы имеете в виду. Это также зависит от того, что вы подразумеваете под функцией. Одним из примеров различий может быть то, что типизирующие дисциплины, такие как Система F, могут печатать только нормализующие программы, тогда как нетипизированный λ- калькуляция содержит ненормализующие термины. λλ
Мартин Бергер

Я думал о Системе F и простом набранном лямбда-исчислении. Под функцией я подразумеваю вычислимую по Тьюрингу функцию.
Тимоти Закчари

Ответы:


15

Хороший пример дает Godelization: в лямбда-исчислении единственное, что вы можете сделать с функцией, это применить ее. В результате нет способа написать замкнутую функцию типа , которая принимает аргумент функции и возвращает для него код Годеля.(NN)N

Добавление этого в качестве аксиомы к арифметике Хейтинга обычно называют «конструктивным церковным тезисом» и является сильно антиклассической аксиомой. А именно, последовательно добавлять его в HA, но не в арифметику Peano! (По сути, это классический факт, что каждая машина Тьюринга останавливается или нет, и нет вычислимой функции, которая могла бы засвидетельствовать этот факт.)


Я не понимаю, как это согласуется с теорией экстенсиональности: берут f и g экстенционально равными, но с разными реализациями и, следовательно, с разными кодами Годеля. Ваша функция возвращает одно и то же число для f и g?
Коди

3
Это не соответствует экстенсиональности! Однако в HA и являются логическими связями, а не функциями / записями. Таким образом, они должны быть реализуемыми, но их реализаторы не должны быть экстенсиональными. Андрей Бауэр является экспертом в этой области, поэтому, если вы зададите вопрос, вы обязательно получите хороший ответ.
Нил Кришнасвами

11

Простейший ответ дается тем фактом, что типизированные лямбда-исчисления соответствуют логике (просто типизированное лямбда-исчисление -> логика предикатов; система f -> логика второго порядка), и непротиворечивые логики не могут доказать свою собственную согласованность.

Итак, допустим, что в набранном лямбда-исчислении у вас есть натуральные числа (или церковная кодировка натуральных чисел). Можно сделать нумерацию Гёделя, которая присваивает каждому члену в системе F уникальное натуральное число. Затем существует функция которая переводит любое натуральное число (которое соответствует хорошо типизированному члену в системе F) в другое натуральное число (которое соответствует нормальной форме этого хорошо типизированного термина из системы F) и делает что-то еще для любое натуральное число, которое не соответствует хорошо набранному члену в Системе F (скажем, оно возвращает ноль). Функция f вычислима, поэтому она может быть вычислена нетипизированным лямбда-исчислением, но не типизированным лямбда-исчислением (потому что последнее будет доказательством непротиворечивости логики второго порядка вff логика второго порядка, которая подразумевает, что логика второго порядка противоречива).

Оговорка 1: Если логика второго порядка является непоследовательным, это может быть возможным , чтобы написать в системе F ... и / или может не быть возможности записи F в бестипового лямбда - исчисления - вы могли бы написать что - то, но это не может всегда завершать, что является критерием для «вычислимых».ff

Предостережение 2: Иногда под «просто набранным лямбда-исчислением» люди подразумевают «просто набранное лямбда-исчисление с оператором с фиксированной запятой или рекурсивными функциями». Это будет более или менее PCF , который может вычислить любую вычислимую функцию, как нетипизированное лямбда-исчисление.


10

λYλ

λY


По какой-то причине у меня было в голове, что вы можете
Роб Симмонс

@ Роб, как я понимаю, Андрей не говорит, что это не так.
Каве

1
λλ

О, да, я просто был тупым. (Поскольку вопрос о том, как говорить о Системе F и о STLC, был довольно двусмысленным, я выбрал более сильную систему и забыл про более простой вопрос.)
Роб Симмонс

λλm.m(λfn.nf(f1_)) suc(((((fe)fe)h)((((fe)fe)h) hg)g)(((bc)ab)(bc)ac)d)dY
Франсиско Мота


4

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

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

Эта граница дает вам «естественные» примеры функций, которые нельзя набрать в этом фиксированном лямбда-исчислении: все арифметические функции, которые асимптотически превосходят эту оценку.

Если я правильно помню, термины , набранные в просто типизированного лямбда-исчисления могут быть оценены в башнях экспоненциальный: O(2^(2^(...(2^n)..); функция, растущая быстрее всех таких башен, не будет выражена в этих исчислениях. Система F соответствует интуиционистской логике второго порядка, поэтому вычислительная мощность просто огромна. Чтобы воспользоваться преимуществами вычислимости даже более мощных теорий, мы обычно рассуждаем в терминах теории множеств и теории моделей (например, какие порядковые числа могут быть построены) вместо теории вычислимости.


0

Δ=λx.xxΔΔβ ΔΔΔAA=AA


λAAAA

Да, вы правы, но я подумал (возможно, я ошибаюсь), что невозможно было иметь такой тип в простом типе лямбда-исчисления или в системе F, которые оба сильно нормализуются.
Чарльз

ΔΔΔΔ

@Kaveh Почему имеющие тип Aтакой , что A \ident A \rightarrow Aне странно? Это звучит абсурдно для меня, что я пропускаю?
Мартейн

Вы, вероятно, классически думаете о множествах и функциональных пространствах над ними. Подумайте, например, о конечных двоичных строках и вычислимых функциях над ними.
Каве
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.