VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus

VeriStruct is een nieuw framework dat AI-assistentie uitbreidt naar het geautomatiseerde verifiëren van complexe datastructuurmodules in Verus door een planner te gebruiken voor het genereren van specificaties en een reparatiestap voor syntaxisfouten, wat resulteerde in een succesvolle verificatie van 99,2% van de geteste functies.

Chuyue Sun, Yican Sun, Daneshvar Amrollahi, Ethan Zhang, Shuvendu Lahiri, Shan Lu, David Dill, Clark Barrett

Gepubliceerd 2026-03-04
📖 5 min leestijd🧠 Diepgaand

Each language version is independently generated for its own context, not a direct translation.

Stel je voor dat je een gigantische, complexe machine bouwt – bijvoorbeeld een robot die auto's repareert. Je wilt er 100% zeker van zijn dat deze robot nooit een fout maakt, geen bouten loslaat en geen mensen verwondt.

In de programmeerwereld noemen we dit verificatie: het wiskundig bewijzen dat code perfect werkt. Het probleem is dat dit normaal gesproken extreem moeilijk is. Het is alsof je elke schroef, elk tandwiel en elke stroomdraad in die robot met de hand moet controleren en een officieel certificaat moet schrijven. Dat kost jaren tijd en vereist supermenselijke expertise.

Nu komen er AI's (zoals de chatbots die je misschien kent) die kunnen programmeren. Dat is geweldig, want ze werken razendsnel. Maar ze maken ook fouten. Soms schrijven ze code die er goed uitziet, maar die in het echt crasht of veiligheidsrisico's bevat.

Hier komt VeriStruct om de hoek kijken. Het is een slimme "AI-assistent" die twee taken combineert:

  1. Het laat een AI de code schrijven (of controleren).
  2. Het laat een andere AI direct bewijzen dat die code veilig is, en repareert het direct als er een foutje in zit.

De Grote Uitdaging: Van Simpel naar Complex

Vroeger konden AI's alleen simpele taken bewijzen, zoals "een functie die twee getallen optelt". Maar echte software bestaat uit datastructuren – complexe verzamelingen zoals een rij wachtenden, een boom van bestanden of een ringbuffer (een soort draaiend opslagvakje).

Het bewijzen van deze complexe systemen is als het bewijzen van een heel gebouw, niet alleen één kamer. Je moet niet alleen kijken of de muren recht staan, maar ook of de fundering (de type invariant) stevig is en of de plattegrond (de abstractie) klopt.

Hoe werkt VeriStruct? (De Bouwmeester)

VeriStruct werkt als een super-georganiseerde bouwmeester met een team van gespecialiseerde AI's. Hier is hoe het proces eruit ziet, vertaald naar alledaagse termen:

1. De Plannera (De Chef)

Eerst kijkt de "Planner" naar de code en denkt na: "Wat hebben we hier nodig?"

  • Moeten we een View maken? (Een abstracte tekening van hoe de data eruit ziet, zonder de rommelige details).
  • Moeten we een Type Invariant maken? (Een regel die altijd waar moet zijn, zoals "de deur mag nooit open zijn als er iemand binnen is").
  • Moeten we Specificaties schrijven? (Regels voor wat de code mag doen en wat het moet opleveren).

De Planner schakelt alleen de juiste AI's in. Hij wast geen auto als je alleen een band wilt vervangen. Dit bespaart tijd en voorkomt verwarring.

2. De Tekenaars (De Generatie)

De gespecialiseerde AI's gaan aan het werk. Ze proberen de wiskundige regels te schrijven die nodig zijn om de code te bewijzen.

  • Het probleem: AI's zijn vaak niet goed in de specifieke taal van Verus (de taal waarin deze bewijzen worden geschreven). Ze gebruiken soms de verkeerde woorden of vergeten regels.
  • De oplossing: VeriStruct geeft de AI's een "spiekbriefje" (prompt) met strikte regels en voorbeelden, zodat ze niet in de valkuilen lopen.

3. De Inspecteur en de Reparateur (De Reparaties)

Stel, de AI heeft een bewijs geschreven. De Verus-verifier (de strenge inspecteur) kijkt er naar en zegt: "Fout! Je hebt een verkeerde deur gebruikt."
In het verleden zou je dan alles moeten gooien en opnieuw beginnen. VeriStruct doet iets slimmers:

  • Het pakt de fout op.
  • Het stuurt het naar een Reparatie-module die precies weet hoe dit soort fouten op te lossen.
  • De AI krijgt de foutmelding, leest de "spiekbriefjes" opnieuw en probeert het bewijs te repareren.

Dit proces (schrijven -> controleren -> repareren) herhaalt zich totdat de inspecteur tevreden is. Het is alsof je een puzzel legt, en als een stukje niet past, niet de hele puzzel weggooit, maar gewoon dat ene stukje vervangt tot het klopt.

Het Resultaat: Een Wonderbaarlijke Prestatie

De onderzoekers hebben VeriStruct getest op 11 complexe datastructuren (zoals een ringbuffer, een boomstructuur en een beveiligde slot).

  • Zonder VeriStruct: Een simpele AI probeerde het. Hij slaagde er maar in om 4 van de 11 systemen te bewijzen.
  • Met VeriStruct: Het systeem slaagde erin om 10 van de 11 systemen volledig te bewijzen.
  • De cijfers: Van de 129 kleine onderdelen (functies) die bewezen moesten worden, lukte het om 128 te bewijzen (99,2%!).

Waarom is dit belangrijk?

Stel je voor dat we in de toekomst AI's gebruiken om de software te schrijven die onze ziekenhuizen, vliegtuigen of banken bestuurt. We kunnen niet zomaar hopen dat het goed gaat. We moeten het bewijzen.

VeriStruct toont aan dat we AI's niet alleen kunnen gebruiken om code te schrijven, maar ook om die code direct te verifiëren. Het maakt het mogelijk om grote, complexe bibliotheken met bewezen code te bouwen, zodat ontwikkelaars daarop kunnen bouwen zonder bang te hoeven zijn voor verborgen fouten.

Kortom: VeriStruct is de brug tussen de snelle, creatieve kracht van AI en de strenge, onverbiddelijke zekerheid van wiskundige bewijzen. Het zorgt ervoor dat we niet alleen sneller bouwen, maar ook veiliger.

Ontvang papers zoals deze in je inbox

Gepersonaliseerde dagelijkse of wekelijkse digests op basis van jouw interesses. Gists of technische samenvattingen, in jouw taal.

Probeer Digest →