стр. 1
(всего 3)

СОДЕРЖАНИЕ

>>

Санкт-Петербургский Государственный Институт
Точной Механики и Оптики (Технический Университет)
Факультет Информационных Технологий и Программирования
Кафедра Компьютерных технологий


М. А. Коротков Е. О. Степанов



Основы формальных
логических языков




Санкт-Петербург
2003
УДК 510.62, 510.63, 510.65, 510.675, 510.676.


Коротков М. А., Степанов Е. О. Основы формальных логических языков.
СПб: СПб ГИТМО (ТУ), 2003. 84с.


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


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




Утверждено к печати Ученым Советом факультета Информационных Техно-
логий и Программирования, протокол №5 от 09.01.03.

ISBN 5-7577-0122-6



c Санкт-Петербургский Государственный Институт Точной Механики и Оп-
тики (Технический Университет), 2003.

c М. А. Коротков, Е. О. Степанов, 2003.
Оглавление

1 Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Языки логики предикатов первого порядка . . . . . . . . . . . . . . 8
2.1 Алфавит и сигнатура . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Синтаксис языка первого порядка . . . . . . . . . . . . . . . . 9
2.3 Свободные и связанные переменные . . . . . . . . . . . . . . . 12
2.4 Семантика языков логики первого порядка . . . . . . . . . . 13
3 Языки логики второго порядка . . . . . . . . . . . . . . . . . . . . . 18
4 Логические языки с равенством . . . . . . . . . . . . . . . . . . . . . 19
5 Арифметика Пеано . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 Элементы теории доказательств . . . . . . . . . . . . . . . . . . . . . 30
6.1 Формальные cистемы . . . . . . . . . . . . . . . . . . . . . . . 30
6.2 Естественная дедукция . . . . . . . . . . . . . . . . . . . . . . 32
6.3 Подстановки в термах и формулах . . . . . . . . . . . . . . . 36
6.4 Корректность и полнота естественной дедукции . . . . . . . . 40
7 Основы теории моделей . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8 Сравнение языков логики разных порядков . . . . . . . . . . . . . . 53
9 Формальная теория множеств . . . . . . . . . . . . . . . . . . . . . . 57
9.1 Аксиоматика Цермело-Френкеля. Основные аксиомы . . . . . 59
9.2 Отношение порядка . . . . . . . . . . . . . . . . . . . . . . . . 65
9.3 Аксиома регулярности . . . . . . . . . . . . . . . . . . . . . . 68
9.4 Аксиома бесконечности . . . . . . . . . . . . . . . . . . . . . . 69
9.5 Ординалы и стандартная модель арифметики . . . . . . . . . 71
9.6 Аксиома выбора . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.7 Теория множеств и основания математики . . . . . . . . . . . 80
4 Введение


1 Введение
Формальная логика. Дать краткое, но исчерпывающее определение той или
иной науки – задача, как правило, не простая. В особенности это относится к
таким наукам, которые, как, например, математика или физика, содержат в себе
большое число различных специальных дисциплин. В значительной мере отно-
сится это и к логике, которая фактически пронизывает всю современную матема-
тику и информатику, а также является фундаментом многочисленных естествен-
нонаучных и гуманитарных дисциплин, от “абстрактных”, таких как философия,
до “прикладных”, таких как юриспруденция. Поэтому мы попробуем подойти к
понятию о предмете современной логики, не претендуя ни на полноту, ни на точ-
ность.
Общепринятым является понимание логики как науки о правильном умоза-
ключении (“логическом рассуждении”). Чтобы понять смысл этого определения,
стоит конкретизировать, что такое умозаключение, а главное, что следует по-
нимать под правильностью. Существует только два способа, которыми человек
приобретает новые знания – в результате опыта и путем умозаключения. При
этом первым способом получена только малая часть всех используемых людь-
ми знаний. Заметим, что всякое рассуждение основывается на опытных фактах
(“посылках”), которые сами по себе могут соответствовать или не соответствовать
действительности. Однако истинность или ложность посылок никак не влияют
на правильность рассуждения.
Вот очень простой, но показательный пример. Умозаключение “страус – пти-
ца, все птицы имеют крылья, следовательно страус имеет крылья” несомненно
правильное, а все использованные посылки соответствуют действительности, по-
этому истинным является и заключение. А вот в умозаключении “кит – морская
рыба, все рыбы в море селедки, следовательно кит – селедка” обе посылки лож-
ны, заключение также ложно, но само рассуждение следует признать правиль-
ным, ибо оно ничем, кроме входящих в него опытных фактов, не отличается от
предыдущего. По сути дела, оба рассуждения – это всего лишь две разные мо-
дификации одной и той же логической конструкции “y обладает свойством P ,
все x, имеющие свойство P , имеют и свойство Q, следовательно y имеет свой-
ство Q”. Здесь уже нет никаких опытных фактов, на их месте осталась только
абстрактная конструкция, которая является общепризнанно правильной, и мы
очень часто используем ее в самых разных логических рассуждениях.
Это был, конечно, только простой пример, а на практике проверить правиль-
ность сложных умозаключений можно только сведением их к последовательно-
сти таких вот элементарных общепризнанно правильных рассуждений (в этом
и состоит процесс доказывания заключения из заданных посылок). Таким об-
разом, правильность умозаключений вводится и проверяется совершенно фор-
5


мально, без какой-либо связи с истинностью входящих в него посылок, т.е. ис-
ключительно с точки зрения структуры рассуждения. Поэтому логику, изучаю-
щую правильные умозаключения, часто называют формальной логикой (иногда
приходится встречать название логистика). С практической точки зрения самое
важное свойство такой формальной правильности рассуждений заключается в
следующем: если нам удалось доказать, пользуясь методами формальной логи-
ки, правильность рассуждения, и нам известно из опыта, что все используемые
посылки истинны, то мы можем быть уверены в истинности заключения.
Строго говоря, логика несколько шире формальной логики – например, по-
следняя не отвечает на вопросы, какие рассуждения считать “элементарными” и
почему. Для ответа на них приходится углубляться в философию и психологию.
Однако, как правило, предмет логики ограничивают все-таки именно вопросами
формальной логики, так что логика и формальная логика оказываются просто
синонимами. Некоторые базовые вопросы относят к философским основаниям
логики, хотя граница между логикой и философией весьма размыта. В дальней-
шем мы будем заниматься именно формальной логикой, хотя нам придется часто
обращаться к ее внелогическим, в т.ч. общефилософским основаниям и выводам.
Символьная и математическая логика. В конце XIX – начале XX века
логика, являющаяся одной из наиболее древних наук (по современным представ-
лениям, рождение логики связано с деятельностью софистов в Древней Греции
в 4-5 веке до н.э. – именно они создали логику как науку и активно использо-
вали ее, в частности, для обучения ведению судебных споров; к этой же эпохе
относится и деятельность первого ученого, систематизировавшего разрозненные
логические знания – “отца логики” Аристотеля) пережила невиданную по своим
масштабам и значению революцию. Вначале преобразования казались несуще-
ственными и заключались в активном использовании в логических исследовани-
ях символьной записи. Разработанная в 40-70х гг. прошлого века Дж. Булем, а
затем развитая другими учеными (в основном математиками, в т.ч. Г. Кантором)
символьная запись логических рассуждений оказалась очень удобной и быстро
завоевала популярность, превратив формальную логику в символьную логику.
Например, рассмотренное выше логическое рассуждение “y обладает свойством
P , все x, имеющие свойство P , имеют и свойство Q, следовательно y имеет свой-
ство Q”, в современной записи выглядит очень компактно

P (y), ?x(P (x) > Q(x)) Q(y).

При этом P (y) обозначает “y обладает свойством P ”, P (x) > Q(x) обознача-
ет “если x имеет свойство P , то x имеет свойство Q”, ?x(...) обозначает “для
всех x верно (...)”, а обозначает “доказывает”. “Символьная” революция в ло-
гике совпала по времени со столь же революционными преобразованиями в ма-
тематике. Основными вехами этих преобразований было появление созданной
6 Введение


