Большинство помощников по доказательству являются функциональными языками программирования с зависимыми типами. Они могут проверять программы/алгоритмы. Я заинтересован, вместо этого, в помощнике доказательств, подходящем для математики и только (например, исчисления). Вы можете порекомендовать его? Я слышал о Mizar, но мне не нравится, что исходный код закрыт, но если он лучше всего подходит для математики, я буду использовать его. Насколько хорошо новые языки, такие как Agda и Idris, подходят для математических доказательств?Помощник для справки только для математики
ответ
Coq
имеет обширные библиотеки, охватывающие реальный анализ. Различные события приходят на ум:
standard library и проекты здания на нем, например, как ныне несуществующей coqtail проекта [1] (с широким охватом степенных рядов и совсем немного работы с комплексными числами) или более последнее время coquelicot. Все они полагаются на аксиоматическое определение реалов presented here.
Более конструктивный подход предоставляется проектом the C-CoRN, который начинается с фактического построения реалов.
Другой способ решения проблем состоит в том, чтобы обратиться к нестандартному анализу. Это то, что делали люди, использующие ACL2
.
Для более общего вида поля, вы должны, вероятно, прочитать this survey paper людьми, участвующими в проекте coquelicot.
[1] полное раскрытие: я был вовлечен в этот проект
Могу ли я предположить из Вашего ответа, что Agda не подходит для математических доказательств? –
Все мои работы (в интерфейсе программирования и доказывания) в течение последних 4 лет были выполнены в Агда. И есть довольно большие проекты формализации, полностью выполненные в Агда. Но Coq выигрывает от большой работы, направленной на автоматизацию некоторых досадных доказательств (например, все (в) равенства при работе с кольцами, полями и т. Д.). В конце концов, ответ будет зависеть от того, какую математику вы хотите делать. – gallais