Разница между логическим программированием и автоматическим доказательством теорем

В чем разница между логическим программированием и автоматическим доказательством теорем (ATP) (например, с помощью E-Prover, Spass или Princess)?

Я много искал, и единственная информация, которую я нашел, это то, что АТФ является предшественником логического программирования. Но я не вижу разницы. Но я думаю, это больше, чем синтаксис.


person 2Application    schedule 31.03.2016    source источник
comment
Этот документ помогает проиллюстрировать разницу: Реализация средств доказательства теорем в логическом программировании   -  person lurker    schedule 31.03.2016


Ответы (1)


Что касается прологовой части вопроса, лучше всего это сказал Ричард О'Киф:

Пролог — эффективный язык программирования, потому что это глупый доказатель теорем.

Таким образом, существует связь между Прологом и доказательством теорем. Пролог имеет некоторые особенности средства доказательства теорем, например, он ищет доказательства или, скорее, опровержения разрешения, но делает это неполным способом. это больше приспособлено к языку программирования общего назначения.

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

На самом деле сравнительно легко дополнить и расширить неполную стратегию выполнения Пролога по умолчанию, чтобы поиск стал более полным.

Обратите внимание, однако, что Пролог также демонстрирует некоторые экстралогические особенности, которые выходят за рамки доказательства теорем и фактически часто могут мешать декларативным рассуждениям. См. также logical-purity.

person mat    schedule 31.03.2016
comment
Слово «неполный» заслуживает здесь некоторого уточнения: оно является неполным в случае, если Пролог входит в бесконечный цикл — или другую ошибку — только. - person false; 31.03.2016
comment
Я бы убрал слово «другой» из этого определения. Как вы думаете? - person mat; 31.03.2016
comment
Argh, нужно еще лучше объяснить, что подразумевается под ошибкой. Это какое-то сигнальное исключение. - person false; 31.03.2016
comment
@mat у тебя есть ссылка на цитату? - person S0rin; 16.08.2017