если (λ x. xx) имеет тип, то является ли система типов несовместимой?


20

Если система типов может присваивать тип λ x . x xили не завершающий (λx . x x) (λ x . x x), то является ли эта система несовместимой? Каждый тип в этой системе обитаем? Можете ли вы доказать ложь?

Ответы:


29

Конечно, присвоение типа является не достаточно для непоследовательности: в системе , мы можем получить λx.x xλ x . х х : ( X . X ) ( X . X )F

λx.x x:(X.X)(X.X)

довольно простым способом (это хорошее упражнение!). Однако не может быть хорошо типизирован в этой системе, предполагая -согласованность арифметики 2-го порядка, так как это означает, что все такие хорошо типизированные слагаемые являются нормализующими.(λx.x x)(λx.x x) ω

Кроме того, система является последовательной. Это следует из любой нормализации, как можно показать , что любой член типа не может иметь нормальную форму, или гораздо более простой аргумент, в котором каждый тип присваивается набор, либо или и можно показать, что всем производным типам назначается , а назначается (и, следовательно, не является выводимым).X . X { } { } X . X FX.X{}{}X.X

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

С другой стороны, чтобы иметь возможность сделать более общее утверждение о том, что не может быть хорошо напечатано в согласованной системе, вам необходимо иметь достаточно «логической структуры» в Система типов, чтобы иметь возможность четко определить последовательность. Затем вам нужно показать, что термин без нормальной формы головы (как вышеупомянутый) может иметь любой тип, что также не очевидно!(λx.x x)(λx.x x)

Более подробную информацию можно найти в моем ответе на связанный вопрос: /cstheory//a/31321/3984.


4
Читая эти ответы, я вижу, что вы, очевидно, прекрасно понимаете этот вопрос. Я хотел бы узнать больше, но я не уверен, где искать. Я просмотрел книгу TAPL, в которой ничего не говорится, поэтому не уверен, что это тема теории типов. Не могли бы вы указать мне, какие области CS / математики связаны с этим вопросом, и, возможно, несколько книг / статей? Большое спасибо.
MaiaVictor

2
Я не уверен , что эти вопросы являются «областью исследований» сам по себе , больше похожи на несколько забавных вопросы , которые бы отвечали давно , если существует какие - то серьезные усилия со стороны экспертов. Это определенно предмет теории типов, и теория Систем Чистых Типов имеет то преимущество, что делает задачу определенной и ограниченной. Возможно, я бы порекомендовал бумагу Coquand-Herbelin из другой ветки.
Коди

3
Подобные вопросы задавались, например, здесь и здесь . Я бы добавил в список «лямбда-исчисления Барендрегта с типами» .
Коди

1
Какой здесь синтаксис? Я ожидал увидеть для члена типа . ( X . X ) ( X . X )λx:(X.X).ΛY.x[YY](x[Y])(X.X)(X.X)
Андрей Бауэр

1
@AndrejBauer это «неявный» синтаксис, в котором нет никаких аннотаций на , а абстракции типов и приложения опущены. Вы также можете указать: если хотите. Вывод типа здесь неразрешим, но это несколько ортогонально вопросу. Конечно, все не так ясно, когда у вас есть зависимые типы, но существуют версии, например, CoC с неявными количественными определениями (исчисление неявных конструкций Микеля), поэтому вопрос остается актуальным. А , х : ( X . X ) . х [ ( X . X ) ( х . х ) ] хλλx:(X.X).x[(X.X)(X.X)] x
Коди
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.