Anthropic’s Frontier Red Team en het bedrijf Theorem, dat gespecialiseerd is in formele verificatie, zeggen dat Claude machinecontroleerbare bewijzen opstelde voor 239 testingangen in 123 open-sourcebibliotheken. De bewijzen gaan over specifieke eigenschappen rond crashes en geheugenveiligheid van gecompileerde RISC-V-programma’s. Ze tonen niet aan dat de bibliotheken in het algemeen of in elke toepassing foutloos zijn.
9
5
De omvang van het project is opvallend: volgens het team duurde het enkele weken en leverde het ongeveer 180 miljoen regels Rocq-bewijscode op. De bredere belofte is dat AI formele verificatie mogelijk toegankelijker maakt voor echte software. Maar wat zo’n bewijs zegt, hangt af van de eigenschappen en omstandigheden die precies zijn vastgelegd en gecontroleerd.
3
13
Wat is er precies bewezen?
Anthropic zegt dat de onderzochte programma’s onder de vastgelegde aannames normaal afsluiten, zonder geheugenveiligheidsfouten of mislukte beweringen. Dat geldt voor iedere invoer kleiner dan 64 MB, en voor de gemodelleerde reacties van het Linux-besturingssysteem en de geheugenindelingen. Het gaat om gecompileerde RISC-V-programma’s, niet om een algemene garantie voor iedere versie of inzet van de bibliotheek.
9
12
De onderzoekers gebruikten bestaande testingangen uit Google OSS-Fuzz als formele specificaties. Fuzzing probeert programma’s uit met grote aantallen invoeren; Claude maakte in dit project bewijzen over het gedrag van de opgegeven binaire programma’s voor alle invoer binnen het bereik van de stelling.
3
13
Anthropic noemt het project de eerste grootschalige poging om AI in te zetten voor formele verificatie van productiesoftware op assemblyniveau. Dat is de omschrijving van het team zelf, geen onafhankelijk vastgestelde historische consensus.
7
13
Waarom de Rocq-controle ertoe doet
Claude genereerde de bewijzen; de Rocq-proofkernel controleerde ze. Ontwikkelaars hoeven dus niet op Claude’s redenering te vertrouwen of elke regel met de hand na te lopen om te weten of het bewijs mechanisch is gecontroleerd. Toch verdwijnen daarmee niet alle aannames: de stelling moet de eigenschap beschrijven die ontwikkelaars belangrijk vinden, en ook de formele modellen en de checker behoren tot de basis waarop het resultaat steunt.
9
5
Volgens Anthropic en andere verslagen telt het werk ongeveer 180 miljoen regels Rocq-bewijs, gemiddeld zo’n 600.000 regels per programma. Die aantallen geven een beeld van de omvang van het project; het aantal regels zegt op zichzelf niet hoe breed een eigenschap geldt of hoe goed die aansluit op gebruik in een productieomgeving.
3
12
Wat testen kunnen missen
Fuzzing probeert uiteenlopende invoer uit, maar bewijst op zichzelf niet wat er gebeurt bij élke mogelijke invoer binnen een bepaald bereik. Verslagen over dit project melden dat Claude honderden bugs vond en liet verhelpen, waaronder problemen die volgens de berichtgeving ondanks biljoenen fuzzing-runs waren blijven bestaan. Dat zijn gerapporteerde resultaten van dit project, geen onafhankelijke meting van hoe vaak formele verificatie testen in andere projecten zal overtreffen.
2
11
De praktische les is dus niet dat testen overbodig zijn. Formele bewijzen kunnen een ander soort zekerheid toevoegen: voor de vastgelegde eigenschap en binnen de opgegeven grenzen kunnen ze gedrag aantonen voor alle invoer die aan de specificatie voldoet, in plaats van alleen voor de gevallen die tijdens tests zijn geprobeerd.
9
2
‘Geverifieerd’ betekent niet ‘bugvrij’
De garanties gelden voor geselecteerde testingangen en specifieke gecompileerde programma’s. Ze dekken niet automatisch alle functies van een bibliotheek, alle bouwinstellingen, andere processorarchitecturen of ieder gebruik van de software.
9
5
Ook de uitvoeringsvoorwaarden doen ertoe. De verslagen beschrijven bewijzen voor statische, single-threaded RISC-V-programma’s die onder een gemodelleerde Linux-omgeving draaien, met een vast geheugenbudget. Veel software wordt in andere configuraties of voor andere architecturen gebouwd. De resultaten zijn daarom geen garantie voor zulke toepassingen.
12
27
34
Bovendien bewijst een formeel bewijs de stelling die is opgesteld — niet elke eigenschap die een ontwikkelaar zou willen. Problemen kunnen buiten de reikwijdte van die stelling vallen, of zitten in de formele modellen en de fundamenten van de bewijscontrole waarop het resultaat berust.
5
31
Wat ontwikkelaars eraan hebben
De belangrijkste bijdrage is het bewijs dat AI-assistentie formele verificatie op assemblyniveau mogelijk schaalbaarder kan maken voor echte software, zonder dat daarvoor in elk geval evenveel specialistisch handwerk nodig is. Het project biedt geen universele kostenraming en garandeert niet dat de aanpak voor elke codebasis werkt.
7
13
Een deel van de bewijzen is openbaar gemaakt. Eén verslag beschrijft die verzameling als 25 bibliotheken en 60 testingangen, dus niet als het volledige gerapporteerde project. Theorem heeft daarnaast OSS Verify aangekondigd, een programma voor beheerders van open-sourcesoftware.
32
16
38
Voor ontwikkelaars is het verstandig een bewijs te behandelen als een garantie met een afgebakende reikwijdte: controleer de precieze testingang, het gecompileerde programma, de aannames en de bewezen eigenschap. De resultaten maken AI-ondersteunde formele verificatie interessant om naast testen te beoordelen — niet om testen te stoppen of aan te nemen dat software bugvrij is.
9
5