Формальная верификация в компьютерных системах работает на основе математических методов и используется для анализа и подтверждения корректности работы программ, а также для доказательства свойств систем. www.securitylab.ru habr.com
В общем виде формальная верификация включает в себя: www.securitylab.ru
- Спецификацию — формальное описание системы, логики программного обеспечения, выражение того, что от неё требуется. www.securitylab.ru
- Реализацию — готовую систему. www.securitylab.ru
- Доказательство, которое связывает спецификацию и реализацию и отвечает на вопрос, соответствуют ли они друг другу. www.securitylab.ru
Принцип работы: www.securitylab.ru
- Верификатор получает на вход программу и спецификацию. www.securitylab.ru
- Используя предоставленную спецификацию, верификатор компилирует программу в логическую формулу, обычно называемую условием верификации. www.securitylab.ru
- Верификаторы программ используют автоматический анализатор (как правило, SMT-решатель) для проверки того, является ли сгенерированное условие верификации логически допустимым. www.securitylab.ru
- Если да, это означает, что программа удовлетворяет спецификации, но если нет, то это не обязательно означает, что в программе есть ошибка. www.securitylab.ru
Формальная верификация даёт гарантии того, что программный код не будет содержать конкретных ошибок, что функции будут вести себя так, как ожидается. habr.com