Anthropics Frontier Red Team och partnern Theorem, som arbetar med formella metoder, uppger att Claude tog fram maskinkontrollerade bevis för 239 testmål från fuzzning i 123 bibliotek med öppen källkod. Bevisen gäller vissa egenskaper kopplade till krascher och minnessäkerhet i kompilerade RISC-V-program under angivna förutsättningar. De visar inte att biblioteken är felfria i alla lägen.
9
5
Omfattningen sticker ut: enligt teamet tog arbetet några veckor och resulterade i omkring 180 miljoner rader Rocq-beviskod. Den större poängen är att AI kan göra det möjligt att använda formell verifiering på mer verklig programvara – men slutsatserna måste hållas till det som faktiskt specificerats och kontrollerats.
3
13
Vad bevisen visar
Anthropic uppger att de verifierade programmen avslutas normalt, utan minnessäkerhetsfel eller misslyckade påståenden, för varje indata som är mindre än 64 MB. Det gäller för modellerade svar från operativsystemet Linux och minneslayouter, och under de antaganden som anges i arbetet. Bevisen avser kompilerade RISC-V-program, inte en allmän garanti för varje version eller driftsättning av respektive bibliotek.
9
12
Arbetsflödet byggde på befintliga testmål från Googles OSS-Fuzz, ett projekt för fuzzning av programvara med öppen källkod. I stället för att enbart pröva många olika indata omvandlade teamet testmålen till formella specifikationer. Claude tog sedan fram bevis för hur de specificerade programmen beter sig inom hela det indataintervall som bevisen omfattar.
3
13
Anthropic beskriver projektet som ett första storskaligt försök att använda AI för formell verifiering av produktionsprogramvara på assemblernivå. Det är företagets beskrivning av vad som är nytt med arbetet, inte en historisk bedömning som oberoende har fastslagits.
7
13
Därför spelar Rocq-kontrollen roll
Claude genererade bevisen och Rocqs beviskärna kontrollerade dem. Det innebär att utvecklare inte behöver förlita sig på Claudes resonemang eller manuellt granska varje rad för att få bevisen maskinkontrollerade. Men kontrollen tar inte bort alla antaganden: satsen som bevisas måste uttrycka den egenskap utvecklarna bryr sig om, och de formella modellerna och kontrollprogrammet ingår fortfarande i grunden man måste lita på.
9
5
Anthropic och andra rapporter anger att resultatet omfattar omkring 180 miljoner rader Rocq-bevis, i genomsnitt ungefär 600 000 rader per binärfil. Den stora mängden kod speglar projektets omfattning, men antalet rader säger i sig inget om hur brett en viss egenskap gäller eller om den motsvarar behoven i en produktionsmiljö.
3
12
Vad testning kan missa
Fuzzning provar många indata, men bevisar inte på egen hand hur programmet beter sig för varje möjlig indata i ett avgränsat område. Enligt rapporter om projektet hittade och åtgärdade Claude hundratals buggar, däribland problem som hade undgått biljoner fuzzningstester. Det är uppgifter om just det här arbetet, inte en oberoende mätning av hur ofta formell verifiering överträffar testning i andra projekt.
2
11
Den praktiska slutsatsen är inte att testning bör ersättas. Formella bevis kan bidra med en annan sorts belägg: för en angiven egenskap och ett avgränsat område kan de visa att programmet beter sig på ett visst sätt för alla indata som uppfyller specifikationen – inte bara för de fall som råkade köras i tester.
9
2
”Verifierad” betyder inte ”buggfri”
Garantierna gäller utvalda testmål och specifika kompilerade program. De omfattar inte automatiskt alla funktioner i ett bibliotek, alla byggkonfigurationer, arkitekturer eller användningssätt.
9
5
Även körvillkoren är viktiga. Rapporter beskriver bevisen som begränsade till statiska RISC-V-program med en tråd, som körs i en modellerad Linuxmiljö med en fast minnesbudget. De flesta användare kör program byggda för andra arkitekturer eller konfigurationer, så resultatet ska inte tolkas som en garanti för sådana installationer.
12
27
34
Ett bevis gäller dessutom den sats som faktiskt formulerats – inte varje egenskap en utvecklare kan tänkas vilja ha. Buggar kan finnas utanför bevisets räckvidd eller i de formella modeller och kontrollsystem som resultatet bygger på.
5
31
Vad utvecklare kan ta med sig
Projektets viktigaste bidrag är belägget för att AI-stöd kan göra formell verifiering på assemblernivå praktiskt möjlig för fler verkliga program än vad som tidigare varit genomförbart utan omfattande expertinsatser. Det ger varken en allmän uppskattning av kostnaden eller någon garanti för att metoden fungerar på en viss kodbas.
7
13
En del av bevismaterialet har publicerats, men inte hela resultatet. En rapport beskriver den offentliga delen som 25 bibliotek och 60 testmål. Theorem har också presenterat OSS Verify, ett program riktat till underhållare av projekt med öppen källkod.
32
16
38
För utvecklare är nästa steg att se ett bevis som en avgränsad försäkran: kontrollera exakt vilket testmål, vilket kompilerat program, vilka antaganden och vilken egenskap det gäller. Resultaten gör LLM-assisterad formell verifiering värd att utvärdera som ett komplement till testning – inte som skäl att sluta testa eller anta att programvara är fri från buggar.
9
5