Геделева нумерация. Арифметизация доказательств — различия между версиями
| Строка 82: | Строка 82: | ||
Путем некоторых усилий мы можем выписать формулу, представляющую двуместное отношение <tex>Proof(f,p)</tex>, истинное тогда и только тогда, когда <tex>p</tex> -- геделев номер доказательства формулы с геделевым номером <tex>f</tex>. | Путем некоторых усилий мы можем выписать формулу, представляющую двуместное отношение <tex>Proof(f,p)</tex>, истинное тогда и только тогда, когда <tex>p</tex> -- геделев номер доказательства формулы с геделевым номером <tex>f</tex>. | ||
| + | |||
| + | {{Теорема | ||
| + | |statement= | ||
| + | Любая представимая в формальной арифметике функция является рекурсивной. | ||
| + | |proof= | ||
| + | Возьмем некоторую представимую функцию <tex>f: N^n \rightarrow N</tex>. Значит, для нее существует формула формальной арифметики, представляющая ее. Пусть <tex>F</tex> — эта формула (со свободными переменными <tex>x_1, \dots x_n, y</tex>); при этом в случае <tex>f(u_1, \dots u_n) = v</tex> должно быть доказуемо <tex>F(\overline{u_1}, \dots \overline{u_n}, \overline{v})</tex> | ||
| + | |||
| + | По формуле можно построить рекурсивную функцию, <tex>C_F (u_1, \dots u_n, v, p)</tex>, выражающую тот факт, что <tex>p</tex> — геделев номер вывода формулы <tex>F(\overline{u_1}, \dots \overline{u_n}, \overline{v})</tex>. Тогда возьмем <tex>f (x_1, \dots x_n) := (\mu \langle{}S\langle{}C_F,U^{n+1}_1,\dots U^{n+1}_n,(U^{n+1}_{n+1})_1, (U^{n+1}_{n+1})_2)\rangle\rangle (x_1, \dots x_n))_1</tex> | ||
| + | |||
| + | }} | ||
Версия 00:55, 14 января 2012
Геделева нумерация. Арифметизация доказательств
Ранее мы показали, что любое рекурсивное арифметическое отношение выразимо в формальной арифметике. Теперь мы покажем, что наоборот, любое выразимое в формальной арифметике отношение является рекурсивным.
| Определение: |
| Ограниченные кванторы и — сокращения записи для выражений вида и |
| Теорема: |
Пусть и — рекурсивные отношения. Тогда следующие формулы, задающие некоторые отношения, также являются рекурсивными отношениями:
|
| Доказательство: |
| Упражнение. |
Теперь мы перенесем понятие вывода формулы на язык рекурсивных отношений, и, следовательно, внутрь языка формальной арифметики.
| Определение: |
| (Гёделева нумерация)
Дадим следующие номера символам языка формальной арифметики: 3 ( |
Уточним язык — обяжем всегда писать скобки всегда и только вокруг двуместной операции. В принципе, иначе мы могли бы определить правильно операцию равенства Eq, но это лишние технические сложности.
Научимся записывать выражения в виде чисел. Пусть — список простых чисел, при этом .
Комментарии:
Также, пусть --- это формула, представляющая отношение
Тогда текст из символов с геделевыми номерами запишем как число . Ясно, что такое представление однозначно позволяет установить длину строки (геделева нумерация не содержит 0, поэтому можно определить длину строки как максимальный номер простого числа, на которое делится ; будем записывать эту функцию как ), и каждый символ строки в отдельности (будем записывать функцию как ). Также ясно, что функции и — рекурсивны.
Чтобы удобнее работать со строками, введем следующую запись. Пусть есть запись вида <<>>, здесь — какие-то символы языка формальной арифметики, заключенные в кавычки. Эта запись задает число .
Операцию конкатенации строк определим так. Пусть первая строка имеет символы , а вторая — . Тогда результат их конкатенации — .
Если в данной записи встретится символ с $ перед ним: "$ ", тогда это означает вставку "литерала" (ср. язык Perl) --- интерпретировать это надо как конкатенацию строки до литерала, самого литерала, и строки после литерала. В данном примере --- "" "".
Чтобы представить доказательства, мы будем объединять строки вместе так же, как объединяем символы в строки: — это последовательность из двух строк, первая — это <<(>>, а вторая — <<)>>.
Теперь мы можем понять, как написать программу, проверяющую корректность доказательства некоторого утверждения в формальной арифметике. Наметим общую идею. Программа будет состоять из набора рекурсивных отношений и функций, каждое из которых выражает некоторое отношение, содержательное для проверки доказательства. Ниже мы покажем идею данной конструкции, приведя несколько из них.
- Проверка того, что a - геделев номер выражения, являющегося переменной.
- Проверка того, что выражение с номером получено из выражений и путем применения правила Modus Ponens. " $ $ "
- Проверка того, что получается из подстановкой вместо : — без реализации
- Функция, подставляющая вместо в формуле :
- Проверка того, что переменная входит свободно в формулу .
- Функция, выдающая геделев номер выражения, соответствующего целому числу:
$
Путем некоторых усилий мы можем выписать формулу, представляющую двуместное отношение , истинное тогда и только тогда, когда -- геделев номер доказательства формулы с геделевым номером .
| Теорема: |
Любая представимая в формальной арифметике функция является рекурсивной. |
| Доказательство: |
|
Возьмем некоторую представимую функцию . Значит, для нее существует формула формальной арифметики, представляющая ее. Пусть — эта формула (со свободными переменными ); при этом в случае должно быть доказуемо По формуле можно построить рекурсивную функцию, , выражающую тот факт, что — геделев номер вывода формулы . Тогда возьмем |