Техническое задание: Формальная верификация кода на Си
Цель проекта
Необходимо строго доказать корректность работы предоставленной программы на языке Си, используя специализированные инструменты для формальной верификации.
Основные требования
- Использовать инструменты статического анализа Frama-C и AstraVer (или плагин WP).
- Входные данные: исходный код функции на языке Си, корректность которой требуется доказать.
- Результат работы: полностью аннотированный файл на языке Си, содержащий только одну целевую функцию.
- Аннотации (контракты, инварианты, утверждения) должны быть написаны таким образом, чтобы инструменты могли автоматически доказать полную корректность (функциональную безопасность, отсутствие ошибок времени выполнения).
Ожидаемый результат
Файл с кодом, который успешно проходит проверку в Frama-C/AstraVer, подтверждая, что все заданные спецификации выполняются, и в программе нет скрытых дефектов.