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. Логические языки
Математическая логика изучает формально описанные логические языки, используемые для построения утверждений, доказательств, определений и т. д. При этом сама логика тоже использует математический язык, на котором формулирует утверждения, доказательства, определения, относящиеся к логическим языкам, о нем говорят, как о метаязыке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переменные будут входить уже в атомные формулы R(x, y), аналогично именам объектов в формулах вида R(a, b).

Задача 43. Сформулировать определение атомной формулы, предусматривающее использование переменных аналогично использованию имен объектов.
Определение 37. Атомная формула — это (составное) имя вида

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

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

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

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

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

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

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

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

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

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

Определение всех формул будет индуктивным, начиная с атомных формул.

Задача 44. Сформулировать определение формулы.
Определение 38. Индуктивное определение формулы:
Атомная формула — это формула.
Если 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)
и т.п.

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

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