Модуль II·Статья II·~5 мин чтения

Метод резолюций и унификация

Логика предикатов первого порядка

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

Метод резолюций и унификация

Мотивация: автоматическое доказательство теорем

Как компьютер может доказывать математические теоремы? Метод резолюций (Робинсон, 1965) — алгоритм, который сводит проверку логического следования к поиску противоречия: мы отрицаем заключение, добавляем к посылкам, и пытаемся вывести пустой дизъюнкт ☐. Это основа языка Prolog и современных ATP-систем.

Приведение к клаузальной форме

Шаги:

  1. Устранить → и ↔.
  2. Загнать ¬ внутрь (де Морган, снятие двойного отрицания).
  3. Переименовать переменные (каждый квантор — своя переменная).
  4. Вынести кванторы (привести к предварённой форме).
  5. Сколемизация: устранить ∃. ∃x P(x) → P(c) (новая константа Сколема); ∀y ∃x P(x,y) → ∀y P(f(y),y) (новая функция Сколема f).
  6. Убрать ∀ (переменные считаются универсально квантифицированными).
  7. Распределить ∨ над ∧ → КНФ (множество дизъюнктов).

Сколемизация сохраняет выполнимость (но не логическое следование).

Унификация

Подстановка σ — отображение переменных → термы. σ(t) — результат применения σ к терму t.

Унификатор для множества пар {(s₁,t₁),...,(sₙ,tₙ)}: σ такой, что σ(sᵢ) = σ(tᵢ) для всех i.

Наиболее общий унификатор (НОУ / MGU): σ такой, что любой другой унификатор τ = τ' ∘ σ. MGU единственен с точностью до переименования переменных.

Алгоритм унификации:

  • Если s = x (переменная): проверить occur check (x не входит в t) → σ = {x↦t}.
  • Если s = f(s₁,...,sₙ) и t = f(t₁,...,tₙ): унифицировать попарно.
  • Если s и t — различные константы или функторы разной арности → неудача.

Правило резолюции

Пропозициональная резолюция: из (D₁ ∨ l) и (D₂ ∨ ¬l) → резольвента D₁ ∨ D₂.

Резолюция первого порядка: из клауз C₁ (с литералом l₁) и C₂ (с литералом ¬l₂), если σ = MGU(l₁, l₂): Резольвента = σ(C₁ {l₁}) ∨ σ(C₂ {l₂}).

Теорема Робинсона (полнота резолюции): Множество клауз S невыполнимо ⟺ из S выводится пустой дизъюнкт ☐ конечной цепочкой резолюций.

Численный пример

Задача: Доказать «Сократ смертен» из «Все люди смертны» и «Сократ — человек».

Шаг 1. Формализация:

  • ∀x (Human(x) → Mortal(x)) → клауза: {¬Human(x) ∨ Mortal(x)}
  • Human(Socrates) → клауза: {Human(Socrates)}
  • Отрицание заключения: ¬Mortal(Socrates) → клауза: {¬Mortal(Socrates)}

Шаг 2. Унификация x ↦ Socrates для первой клаузы и {Human(Socrates)}: MGU: {x ↦ Socrates}. Резольвента из {¬Human(x) ∨ Mortal(x)} и {Human(Socrates)}: {Mortal(Socrates)}.

Шаг 3. Резолюция {Mortal(Socrates)} и {¬Mortal(Socrates)} (MGU = ε): Резольвента: (пустой дизъюнкт).

Вывод: Множество клауз невыполнимо → заключение следует из посылок ✓.

Реальное приложение

Prolog — язык программирования, основанный на резолюции. Запрос ?- mortal(X). решается поиском унификатора и резолюцией с базой знаний. Используется в экспертных системах, NLP, планировании.

Дополнительные аспекты

