
- •В.А.Таланов
- •Учебное пособие
- •Часть 1. Язык предикатов
- •1.1. Предварительные сведения
- •1.2. Синтаксис языка предикатов
- •1.3. Интерпретация формул логического языка первого порядка
- •1.4. Способы задания и подсчет числа структур на конечных универсумах
- •1.5. Исключающие кванторы
- •Часть 2. Логический вывод и элементарные теории
- •2.1 Логический вывод
- •2.2 Канонические формы предложений
- •2.3 Моделирование математических теорий
- •2.4 Примеры формализации математических теорий Теория групп
- •Теория отношения эквивалентности
- •Теория упорядоченных множеств
- •Теория полей
- •Теория упорядоченных полей
- •Евклидова планарная геометрия
- •2.5. Свойства элементарных теорий
- •2.6. Арифметика Пресбургера
- •2.7 Некоторые замечания о возможностях формализации математических теорий
- •2.8 Расширение элементарных теорий
- •Часть 3. Приближенное выражение свойств структур в логических языках
- •3.1 Доля выполнимости логических формул
- •3.2 Разрешимость свойства асимптотической истины в логике первого порядка
- •3.3 О приближенной выразимости свойств структур в логических языках.
- •Упражнения
- •Часть 4. Реляционный язык
- •4.1 Синтаксис реляционного языка
- •Определение терма
- •Определение формулы
- •4.2 Семантика реляционного языка
- •4.3 Система доказательств в реляционном языке
- •Часть 5. Модели вычислений
- •5.1 Исторические сведения
- •5.2 Тьюрингова модель переработки информации
- •5.3 Алгебра программ
- •5.4 Начальное математическое обеспечение.
- •5.5 Методика доказательства правильности алгоритмов с помощью индуктивных утверждений.
- •5.6. Вычислимость и разрешимость
- •5.7 Частично – рекурсивные функции.
- •5.8. Универсальная тьюрингова программа
- •5.9. Пример невычислимой функции
- •5.10. Об измерении алгоритмической сложности задач
- •Литература
- •Математическая логика и модели вычислений
- •603600, Г. Нижний Новгород, пр. Гагарина, 23
1.2. Синтаксис языка предикатов
Описание алфавита. Алфавит языка будет состоять из конечного числа символов, разбитых на группы.
Логические символы (связки и кванторы):
&
Вспомогательные символы (запятая, прямые и круглые скобки и символы для построения переменных):
, [ ( ] ) x '
Нелогические символы. Набор σ нелогических символов, называемый нелогической сигнатурой, заранее не фиксируем, заметим только, что он может состоять из конечного числа так называемых предикатных и функциональных символов, предназначенных, соответственно, для обозначения отношений и функций. Считаем также, что каждому нелогическому символу поставлено в соответствие неотрицательное целое число его местность (арность). При этом k-местные функциональные символы используются для обозначения k-местных функций, а k-местные предикатные символы для обозначения k-местных отношений.
Заметим, что 0-местные функциональные символы используются для обозначения констант из универсума, а 0-местные предикатные символы для обозначения высказываний, не зависящих от элементов универсума. Можно считать, что 0-местные предикатные символы используются для обозначения 0-местных отношений, то есть подмножеств множества U0 = {λ}, так что существует всего два 0-местных отношения: Ø и {λ}, где λ нульместный набор, а Ø пустое множество.
Кроме того, считаем, что σ всегда содержит символ “=” для обозначения предиката равенства. Множество же функциональных символов может быть пустым.
Если σ = (P1, P2, ..., Pk; f1, f2, ..., fs), где Pi предикатный νi местный символ, fj – функциональный μj-местный символ (i = 1, 2, ..., k; j = 1, 2, ..., s), то набор
= (ν1, ν2, ..., νk; μ1, μ2, ..., μs)
называется типом сигнатуры σ (k ≥ 1, s ≥ 0).
Мы зафиксировали набор логических и вспомогательных символов, но не фиксируем набор σ. Выбор его иногда удобно связывать с конкретной теорией, язык которой мы собираемся моделировать. Так, например, при построении формальной арифметики обычно используются известные знаки арифметических отношений и функций: =, <, +, , 0, 1 и т.д.
Заметим, что выбор логических и вспомогательных символов также в большой мере случаен. В качестве логических связок можно было бы выбрать обозначения функций из любого функционально полного набора булевых функций, имеется также возможность варьировать набор кванторов. Так, например, можно ограничиться следующим набором логических символов: , , , а остальные определить через них.
Построение переменных. Для обозначения переменных будем использовать построенные из двух символов x и ' выражения вида x, x', x'', x''' и т.д. Очевидно, таким способом можно построить счетный набор переменных. На практике неудобно пользоваться выражениями с большим количеством штрихов, поэтому используются разные способы их кодирования, например, для обозначения переменных используют разные буквы с индексами и без них: x, y, z, x1, y1 и т.д. Здесь нам важно отметить, что для построения счетного набора переменных достаточно использовать конечное число символов. Множество переменных обозначим через V (Var). Построенные нами переменные часто называют индивидными переменными.
Построение термов осуществляется по следующим правилам.
Функциональный нульместный символ из σ или переменная являются термами.
Если f функциональный k-местный (k ≥ 1) символ из σ и t1, t2, ..., tk термы, то выражение вида f (t1, t2, ..., tk) является термом.
Эти два правила полностью определяют множество выражений, называемых термами.
Термы используются как имена или формы для образования имен объектов универсума. Заметим, что в правилах построения термов мы не использовали инфиксную запись термов, хотя на практике будем использовать для наглядности термы вида (xfy), где x, y переменные, а f функциональный двухместный символ. При рассмотрении синтаксиса будем использовать лишь префиксную запись, имея в виду, что от записи вида (x f y) можно перейти к записи f (x, y).
Множество всех термов обозначим через Term (или через Term(σ), когда необходимо указать явно нелогическую сигнатуру).
Построение атомарных (элементарных) формул. Если P предикатный k-местный символ и t1, t2, ..., tk термы, то выражение P(t1, t2, ..., tk) атомарная формула. В частности, при k = 0 список t1, t2, ..., tk пустой, и скобки опускаются.
На практике наряду с такими выражениями для двухместных предикатных символов будем использовать инфиксные выражения вида (x P y), где x, y переменные, а P двухместный предикатный символ.
Построение формул.
Атомарная формула является формулой.
Если A и B выражения, являющиеся формулами, то выражения вида [A&B], [AB], [AB] являются формулами.
Если A формула, то A формула.
Если y переменная и A формула, то выражения y A и y A формулы.
Правила 1-4 полностью определяют множество выражений, являющихся формулами. Обозначим это множество через Form (или Form(σ)). На практике выражения y и y иногда для наглядности заключают в круглые скобки.
Введем некоторые синтаксические понятия, касающиеся формул.
Любая подпоследовательность следующих друг за другом символов в формуле A, которая сама является формулой, называется подформулой формулы A. Очевидно, что одна и та же подформула может иметь несколько вхождений в формулу A. Нетрудно доказать, что два различных вхождения подформулы не могут перекрываться.
Подформула формулы A, которая непосредственно следует за символами y или y, где y переменная, называется областью действия соответствующего квантора. Нетрудно видеть, что область действия квантора в формуле определяется однозначно.
Вхождение переменной y называется связанным, если оно находится в области действия квантора по y, и свободным в противном случае. Очевидно, одна и та же переменная может иметь в формуле и свободные и связанные вхождения.
Формула, не имеющая свободных вхождений переменных, называется замкнутой формулой или предложением. Множество всех предложений, построенных из символов сигнатуры σ, обозначим через Sent(σ).
На этом описание синтаксиса логического языка 1-го порядка заканчивается. Напомним, что мы определили множества Var, Term, Form, Sent, составляющие описание языка. Построенный язык будем обозначать через L(σ). Термы, формулы и предложения, построенные с помощью сигнатуры σ, будем называть также σ-термами, σ-формулами, σ-предложениями.
Пример. Рассмотрим сигнатуру σ = {P, Q, a, f, g}, где P, Q – соответственно одноместный и двух местный предикатные символы, а a, f, g – нульместный, одноместный и двухместный функциональные символы. Кроме того, считаем что x, y, z – индивидные переменные. Тогда выражение
[y [P(y) x[Q(x, f(y)) Q(x, g(a, z))]]& z Q(z, f(z))]
является формулой. Заметим, что рассматриваемая формула не является предложением, поскольку имеет свободное вхождение переменной z; в формуле имеется также и связанное вхождение этой переменной. Мы пока не предлагаем читателю искать смысл рассматриваемой формулы, но советуем сосредоточиться на ее синтаксисе и убедиться в том, что она построена по правилам построения формул. Выделите в ней все термы, атомарные формулы, области действия всех входящих в нее кванторов. Обратите внимание на роль используемых в ней круглых и прямых скобок. Заметим, что синтаксический разбор приведенной выше формулы можно начать с замечания, что она построена из двух подформул
y [P(y) x[Q(x, f(y)) Q(x, g(a, z))]] и
z Q(z, f(z))
соединенных знаком & и заключенных в прямые скобки и тем самым свести задачу к рассмотрению двух формул меньшей длины.
Сформулируйте алгоритм, который по любой конечной последовательности используемых символов определял бы, представляет ли она правильно построенную формулу.