ConVer: Verifica Composizionale Guidata da LLM per Programmi C
ConVer è uno strumento di verifica progettato per programmi C estesi, che utilizza un grande modello linguistico (LLM) per generare contratti di funzione basati su un'asserzione di alto livello. Funziona all'interno di un framework CEGAR-CEGIS, alternando tra valutazioni a livello di sistema e a livello di funzione, e perfeziona i contratti attraverso l'apprendimento SMART ICE quando si verificano fallimenti. Nei test che hanno coinvolto quattro suite di benchmark, ConVer ha dimostrato un tasso di successo di verifica dell'82-96% sul benchmark Frama-C, che includeva 45 programmi C semplici su tre backend LLM. In particolare, il 93-95% dei programmi che hanno convergito ha richiesto una sola iterazione di CEGAR-CEGIS. Inoltre, sono stati condivisi risultati riguardanti il benchmark del parser X.509, affrontando l'esplosione dello spazio degli stati nel Bounded Model Checking (BMC) utilizzando un approccio di verifica top-down.
Fatti principali
- ConVer utilizza LLM per sintetizzare contratti di funzione a partire da una proprietà di sistema.
- Impiega un ciclo CEGAR-CEGIS con apprendimento SMART ICE per il perfezionamento dei contratti.
- Testato su quattro suite di benchmark, tra cui Frama-C e parser X.509.
- 82-96% di successo di verifica sul benchmark Frama-C con tre backend LLM.
- Il 93-95% dei programmi convergenti ha richiesto una sola iterazione CEGAR-CEGIS.
- Affronta l'esplosione dello spazio degli stati in BMC mediante decomposizione composizionale.
- Lo strumento è top-down, partendo dall'asserzione di livello superiore nel programma C.
- Pubblicato su arXiv con ID 2605.27051.
Entità
Istituzioni
- arXiv