Я бы сказал, что классическое различие между «автоматическим доказательством теорем» (ATP) и «интерактивным доказательством теорем» (ITP) необходимо пересмотреть. Если сегодня взять хорошо известную систему ITP, такую как Isabelle / HOL (Isabelle2013, февраль 2013 г.), она объединяет довольно много дополнительных инструментов из портфеля ATP:
Встроенные универсальные автоматизированные средства проверки: инструменты старой школы Isabelle, такие как fast
и blast
(Л. Полсон), и более новые автоматизированные средства проверки, подобные metis
(Дж. Херд).
Внешние ATP для логики первого порядка, которые вызываются с помощью Sledgehammer: E prover, SPASS, Vampire. Найденное доказательство анализируется, чтобы выяснить, какие леммы внесли свой вклад, сократив 10000 до 10 с и подкрепив результат metis
.
Внешние SMT с частичной реконструкцией доказательства, особенно для Z3 (С. Беме).
Инструменты для поиска встречных примеров недоказанных утверждений: Nitpick / Kodkodi (J. Blanchette) и Quickcheck (L. Bulwahn).
Делает ли все эти автоматизированные вещи Изабель автоматическим доказателем теорем?
В конечном счете, я думаю, что различие между «ATP» и «ITP» - это просто некая «метка», которая говорит о том, как вы хотите позиционировать или «продавать» свою систему: ATP утверждают, что являются «кнопочными инструментами», но в На практике вам придется взаимодействовать (косвенно), предоставляя параметры или подсказки или переформулируя свою проблему. На самом деле это может быть довольно сложной задачей из-за длительного времени выполнения, которое является обычным явлением в сообществе ATP.
В отличие от этого, система ITP создана для тех, кто ждет на месте с полуприличным доступом к внутренним состояниям доказательства, чтобы увидеть, чего не хватает, чтобы закончить доказательство. Система ITP, которая объединяет инструменты ATP в манере Изабель, может оказаться более привлекательной для большего количества пользователей и большего количества приложений, чем одна ITP или ATP.