Доказательство
Итак, у нас есть доказательство, в котором формула R доказывается
на основании гипотез G1, G2,..., Gβ-1, Gβ.
Для краткости будем называть это доказательство "старым доказательством".
Нам надо получить доказательство формулы Gβ R
на основании гипотез G1, G2,..., Gβ-1.
Для краткости будем называть это доказательство "новым доказательством".
Утверждение метатеоремы дедукции состоит в том, что существует некая технология
(строгие правила), с помощью которой можно составить новое доказательство на основе
старого. Чтобы доказать это утверждение, мы подробно распишем одну из таких технологий
шаг за шагом.
Если формула
Gβ R случайно совпадет (целиком) с одной из аксиом или одной из
гипотез G1, G2,..., Gβ-1, то новое доказательство получится
сразу (длиной в 0 строк).
Иначе рассмотрим старое доказательство. Пронумеруем все его строки. Формулы, доказанные
на каждом шаге, обозначим переменными B1, B2,..,Bγ.
Старое доказательство будет иметь вид:
1) | ... | B1 | // ... |
2) | ... | B2 | // ... |
3) | ... | B3 | // ... |
... |
γ) | ... | Bγ | // ... |
Теперь последовательно просмотрим все строки старого доказательства, в которых
использовалось правило modus ponens. Выпишем все аксиомы, которые использовались
в качестве большой или малой посылки. Если формула R тоже является
аксиомой, добавим ее в начало этого списка. Обозначим эти аксиом переменными
A1, A2,... Aδ.
Составим заготовку для нового доказательства в таком виде:
1.1) | ? | Gβ A1 | // ? |
1.2) | ? | Gβ A2 | // ? |
... |
1.δ) | ? | Gβ Aδ | // ? |
|
2.1) | ? | Gβ G1 | // ? |
2.2) | ? | Gβ G2 | // ? |
... |
2.β) | ? | Gβ Gβ | // ? |
|
3.1) | ? | Gβ B1 | // ? |
3.2) | ? | Gβ B2 | // ? |
... |
3.γ) | ? | Gβ Bγ | // ? |
Обратите внимание (это важно), что все формулы начинаются с "Gβ ".
Все места, отмеченные знаками вопроса, должны быть заполнены. Также возможно нам придется вставлять дополнительные строки.
Нумерация строк в новом доказательстве использует составные номера вроде 1.4 или 1.4.6 для того,
чтобы была ясна связь между строками старого и нового доказательств. Заметим, что даже если старое доказательство состояло
из 0 строк, новое может оказаться длиннее за счет строк 1.1, 2.1-2.β.
1. Изменяем строки 1.1 - 1.δ, все по одному и тому же принципу: берем очередную строку с номером,
скажем, 1.ω, вставляем одну дополнительную строку перед ней и заполняем пропуски:
1.ω.1) | Imp1 | Aω (Gβ Aω) | // a ~> Aω, b ~> Gβ |
1.ω) | Aω, №1.ω.1 | Gβ Aω | // MP |
И так же для всех этих строк. В результате у нас получится часть доказательства от строки 1.1.1 до строки 1.δ.
2. Изменяем строки 2.1 - 2.(β-1), все по одному и тому же принципу: берем очередную строку с номером,
скажем, 2.ω, вставляем одну дополнительную строку перед ней и заполняем пропуски:
2.ω.1) | Imp1 | Gω (Gβ Gω) | // a ~> Gω, b ~> Gβ |
2.ω) | Gω, №2.ω.1 | Gβ Gω | // MP |
И так же для всех этих строк. В результате у нас получится часть доказательства от строки 2.1.1 до строки 2.(β-1).
3. Изменяем строку 2.β.
Вы видели, что в пункте 2 для доказательства использовалась гипотеза Gω.
Поэтому мы не могли использовать это доказательство для случая ω = β, ведь
в новом доказательстве гипотезы Gβ нет. Для случая ω = β
нам придется написать другое доказательство. Доказать надо формулу Gβ Gβ.
Узнаете? Это один из вариантов закона рефлексивности. Мы уже знаем, как составлять доказательство для
подобных формул. Остается вставить строки этого доказательства перед строкой 2.β.
Если хотите, можете написать их в качестве упражнения
(см. ответ).
Если в нашей системе аксиом используется аксиома Imp2, то фрагмент
будет выглядеть так:
2.β.1) | Imp1 | Gβ(BGβ) | // a ~> Gβ |
2.β.2) | Imp1 | Gβ(BGβGβ) | // a ~> Gβ, b ~> BGβ |
|
2.β.3) | Imp2 | Gβ(BGβ) (Gβ(BGβGβ)(GβGβ)) | // a ~> Gβ, b ~> BGβ, c ~> Gβ |
|
2.β.4) | №2.β.1, №2.β.3 | Gβ(BGβGβ)(GβGβ) | // MP |
2.β) | №2.β.2, №2.β.4 | GβGβ | // MP |
Если же в нашей системе аксиом используется аксиома Imp2', то фрагмент
будет выглядеть так:
2.β.1) | Imp1 | Gβ(BGβ) | // a ~> Gβ |
2.β.2) | Imp1 | Gβ(BGβGβ) | // a ~> Gβ, b ~> BGβ |
|
2.β.3) | Imp2' | Gβ(BGβGβ) (Gβ(BGβ)(GβGβ)) | // a ~> Gβ, b ~> BGβ, c ~> Gβ |
|
2.β.4) | №2.β.2, №2.β.3 | Gβ(BGβ)(GβGβ) | // MP |
2.β) | №2.β.1, №2.β.4 | GβGβ | // MP |
4. Изменяем строки 3.1 - 3.γ. Изменения будут зависеть от того, какое правило вывода
использовалось в старом доказательстве в соответствующей строке. Возьмем очередную строку с номером,
скажем, 3.ω. Посмотрим, какое правило вывода использовалось в старом
доказательстве в строке ω.
Случай A: В старом доказательстве использовалось правило подстановки:
ω) | X | Bω | // ... |
- где X - некоторая аксиома, Bω - формула, которая
получилась после замены. Что там было написано в комментарии сейчас неважно. Соответствующий фрагмент нового
доказательства будет состоять из трех строк, причем, первая из этих строк будет в точности скопирована из старого
доказательства, включая комментарий:
3.ω.1) | X | Bω | // ... |
3.ω.2) | Imp1 | Bω (Gβ Bω) | // a ~> Bω, b ~> Gβ |
3.ω) | №3.ω.2, №3.ω.1 | Gβ Bω | // MP |
Случай Б: В старом доказательстве использовалось правило modus ponens:
ω) | Xω, Xω Bω | Bω | // MP |
Поскольку старое доказательство по условию было правильным, то каждая из посылок к тому моменту была уже доказана:
и Xω, и Xω Bω.
Это могли быть аксиомы, гипотезы или ранее доказанные формулы. В любом случае где-то в предыдущих фрагментах нового доказательства мы доказали эти
формулы, но с добавкой "Gβ " спереди: Gβ Xω
и Gβ (Xω Bω).
В самом деле: рассматривая пункт 1, мы предусмотрели такие доказательства для всех аксиом, рассматривая пункт 2 - для всех гипотез,
а рассматривая предыдущие строки в пункте 3, мы предусмотрели такие доказательства для всех формул, которые в старом доказательстве
были доказаны раньше этой.
Если в нашей системе аксиом присутствует аксиома Imp2, то дальше мы изменяем фрагмент так:
3.ω.1) | Imp2 | (Gβ Xω) ((Gβ (Xω Bω)) (Gβ Bω)) | // a ~> Gβ, b ~> Xω, c -> Bω |
3.ω.2) | Gβ Xω, №3.ω.1 | (Gβ (Xω Bω)) (Gβ Bω) | // MP |
3.ω) | Gβ (Xω Bω), №3.ω.2 | Gβ Bω | // MP |
Если в нашей системе аксиом присутствует аксиома Imp2', то мы изменяем фрагмент так:
3.ω.1) | Imp2' | (Gβ (Xω Bω)) ((Gβ Xω) (Gβ Bω)) | // a ~> Gβ, b ~> Xω, c -> Bω |
3.ω.2) | Gβ (Xω Bω), №3.ω.1 | (Gβ Xω) (Gβ Bω) | // MP |
3.ω) | Gβ Xω, №3.ω.2 | Gβ Bω | // MP |
Теперь мы закончили запись нового доказательства. Рассмотрим его. Покажем, что в одной из строк нового доказательства
была доказана формула
Gβ R. В самом деле: в старом доказательстве формула
R могла быть аксиомой, могла быть одной из гипотез, либо могла быть
доказана как теорема в одной из строк 1 - γ.
Если формула R - аксиома, то мы ранее поставили ее в самое начало как A1.
В результате искомая формула Gβ R
совпадет с формулой Gβ A1,
и окажется доказанной в строке 1.1. Если формула R совпадает с одной из гипотез
Gω, то искомая формула
Gβ R
совпадет с формулой Gβ Gω,
которая окажется доказанной в строке 2.ω. Наконец, если формула R совпадает с одной из теорем
Bω, доказанных в старом доказательстве, то искомая формула
Gβ R совпадет с формулой
Gβ Bω
и окажется доказанной в строке 3.ω.
Обратное движение также допустимо, причем, обоснование этого (в отличии от метатеоремы дедукции)
элементарно. Пусть у нас имеется старое доказательство:
- старое доказательство плюс одна эта строка как раз и составят новое доказательство.
Обратите внимание, что в доказательстве МТД нам ни разу не понадобилась информация о том,
в каком порядке следуют гипотезы G1, G2,..., Gβ-1. Поэтому
мы можем их свободно переставлять. Все вместе предоставляет нам интересный прием:
сначала передвигаем значок до упора вправо, потом переставляем гипотезы
как хочется и передвигаем значок до упора влево. В результате получаем новую теорему,
доказанную без всяких гипотез - только из аксиом. Этот прием мы используем в следующей главе.
Рассмотрим пример применения МТД. Дано доказательство: