Matita [1] — экспериментальный помощник по доказательству, разрабатываемый на кафедре компьютерных наук Болонского университета . Это инструмент, помогающий разрабатывать формальные доказательства посредством взаимодействия человека и машины, предоставляющий среду программирования, в которой естественным образом сосуществуют формальные спецификации , исполняемые алгоритмы и автоматически проверяемые сертификаты корректности.
Матита основана на системе зависимых типов , известной как исчисление (ко)индуктивных конструкций (производная от исчисления конструкций ), и в некоторой степени совместима с Coq .
Слово «matita» означает «карандаш» на итальянском языке (простой и распространенный инструмент редактирования). Это достаточно небольшое и простое приложение, [2] архитектурная и программная сложность которого должна быть освоена студентами, предоставляя инструмент, особенно подходящий для тестирования инновационных идей и решений. Matita использует режим редактирования на основе тактики; ( XML -кодированные) объекты доказательства создаются для хранения и обмена.
Экзистенциальные переменные являются собственными в Matita, что позволяет упростить управление зависимыми целями. [3]
Матита реализует двунаправленный алгоритм вывода типов [4], используя как выводимые, так и ожидаемые типы.
Мощность системы вывода типов (уточнения) дополнительно увеличивается за счет механизма подсказок [5] , который помогает синтезировать унификаторы в конкретных ситуациях, указанных пользователем.
Matita поддерживает сложную стратегию устранения неоднозначности [6], основанную на диалоге между синтаксическим анализатором и средством проверки типов .
На интерактивном уровне система реализует поэтапное выполнение структурированных тактик [7], что позволяет значительно улучшить управление разработкой доказательств и, естественно, приводит к созданию более структурированных и читаемых сценариев.
Матита работала в CerCo (Certified Complexity): европейском проекте FP7, направленном на разработку формально проверенного , сохраняющего сложность компилятора с большого подмножества языка C на язык ассемблера микропроцессора MCS -51 .
Учебное пособие Matita [8] дает практическое введение в основные функции интерактивного устройства доказательства теорем Matita, предлагая пошаговый обзор набора нетривиальных примеров в области спецификации и верификации программного обеспечения .