Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Матита [1] - помощник по экспериментальному доказательству, разрабатываемый на факультете компьютерных наук Болонского университета . Это инструмент, помогающий в разработке формальных доказательств путем взаимодействия человека и машины, предоставляющий среду программирования, в которой естественным образом сосуществуют формальные спецификации, исполняемые алгоритмы и автоматически проверяемые сертификаты правильности.

Матита основана на системе зависимых типов , известной как исчисление (со) индуктивных построений (производное от исчисления построений ), и в некоторой степени совместима с Coq .

Слово «matita» в переводе с итальянского означает «карандаш» (простой и широко распространенный инструмент для редактирования). Это довольно небольшое и простое приложение [2] , архитектурная и программная сложность которого предназначена для освоения студентами, и предоставляет инструмент, особенно подходящий для тестирования инновационных идей и решений. Матита использует режим редактирования, основанный на тактике ; ( XML- закодированные) объекты доказательства создаются для хранения и обмена.

Основные особенности [ править ]

Экзистенциальные переменные встроены в Matita, что позволяет упростить управление зависимыми целями. [3]

Matita реализует алгоритм двунаправленного вывода типов [4], использующий как предполагаемые, так и ожидаемые типы.

Возможности системы вывода типов (уточнения) дополнительно дополняются механизмом подсказок [5], который помогает синтезировать унификаторы в конкретных ситуациях, заданных пользователем.

Matita поддерживает сложную стратегию устранения неоднозначности [6], основанную на диалоге между синтаксическим анализатором и проверкой типов .

На интерактивном уровне система реализует выполнение структурированной тактики за небольшой шаг [7], что позволяет гораздо лучше управлять разработкой доказательства и, естественно, приводит к созданию более структурированных и читаемых сценариев.

Приложения [ править ]

Матита использовалась в CerCo (Certified Complexity): европейском проекте FP7, сфокусированном на разработке официально проверенного, сохраняющего сложность компилятора от большого подмножества C до ассемблера микропроцессора MCS-51 .

Документация [ править ]

Учебник Matita [8] представляет собой практическое введение в основные функции интерактивного средства доказательства теорем Matita, предлагая экскурсию по набору нетривиальных примеров в области спецификации и проверки программного обеспечения .

См. Также [ править ]

  • Интерактивное доказательство теорем
  • Переписка Карри – Ховарда
  • Интуиционистская теория типов

Ссылки [ править ]

  1. ^ Андреа Асперти, Вильмер Риччиотти, Клаудио Сакердоти Коэн, Энрико Тасси. «Интерактивное средство доказательства теорем Matita»: CADE-23, LNCS 6803, 2011, стр. 64-69 .
  2. ^ Асперти, А .; Ricciotti, W .; Sacerdoti Coen, C .; Тасси, Э. (2009). «Компактное ядро ​​для исчисления индуктивных конструкций» . Садхана . 34 : 71–144. DOI : 10.1007 / s12046-009-0003-3 .
  3. ^ Андреа Асперти, Вильмер Риччиотти, C Сачердоти Коэн, Энрико Тасси. «Новый тип тактики»: Технический отчет UBLCS-2009-14. Июнь 2009 г.
  4. ^ Андреа Асперти, Вильмер Риччиотти, C Сачердоти Коэн, Энрико Тасси. "Двунаправленный алгоритм уточнения для исчисления (со) индуктивных конструкций" Логические методы в компьютерных науках, V.8, n1
  5. ^ Андреа Асперти, Вильмер Риччиотти, C Сачердоти Коэн, Энрико Тасси. «Советы по объединению»: LNCS V.5674, 2009, стр. 84-98.
  6. ^ Клаудио Сачердоти Коэн, Стефано Заккироли «Эффективный неоднозначный анализ математических формул» LNCS V.3119, 2004, стр. 347-362
  7. ^ Клаудио Сачердоти Коэн, Энрико Тасси, Стефано Заккироли "Tinycals: Step by Step Tacticals" ENTCS V.174, №2, 2007, страницы 125–142
  8. ^ Андреа Асперти, Вильмер Риччиотти, Клаудио Сачердоти Коэн "Учебник по Матите " Журнал формализованных рассуждений, V.7, номер 2, 2014, страницы 91-199

Внешние ссылки [ править ]

  • Помощник Matita Proof
  • CerCo Project