Детерминированные конечные автоматы и формальная верификация с TLA+
Состояния гонки в распределенных блоках вызывают плавающие сбои, которые не выявляются обычными тестами. Моделирование питания, OTA и торможения в виде формальных спецификаций TLA+ математически доказывает отсутствие взаимных блокировок при любых комбинациях событий.
Опасность условий гонки при переключении контуров торможения
Рассмотрим переход от рекуперативного торможения к гидравлическому при срабатывании ABS. Если контроллер мотора снимает рекуперацию, полагая, что гидронасос уже создал давление, тормозное усилие может пропасть на 80 мс. Моделирование в TLA+ выявило эту брешь до выпуска контроллера.
- Доказательство инвариантов безопасности: Гарантия соблюдения условий безопасности при любом порядке команд.
- Верификация моделей с TLC: Исчерпывающая проверка миллионов переходов состояний до написания кода на C++.
- Генерация детерминированного кода: Прямая трансляция проверенных моделей TLA+ в код на C99 или Rust.
- Устранение взаимных блокировок: Искоренение циклических зависимостей между питанием и шасси.
Исследовать портфель доменов