Метод резолюций — единственное правило вывода, которого достаточно для опровержения противоречивых множеств клауз (теорема о полноте резолюции). В сочетании с алгоритмом унификации он даёт эффективный механический способ доказательства теорем в логике предикатов. Алгоритм Робинсона (1965) находит наиболее общий унификатор за линейное время в подходящем представлении. Современные системы (Vampire, E) используют резолюцию плюс сотни эвристик отбора клауз: literal selection, term ordering (KBO/LPO), redundancy elimination. Это позволило в 1996 г. компьютеру доказать гипотезу Роббинса о булевой алгебре — первая значимая открытая теорема, решённая ATP-системой.

Связь с другими разделами математики

Резолюции и унификация, будучи инструментами логики первого порядка, пересекаются с рядом «чисто математических» дисциплин через модельно-теоретический и вычислительный аспекты. Сколемизация опирается на результаты Лёвгейма и Сколема о нормальных формах и тесно связана с леммой Лёвенгейма–Сколема: всякая счетно аксиоматизируемая теория с бесконечной моделью имеет счетную модель. Именно существование сколемовских функций интерпретируется как выбор конкретных «свидетелей» для кванторов в моделях.

В универсальной алгебре и теории переписываний унификация появляется как решение уравнений в свободных алгебрах: классический результат Мартелли–Монтанари (1976) формализует унификацию в терминах систем переписывания. Здесь же строятся мосты к коммутативной алгебре через унификацию модуло эквивалентности (unification modulo theories), например модуло ассоциативности и коммутативности; это перекликается с техникой базисов Гребнера (Бухбергер) при решении полиномиальных уравнений.

В теории доказательств резолюционный метод сопоставляется с секвенциальным исчислением Гентцена: теорема о полноте резолюции может трактоваться как существование определенного класса вырезаний (cut) в исчислении LK. Работы Смаляна, Шютте, позднее – Бухбергера и Баумгарта указывают на связь между стратегиями резолюции и нормальными формами доказательств.

В прикладной математике и численных методах резолюционные техники используются косвенно через SMT-солверы (Z3, CVC4), где логические части гибридных задач оптимизации и дифференциальных уравнений (например, в проверке инвариантов для систем ОДУ) решаются именно логическими движками на основе унификации и резолюции. В вероятностной логике и байесовских сетях Маркоса и Халперна используются обобщения резолюции для вывода условных вероятностей в символической форме.

Историческая справка и развитие идеи

Корни метода резолюций восходят к классической работе Давида Гильберта и Пола Бернайса «Grundlagen der Mathematik» (1934–1939), где формализовались доказательства в первом порядке. Идея нормальных форм и устранения кванторов через функции была развита Торфином Сколемом в 1920-е годы, что стало предпосылкой для сколемизации. Собственно правило резолюции в современном виде было введено Джоном Аланом Робинсоном в статье «A Machine-Oriented Logic Based on the Resolution Principle» (Journal of the ACM, 1965). Робинсон объединил две линии: секвенциальные методы Гентцена и практическую задачу автоматизации доказательств. Его мотивацией была реализация эффективного, по сути единственного, правила вывода, удобного для машинной реализации, в отличие от громоздких натуральных выводов. В 1970–1980-х годах резолюционные методы стали ядром систем автоматического доказательства теорем: работы Ловланда, Льюка, Воссалена и объединенного проекта Boyer–Moore сформировали культуру «машинных доказательств». Параллельно развивалась теория унификации: работы Хербранда, затем П. Мартелли и У. Монтанари (Journal of the ACM, 1982) дали общий алгоритм и доказали единственность наиболее общего унификатора. Прорывом стало создание языка Prolog (Кольмеро, Рюссель, 1972) и монографии Клоберда и Ллойда, где SLD-резолюция стала основой логического программирования. В конце XX века резолюция эволюционировала в мощные ATP-системы: Otter (Мак-Коннелл), затем Vampire (Рашкович, Вран, 1990-е), E (Шульц). В 1996 году Ларри Воспен и сотрудники подтвердили гипотезу Роббинса о булевой алгебре с помощью EQP, что стало символом зрелости резолюционных методов.

§ Акт · что дальше