contact me
alsemno@ya.ru
RU
EN
Идентификаторы
PersonID 19667
Alexei Semenov
ID: semenov.alexei-l
AuthorID: 218197
Spin 2289-1720
alsemenov
0000-0002-1785-2387
S-5268-2018
AuthorID 7402499019
Alexei_Semenov
A. Semenov
AlexeySemenov
Alexei Semenov
Введение в математическую логику и теорию алгоритмов
Ступень 3. Логические языки
Математическая логика изучает формально описанные логические языки, используемые для построения утверждений, доказательств, определений и т. д. При этом сама логика тоже использует математический язык, на котором формулирует утверждения, доказательства, определения, относящиеся к логическим языкам, о нем говорят, как о метаязыке.

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

Особенно полезными мы считаем упражнения, в которых предлагается построить какое-то определение. Удачное определение может очень существенно помогать пониманию и построению доказательства. При этом, конечно, надо исходить из некоторых неформальных представлений о существе определяемого понятия, и мы стараемся помочь такие представления сформировать.
Определение 33. Мы будем считать заданным конечное множество, элементы которого будем называть символами; они будут использоваться при построении логических языков. Некоторые цепочки символов мы назовем именами.
Имена могут иметь значения — математические объекты.
Под синтаксисом понимают правила построения имен, в том числе — образования составных имен из более простых.
Под семантикой понимают правила сопоставления именам значений.
Часто правила семантики описываются параллельно правилам синтаксиса.
Мы будем строить язык, то есть синтаксис и семантику логики отношений. Для того, что мы называем логикой отношений, часто используются другие термины, например: «логика предикатов первого порядка». В последнем термине «предикат» — синоним «отношения»; «первого порядка» означает, что в языке идет речь об объектах (например, числах), а не о множествах (например, чисел). Кроме того, в логике предикатов первого порядка часто используются имена не только для отношений, но и для функций. У нас имен для функций не будет; во многих случаях без использования имен для функций удается обойтись.
Главным, но не единственным, понятием при построении у нас будет формула. Мы будем определять синтаксис и семантику формул.

Определение 34. При построении мы будем иметь в виду, что значениями формул
окажутся отношения на каком-то множестве U — универсуме. Универсумы у нас – всегда не пустые. Элементы универсума мы иногда будем называть объектами.
Как мы уже говорили, иногда полезно считать, что отношение — это многоместная (в том числе — одноместная и нульместная) функция со значениями И и Л.

Определение 35. Нам могут понадобиться имена каких-то объектов — элементов универсума. Значением имени объекта будет этот объект. (Это семантика имен объектов.)

Важным свойством современных языков математики является то, что одно и то же имя может быть именем разных объектов, лежащих в разных универсумах. Например, в теории групп принято обозначать именем e единицу в самых разных группах.

Для того чтобы строить формулы, нам понадобится запас имен отношений. Для каждого имени отношения будет зафиксировано количество аргументов этого отношения. Естественно, значением имени отношения будет отношение на универсуме, «столько местное», сколько аргументов у имени. (Это семантика имен отношений.)

Имя может образовываться, как комбинация других имен, при этом в математике действуют договоренности о том, как значение такого сложного имени можно найти, зная
значения входящих в него более простых имен. Например, значением для имени R(a, b),
где R — имя двухместного отношения, а a, b — имена объектов, будет И или Л, что определяется значениями имен объектов a, b и значением имени отношения R.

Важным видом имен в математической логике являются формулы.

Имена вида R(a, b) будут у нас простейшими формулами, аргументов может быть любое конечное количество, начиная с нуля. Будем такие формулы называть атомными. Вскоре мы расширим определение атомных формул и дадим полное определение в формальном виде.

Определение 36. Сигнатурой называется любая совокупность имен объектов и имен отношений.
Структурой данной сигнатуры называется произвольное множество — универсум с заданными на нем значениями всех элементов сигнатуры. При этом, конечно, значением имени объекта должен быть объект – элемент универсума, значением имени n-местного отношения должно быть n-местное отношение, в частности, значение нульместного отношения должно быть И или Л.

В нашем курсе мы чаще всего в качестве структур рассматриваем частично упорядоченные множества. Это универсум с заданным на нем двухместным отношением, удовлетворяющим дополнительным свойствам. Для разнообразия приведем пример из другой области.
Сигнатурой группы можно считать набор: e – имя объекта (единица), inv – имя двухместного отношения (обратный элемент), prod – имя трехместного отношения (произведение).
Группой можно назвать универсум G, на котором заданы значения выписанных выше элементов сигнатуры, при этом выполнены соответствующие (групповые) свойства: ассоциативность и т. д. Вместо привычных операций мы использовали здесь соответствующие отношения, например, вместо двухместной групповой операции трехместное отношение prod.

