Из теоремы Черча мы знаем, что определение выполнимости первого порядка вообще неразрешимо, но есть несколько методов, которые мы можем использовать для определения выполнимости первого порядка. Наиболее очевидным является поиск конечной модели. Однако в логике первого порядка есть ряд утверждений, которые, как мы можем продемонстрировать, не имеют конечных моделей. Например, любая область, в которой действует инъективная и не сюръективная функция, бесконечна.
Как мы можем продемонстрировать выполнимость для операторов первого порядка, где нет конечных моделей или существование конечных моделей неизвестно? В автоматическом доказательстве теорем мы можем определить выполнимость несколькими способами:
- Мы можем отрицать предложение и искать противоречие. Если он найден, мы доказываем правильность утверждения первого порядка и, следовательно, выполнимость.
- Мы используем насыщенность с разрешением и исчерпывающие выводы. Чаще всего у нас будет бесконечное количество выводов, поэтому это ненадежно.
- Мы можем использовать принуждение, которое предполагает существование модели, а также последовательность теории.
Я не знаю никого, кто бы применял форсирование как механизированную технику для автоматического доказательства теорем, и это выглядит нелегко, но мне интересно, было ли это сделано или предпринято, так как он использовался для доказательства независимости ряда утверждений в теории множеств, которая сама по себе не имеет конечных моделей.
Известны ли другие методы поиска соответствия первого порядка, применимые для автоматического рассуждения, или кто-то работал над алгоритмом автоматического форсирования?