Awaria oprogramowania w samolocie Boeing 737 MAX kosztowała życie 346 osób i wynikała z błędnej logiki systemu MCAS, który polegał na danych z jednego czujnika. W branży lotniczej i medycznej każda linia kodu sterującego musi działać poprawnie w 100% przypadków, a tradycyjne testy pokrywają jedynie ułamek możliwych scenariuszy. Nowy system autoformalizacji, który właśnie udowodnił twierdzenia z prestiżowych konkursów matematycznych, może zmienić sposób, w jaki certyfikujemy oprogramowanie krytyczne dla bezpieczeństwa.
Problem, którego testy nie widzą
Standardowe podejście do weryfikacji oprogramowania w systemach krytycznych opiera się na testach jednostkowych, integracyjnych i przeglądach kodu. Problem w tym, że testy sprawdzają konkretne przypadki, a nie wszystkie możliwe stany systemu. W rozruszniku serca może to oznaczać, że algorytm detekcji arytmii działa poprawnie dla 10 tysięcy przebiegów EKG z bazy testowej, ale zawodzi przy jednym konkretnym wzorcu, który pojawia się raz na milion uderzeń. Tradycyjne testy tego nie wyłapią.
Normy takie jak DO-178C w lotnictwie czy IEC 62304 w urządzeniach medycznych wymagają udowodnienia, że oprogramowanie spełnia swoją specyfikację. Tyle że specyfikacja to dokument pisany przez człowieka, a kod to inny dokument pisany przez człowieka. Zapewnienie, że są one spójne, wymaga miesięcy ręcznej analizy i i tak pozostawia miejsce na błędy. Z doświadczenia wiem, że przy systemach powyżej 50 tysięcy linii kodu nikt realnie nie jest w stanie zagwarantować pełnej zgodności bez narzędzi formalnych.
Autoformalizacja: dowód matematyczny zamiast testów
System opisany w badaniu Soltani Moakhar i współpracowników działa na innej zasadzie. Zamiast testować kod, tłumaczy specyfikację bezpieczeństwa na twierdzenia matematyczne w języku Lean 4 i automatycznie dowodzi, że algorytm je spełnia. Jeśli dowód przechodzi, masz matematyczną gwarancję poprawności. Jeśli nie, wiesz dokładnie, gdzie jest błąd logiczny.
Kluczowa innowacja dotyczy techniki Auxiliary Lemma. Systemy krytyczne często używają niestandardowych struktur danych zoptymalizowanych pod kątem ograniczeń sprzętowych, a nie elegancji matematycznej. Dotychczasowe narzędzia formalne wymagały ręcznego definiowania tych struktur w bibliotekach takich jak Mathlib. Nowy system robi to automatycznie: dynamicznie rozszerza definicje typów, formułuje lematy pomocnicze do ich walidacji i dopiero potem przystępuje do dowodzenia głównego twierdzenia o bezpieczeństwie. To jest dokładnie to, czego brakowało w zastosowaniach przemysłowych.