Определение 37. При построении составных формул будем использовать логические связки и кванторы. Мы их перечисляем, указывая в скобках, как их можно читать:

Одноместная связка:
Отрицание (не) ¬

Двухместные связки:
Дизъюнкция (или) ∨
Конъюнкция (и) ∧
Импликация (если,..., то...) →
Эквивалентность (эквивалентно) ≡

Кванторы:
Квантор существования (существует) ∃
Квантор всеобщности (для всех) ∀

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

Бывает полезно отличать эти конструкции метаязыка от символов языка логики отношений. В метаязыке мы будем использовать:
следствие =⇒ ;
логическую эквивалентность (равносильность) ⇐⇒ или ⇔.

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

Мы фиксируем множество, обычно счетное, V всех переменных, которые будут использованы в языке логики отношений:
x, y, ...

Переменные будут входить уже в атомные формулы R(x, y), аналогично именам объектов в формулах вида R(a, b).
Задача 45. Сформулировать определение атомной формулы, предусматривающее использование переменных аналогично использованию имен объектов.
Определение 38. Атомная формула — это (составное) имя вида

A(t1, t2, . . . , tn),

где A — имя n−местного отношения, а каждое из t1, t2, . . . , tn — это имя объекта, или переменная. Если A — имя 0−местного отношения, то A также считается атомной формулой.

Проблема однозначности анализа
В школьной арифметике мы встречаемся с проблемой анализа составного имени, то есть выделения в нем составляющих: значение составного имени 2 + 3 × 6 это 30 или 20?

Там эта проблема решается частным, специальным способом — с помощью введения приоритетов операций, а также — более универсальным способом — использованием скобок.

Мы можем написать: (2 + 3) × 6 и все становится понятным. Роль скобок: задать способ анализа формулы при вычислении ее значения.

С той же проблемой мы сталкиваемся при построении логических языков. Например,
как найти значение формулы: А и Б или В?

Универсальным решением здесь также является использование скобок: (А и Б) или (В), (А) и (Б или В) — два разных анализа. Они могут давать разные значения. Результатом первого анализа формулы А и Б или В оказывается (А и Б) ; (В); союз «или», результатом второго (А) ; (Б или В); союз «и».

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

У нас есть теперь весь «строительный материал» для построения формул: имена объектов, переменные, имена отношений, логические связки и кванторы, скобки.

Более того, атомные формулы мы уже определили.

Определение всех формул будет индуктивным, начиная с атомных формул.
Задача 46. Сформулировать определение формулы.
Определение 39. Индуктивное определение формулы:
Атомная формула — это формула.
Если A — формула, x — переменная, то:
¬(A) — формула
∃x(A) — формула
∀x(A) — формула

Если A и B формулы, то:
(A) ∧ (B),
(A) ∨ (B),
(A) → (B),
(A) ≡ (B)
— формулы.
При этом формулы A и B, использовавшиеся при построении составной формулы, называются ее подформулами. Мы, как это обычно делается, считаем подформулами построенной формулы также подформулы формул A и B и т. д.
Говоря более формально, свойство «быть подформулой» задает (нестрогий) частичный
порядок на формулах. Мы еще вернемся к этому определению, когда будем обсуждать
анализ формул. ■

Стоит отметить, что можно было бы использовать скобки иначе: вместо
(A) ∧ (B)
можно было называть формулой
(A ∧ B)
и т.п.

Варианты индуктивных определений и доказательств у нас уже были, когда мы обсуждали индукцию и трансфинитную индукцию; их много в разных областях математики.

В данном случае мы индуктивно определяем формулу, но не исходя из чего-то одного, полученного на предыдущем шаге, а из всего запаса более простых формул.
Задача 47. Исходя из обсуждения анализа формул в начале настоящего раздела, придумайте определение анализа формулы (то есть ее разбиения на составляющие), опишите алгоритм анализа, докажите однозначность анализа.
Задача 48. Определите частичный порядок на формулах, соответствующий нашему индуктивному определению формулы.
Определение 40. Частичный порядок на формулах «быть подформулой» задается индуктивным определением формулы: составная формула больше тех формул, из которых она построена в индуктивном определении. Далее требуем, чтобы была выполнена транзитивность — все подформулы всех подформул меньше формулы. В силу самого определения выполнены иррефлексивность и антисимметричность.

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

