Вопрос:
Предположим, у меня есть спецификация задачи, состоящей из аксиом и цели (т. Е. Связанная проблема доказательства состоит в том, является ли цель выполнимой при всех аксиомах). Предположим также, что проблема не содержит каких-либо противоречий / противоречий между аксиомами. Есть ли способ заранее определить (т. Е. Без предварительного построения полного доказательства), что для доказательства проблемы потребуются «рассуждения более высокого порядка»?
Под «рассуждением более высокого порядка» я подразумеваю применение шагов доказательства, которые требуют записи логики более высокого порядка. Типичным примером «рассуждений высшего порядка» может быть индукция: для записи схемы индукции в принципе требуется использование логики высшего порядка.
Пример:
Можно указать задачу доказательства «Является ли сложение на двух натуральных числах коммутативным?» используя логику первого порядка (т.е. определяем натуральное число через конструкторы ноль / succ вместе со стандартными аксиомами вместе с аксиомами, которые рекурсивно определяют функцию «плюс»). Доказательство этой проблемы требует наведения на структуру первого или второго аргумента «плюс» (в зависимости от точного определения «плюс»). Мог ли я знать это до того, как попытаться доказать это, например, проанализировав природу входной проблемы ...? (Конечно, это просто простой пример для иллюстрации - на самом деле это было бы интересно для более сложных задач доказательства, чем коммутативность плюс.)
Еще немного контекста:
В своих исследованиях я часто пытаюсь применить автоматические средства доказательства теорем первого порядка, такие как Vampire, eprover и т. Д., Для решения задач доказательства (или части проблем доказательства), некоторые из которых могут потребовать рассуждения более высокого порядка. Зачастую доказателям требуется некоторое время, чтобы придумать доказательство (при условии, что существует доказательство, которое требует только рассуждений первого порядка). Конечно, попытка применить теорему первого порядка к задаче, которая требует рассуждений более высокого порядка, обычно приводит к таймауту.
Поэтому мне было интересно, существуют ли какие-либо методы / приемы, которые могли бы заранее сказать мне, потребует ли доказательная задача техник рассуждения более высокого порядка (то есть «не тратьте время, пытаясь передать ее доказателю теоремы первого порядка»). ) или нет, по крайней мере, может быть для конкретных проблем ввода.
Я искал в литературе ответ на свой вопрос и спросил некоторых коллег из области теоремы, доказывающей это, - но до сих пор я не получил хороших ответов. Я ожидал бы, что по этой теме будут проведены исследования людей, которые пытаются совместить интерактивное доказательство теорем и автоматическое доказательство теорем (Сообщество Coq? Сообщество Изабель (Кувалда)?) - но пока я ничего не смог найти.
Я предполагаю, что в целом проблема, которую я здесь изложил, неразрешима (не так ли?). Но, может быть, есть хорошие ответы на уточненные версии проблемы ...?