Г. Кантором теории множеств, качественным повышением требований к строго-
сти доказательств, прежде всего в математическом анализе в результате работ
К. Вейерштрасса, активным поиском общих теоретикомножественных оснований
математического анализа и математики в целом. Возникшие на этом пути труд-
ности оказались принципиальными и потребовали значительной формализации
оснований математики с использованием методов символьной логики. В свою
очередь, произошедшее таким образом соприкосновение логики и математики
привело к их взаимопроникновению настолько, что считавшаяся ранее частью
философии логика оказалась пропитанной математическими методами, которые
оказались эффективными и в применении к чисто логическим задачам. В ре-
зультате современная логика полностью базируется на математических методах
и часто находит приложение в задачах математики и прикладных математиче-
ских дисциплин, включающих теоретическую информатику, и является, таким
образом, математической логикой. Однако нет никакого смысла в противопо-
ставлении “логики” и “математической логики”, так как математическая логика
представляет собой современное развитие классической логики, основы которой
заложены еще Аристотелем.
Формальные языки. Современная логика изучает формальные языки, слу-
жащие для выражения логических рассуждений. Используемые для этой цели
математические методы пригодны для изучения и значительно более широкого
класса формальных языков.
Любой язык, как естественный (русский, английский, латинский), так и фор-
мальный (языки программирования, язык шахматной записи, языки логики пре-
дикатов), служит для передачи информации. С этой точки зрения язык представ-
ляет собой совокупность знаковой системы (включающей в себя набор символов
для передачи текстов и правила написания текстов, называемые синтаксисом
языка) и набора смыслов, которые можно сопоставить текстам языка, а также
правил сопоставления смысла текстам языка, называемых семантикой языка.
Вопросы синтаксиса, как правило, существенно проще семантических вопросов
и гораздо легче поддаются формальному анализу.
Чтобы задать язык, необходимо прежде всего задать его алфавит – множе-
ство объектов (“символов”), из которых составляются тексты языка. Алфавитом
языка может, вообще говоря, служить произвольное множество. Например, ал-
фавит английского языка состоит из букв латинского алфавита, арабских цифр
и знаков пунктуации, письменный язык индейцев майя – из узелков. Также из
букв латинского алфавита, арабских цифр и некоторых специальных символов
(например, #) состоит алфавит большинства распространенных языков програм-
мирования.
Далее мы будем говорить только о формальных языках. Пусть задано множе-
ство V – алфавит языка. Элементы этого множества мы будем называть симво-
7


лами алфавита. Цепочками (string) будем называть конечные позиционные на-
боры символов алфавита с учетом порядка следования символов. В дальнейшем
мы, как правило, будем иметь дело с довольно распространенной ситуацией, ко-
гда символы алфавита представляют собой знаки, которые могут быть записа-
ны на бумаге. В этом случае цепочки символов будем записывать так, как это
принято в европейских языках – слева направо в порядке следования символов.
Пустая цепочка символов это пустое множество символов. Множество всех це-
почек, включая пустую, будем обозначать V ? . Формальный язык с алфавитом
V это просто заданное подмножество L ? V ? . Элементы этого множества могут
называться по-разному для разных языков. Например, элементы языков логики
предикатов принято называть формулами, элементы языков программирования
– программами, элементы языка шахматной записи – ходами (или записями хо-
дов), а элементы языков, в той или иной мере моделирующих естественные –
предложениями или фразами.
Задать формальный язык (т.е. правило, по которому формируется множество
L ? V ? ) можно по-разному. Чаще всего для этой цели используют формальные
грамматики. Нас будет интересовать только один весьма распространенный тип
формальной грамматики – контекстно-свободная грамматика, записываемая в
форме Бэкуса-Наура.
Язык и метаязык. Для описания синтаксиса и семантики формального язы-
ка мы, как правило, будем пользоваться естественным (в данном случае русским)
языком. Например, фраза “Ход e2–e4 состоит в передвижении пешки с поля e2
на поле e4”, является предложением русского языка, объясняющим смысл записи
e2–e4 на формальном языке шахматной записи. Использовать для этой же цели
можно было бы и другой язык, как естественный, так и формальный, специаль-
но предназначенный для описания синтаксиса и семантики данного формально-
го языка. В таком случае будем называть тот язык, который используется для
описания данного формального языка, метаязыком для последнего, а “описыва-
емый” язык предметным языком. Приставка греческого происхождения “мета”, в
прямом переводе означающая “следующий за”, имеет здесь значение “над”.
Стоит отметить, что предметный формальный язык и метаязык, как прави-
ло, отличаются друг от друга. Метаязык обычно в некотором смысле богаче,
например, его алфавит часто строго содержит алфавит предметного языка. Де-
ло в том, что многие формальные языки, в том числе и те, которые мы будем
рассматривать в дальнейшем, недостаточно богаты, чтобы использовать их в ка-
честве метаязыков для себя самих (это или просто невозможно, или по меньшей
мере весьма неудобно). При этом все естественные языки достаточно богаты,
чтобы с их помощью можно было бы описать их собственную грамматику (“син-
таксис”), а также проводить рассуждения о смысле тех или иных фраз этого
же языка (т.е. о семантике языка). Например, мы обучаемся русскому языку на
8 Языки логики предикатов первого порядка


русском (который в процессе обучения служит, таким образом, метаязыком для
самого себя. В то же время книжки по обучению формальным языкам, таким
как, например, языки программирования, написаны также на естественном (рус-
ском, английском и т.п.) языке, а не на самом изучаемом формальном языке
(представьте себе, можно ли было бы научиться программировать на C++, если
бы соответствующие учебники не были написаны на привычном русском языке).
Это, однако, не значит, что никакой формальный язык не может использоваться
в качестве метаязыка для себя самого: существуют и такие формальные языки,
которые, вовсе не будучи столь же богатыми, как и естественные, в принципе
могут быть использованы для “описания себя самих”.


2 Языки логики предикатов первого порядка
Языки логики предикатов представляют собой основной класс языков, с ко-
торыми приходится иметь дело в формальной логике. Разные языки этого класса
используются для описания различных предметных областей. Наибольшее при-
менение в силу ряда причин, которые мы рассмотрим позднее, получили язы-
ки логики предикатов первого порядка. Главная их особенность состоит в том,
что они достаточно выразительны (например, на языке логики первого порядка
можно описать всю математику) и в то же время легко поддаются формальному
анализу.

2.1 Алфавит и сигнатура
Алфавит A любого языка логики предикатов первого порядка состоит из шести
подмножеств

A = Const ? Func ? Pred ? Var ? Log ? Aux,

где
• Const – множество символов предметных констант,
• Func – множество функциональных символов,
• Pred – множество предикатных символов,
• Var – множество символов предметных переменных,
• Log := {¬, ?, ?, >, ?, ?} – множество логических символов,
• Aux := {, ()} –множество вспомогательных символов (запятая и круглые
скобки).
2.2 Синтаксис языка первого порядка 9


Объединение ? = Const ? Func ? Pred множеств символов предметных кон-
стант, функциональных и предикатных символов называется сигнатурой язы-
ка и определяется той конкретной предметной областью, для описания которой
предназначен язык. Язык логики первого порядка, таким образом, определяется
своей сигнатурой, поэтому говорят об алфавите и языке сигнатуры ? (если необ-
ходимо подчеркнуть зависимость от сигнатуры, ее указывают в верхнем индексе,
например, алфавит A? , язык L? ).
Как правило, для обозначения символов предметных констант, переменных
и функциональных символов принято использовать малые латинские буквы, а
для предикатных символов – большие латинские буквы. Кроме того, все функ-
циональные и предикатные символы делятся на унарные, бинарные, тернарные,
n-арные и т.п. (если символ n-арный, то это значит, что он используется в записи с
n аргументами). Множества n-арных функциональных и предикатных символов
будем обозначать, соответственно, Funcn и Predn .
Множество логических символов состоит из следующие элементов:

• ¬ – символ отрицания (логическое “не”),

• ? – символ конъюнкции (логическое “и”),

• ? – символ дизъюнкции (логическое “или”),

• > – символ импликации (логическое “следствие”),

• ? – квантор существования,

• ? – квантор всеобщности.

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


2.2 Синтаксис языка первого порядка
Язык L? логики предикатов первого порядка с сигнатурой ? определяется как
формальный язык с алфавитом A? , порождаемый следующей грамматикой (в
10 Языки логики предикатов первого порядка


форме Бэкуса-Наура):

< формула > ::= < атомная формула >
| (¬ < формула >)
|(< формула > ? < формула >)
|(< формула > ? < формула >)
|(< формула >>< формула >)
|(? < переменная >< формула >)
|(? < переменная >< формула >),
< атомная формула > ::= < n ? арный пред. символ > (< терм >, ...),
< терм > ::= < константа >
| < переменная >
| < n ? арный функ. символ > (< терм >, ...),

где < константа >, < переменная >, < n ? арный функциональный символ > и
< n ? арный предикатный символ > – произвольные символы из Const, Var,
Funcn и Predn , соответственно.
Элементы L? называются формулами. Согласно приведенному выше опреде-
лению, формулы бывают атомными и составными. Последние, в свою очередь,
составляются из атомных формул с помощью логических символов. Атомная
формула представляет собой предикатный символ с соответствующим количе-
ством аргументов-термов (для n-арного предикатного символа – n термов). На-
конец, терм языка L? это или предметная константа, или выражение, в которое
входит функциональный символ и соответствующее число (n для n-арного сим-
вола) термов. Это можно выразить и с помощью следующего эквивалентного
определения.

Определение 2.1 (i) Множество термов TER(L? ) языка L? определяется
по следующим правилам:

• любой символ предметной переменной или константы является тер-
мом;
• если f ? Funcn , а t1 , . . . , tn ? TER(L? ), то f (t1 , . . . , tn ) ? TER(L? );
• других термов, кроме построенных по приведенным выше правилам,
нет.

(ii) Множество формул L? определяется по следующим правилам:

• если A ? Predn , а t1 , . . . , tn ? TER(L? ), то A(t1 , . . . , tn ) – формула,
называемая в этом случае атомной формулой;
• если P, Q – формулы, то (¬P), (P ? Q), (P ? Q), (P > Q) – формулы;
2.2 Синтаксис языка первого порядка 11


• если P – формула, а x – символ предметной переменной, то ((?x)P),
((?x)P) – формулы;
• других формул, кроме построенных по приведенным выше правилам,
нет.

Пример 2.1 Пусть A1 и B 2 – унарный и бинарный предикатные символы, со-
ответственно, f – бинарный функциональный символ, а c – символ предметной
константы, а все остальные малые латинские буквы – символы предметных
переменных. Тогда цепочки символов c, x, f (c, x), f (x, f (c, f (x, x))) являются
термами, а цепочки символов

A1 (f (c, x)), B 2 (c, f (c, x)), и

(((?x)(A1 (x) ? A2 (y))) > ((?y)(B 2 (c, f (c, c)) ? A1 (x)))
являются формулами.

Упражнения.
1. Докажите, что в условиях предыдущего примера цепочки символов c(f (A1 (x) >
)), (())(c? не являются ни формулами, ни термами.
2. Докажите следующие теоремы об индукции по структуре термов и формул:

Теорема 2.1 (об индукции по структуре термов) Пусть ? такое
подмножество
TER(L? ), что

(i) ? содержит все предметные константы и переменные;

(ii) Если ? содержит t1 , . . . , tn ? TER(L? ), то ? содержит и f (t1 , t2 , . . . , tn ), где f
– произвольный n-арный функциональный символ.

Тогда ? содержит все термы.

Теорема 2.2 (об индукции по структуре формул) Пусть ? такое подмножес-
тво L? , что

(i) ? содержит все атомные формулы;

(ii) Если P, Q ? ?, то (¬P), (P ? Q), (P ? Q), (P > Q) ? ?;

(iii) Если P ? ?, то ((?x)P), ((?x)P) ? ? для произвольного символа предметной
переменной x.

Тогда ? содержит все формулы.
12 Языки логики предикатов первого порядка


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

P r (?) = P r (?) = P r (¬) > P r (?) > P r (?) > P r (>) ,
где символ P r (A) обозначает приоритет операции A.
Таким образом, самый высокий приоритет имеют кванторы, далее в порядке
убывания приоритета следуют символы отрицания, конъюнкции, дизъюнкции,
и, наконец, импликации. С учетом этого правила, например, цепочки символов
?x(A1 (x) > B 1 (x)) и ?x¬A2 (x, y) являются сокращенным обозначением формул
((?x)(A1 (x) > B 1 (x))) и ((?x)(¬A2 (x, y))), соответственно. Впредь мы будем за-
писывать все формулы в сокращенном виде с использованием введенных прио-
ритетов.


2.3 Свободные и связанные переменные
Определим множество свободных переменных Free(P) и множество связанных
переменных Bound(P) формулы P ? L? . Здесь и далее var (t), var (P) обозначает
множество символов предметных переменных, входящих, соответственно, в терм
t и формулу P.

Определение 2.2 Множество свободных переменных Free(P) и множество
связанных переменных Bound(P) формулы P ? L? определяются по следующим
правилам:

• если P – атомная формула, то Free(P) := var (t), где объединение бе-
t
рется по всем термам, входящим в формулу P, и Bound(P) := ?;

• если P = (¬Q), то Free(P) := Free(Q) и Bound(P) := Bound(Q);

• если P = (Q ? S) или P = (Q ? S), или P = (Q > S), то Free(P) :=
Free(Q) ? Free(S) и Bound(P) := Bound(Q) ? Bound(S);

• если P = ((?x)Q) или P = ((?x)Q), то Free(P) = Free(Q) \ {x} и
Bound(P) = Bound(Q) ? {x}.
2.4 Семантика языков логики первого порядка 13


Иначе говоря, переменные “связываются” кванторами ?, ?. Заметим, что вовсе
не обязательно Free(P) ? Bound(P) = ?. Например, если

P := ?x(Q(x, y) > R(x)) ? ?y(¬Q(x, y) > ?zR(z)),

то для данной формулы Free(P) = {x, y}, Bound(P) = {x, y, z}, а значит,
Free(P) ? Bound(P) = {x, y} = ?. Тем не менее, каждое конкретное вхожде-
ние переменной в формулу может быть либо свободным, либо связанным.

Определение 2.3 Формула P называется замкнутой (или предложением), ес-
ли у нее нет свободных переменных.

2.4 Семантика языков логики первого порядка
До сих пор мы занимались исключительно вопросами синтаксиса языков логики
предикатов первого порядка, рассматривая эти языки совершенно формально
как наборы цепочек символов, построенных по определенным правилам. Теперь
нашей задачей будет придать смысл введенным синтаксическим конструкциям.
Формулы языков первого порядка будем интерпретировать как утверждения
о некоторой предметной области, заранее не фиксированной при рассмотрении
каждого конкретного языка. Так, например, любая формула может восприни-
маться как утверждение о натуральных числах, о геометрических фигурах, о
крокодилах в Южной Америке и т. п. При этом одна и та же формула может
представлять истинное утверждение в одной предметной области и ложное в
другой. Например, формула ?xA(x) может представлять истинное утверждение
о крокодилах (например, “все крокодилы являются рептилиями”, если A(x) ин-
терпретируется как “x – рептилия”) и ложное утверждение о натуральных числах
(“все натуральные числа являются четными”, если A(x) интерпретируется как “x
– четное число”). И даже в одной и той же предметной области формула может
оказаться как истинной, так и ложной, в зависимости от того, какой смысл при-
писывается символам констант, функциональным и предикатным символам, а
также символам свободных переменных. Например, приведенная выше формула
может представлять и истинное утверждение о натуральных числах, если A(x)
интерпретируется как “x – натуральное число”.
Прежде чем вводить формальные определения, сделаем еще одно важное за-
мечание. Мы будем рассматривать только классическую двузначную семантику
(как правило, принято говорить о двузначной логике), в которой каждая фор-
мула языка первого порядка интерпретируется как истинное либо ложное утвер-
ждение. При этом говорят, что формула имеет истинностное значение: 1 (отож-
дествляемом с истиной) или 0 (отождествляемом с ложью). Существует и много-
значная семантика, в которой истинностное значение формулы может принимать
14 Языки логики предикатов первого порядка


более двух значений. Наиболее широко известной является трехзначная логика
Лукасевича, в которой допускается наряду с 0 и 1 истинностное значение 1/2
(интерпретируемое, например, как “вероятно”). Можно рассматривать и конти-
нуальную многозначную семантику, в которой истинностное значение формулы
может быть любым числом от 0 до 1 и интерпретироваться, например, как сте-
пень правдоподобности. Особенно интересны приложения таких многозначных
логик. Например, в языке логики предикатов, предназначенном для описания
действий с абстрактными множествами, можно записать формулу, выражающую
утверждение “данный элемент принадлежит заданному множеству”. В класси-
ческой однозначной семантике такая формула может считаться либо истинной
(истинностное значение 1), либо ложной (истинностное значение 0). Однако в
только что упомянутой континуальной семантике эта формула может иметь лю-
бое истинностное значение в промежутке [0, 1], которое логично интерпретиро-
вать как степень принадлежности элемента множеству. Таким образом, в теории
множеств, базирующейся на такой семантике, элемент может принадлежать мно-
жеству в большей или меньшей степени. Эта теория получила название теории
нечетких множеств (fuzzy set theory) и нашла широкое применение в методе
экспертных оценок.
Теперь мы можем строго определить истинностное значение формулы языка
логики предикатов первого порядка L? для двузначной семантики. Для этого
нам понадобятся понятия универсума, алгебраической системы и интерпрета-
ции для языка L? .

Определение 2.4 Алгебраической системой для сигнатуры ? называется на-
бор M следующих объектов:

• непустого множества M , называемого универсумом,

• для каждого символа предметной константы c ? Const выделенного эле-
мента универсума cM ? M ,

• для каждого n-арного функционального символа f ? Funcn выделенной
функции f M : M n > M , где M n := M ? M ? ... ? M ,
n раз


• для каждого n-арного предикатного символа A ? Predn характеристиче-
ской функции выделенного n-местного отношения AM : M n > {0, 1}.

Определение 2.5 Интерпретацией в алгебраической системе M называется
пара (M, ?), где ? функция ?: Var > M .
2.4 Семантика языков логики первого порядка 15


Таким образом, алгебраическая система для языка L? определяет тот “мир”,
о котором “говорят” формулы L? . Символы предметных констант представле-
ны в ней элементами универсума, функциональные символы – функциями на
универсуме, а предикатным символам соответствуют отношения на универсуме.
Интерпретация нужна, чтобы поставить в соответствие символам предметных
переменных элементы универсума.
Пользуясь введенными определениями, мы можем связать элементы универ-
сума и термы языка L? . Для этого, фиксировав интерпретацию (M, ?), введем
в рассмотрение функцию [ ]: TER(L? ) > M “значения” терма в соответствии со
следующими правилами:

• если t = c ? Const, то [t] := cM ,

• если t = x ? Var, то [t] := ?(x),

• если t = f (t1 , t2 , ..., tn ), где t1 , . . . , tn ? TER(L? ), то где f ? Funcn , то
[t] := f M ([t1 ], ..., [tk ]).

Заметим, что приведенные правила корректно определяют функцию [ ] на всем
множестве TER(L? ).
Теперь мы можем наконец определить понятие истинностного значения фор-
мулы P ? L? в интерпретации (M, ?).

Определение 2.6 Истинностным значением формулы P ? L? в интерпрета-
ции
(M, ?) называется число v(P) ? {0, 1}, определяемое по следующим правилам:

1. если P – атомная формула, т. е. P = A(t1 , ..., tn ), A ? Predn , t1 , . . . tn ?
TER(L? ), то v(P) := AM ([t1 ], ..., [tk ]),

2. если P = ¬Q, то v(P) := 1 ? v(Q),

3. если P = Q ? S, то v(P) := min{v(Q), v(S)},

4. если P = Q ? S, то v(P) := max{v(Q), v(S)},

5. если P = Q > S, то v(P) := max{1 ? v(Q), v(S)},

6. если P = ?xQ, то v(P) := min{v[a/x] (Q) : a ? M }, где va (Q) – ис-
тинностное значение формулы Q в интерпретации (M, ?[a/x] ), а функция
?[a/x] : Var > M определена соотношениями ?[a/x] (y) := ?(y) при y = x, и
?[a/x] (x) := a,
16 Языки логики предикатов первого порядка


7. если P = ?xQ(x), то v(P) := max{v[a/x] (Q) : a ? M }, где v[a/x] (Q) – истин-
ностное значение формулы Q в интерпретации (M, ?[a/x] ), определенной
выше.

Определение 2.7 Будем говорить, что формула P истинна в интерпретации
(M, ?), если v(P) = 1, и ложна, если v(P) = 0.

Будем писать (M, ?) |= P, если v(P) = 1 в интерпретации (M, ?).

Определение 2.8 Будем говорить, что формула P:
• выполнима в алгебраической системе M, если (M, ?) |= P для какой-либо
интерпретации (M, ?);

• выполнима, если она выполнима в какой-либо алгебраической системе;

• тавтология, если она выполнима в любой алгебраической системе;

• противоречива, если она невыполнима.

Определение 2.9 Алгебраическая система M называется моделью формулы
P, если (M, ?) |= P для любой интерпретации (M, ?). При этом пишут M |=
P. Формула P называется истинной, если у нее есть модель.

Определение 2.10 Формула P называется семантическим следствием мно-
жества формул ?, если из того, что (M, ?) |= Q для всех одновременно Q ? ?,
следует (M, ?) |= P. В этом случае принято писать ? |= P.

Определение 2.11 Формулы P, Q называются семантически эквивалентны-
ми, если v(P) = v(Q) в любой интерпретации. В этом случае пишут P ? Q.

Пример 2.2 Пусть ? = {c, f 1 , g 2 , A2 , B 1 }, где c – символ предметной константы,
f , g – одноместный и двуместный функциональные символы, соответственно, A
– двуместный предикатный символ, B – одноместный предикатный символ. В
качестве универсума выберем множество Z+ = N ? {0} неотрицательных целых
0
чисел. Зададим алгебраическую систему для L? , положив:
cM := 0,
f M (n) := n + 1,
g M (m, n) := m + n,
1, m > n
AM (m, n) :=
0, m ? n,
1, n простое число
B M (n) :=
0, n составное число
2.4 Семантика языков логики первого порядка 17


Пусть ?(y) := 2. Тогда формула P := ?xA(x, f (x)) ? B(g(c, y)) истинна, т. е.
v(P) = 1. В данной алгебраической системе формула P выражает следующее
утверждение о натуральных числах: “Либо n + 1 < n для любого числа n, либо
y + 0 – простое число”. Если в той же алгебраической системе положить ?(y) := 4,
то в такой интерпретации формула P окажется ложной, т. е. v(P) = 0.
Заметим, что истинностное значение формулы P не зависит от интерпретации
связанной переменной.

Рассмотрим еще один любопытный пример.

Пример 2.3 (Парадокс брадобрея) В одном городе жил брадобрей, который
брил всех тех, и только тех, кто не брил самого себя. Кто брил брадобрея? Па-
радокс заключается в том, что попытка дать ответ на этот вопрос приводит к
замкнутому кругу рассуждений. А именно, если брадобрей брил себя сам, то он
не мог брить себя сам, так как он брил только тех, кто не брил самого себя, и
наоборот. Объяснение состоит в противоречивости основного утверждения.
Запишем на формальном языке логики первого порядка формулу, выража-
ющую “парадокс брадобрея”. Для этого в сигнатуре нам понадобится бинарный
предикатный символ, выражающий отношение “бреет”: R(x, y) значит x бреет
y. Рассмотрим сигнатуру ? = {b, R}, где символ константы b – это брадобрей.
Утверждение “брадобрей бреет тех и только тех, кто не бреет самого себя” запи-
сывается тогда в виде формулы:

P := ?x(¬R(x, x) > R(b, x)) ? ?x(R(b, x) > ¬R(x, x))

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

Упражнение 2.1 Покажите справедливость следующих утверждений:

¬?xP (x) ? ?x¬P (x),
¬?xP (x) ? ?x¬P (x)

Определение 2.12 Будем называть замыканием формулы P со свободными пе-
ременными Free(P) = {x1 , x2 , . . . , xk } формулу

Cl(P) := ?x1 , ?x2 , . . . , ?xk P

Теорема 2.3 Алгебраическая система M являeтся моделью формулы P, если
и только если M является моделью замыкания P, т. е. M |= P если и только
если M |= Cl(P).
18 Языки логики второго порядка


Упражнение 2.2 Доказать теорему о замыкании.

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


3 Языки логики второго порядка
Языки логики второго порядка отличаются от языков логики первого порядка
наличием в алфавите дополнительно символов предикатных переменных (для
которых мы резервируем большие латинские буквы X, Y , Z, возможно, с цифро-
выми индексами), а также наличием дополнительных формул вида ?X Q, ?X Q
с использованием символов предикатных переменных.
Множество предикатных переменных алфавита A языка логики второго по-
рядка будем обозначать VarPred. Если надо подчеркнуть, что речь идет о мно-
жестве k-арных предикатных переменных, то будем писать VarPredk . Таким
образом,

A = Const ? Func ? Pred ? VarPred ? Var ? Log ? Aux.

Термы языкa логики второго порядка определяются так же, как и термы язы-
ка логики первого порядка, а формулы отличаются возможностью использовать
предикатные переменные после кванторов:

< атомная формула > ::= < n ? арный пред. символ > (< терм >, ...)
| < n ? арная пред. переменная > (< терм >, . . .),
< формула > ::= < атомная формула > | (¬ < формула >)
|(< формула > ? < формула >)
|(< формула > ? < формула >)
|(< формула >>< формула >)
|(? < переменная >< формула >)
|(? < переменная >< формула >)
|((? < пред. переменная >< X >) < формула >)
|((? < пред. переменная >< X >) < формула >),
< терм > ::= < константа >
| < переменная >
| < n ? арный функ. символ > (< терм >, ...).
19


Чтобы не писать лишних скобок, мы применяем ранее введенное правило при-
оритетов операций:

P r (?) = P r (?) = P r (¬) > P r (?) > P r (?) > P r (>) .

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

Определение 3.1 Интерпретацией для языка логики второго порядка назы-
вается тройка (M, ?, ?), где M – алгебраическая система, ?: Var > M , ? :
VarPredk > Bk , Bk := ? : L > {0, 1} L ? M k .

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

(i) v(X k (t1 , . . . , tk )) := ?(X k )([t1 ], ..., [tk ]), где X k ? VarPredk , а все ti ? TER;

(ii) v(?Y (P)) := min v?Y (P) : ? ? Bk ,

(iii) v(?Y (P)) := max v?Y (P) : ? ? Bk ,

где символом v?Y (P) обозначено истинностное значение формулы P в интерпре-
тации (M, ?, ?Y ),
? ? Bk , X = Y
?Y (X) :=
?(X), X = Y.

4 Логические языки с равенством
Очень часто в алфавит языков логики первого или второго порядка, предназна-
ченных для формализации математических или естественнонаучных утвержде-
ний, включается двуместный предикатный символ равенства, обозначаемый, как
правило, символом =. Такие языки будем называть языками с равенством. За-
метим, что вместо = (x, y) принято писать x = y.
20 Логические языки с равенством


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

(R) ?x (x = x),

(S) ?x?y(x = y > y = x),

(T ) ?x?y?z(x = y ? y = z > x = z),

(F ) ?x1 . . . ?xn ?y1 . . . ?yn ((x1 = y1 ? x2 = y2 ? . . . ? xn = yn ) > (?n (x1 , . . . , xn ) =
?n (y1 , . . . , yn )),

(P ) ?x1 . . . ?xn ?y1 . . . ?yn ((x1 = y1 ? x2 = y2 ? . . . ? xn = yn ) > (P n (x1 , . . . , xn ) =
P n (y1 , . . . , yn )).

Здесь (R), (S), (T ) – аксиомы, выражающие, соответственно, рефлексивность,
симметричность и транзитивность отношения равенства. (F ) и (P ) – это схе-
мы аксиом, т.е. “шаблоны” бесконечного, вообще говоря, множества аксиом. От-
дельные аксиомы получаются из схем (F ) и (P ) подстановкой вместо ?n любой
выразимой в рассматриваемом языке n-местной функции (т.е. терма с n различ-
ными символами переменных), а вместо P n – любого выразимого в этом язы-
ке n-местного предиката (т.е. атомной формулы с n свободными переменными).
Получаемые таким образом аксиомы называются вариантами соответствующих
схем аксиом. Схемы аксиом (F ) и (P ) выражают, соответственно, неразличимость
“равных” объектов (элементов универсума) при помощи выразимых в данном
языке функций и предикатов.
Для языка логики второго порядка набор аксиом равенства состоит из ак-
сиом (R), (S), (T ) и аксиом (F ) и (P ), заменяющих схемы аксиом (F ) и (P )
соответственно:

(F ) ?f n ?x1 . . . ?xn ?y1 . . . ?yn ((x1 = y1 ? x2 = y2 ? . . . ? xn = yn ) >
(f n (x1 , . . . , xn ) = f n (y1 , . . . , yn )),

(P ) ?X n ?x1 . . . ?xn ?y1 . . . ?yn ((x1 = y1 ? x2 = y2 ? . . . ? xn = yn ) >
(X n (x1 , . . . , xn ) = X n (y1 , . . . , yn )).
21


Заметим, что в (P ) используется символ n-арной предикатной переменной X n ,
а в (F ) используется символ n-арной функциональной переменной f n . Строго
говоря, согласно данному нами определению, в алфавите языков логики второго
порядка нет специально зарезервированных символов для функциональных пе-
ременных. Однако это никак не ограничивает выразительной силы языка второго
порядка: на самом деле функциональные переменные можно заменить предикат-
ными переменными.
Действительно, функцию можно отождествить с ее графиком, а графики
функций это частный случай отношений. Например, “формулу” ?f (P (f (x))) (где
f – символ унарной функциональной переменной) можно считать просто сокра-
щенным написанием формулы ?X (f unc(X)?(?y(X(x, y) > P (y)))), где формула

f unc(X) := ?x?!y X(x, y)

выражает то факт, что X – график функции. Здесь использовано весьма распро-
страненное сокращение ?! (“существует и единственно”):

?!xP(x) := ?xP(x) ? ?x?y(P(x) ? P(y) > x = y).

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


5 Арифметика Пеано
Рассмотрим в качестве первого содержательного примера языков логики преди-
катов языки для описания арифметических действий с натуральными числами.
Для этой цели зададим сигнатуру

?ar := (0, s, +, ·, =),
22 Арифметика Пеано


где 0 – символ константы “нуль”, s – символ унарной функции выделения следую-
щего по порядку числа, + и · – символы бинарных функций суммы и произведе-
ния, и, наконец, = – предикатный символ равенства. Как и в случае с символом
равенства, для символов + и · будем в дальнейшем писать (x + y) и (x · y) вместо
+(x, y) и ·(x, y), соответственно, а так же не писать “лишние” скобки, приписы-
вая символу · более высокий приоритет по сравнению с +, как это и принято
в математике. Эта сигнатура задает два языка логики предикатов с равенством
– первого L?ar и второго порядка L?ar соответственно, которые мы будем назы-
I II
вать языками арифметики Пеано (по имени итальянского математика Giuseppe
Peano, впервые рассмотревшего формальные языки для описания арифметики).
Эти языки описывают только самые простые действия с натуральными числа-
ми “в пределах начальной школы”, в число которых, например, даже не входит
возведение в степень. И все же даже такие простые на первый взгляд языки
обладают, как мы в дальнейшем покажем, весьма неожиданными свойствами.
Возникает вопрос: какие формулы языка арифметики Пеано имеют смысл?
Очевидно, лишь те из них, которые верны для натуральных чисел (ведь именно
для действий с ними предназначен этот язык). Выражаясь точнее, осмыслен-
ными разумно считать только формулы, выполнимые в алгебраической системе
N , универсум которой есть множество натуральных чисел (с нулем), символ 0
соответствует нулю (т.е. 0N := 0), символ s соответствует функции прибавле-
ния единицы (т.е. sN (n) := n + 1), а символы + и · соответствуют функциям
сложения и умножения двух чисел (т.е. +N (m, n) := m + n, ·N (m, n) := mn). Ал-
гебраическую систему N будем в дальнейшем называть стандартной моделью
арифметики.
Например, формулы x = s(0) или ?x?y(¬y = 0 > ¬x = x + y) языка арифме-
тики Пеано (заметим, что это формулы первого порядка, поэтому они принадле-
жат как L?ar , так и L?ar ), являются осмысленными утверждениями о натураль-
I II
ных числах, иначе говоря, выполнимы в N , а формула ?x(x = 0), невыполнима
в N , т.к. будучи “прочитанной” как утверждение о натуральных числах, она оче-
видно неверна.
Назовем множество формул языка арифметики Пеано первого или второго по-
рядка, соответственно, истинных в N , теорией элементарной арифметики T hi (N )
(соответствующего порядка, указываемого индексом i = I или i = II). В даль-
нейшем, если из контекста ясно, о каком языке арифметики – первого или вто-
рого порядка – идет речь, либо это не имеет значения, мы будем говорить просто
о языке арифметики Пеано и о теории элементарной арифметики, не указывая
порядок. Таким образом, теория элементарной арифметики

T hi (N ) := {P ? L?ar : N |= P}, i = I, II
i

является набором формул соответствующего порядка, выражающего истинные
23


факты для натуральных чисел. Легко заметить, что введенные понятия весьма
неконструктивны. А именно, они не заключают в себе никакого способа проверки,
принадлежит ли данная формула языка арифметики Пеано теории элементарной
арифметики (т.е. действительно ли она описывает некоторое свойство натураль-
ных чисел). Конечно, такой алгоритм, пусть и очень сложный, найти было бы
весьма заманчиво. Ведь тогда творческую работу математиков, доказывающих
все новые теоремы теории чисел, можно было бы заменить на программу, ра-
ботающую по такому алгоритму. Кстати, то же самое можно сказать и о любой
другой математической (или даже шире – любой вообще научной) теории.
Попытаемся найти такой алгоритм. Для этого проанализируем, как на са-
мом деле математики проверяют истинность утверждений, например, из теории
чисел. Конечно, не путем “прямого перебора” всех возможных наборов чисел,
поскольку такая проверка в силу бесконечности множества натуральных чисел
никогда бы не завершилась! Для проверки истинности данного утверждения ма-
тематик ищет его доказательство, исходя из некоторого набора аксиом. Иначе
говоря, математик имеет в виду некоторый набор утверждений (называемых ак-
сиомами) ?, не просто истинных в данной модели M, но и в каком-то смысле
вполне ее характеризующих, иначе говоря, таких, что можно надеяться, что лю-
бое истинное утверждение о данной модели является логическим следствием
этих аксиом. Часто говорят при этом, что ? – система аксиом для модели M.
Далее он пытается проверить, является ли данная формула P логическим след-
ствием аксиом ? (в этом и состоит процесс доказывания). Если ? |= P, то P
истинно в данной модели, поскольку любая модель всех одновременно формул
?, в частности и M, является и моделью P.
О том, как устроен процесс доказывания, речь еще впереди. Сейчас же от-
метим, что успешность подобного рода действий во всяком случае должна за-
висеть от того, насколько удачно подобрана система аксиом ?. Действительно,
обозначим ?|= множество всех логических следствий ?, а T h(M) – множество
всех утверждений, истинных в модели M. Если ? выбрано корректно, то есть
так, что все формулы из ? истинны в M, то ?|= ? T h(M). Но нам бы, есте-
ственно, хотелось, чтобы все формулы, истинные в M, были бы логическими
следствиями ?. Но как это обеспечить? Иначе говоря, как выбрать множество ?,
чтобы ?|= = T h(M)? Вопрос об удачном подборе такой системы аксиом ? для
алгебраической системы M часто называют вопросом аксиоматизации M).
На поставленный вопрос есть, конечно, и тривиальный ответ: ? := T h(M),
очевидно, удовлетворяет этому требованию. Но этот ответ совершенно не инте-
ресен: ведь вся затея с аксиомами нужна была как раз для того чтобы, “кон-
структивно” (т.е. алгоритмически) описывать множество T h(M), например, най-
ти алгоритм проверки того, является ли данная формула истинной в модели M.
Для этого множество ? должно быть в определенном смысле “обозримым” (же-
24 Арифметика Пеано


лательно вообще конечным или уж во всяком случае таким, которое может быть
построено при помощи некоторого алгоритма), и конечно, не может совпадать с
T h(M).
Вернемся к рассмотрению элементарной арифметики. Попытка предложить
для нее разумную систему аксиом была осуществлена Пеано. Он показал, что
практически все основные теоремы теории чисел (т.е. истинные утверждения о
натуральных числах), записываемые в языке арифметики первого порядка, яв-
ляются логическими следствиями аксиом

(P A1 ) ?x ¬(s(x) = 0),

(P A2 ) ?x ?y (s(x) = s(y) > x = y),

(P A3 ) ?x (x + 0 = x),

(P A4 ) ?x (x · 0 = 0),

(P A5 ) ?x ?y (x + s(y) = s(x + y)),

(P A6 ) ?x ?y (x · s(y) = x + x · y),

(P A7 ) P(0) ? ?x (P(x) > P(s(x))) > ?y P(y), где
P – любая формула языка L?ar с одной свободной переменной.
I

|=
Мы будем называть формальной арифметикой Пеано первого порядка P AI мно-
жество всех логических следствий аксиом (P A5 )–(P A7 ). Формальной арифмети-
|=
кой Пеано второго порядка P AII будем называть множество всех логических
следствий аксиом (P A1 )–(P A6 ) и аксиомы

?X (X(0) ? ?x (X(x) > X(s(x))) > ?x X(x)) (IN D).

Сами эти аксиомы мы также будем называть аксиомами Пеано. Аксиома (P A1 )
утверждает, что нуль – первый по порядку элемент натурального ряда. Аксиома
(P A2 ) утверждает, что функция выбора следующего по порядку элемента инъ-
ективна, иначе говоря, что за каждым числом непосредственно следует только
одно число. (P A3 ) и (P A4 ) задают правила прибавления нуля и умножения на
нуль, а (P A5 ) и (P A6 ) связывают между собой функции сложения и умножения
с функцией выбора следующего по порядку элемента. Наконец, (P A7 ) представ-
ляет собой схему аксиом (т.е. “шаблон” бесконечного числа аксиом) и выражает
принцип математической индукции. Тот же самый принцип выражает и аксиома
второго порядка (IN D). Стоит еще раз подчеркнуть, что отличие формальной
арифметики Пеано первого и второго порядка состоит только в написании прин-
ципа математической индукции. В первом случае он записывается при помощи
25


бесконечного числа аксиом, объединенных в одну схему аксиом, а во втором – в
одну аксиому второго порядка.
Очевидно, что стандартная модель N является моделью для арифметики Пе-
ано (как первого, так и второго порядка). А есть ли у арифметики Пеано другие
модели? Стоит отметить, что заданный вопрос весьма глубокий, и по сути де-
ла является вопросом о том, что вообще следует понимать под натуральными
числами. В самом деле, действия с натуральными числами являются для нас
настолько привычными, что мы и не задумываемся об их смысле, а именно, о
том, что такое число, что следует понимать под суммой и произведением чи-
сел и т.п. В окружающем нас мире натуральные числа отсутствуют – это лишь
абстракция, “идея”, присутствующая только в нашем сознании (хотя, конечно,
при построении этой, как и всякой другой, абстрактной конструкции, человече-
ство использует идеализацию свойств реальных объектов окружающего мира).
Значит, ответить на вопрос о том, что такое число, просто указав на какой-то
объект или явление природы, невозможно. Поэтому математики, в особенности
те из них, которые с особым трепетом относятся к строгости рассуждений, как
правило, дают другой, весьма естественный и вместе с тем достаточно строгий
(хотя и не вполне очевидный) ответ на этот вопрос. А именно, натуральные чис-
ла и действия с ними можно определить просто как элементы алгебраической
системы, являющейся моделью всех “осмысленных утверждений о числах”. Сло-
ва “осмысленные утверждения о числах” взяты в кавычки, так как под этим на
самом деле понимается некоторый набор утверждений языка арифметики Пеано
первого или второго порядка, которые мы условимся считать таковыми. Раньше
мы говорили об осмысленности формул языка арифметики, если они были вы-
полнимы в стандартной модели N . Но если мы хотим строго определить сами
понятия натуральных чисел и действий с ними, то на такое понимание “осмыслен-
ности” опираться уже нельзя, так как, строго говоря, пока не определено даже
само множество натуральных чисел N, являющееся универсумом алгебраиче-
ской системы N . Поэтому осмысленными в данном случае естественно считать
лишь все логические следствия выбранной “разумной” системы аксиом, напри-
мер, в нашем случае формальную арифметику Пеано первого или второго по-
рядка. Тогда определение натуральных чисел и действий с ними как элементов
соответствующей модели формальной арифметики становится уже достаточно
строгим, поскольку оно не ссылается на интуитивное понятие числа как коли-
чества объектов любого сорта. Кстати, именно таким способом обычно строго
определяют все другие базовые математические понятия, которые мы привыкли
считать интуитивно ясными и неопределимыми. Например, в геометрии такими
базовыми и неопределимыми понятиями принято считать точки, прямые и плос-
кости. “В природе” геометрических точек, прямых и плоскостей не существует.
Эти понятия получены в результате систематизации многотысячелетнего опыта
26 Арифметика Пеано


обращения людей с реальными предметами очень маленьких размеров (в случае
точек), очень тонкими и длинными предметами (в случае прямых) и очень плос-
кими предметами больших размеров (в случае плоскостей), а именно, в результа-
те абстрактизации (идеализации) свойств такого рода предметов. Полученная в
результате умственная конструкция – мир геометрических точек, прямых и плос-
костей – далее описывается при помощи подходящего набора аксиом, т.е. такого,
который бы адекватно нашему интуитивному представлению описывал свойства
объектов этого мира и, по возможности, был бы достаточно полным в том смыс-
ле, что все (или, по крайней мере, значительная часть) истинные (опять-таки в
соответствии с нашим интуитивным представлением) утверждения о таких объ-
ектах были бы логическими следствиями этих аксиом. Выбор системы аксиом,
естественно, при этом соответствует только нашим интуитивным представлени-
ям об “адекватности” и “полноте” и поэтому никак не может быть формализован.
Единственное формальное и к тому же естественное требование к набору аксиом
– непротиворечивость. Так, большинство людей, ограничивающих свое представ-
ление о физическом мире современной физикой, могут вполне удовлетвориться
аксиомами Эвклида (с аксиомой или без аксиомы параллельных). Когда система
аксиом выбрана, можно дать и строгое определение точкам, прямым и плоско-
стям как элементам алгебраической системы, являющейся моделью выбранных
аксиом (а значит, и всех их логических следствий). Таким образом, эти понятия,
строго говоря, становятся зависимыми от выбранной системы аксиом.
Итак, натуральные числа и действия с ними будут пониматься как элементы
алгебраической системы, являющейся моделью формальной арифметики Пеано
первого или второго порядка, в зависимости от того, какую систему аксиом –
первого или второго порядка – мы будем выбирать. В связи с этим возникают
два связанных между собой вопроса. Во-первых, насколько выбор набора аксиом
влияет на получаемое понятие натуральных чисел (a priori это понятие зависит
от выбранных аксиом)? Во-вторых, сколько вообще различных “версий” нату-
ральных чисел определяются выбранной системой аксиом (т.е. сколько разных
моделей у выбранных аксиом). Простой ответ на второй вопрос очевиден: ни
аксиомы Пеано первого, ни второго порядка не определяют натуральные чис-
ла и действия с ними однозначно. Действительно, предположим, что формаль-
ная арифметика Пеано (безразлично какого порядка) имеет модель. Элементы
универсума этой модели мы считаем “настоящими” натуральными числами, т.е.
таким образом эта модель становится стандартной моделью арифметики. Но то-
гда очевидно, что моделью формальной арифметики Пеано будет являться и
любая алгебраическая система M, универсум которой – произвольно выбран-
ная последовательность {xi }? , 0M := x0 , sM (xn ) := xn+1 , +M (xm , xn ) := xm+n ,
i=0
M
· (xm , xn ) := xmn ). Однако более пристальное рассмотрение всех таких моделей
убеждает, что все они между собой весьма схожи, а именно, они изоморфны в
27


смысле следующего определения.

Определение 5.1 Пусть A и B алгебраические системы для языка L? . A на-
зывается изоморфной B (пишут A B), если существует биекция ?: A > B,
удовлетворяющая условиям

(i) ?(cA ) = cB для всех c ? Const,

(ii) ?(f A (t1 , t2 , . . . , tn )) = f B (?(t1 ), ?(t2 ), . . . , ?(tn )) для всех f ? Funcn ,

(iii) P A (t1 , t2 , . . . , tn ) = P B (?(t1 ), ?(t2 ), . . . , ?(tn )) для всех P ? Predn .

Очевидно, что отношение изоморфности моделей является отношением экви-
валентности, т.е. оно симметрично, рефлексивно и транзитивно (проверьте это!).
Не менее тривиально проверяется и следующее свойство.

Упражнение 5.1 Пусть A и B алгебраические системы для языка L? , и пусть
A B. Докажите, что для любого P ? ? верно A |= P, если и только если
B |= P.

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

Теорема 5.1 (Дедекинд) Любые две модели формальной арифметики Пеано
второго порядка изоморфны между собой.
|=
Доказательство: Пусть A |= P AII . Докажем, что A N . Определим функ-
цию ?: N > A следующим образом:

(i) ?(0) := 0A ,

(ii) ?(n + 1) := sA (?(n)).

В силу принципа математической индукции функция ?, таким образом, коррект-
но задана на всем множестве N . Заметим, что в силу аксиомы (IND) принцип
|=
математической индукции действует во всех моделях P AII .
28 Арифметика Пеано


Выполнение условий (i)–(iii) определения изоморфизма алгебраических си-
стем при таком определении очевидно (проверьте это!). Осталось только прове-
рить, что таким образом определенная функция действительно является биекци-
ей.
Шаг 1. Докажем, что ? – инъекция, то есть из m = n следует ?(m) = ?(n).
Поведем доказательство по методу математической индукции в N .

• База индукции. Пусть n = 0, m = 0. Тогда m = k + 1 для некоторого k.
Этот факт верен, вообще говоря, только для стандартной модели. Тогда
?(m) = ?(k + 1) = sA (?(k)) = 0A = ?(0N ) в силу (P A1 ). База индукции
доказана.

• Шаг индукции. Пусть m = n + 1. Докажем, что при этом ? (m) = ? (n + 1).
Рассмотрим два случая.
Случай 1. m = 0. Тогда ?(n + 1) = sA (?(n)) = 0A = ?(0N ) = ?(m).
Случай 2. m = k + 1. Из предположения m = n + 1 следует k = n. Но тогда
?(k) = ?(n) в силу предположения индукции, а значит, sA (?(k)) = sA (?(n))
в силу (P A2 ). Поэтому ?(m) = ?(k + 1) = sA (?(k)) = ?(n + 1) = sA (?(n)).

В силу принципа математической индукции, таким образом, доказана инъек-
тивность функции ?.
Шаг 2. Докажем, что ? сюръективна, то есть, что для всех a ? A выполнено
a ? Im(?). Для этого воспользуемся принципом математической индукции, но
|=
на этот раз в A. Напомним, что этот принцип действует во всех моделях P AII
в силу (IN D). База индукции в этом случае тривиальна: 0A ? Im(?) по опре-
делению ?. Пусть теперь b ? Im(?), то есть b = ?(n) для некоторого n ? N.
Тогда и sA (b) = ?(n + 1) ? Im(?) в силу определения ?, т.е. доказан и шаг индук-
ции. В силу произвольности b по принципу математической индукции все a ? A
принадлежат образу ?, иначе говоря, функция ? сюрьективна.
В дальнейшем мы покажем, что утверждение, аналогичное теореме Дедекин-
да, неверно для формальной арифметики Пеано первого порядка, а именно, по-
следняя имеет бесконечно много разных с точностью до изоморфизма моделей.
Более того, среди этих моделей можно найти и такие, которые обладают универ-
сумом сколь угодно большой наперед заданной мощности. Иначе говоря, фор-
мальная арифметика Пеано первого порядка допускает бесконечно много прин-
ципиально разных “версий” натуральных чисел и действий над ними, в том числе
и таких, в которых “множество натуральных чисел” несчетно (т.е. неизоморфно
“стандартному” множеству натуральных чисел N)! Почему же доказательство
теоремы Дедекинда не работает для формальной арифметики Пеано первого по-
рядка? Анализируя доказательство, мы видим, что в первом шаге нет никаких
29


рассуждений, которых нельзя было бы провести для арифметики первого поряд-
ка (на этом шаге мы пользовались лишь аксиомами (P A1 ), (P A2 ) и принципом
математической индукции в N ). Проблема, таким образом, во втором шаге, где
мы воспользовались уже принципом математической индукции в A, а именно,
тем, что для любого свойства X элементов универсума A верно следующее: если
0A обладает свойством X (база индукции), а также для любого b ? A из облада-
ния b свойством X следует обладание sA (b) тем же свойством, то свойством X
обладают все элементы A. Для арифметики второго порядка выполнимость этого
принципа в любой модели гарантирована аксиомой (IN D). Однако в арифмети-
ке первого порядка вместо этой аксиомы имеется гораздо более слабый набор
(схема) аксиом (P A7 ). Он гарантирует выполнение вышеприведенного принципа
не для всех свойств X, а лишь для тех из них, которые можно записать при
помощи формул P языка арифметики Пеано первого порядка с одной свободной
переменной. Заметим, что множество таких свойств очевидно счетно, так как
алфавит языка конечен. В то же время всех вообще свойств элементов множе-
ства A гораздо больше. Действительно, такие свойства можно тривиально отож-
дествить с подмножествами универсума A (каждому свойству X соответствует
подмножество элементов A, обладающих этим свойством, а каждому подмноже-
ству A соответствует свойство принадлежности этому подмножеству). Так как
A не может быть конечным множеством (в силу (P A1 ) и (P A2 )), то множество
всех свойств элементов A более чем счетно! Таким образом, обязательно найдут-
ся свойства, невыразимые формулами первого порядка с одной свободной пере-
менной, и таким вполне может оказаться свойство принадлежности множеству
Im(?), а значит, второй шаг доказательства становится необоснованным.




Еще одно важное замечание: в доказательстве теоремы Дедекинда мы вос-
пользовались тем, что в стандартной модели арифметики из m = 0 следует
m = k+1 для некоторого натурального k. Никакая аксиома Пеано не гарантирует
выполнение этого свойства во всех моделях формальной арифметики Пеано. Тот
же факт, что это свойство верно для стандартной модели арифметики, следует
из наших знаний именно об этой модели, а не из аксиом арифметики. Кстати,
и само существование такой стандартной модели арифметики тоже не обеспечи-
вается аксиомами Пеано. Строго обосновать существование стандартной модели
арифметики, обладающей привычными для нас свойствами, можно только при
помощи введения специальных “более сильных” аксиом, например, аксиом теории
множеств, речь о которой впереди.
30 Элементы теории доказательств


6 Элементы теории доказательств
6.1 Формальные cистемы
В предыдущей главе мы отложили вопрос о том, как проверять, является ли
данная формула P ? L? логическим следствием заданного множества формул
? ? L? . Очевидно, что осуществить такую проверку в соответствии с определе-
нием не представляется возможным. Действительно, нельзя просто перебрать
всевозможные модели всех одновременно формул множества ?, чтобы прове-
рить, являются ли они моделями формулы P, т.к. число таких моделей может
быть бесконечно, за исключением разве что некоторых тривиальных случаев.
Математики заменяют такую проверку поиском доказательства формулы P из
набора формул ?, т.е. поиском способа ”свести” формулы ? и, возможно, ещё
некоторые дополнительные формулы, к формуле P, при помощи конечного чис-
ла логических заключений (иногда говорят логических переходов) являющихся
общепризнанно элементарными. В этой главе мы формализуем процесс доказыва-
ния таким образом, чтобы полученная формализация была применима к языкам
логики предикатов первого порядка.
Будем различать семантические и формальные истины, определяемые для
формул ?. Семантические истины это те формулы, которые семантически сле-
дуют из ?, формальные – те, которые выводятся из данного набора при помощи
принятых правил доказывания. Важно отметить, что истина, полученная при по-
мощи формального вывода (доказательства) существенно зависит от того, какие
правила доказывания мы считаем допустимыми. В любом случае хотелось бы,
чтобы формулы выводимые (доказуемые) были истинны семантически. Иначе
правила вывода получаются некорректны (они существуют для вывода семанти-
ческих истин, а не всякой ерунды). Но, конечно, желательно, чтобы наши пра-
вила были в определенном смысле полны, то есть формально выводились бы все
семантические истины.
Рассмотрим формальный язык L ? V ? над алфавитом V . Будем называть
секвенцией выражение вида
V1 , V2 , . . . , Vn V,
где Vi ? L, i = 1, . . . , n и V ? L, либо выражение вида
V,
где V ? L. В первом случае будем читать секвенцию V1 , V2 , . . . , Vn V как
“V1 , V2 , . . . , Vn выводит (или доказывает, если L – какой-либо логическийязык)
V ”, или “из V1 , V2 , . . . , Vn следует V ”. Во втором случае секвенцию V будем чи-
тать как “V выводима”, или выводима из пустого множества посылок (доказуема,
если L – какой-либо язык логики). Теперь введем следующее определение.
6.1 Формальные cистемы 31


Определение 6.1 Будем говорить, что задана формальная система ?, если
заданы

(i) набор секвенций вида V , где V ? L, называемых аксиомами формальной
системы;

(ii) набор секвенций вида V1 , V2 , . . . , Vn V где V ? L и Vi ? L, i = 1, . . . , n,
называемых простыми правилами вывода;

(iii) набор условных правил вывода вида “из ?0 V 0 и ?1 V 1 следует ? V ”,
где ?0 , ?1 , ? конечные подмножества L, и {V 0 , V 1 , V } ? L.

Определение 6.2 Слово (формула) V ? L называется непосредственным след-
ствием слов (формул) {V1 , V2 , . . . , Vn } ? L, если либо V1 , V2 , . . . , Vn V , где
V1 , V2 , . . . , Vn V – одно из простых правил вывода в формальной системе ?,
либо если найдутся такие конечные множества ?0 ? L, ?1 ? L и такие сло-
ва (формулы) V 0 ? L и V 1 ? L, что правило “из ?0 V 0 и ?1 V 1 следует
V1 , V2 , . . . Vn V ” является одним из условных правил вывода формальной си-
стемы ?.

Определение 6.3 Слово (формула) V ? L выводимо (доказуемо) из
{V1 , V2 , . . . , Vn } ? L, если найдется такая последовательность формул {Wi }k ,
i=1
где k ? N, где Wk = V и каждое из слов Wi ? L, где i = 1, . . . , k является

(i) либо аксиомой формальной системы ?;

(ii) либо одной из формул V1 , V2 , . . . , Vn ;

(iii) либо непосредственным следствием некоторого подмножества слов (фор-
мул) ? ? {W1 , W2 , . . . , Wi?1 }.

В этом случае будем писать

V1 , V2 , . . . , Vn V,
?


причем индекс ?, указывающий на используемую формальную систему, будем
опускать, если это не ведет к неясности.

Определение 6.4 Формальная система ? называется корректной, если для
любого множества ? ? L и для любого P ? L из ? ? P следует ? |= P,
то есть все формальные истины, получаемые при помощи данной формальной
системы, являются семантическими истинами.
32 Элементы теории доказательств


Определение 6.5 Формальная система ? называется полной, если для любого
множества ? ? L и для любого P ? L из ? |= P следует ? ? P, то есть все
семантические истины можно получить формально.
Таким образом определенное понятие формальной системы применимо вовсе
не только к языкам логики. Это просто инструмент для операций с цепочками
символов заданного формального языка.
Приведем простейший пример формальной системы.
Пример 6.1 Рассмотрим язык L, совпадающий со множеством всех слов над
алфавитом {a, b}, и формальную систему, содержащую
две аксиомы
• a,
• b,
и бесконечное количество правил вывода, объединенных в две группы
•A aAa,
•A bAb,
где A – любое непустое слово языка. Для этой формальной системы, например,
можно получить aaa, bab, babab. В частности, из пустого множества
выводимы любые палиндромы нечетной длины (цепочки символов, которые чи-
таются одинаково слева направо и справа налево). Этот же пример показы-
вает и различие семантической и формальной истин. К примеру, условимся
считать “осмысленными” (семантически истинными) все палиндромы, а фор-
мальными истинами – всё, что выводимо из пустого множества. Тогда не
все семантические истины оказываются формальными (то есть формальная
система неполна), но формальные истины всегда являются семантическими,
иначе говоря, формальная система корректна.
Другой пример формальной системы, не имеющей отношения к логике: фор-
мальная система для языка записи шахматных позиций. У неё одна аксиома – это
начальная позиция, а правила вывода – правила ходов. Стоит отметить, что в по-
нятие позиции входит не только положение фигур на доске, но также и признаки
того, делал ли игрок ход королем и кто из игроков сделал последний ход.
В следующем разделе мы будем изучать формальную систему, применимую к
языку логики предикатов первого порядка, правила вывода которой моделируют
те элементарные логические заключения, которые используют математики при
доказательстве формул.

6.2 Естественная дедукция
Логические заключения, которые используют люди в своих рассуждениях, опре-
деляется рядом элементарных правил, которые сформулированы ещё Аристоте-
лем. Формализация этих правил приводит к различным формальным системам
6.2 Естественная дедукция 33


для логических языков. Впредь мы будем рассматривать одну из таких фор-
мальных систем для языка логики предикатов первого порядка, называемую
естественной дедукцией (Natural deduction). Аксиом в ней нет, а правила вы-
вода можно разделить на две группы: правила введения (обозначаются буквой i
– "introduce", слева соответствующий значок отсутствует, справа присутствует),
и правила исключения (обозначаются буквой e – "eliminate", справа соответству-
ющий значок отсутствует, слева присутствует) для каждого логического значка
и квантора (?, ?, >, ¬, ?, ?). При формулировке этих правил мы покажем их за-
пись в строчной форме и в форме столбца (дерева), а именно, строчную запись
A
A B можно заменить записью в столбец (в виде дерева) .
B




правило A?B
(?e1 ) A?B A
исключения “и” A
правило A?B
(?e2 ) A?B B
исключения “и” B
правило AB
(?i) A, B A?B
введения “и” A?B
правило введения A
(?i1 ) A A?B
“или” слева A?B


правило введения A
(?i2 ) A B?A
“или” справа B?A
[A]1 [B]1
Если A C
правило
C C A?B
и B C,
(?e)
исключения “или” 1
то A ? B C C
Иначе говоря, последнее правило можно “прочесть” так: если C доказано с
использование допущения A, и C доказано с использованием допущения B, и при
этом мы знаем, что верно A ? B, то можно считать доказанным C (уже без пред-
положений о верности A и B). В последнем правиле использовалось следующее
обозначение: посылка в квадратных скобках означает, что её можно исключить
из рассмотрения. Можно представить себе это как “обрывание” листьев дере-
ва доказательства, соответствующих тем посылкам, которые можно исключить.
Индексом около квадратных скобок показывается то место в дереве, где “обо-
рванный лист” был использован (то есть посылки, заключенные в квадратные
скобки, стали ненужными). Дерево доказательства можно читать так: необорван-
ные листья доказывают корень. Читателю предоставляется возможность самому
34 Элементы теории доказательств


разобраться, какой формой записи пользоваться удобно, а именно, запись в виде
дерева весьма компактна, но не всегда легко читаема. Зато запись в строчку (с
подробными комментариями), как правило, легко читается, но редко получается
компактной.


A A>B
правило исключения импликации
(> e) A, A > B B
или modus ponens (m.p.) B

[A]1
B
Если A B
(> i) правило введения импликации 1
то A > B A>B


Обратимся к правилам, имеющим дело с логическим значком отрицания. Вве-
дем псевдоформулу ? “ложь”, истинностное значение которой во всех интерпре-
тациях будем считать нулем. С помощью такой псевдоформулы можно, напри-
мер, весьма легко записать противоречивость множества формул ? следующим
образом:
? |= ?.
Теперь можно сформулировать правила для значка отрицания и константы
"ложь":

?
правило исключения константы ложь.
(?e) ? A
A
Данное правило допускает простую интерпретацию: из лжи следует все что угод-
но (ex falsum sequitor quodlibet). Даже несведущим в формальной логике людям
это правило хорошо известно; например, оно применяется в житейском споре
в виде восклицания “если это (очевидно ложное для собеседника утверждение)
верно, то я Папа Римский”.

¬A A
(?i) правило введения константы “ложь” ¬A, A ?
?
[A]1
?
Если A ?
(¬i) правило введения отрицания 1
то ¬A ¬A
[¬A]1
?
правило сведения к противоречию Если ¬A ?
(RAA) 1
(reductio ad absurdum) то A A
6.2 Естественная дедукция 35



Наиболее “нетривиальное” правило – последнее. При использовании этого пра-
вила непонятно, как конструктивно выписать A, что породило два крупных
направления в логике – классическая и интуиционистская (не принимает послед-
него правила). Чтобы доказать какое-либо утверждение, в интуиционистской ло-
гике необходимо предъявить цепочку доказательства.

Теорема 6.1 Правило сведения к противоречию (RAA) эквивалентно закону
исключенного третьего (tertium non datur)

(A ? ¬A) (T N D)

Доказательство:
1. Докажем, что из правила сведения к противоречию (RAA) следует закон
исключенного третьего (TND). Доказательство удобно записать в виде следую-
щего дерева.

[A]1
[A ? ¬A]2
¬A ? ¬A
?
¬A1
A ? ¬A [¬(A ? ¬A)]2
?2
A ? ¬A

2. Докажем, что из закона исключенного третьего (TND) следует правило сведе-
ния к противоречию (RAA).
Пусть ¬A ?, тогда
[¬A]1
[A]1
?
A ? ¬A A A
1

стр. 1
(всего 3)

СОДЕРЖАНИЕ

>>