Определение 41. Частично упорядоченное множество называется фундированным, если всякое его непустое подмножество имеет минимальный элемент.

В частности, в фундированном множестве невозможна бесконечная убывающая последовательность элементов, что позволяет проводить индукцию для порядков, обладающих этим свойством.
Задача 49. Докажите, что частично упорядоченное множество формул фундировано.
Задача 50. Доказательство индукцией по построению формулы
Пусть утверждение A зависит от формулы Φ и выполнены условия:
— А верно для всех атомных формул;
— для любой формулы Φ, если A верно для всех подформул Φ, то A верно для Φ.
Тогда А верно для всех формул.
Задача 51. Определение индукцией по построению формул
Пусть объект A зависит от формулы Φ и выполнены условия:
— объект А однозначно определен для всех атомных формул;
— для любой формулы Φ, если A определен для всех подформул Φ, то A определен для Φ.
Тогда А определен для всех формул.
Мы завершили описание синтаксиса формул.
Следующая наша задача — определение семантики всех формул.
Но начнем мы с обсуждения переменных.

Переменные — свободные и связанные

Мы уже неформально поясняли раньше смысл использования переменных. Во-первых, вместо переменной можно подставлять имя объекта.

Например, в формулу
x < y,

где < — имя отношения «меньше» на натуральных числах, можно подставить 5 — имя пятерки вместо x и 3 — имя тройки вместо y и найти значение получившегося высказывания. Это — Л.

Второе использование переменных связано с кванторами.

Рассмотрим универсум рациональных чисел и двухместное отношение на нем с именем Sqr. Значение этого имени: «первый аргумент есть корень квадратный из второго аргумента».

Тогда значение формулы
x(Sqr(x, 2))

будет Л, а формулы
x(Sqr(x, 4))
— И.

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

В первом случае мы говорим о свободной переменной, во втором — о связанной.

Продолжая рассмотрение нашего примера, заметим, что в структуре, где универсум — это множество всех действительных чисел, а значение имени Sqr — то же, значением обеих рассмотренных формул будет И.

Неформальный план задания семантики

Если зафиксировать структуру и присвоить некоторые значения свободным переменным формулы, то, естественно, значением формулы будет И, или Л.

Если значения свободных не фиксировать, то значением формулы для данной структуры естественно считать отношение на универсуме структуры с таким количеством аргументов, сколько свободных переменных в формуле. Однако нам технически удобнее будет поступить иначе. Мы будем рассматривать «присваивание» значений всем переменным языка одновременно, такое «присваивание» назовем «контекстом». Тогда фиксация структуры и контекста задает сразу значения всех формул «в этом контексте», для каждой формулы — это И или Л.

Итак, наше определение значения формулы в структуре — это отображение из множества всех контекстов этой структуры в И, Л.

Среди всех формул мы выделяем высказывания — формулы без свободных переменных. Если структура фиксирована, то значением всякого высказывания в этой структуре является И или Л. Мы говорим, что высказывание истинно, или выполнено в структуре, если его значение — И.

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

Если существует структура, где высказывание истинно, мы будем назвать его выполнимым.

Мы будем давать имена всем объектам универсума; конечно, здесь есть трудность, поскольку универсум может быть несчётным, но позволим себе такую абстракцию, как имена для элементов любого множества, по-прежнему стараясь проводить различие между именем и
значением.

Перейдем к формальным определениям
Определение 42. Для заданного универсума U определим контекст, как произвольное отображение множества (всех) переменных V в универсум; то есть контекст — это элемент UV.

Значение переменной x в контексте C — это C(x); x — это имя объекта C(x) в контексте C.

Контекст нам будет нужен для того, чтобы определить, какое отношение задается формулой. Ясно, что поскольку переменных, в том числе свободных, в формуле — только конечное число, то и «подставлять» в формулу придется только конечное число имен. Зачем же нам нужен бесконечный контекст, где значения «присваиваются» сразу всем переменным?

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

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

Начнем, естественно, с атомных формул.
Задача 52. Сформулировать определение значения атомной формулы в контексте.
Определение 43. Значение атомной формулы A(t1, t2, . . . tn) в контексте C получается применением отношения с именем A к объектам, именами которых в контексте C (для переменных) являются t1, t2, . . . tn.

Таким образом, значение атомной формулы в контексте — это И или Л.