Scenariusz: certyfikacja systemu hamulcowego
Wyobraźmy sobie firmę produkującą elektroniczny system hamulcowy dla samolotu regionalnego. System ma wymaganie bezpieczeństwa: "Jeśli prędkość koła spadnie poniżej 20% prędkości referencyjnej w ciągu 50 milisekund od komendy hamowania, system musi zwolnić ciśnienie w ciągu maksymalnie 10 milisekund, chyba że czujnik przeciążenia wykryje siłę powyżej 2g".
W tradycyjnym procesie inżynier bezpieczeństwa pisze specyfikację, programista implementuje algorytm w C, a zespół testowy tworzy przypadki testowe. Certyfikacja DO-178C na poziomie DAL A (najwyższy poziom krytyczności) wymaga udokumentowania pokrycia każdej ścieżki decyzyjnej w kodzie. Dla systemu z 15 czujnikami i 200 stanami wewnętrznymi to kilkanaście tysięcy ścieżek. Ręczna analiza trwa 6 do 9 miesięcy i kosztuje około 300 do 500 tysięcy dolarów na moduł.
Z systemem autoformalizacji proces wygląda inaczej. Specyfikacja bezpieczeństwa trafia do orkiestratora, który rozdziela zadania między agenty. Jeden agent analizuje wymagania czasowe, drugi strukturę danych z czujników, trzeci logikę sterowania. System dynamicznie tworzy definicje typów dla niestandardowych struktur (na przykład bufora kołowego przechowującego ostatnie 10 odczytów z czujnika przeciążenia) i formułuje lematy pomocnicze sprawdzające ich poprawność. Następnie generuje formalny dowód, że algorytm spełnia specyfikację dla wszystkich możliwych kombinacji danych wejściowych. Wynik to maszynowo weryfikowalny dowód, który można dołączyć do dokumentacji certyfikacyjnej.
Korzyści i rachunek ekonomiczny
Przejście na formalną weryfikację z autoformalizacją zmienia ekonomikę certyfikacji na kilku poziomach. Po pierwsze, skraca czas analizy. To, co zajmowało 6 miesięcy, może zejść do 4 do 6 tygodni, przy założeniu, że inżynier bezpieczeństwa spędza większość czasu na przeglądzie wygenerowanych dowodów, a nie na ich tworzeniu.
Po drugie, eliminuje koszty poprawek wykrytych późno. Błąd logiczny znaleziony na etapie testów integracyjnych kosztuje średnio 50 do 80 tysięcy dolarów w przemyśle lotniczym, uwzględniając czas inżynierów, ponowne testy i opóźnienia w harmonogramie. Błąd znaleziony po certyfikacji to już katastrofa finansowa i wizerunkowa. System autoformalizacji znajduje błędy na etapie specyfikacji, zanim powstanie pierwsza linia kodu produkcyjnego.
Po trzecie, ułatwia recertyfikację po zmianach. Kiedy producent aktualizuje algorytm hamulcowy o nowy tryb awaryjny, system autoformalizacji może ponownie wygenerować dowody dla zmodyfikowanej specyfikacji. Regulator otrzymuje kompletny, maszynowo weryfikowalny pakiet dowodowy, co skraca proces akceptacji. FAA i EASA już sygnalizują w wytycznych z 2023 roku otwartość na formalne metody weryfikacji jako uzupełnienie tradycyjnych testów.
Ograniczenia i realia wdrożeniowe
Nie ma co ukrywać, że to nie jest technologia plug-and-play. System wymaga inżynierów, którzy rozumieją zarówno domenę bezpieczeństwa, jak i podstawy formalnej weryfikacji. Na rynku jest może kilkaset takich osób w Europie. Po drugie, autoformalizacja działa dobrze dla algorytmów sterowania i logiki decyzyjnej, ale gorzej radzi sobie z kodem niskopoziomowym, który bezpośrednio manipuluje rejestrami sprzętowymi. Tam nadal potrzebne są tradycyjne metody.
Widziałem też dwa pilotaże w branży medycznej, gdzie system nie poradził sobie z formalizacją algorytmów przetwarzania sygnałów z przetworników analogowo-cyfrowych. Szum i niedeterminizm wprowadzane przez warstwę sprzętową wymagają innego podejścia. Mimo to dla czystej logiki sterowania i maszyn stanów wyniki są solidne.
- Redukcja czasu certyfikacji z 6-9 miesięcy do 4-6 tygodni dla modułu krytycznego
- Eliminacja błędów logicznych na etapie specyfikacji, przed implementacją kodu
- Maszynowo weryfikowalne dowody akceptowalne przez regulatorów (FAA, EASA, EMA)
Informacje o artykule
Ten artykuł powstał w oparciu o paper naukowy opublikowany w serwisie arXiv.
Paper: Beyond the Library: An Agentic Framework for Autoformalizing Research Mathematics
Autorzy: Arshia Soltani Moakhar, Iman Gholami, Max Springer, Mahdi JafariRaviz, MohammadTaghi Hajiaghayi
While Large Language Models (LLMs) have demonstrated exceptional capabilities in mathematical reasoning, they frequently produce subtle errors that evade human detection. Formal mathematical languages like Lean 4 offer mechanical proof checking, strongly motivating the need for autoformalization:...
arXiv: arxiv.org/abs/2606.31134
Artykuł wygenerowany ze wsparciem sztucznej inteligencji.
