Существуют ли языки типа языков программирования (с соответствующими компиляторами), позволяющие формально записать доказательство как последовательность выводов, использовать уже выведенные утверждения, составлять что-то вроде программистских библиотек? То есть такой язык, на котором можно было бы более-менее удобно записать доказательство и автоматически проверить? Как в учебниках по логике приводят "4=ModusPonenus(2,3)". Понятно, что формальные доказательства всегда ужасно длинные (и единица от Бурбаки, и всё такое...), но ведь можно, наверное, выделить те шаблоны, те очевидные утверждения, которыми мы пользуемся (их, может, много, но конечно), вынести их в отдельный файл такого языка и просто подключать. И потом наращивать аппарат доказательств...
У меня вообще первым делом возникла мысль такой язык создать (никогда ни о чём таком не слышал, а идея пришла), но потом решил поинтересоваться, наверняка, хотя бы попытки уже делались.
Просто странно как-то, что компьютер, использующий основным своим инструментом всё-таки математику, научился уже, кажется, хорошо решать сложные математические задачи, типа интегралов или чего ещё, а про системы формального вывода (который, по идее, должен быть проще) как-то нигде не упоминается. Мне на глаза, по крайней мере, не попадало.
|