Предварённая нормальная форма: приведение предикатов

Предварённая нормальная форма (ПНФ, она же пренексная) - это стандартный вид формулы логики предикатов, в котором все кванторы собраны в начале, а дальше идёт бескванторное ядро. К нему приводят перед сколемизацией, перед проверкой выполнимости методом резолюций и просто чтобы увидеть логическую структуру утверждения. Приведение всегда выполнимо и состоит из нескольких механических шагов: убрать импликации, протолкнуть отрицания внутрь, развести одноимённые переменные и вынести кванторы наружу. Ниже разберём каждый шаг и типичные места, где студенты теряют эквивалентность. Если нужно прогнать конкретную формулу, соберите запрос в форме ниже и получите пошаговый вывод.
Что такое предварённая нормальная форма
Формула находится в предварённой нормальной форме, если она имеет вид
где каждый - это квантор всеобщности или существования , а - бескванторная формула, называемая матрицей. Цепочка кванторов называется префиксом. Никакого квантора внутри матрицы быть не должно: они все вынесены влево.
Простой пример. Формула уже в ПНФ: префикс , матрица . А формула не в ПНФ - квантор стоит внутри, его ещё предстоит вынести наружу.
Ключевая теорема: для любой формулы логики предикатов существует логически эквивалентная ей формула в предварённой нормальной форме. То есть приведение не меняет истинностного значения ни на одной интерпретации - в отличие от последующей сколемизации, которая сохраняет лишь выполнимость.

Зачем приводить к ПНФ
Предварённая форма - не самоцель, а промежуточный этап. Её используют, чтобы:
- подготовить формулу к сколемизации - устранению кванторов существования через функции Сколема; сколемизация определена именно для пренексных формул;
- получить клаузальную форму для метода резолюций в автоматическом доказательстве теорем;
- проверить логическую структуру утверждения: порядок и в префиксе сразу показывает, от чего зависит выбор объекта;
- сравнить две формулы на эквивалентность, приведя обе к каноническому виду.
Особенно важен порядок кванторов. и - это разные утверждения: в первом выбирается под каждое , во втором один годится для всех . Поэтому при выносе кванторов их относительный порядок менять нельзя.
Шаг 1: убрать импликации и эквиваленции
Кванторы удобно выносить только из формул, построенных на , , . Поэтому сначала избавляемся от и по тождествам:
Эквиваленцию раскрывают именно так, а не как - обе формы верны, но первая короче ведёт к ПНФ. После этого шага в формуле остаются только отрицания, конъюнкции и дизъюнкции.
Шаг 2: протолкнуть отрицания к атомам
Теперь загоняем внутрь, к атомарным предикатам, по законам де Моргана и правилам отрицания кванторов:
Двойное отрицание снимаем: . Результат этого шага - негативная нормальная форма, где отрицания стоят только перед атомами. Самая частая ошибка здесь - забыть, что отрицание переключает квантор: становится , а не остаётся .

Шаг 3: переименовать связанные переменные
Перед выносом кванторов нужно убедиться, что никакая переменная не связана двумя разными кванторами и нигде не встречается одновременно как связанная и свободная. Иначе при вытаскивании квантора наружу он случайно «захватит» чужое вхождение и формула изменит смысл.
Возьмём . Здесь под и под - формально разные переменные, но с одним именем. Переименуем второе: . Эта операция называется -преобразованием (переименование связанной переменной) и всегда даёт эквивалентную формулу. Правило простое: давайте каждому квантору своё уникальное имя переменной - тогда захвата на следующем шаге не случится.
Пропуск переименования - причина номер один неверной ПНФ. Если две подформулы используют переменную с одним именем, после выноса квантор накроет обе, и вы получите неэквивалентную формулу.
Шаг 4: вынести кванторы в префикс
Когда имена разведены, кванторы выносятся наружу по законам пронесения. Главное условие: переменная квантора не входит свободно в ту подформулу, через которую мы его протаскиваем (после шага 3 это гарантировано). Базовые тождества:
Аналогичные равенства работают, когда квантор стоит во втором аргументе. Кванторы вытягиваем по одному, сохраняя их взаимный порядок. Когда в матрице не остаётся ни одного квантора, формула в ПНФ. Чтобы не запутаться, какая связка к чему относится при раскрытии импликаций, держите в голове приоритет логических операций в выражении.
Полный пример приведения
Приведём к ПНФ.
- Убираем импликацию: .
- Проталкиваем отрицание: , получаем .
- Переименование не требуется: и уже разные.
- Выносим кванторы: .
Префикс , матрица - формула в предварённой нормальной форме.

ПНФ и сколемизация
После ПНФ обычно идёт сколемизация - устранение . Каждый квантор существования заменяют на функцию Сколема от всех охватывающих его -переменных. Для получаем : зависит от , поэтому это функция, а не константа. Если не стоит ни под одним , его заменяют константой Сколема (нульместной функцией).
Важно: сколемизация сохраняет выполнимость, но не эквивалентность. Поэтому её делают только тогда, когда нас интересует невыполнимость (как в методе резолюций), а не истинностное значение на каждой интерпретации. Сама же ПНФ полностью эквивалентна исходной формуле - это разные по силе преобразования.
Частые ошибки
- Забытое переименование переменных. Два квантора с именем после выноса сливаются в один диапазон связывания - формула меняет смысл. Сначала разводим имена, потом выносим.
- Перестановка и . и не эквивалентны. При выносе сохраняйте исходный порядок кванторов.
- Отрицание не переключает квантор. - это , а не . То же для .
- Импликация не раскрыта. Пытаться выносить кванторы прямо из опасно: даёт , потому что левая часть импликации меняет квантор. Проще сначала перейти к .
- Сколемизацию путают с приведением к ПНФ. Это разные операции: ПНФ сохраняет эквивалентность, сколемизация - только выполнимость.
FAQ
Всегда ли можно привести формулу к ПНФ? Да. Для любой формулы логики предикатов существует логически эквивалентная ей предварённая нормальная форма. Алгоритм из четырёх шагов конечен и всегда завершается.
Единственна ли предварённая нормальная форма? Нет. У одной формулы есть много эквивалентных ПНФ - порядок выноса независимых кванторов и форма матрицы могут различаться. Канонической делает её уже последующий переход к клаузальной форме.
Чем префикс отличается от матрицы? Префикс - это вынесенная вперёд цепочка кванторов . Матрица - оставшаяся бескванторная часть формулы. Вместе они и образуют ПНФ: префикс плюс матрица.
Коротко
Предварённая нормальная форма - это вид «все кванторы спереди, бескванторная матрица сзади». Приведение всегда возможно и эквивалентно: убираем импликации, проталкиваем отрицания к атомам (помня, что они переключают кванторы), переименовываем связанные переменные, чтобы избежать захвата, и выносим кванторы наружу с сохранением их порядка. ПНФ - обязательный шаг перед сколемизацией и методом резолюций; в отличие от неё, сама ПНФ полностью сохраняет смысл исходной формулы.
Читайте также

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

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

Абстрактный класс и интерфейс: в чём отличие
Абстрактный класс и интерфейс: чем отличаются в ООП, когда наследовать поведение, а когда задавать контракт, как выбрать на примерах Java, C# и Python.