Автоматизированное доказательство теорем (также известное как ATP или автоматизированная дедукция ) является подразделом автоматизированного рассуждения и математической логики, занимающимся доказательством математических теорем с помощью компьютерных программ . Автоматизированное рассуждение по математическому доказательству было основным мотивирующим фактором для развития компьютерной науки .
Хотя корни формализованной логики восходят к Аристотелю , в конце 19-го и начале 20-го веков развивалась современная логика и формализованная математика. Begriffsschrift Фреге ( 1879) представил как полное исчисление высказываний , так и то, что по сути является современной логикой предикатов . [1] Его « Основания арифметики» , опубликованные в 1884 году, [2] выразили (части) математики в формальной логике. Этот подход был продолжен Расселом и Уайтхедом в их влиятельной работе «Principia Mathematica» , впервые опубликованной в 1910–1913 годах, [3] и с пересмотренным вторым изданием в 1927 году. [4] Рассел и Уайтхед считали, что они могут вывести всю математическую истину, используя аксиомы и правила вывода формальной логики, в принципе открывая процесс для автоматизации. В 1920 году Торальф Скулем упростил предыдущий результат Леопольда Лёвенгейма , что привело к теореме Лёвенгейма–Скулема , а в 1930 году — к понятию вселенной Эрбрана и интерпретации Эрбрана , которая позволила свести (не)выполнимость формул первого порядка (и, следовательно, справедливость теоремы) к (потенциально бесконечному числу) проблем пропозициональной выполнимости. [5]
В 1929 году Мойжеш Пресбургер показал, что теория натурального числа первого порядка со сложением и равенством (теперь называемая арифметикой Пресбургера в его честь) разрешима, и дал алгоритм, который мог определить, является ли данное предложение в языке истинным или ложным. [6] [7]
Однако вскоре после этого положительного результата Курт Гёдель опубликовал работу «О формально неразрешимых предложениях Principia Mathematica и связанных с ними систем» (1931), показав, что в любой достаточно сильной аксиоматической системе существуют истинные утверждения, которые не могут быть доказаны в этой системе. Эта тема получила дальнейшее развитие в 1930-х годах у Алонзо Чёрча и Алана Тьюринга , которые, с одной стороны, дали два независимых, но эквивалентных определения вычислимости , а с другой — привели конкретные примеры неразрешимых вопросов .
Вскоре после Второй мировой войны появились первые универсальные компьютеры. В 1954 году Мартин Дэвис запрограммировал алгоритм Пресбургера для компьютера JOHNNIAC с электронными лампами в Институте перспективных исследований в Принстоне, штат Нью-Джерси. По словам Дэвиса, «его великим триумфом было доказательство того, что сумма двух четных чисел четна». [7] [8] Более амбициозным был Logic Theorist в 1956 году, система вывода для пропозициональной логики Principia Mathematica , разработанная Алленом Ньюэллом , Гербертом А. Саймоном и Дж. К. Шоу . Также работая на JOHNNIAC, Logic Theorist построил доказательства из небольшого набора пропозициональных аксиом и трех правил вывода: modus ponens , (пропозициональная) подстановка переменных и замена формул их определением. Система использовала эвристическое руководство и сумела доказать 38 из первых 52 теорем Principia . [7]
«Эвристический» подход логика-теоретика пытался подражать математикам-людям и не мог гарантировать, что доказательство может быть найдено для каждой допустимой теоремы даже в принципе. Напротив, другие, более систематические алгоритмы достигли, по крайней мере теоретически, полноты для логики первого порядка. Первоначальные подходы опирались на результаты Эрбрана и Сколема для преобразования формулы первого порядка в последовательно большие наборы пропозициональных формул путем инстанцирования переменных с терминами из вселенной Эрбрана . Затем пропозициональные формулы можно было проверить на невыполнимость с помощью ряда методов. Программа Гилмора использовала преобразование в дизъюнктивную нормальную форму , форму, в которой выполнимость формулы очевидна. [7] [9]
В зависимости от базовой логики проблема определения действительности формулы варьируется от тривиальной до невозможной. Для общего случая пропозициональной логики проблема разрешима, но co -NP-полна , и, следовательно, для общих задач доказательства, как полагают, существуют только алгоритмы с экспоненциальным временем . Для исчисления предикатов первого порядка теорема о полноте Гёделя утверждает, что теоремы (доказуемые утверждения) являются в точности семантически допустимыми правильно сформированными формулами , поэтому допустимые формулы вычислимо перечислимы : при наличии неограниченных ресурсов любая допустимая формула в конечном итоге может быть доказана. Однако недопустимые формулы (те, которые не вытекают из данной теории) не всегда могут быть распознаны.
Вышеизложенное относится к теориям первого порядка, таким как арифметика Пеано . Однако для конкретной модели, которая может быть описана теорией первого порядка, некоторые утверждения могут быть истинными, но неразрешимыми в теории, используемой для описания модели. Например, по теореме Гёделя о неполноте мы знаем, что любая непротиворечивая теория, аксиомы которой истинны для натуральных чисел, не может доказать, что все утверждения первого порядка истинны для натуральных чисел, даже если список аксиом может быть бесконечно перечислимым. Из этого следует, что автоматизированный доказатель теорем не сможет завершить работу при поиске доказательства именно тогда, когда исследуемое утверждение неразрешимо в используемой теории, даже если оно истинно в интересующей модели. Несмотря на этот теоретический предел, на практике доказательчики теорем могут решать множество сложных задач, даже в моделях, которые не полностью описываются какой-либо теорией первого порядка (например, целыми числами ).
Более простая, но связанная проблема — проверка доказательства , где существующее доказательство теоремы сертифицировано как действительное. Для этого обычно требуется, чтобы каждый отдельный шаг доказательства мог быть проверен примитивной рекурсивной функцией или программой, и, следовательно, проблема всегда разрешима.
Поскольку доказательства, генерируемые автоматическими доказывателями теорем, как правило, очень велики, проблема сжатия доказательств становится решающей, и были разработаны различные методы, направленные на уменьшение объема выводимых доказывателем данных и, следовательно, на их более легкое понимание и проверку.
Помощники доказательства требуют, чтобы пользователь-человек давал подсказки системе. В зависимости от степени автоматизации, доказывающий может быть по сути сведен к проверке доказательств, когда пользователь предоставляет доказательство формальным способом, или значительные задачи доказательства могут быть выполнены автоматически. Интерактивные доказывающие используются для различных задач, но даже полностью автоматические системы доказали ряд интересных и сложных теорем, включая по крайней мере одну, которая долгое время ускользала от математиков-людей, а именно гипотезу Роббинса . [10] [11] Однако эти успехи спорадичны, и работа над сложными проблемами обычно требует опытного пользователя.
Иногда проводится еще одно различие между доказательством теорем и другими методами, где процесс считается доказательством теорем, если он состоит из традиционного доказательства, начинающегося с аксиом и производящего новые шаги вывода с использованием правил вывода. Другие методы включают проверку модели , которая в простейшем случае включает в себя полный перебор многих возможных состояний (хотя фактическая реализация проверки моделей требует большого ума и не сводится просто к полному перебору).
Существуют гибридные системы доказательства теорем, которые используют проверку модели в качестве правила вывода. Существуют также программы, которые были написаны для доказательства конкретной теоремы, с (обычно неформальным) доказательством того, что если программа завершается с определенным результатом, то теорема верна. Хорошим примером этого было машинное доказательство теоремы о четырех красках , которое было очень спорным, поскольку первое заявленное математическое доказательство было по сути невозможно проверить людям из-за огромного размера вычислений программы (такие доказательства называются необозримыми доказательствами ). Другим примером программного доказательства является доказательство, которое показывает, что игру Connect Four всегда может выиграть первый игрок.
Коммерческое использование автоматизированного доказательства теорем в основном сосредоточено в проектировании и проверке интегральных схем. После ошибки Pentium FDIV сложные блоки с плавающей точкой современных микропроцессоров были разработаны с особой тщательностью. AMD , Intel и другие используют автоматизированное доказательство теорем для проверки того, что деление и другие операции правильно реализованы в их процессорах. [12]
Другие применения доказателей теорем включают синтез программ , построение программ, которые удовлетворяют формальной спецификации . [13] Автоматизированные доказатели теорем были интегрированы с помощниками по доказательству , включая Isabelle/HOL . [14]
Приложения для доказательства теорем также можно найти в обработке естественного языка и формальной семантике , где они используются для анализа представлений дискурса . [15] [16]
В конце 1960-х годов агентства, финансирующие исследования в области автоматизированной дедукции, начали подчеркивать необходимость практического применения. [ требуется ссылка ] Одной из первых плодотворных областей была верификация программ , в которой доказыватели теорем первого порядка применялись к проблеме проверки правильности компьютерных программ на таких языках, как Pascal , Ada и т. д. Среди ранних систем верификации программ выделялся Stanford Pascal Verifier, разработанный Дэвидом Лакхэмом в Стэнфордском университете . [17] [18] [19] Он был основан на Stanford Resolution Prover, также разработанном в Стэнфорде с использованием принципа резолюции Джона Алана Робинсона . Это была первая автоматизированная система дедукции, продемонстрировавшая способность решать математические задачи, которые были объявлены в Notices of the American Mathematical Society до того, как решения были официально опубликованы. [ требуется ссылка ]
Доказательство теорем первого порядка является одним из наиболее зрелых подполей автоматизированного доказательства теорем. Логика достаточно выразительна, чтобы позволить спецификацию произвольных проблем, часто достаточно естественным и интуитивным способом. С другой стороны, она все еще полуразрешима, и было разработано несколько надежных и полных исчислений, что позволяет создавать полностью автоматизированные системы. [20] Более выразительные логики, такие как логики высшего порядка , позволяют удобно выражать более широкий круг проблем, чем логика первого порядка, но доказательство теорем для этих логик менее развито. [21] [22]
Существует существенное совпадение между автоматическими доказывателями теорем первого порядка и решателями SMT . Как правило, автоматические доказыватели теорем фокусируются на поддержке полной логики первого порядка с кванторами, тогда как решатели SMT больше фокусируются на поддержке различных теорий (интерпретированных предикатных символов). ATP преуспевают в задачах с большим количеством кванторов, тогда как решатели SMT хорошо справляются с большими задачами без кванторов. [23] Граница достаточно размыта, так что некоторые ATP участвуют в SMT-COMP, в то время как некоторые решатели SMT участвуют в CASC . [24]
Качество реализованных систем улучшилось благодаря наличию большой библиотеки стандартных контрольных примеров — Библиотеки задач «Тысячи задач для доказательств теорем» (TPTP) [25] , а также благодаря CADE ATP System Competition (CASC), ежегодному конкурсу систем первого порядка для многих важных классов задач первого порядка.
Ниже перечислены некоторые важные системы (все они выиграли как минимум один дивизион соревнований CASC).
The Theorem Prover Museum [27] — это инициатива по сохранению источников систем доказательства теорем для будущего анализа, поскольку они являются важными культурными/научными артефактами. Он содержит источники многих из упомянутых выше систем.
ATP и SMT Solvers имеют взаимодополняющие сильные стороны. Первые справляются с квантификаторами более элегантно, тогда как вторые преуспевают в больших, в основном наземных задачах.
В последние годы мы наблюдаем размывание границ между SMT-COMP и CASC, когда решатели SMT конкурируют в CASC, а ATP — в SMT-COMP.
Этот материал может быть воспроизведен в любых образовательных целях, ...