Можно считать, что первым шагом в вычислении значения атомной формулы является переход к формуле, где нет переменных, а есть только имена — из сигнатуры и из контекста. Вторым шагом является собственно вычисление значения с использованием значений всех имен.

Определение 43. Пусть задан контекст C.

Значение составной формулы в контексте определяется индукцией по построению.

В случае использования логических связок используются обычные определения истинности логических связок:
— истинность отрицания формулы эквивалентна ложности самой формулы;
— конъюнкция истинна ⇐⇒ истинны обе составляющих;
— дизъюнкция истинна ⇐⇒ истинна хотя бы одна из составляю-
щих;
— импликация ложна ⇐⇒ посылка истинна, а заключение ложно;
— эквивалентность истинна ⇐⇒ значения составляющих одинаковы.
Задача 53. Нарисовать таблицы истинности для логических связок.
Задача 54. Сформулировать определение значения формул, начинающихся с кванторов, в данном контексте.
Задача 55. Что такое значение формулы в данной структуре?
Определение 44. Значение атомной формулы A(t1, t2, . . . tn) в контексте C получается применением отношения с именем A к объектам, именами которых в контексте C (для переменных) являются t1, t2, . . . tn.

Таким образом, значение атомной формулы в контексте — это И или Л.

Можно считать, что первым шагом в вычислении значения атомной формулы является переход к формуле, где нет переменных, а есть только имена — из сигнатуры и из контекста. Вторым шагом является собственно вычисление значения с использованием значений всех имен.

Определение 45. Пусть задан контекст C.

Значение составной формулы в контексте определяется индукцией по построению.

В случае использования логических связок используются обычные определения истинности логических связок:
— истинность отрицания формулы эквивалентна ложности самой формулы;
— конъюнкция истинна ⇐⇒ истинны обе составляющих;
— дизъюнкция истинна ⇐⇒ истинна хотя бы одна из составляю-
щих;
— импликация ложна ⇐⇒ посылка истинна, а заключение ложно;
— эквивалентность истинна ⇐⇒ значения составляющих одинаковы.
Задача 56. Сформулировать индуктивное определение списка свободных переменных формулы.
Определение 46. Определение дадим индукцией по построению формулы:

Свободные переменные атомной формулы — это все переменные, входящие в нее.

Свободные переменные формулы ¬(A) — это свободные переменные A.

Свободные переменные формулы (A)τ (B), где τ — двухместная связка, это свободные переменные A и свободные переменные B (объединение двух множеств).

Свободные переменные формулы Kx(A), где K — квантор, — это все свободные переменные формулы A, кроме x.

Записывая какую-то формулу, мы обычно имеем в виду, что эта формула задает отношение с конечным количеством аргументов — «конечно-местное».
Задача 57. Докажите, что значение любой формулы в любом контексте зависит только от значений контекста на свободных переменных формулы.
Определение 47. Высказывание — это формула, не имеющая свободных переменных.

Таким образом, значением высказывания является И или Л.

Приведем фундаментальные для нашего курса определения, к которым мы еще будем возвращаться.

Определение 48. Высказывание истинно в данной структуре, если его значение в этой структуре И.

Высказывание истинно, если оно истинно в любой структуре сигнатуры, используемой в высказывании.

Высказывание выполнимо, если существует структура сигнатуры, используемой в высказывании, в которой это высказывание истинно.
Задача 58. Приведите пример высказываний: а) являющегося истинным; б) являющегося выполнимым, но не истинным.
Определение 49. Две формулы логики отношений эквивалентны, если их значения совпадают в любом контексте для любой структуры.

К наиболее широкоупотребительным эквивалентностям относятся дизъюнктивная нормальная форма и предваренная нормальная форма.

Определение 50. Дизъюнктивная нормальная форма (ДНФ) бескванторной формулы — это эквивалентная этой формуле дизъюнкция конъюнкций атомных формул и их отрицаний.
Задача 59. Доказать, что всякая бескванторная формула эквивалентна ДНФ.
Определение 51. Предваренная нормальная форма (ПНФ) формулы логики отношений — это эквивалентная ей формула, где кванторы стоят только в начале.
Задача 60. Всякую формулу можно преобразовать в ее ПНФ.
Задача 61. Сформулировать утверждение об истинности формулы, являющейся ПНФ в форме утверждения о выигрыше в некоторой игре (придумайте ее правила), где один игрок играет «за» кванторы всеобщности, а другой — «за» кванторы существования.