Почему автоматические средства проверки теорем, то есть ACL2 , и решатели SMT не нуждаются в помощи человека, в то время как помощники по доказательствам, то есть Изабель и Кок , нуждаются в помощи ?
Правильность формул более высокого порядка, как правило, не решаема, и пространства для поиска огромны , поэтому все, на что вы можете надеяться, - это пытаться найти доказательство - при условии, что оно существует - путем умного перечисления пространства для доказательства (например, кувалдой , удачно названной) но это грубо. Люди могут играть в оракула, предоставляя ключевые леммы для руководства доказательствами.
С другой стороны, автоматизированные средства проверки обычно имеют дело только с разрешимыми (подмножествами) логиками, например, логикой высказываний или подклассами логики первого порядка, поэтому они могут работать долго, но вы знаете, что в конечном итоге они будут успешными.
Обратите внимание, что существуют подходы, позволяющие ассистентам-доказателям найти эти важные леммы, например, IsaPlanner . Инструмент угадывает (индуктивные) леммы путем перечисления и случайного тестирования, а затем пытается их доказать. Повторяя процесс, можно автоматически найти множество лемматов, например, типичных определений типов данных.
Малая азбука
validity - формула valid, она содержит все, что вы присваиваете свободным переменным.
∀∃
decidability - (логическое) свойство (Turing) разрешимо, если существует алгоритм, который отвечает «да» или «нет» (правильно) по истечении определенного промежутка времени.
логика высказываний - также логика нулевого порядка ; количественное определение не допускается.
∀ х . п( х )∀ ф, е( 4 ) > 0
логика высшего порядка - вы можете количественно определять (и «строить») произвольно сложные объекты, например функции высшего порядка (функции, которые принимают функции).
@GuyCoder: Я не уверен, что это возможно, хотя. Мы не можем написать каждый ответ так, что он легко усваивается без предварительного знания. АТФ являются продвинутыми вещами; Я не рекомендовал бы никому изучать их без твердого фона в логике. Написание ответов так, как вы, кажется, хотите, может только создать иллюзию понимания, но не очень помогает, imho. Таким образом, каждый, кто интересуется вашей серией, должен сначала сделать логику, с которой мы также можем помочь - в других вопросах.
Рафаэль
7
Я бы сказал, что классическое различие между «автоматическим доказательством теорем» (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.
Прошло много времени, но если я правильно помню, ни те, fastни blastдругие не являются испытателями; в основном это эвристика, использующая определенные правила, которые могут найти доказательство. (Конечно, они проверяют на достаточно малом подмножестве формул, что справедливо для любого метода нумерации с доказательством.)
Рафаэль
2
Когда вы говорите «прувер», вы на самом деле имеете в виду «процедуру принятия решения» для определенного фиксированного языка? Большинство СПС «испытатели» являются процедурами пола-решения, как вы охарактеризовать fastи blast. Обратите внимание, чтоblast Л. Полсон представил его как «Обобщающий инструмент проверки таблиц и его интеграция с Изабель» на каком-то семинаре CADE - статья появилась позже в J. UCS 1999. У Изабель есть больше «доказательств» и в этом смысле, например, metis, но также процедуры принятия решений для некоторых специальных языков (подмножеств арифметики).
Я бы сказал, что классическое различие между «автоматическим доказательством теорем» (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.
источник
fast
ниblast
другие не являются испытателями; в основном это эвристика, использующая определенные правила, которые могут найти доказательство. (Конечно, они проверяют на достаточно малом подмножестве формул, что справедливо для любого метода нумерации с доказательством.)fast
иblast
. Обратите внимание, чтоblast
Л. Полсон представил его как «Обобщающий инструмент проверки таблиц и его интеграция с Изабель» на каком-то семинаре CADE - статья появилась позже в J. UCS 1999. У Изабель есть больше «доказательств» и в этом смысле, например, metis, но также процедуры принятия решений для некоторых специальных языков (подмножеств арифметики).