← Nieuwste papers
🤖 AI

Neural Theorem Proving for Verification Conditions: A Real-World Benchmark

Dit artikel introduceert NTP4VC, de eerste real-world meertalige benchmark voor neurale stellingbewijzing van verificatievoorwaarden afgeleid van industriële projecten zoals Linux en Contiki-OS, wat zowel het potentieel als de huidige beperkingen van grote taalmodellen bij het automatiseren van programmaverificatie onthult.

Oorspronkelijke auteurs: Qiyuan Xu, Xiaokun Luan, Renxi Wang, Joshua Ong Jun Leang, Peixin Wang, Haonan Li, Wenda Li, Conrad Watt

Gepubliceerd 2026-01-29
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Qiyuan Xu, Xiaokun Luan, Renxi Wang, Joshua Ong Jun Leang, Peixin Wang, Haonan Li, Wenda Li, Conrad Watt

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Het Grote Plaatje: De "Bewijs-Bottleneck"

Stel je voor dat je een enorme, complexe machine bouwt (zoals een automotor of een besturingssysteem van een computer). Je wilt 100% zeker weten dat hij niet ontploft of kapotgaat wanneer je de sleutel omdraait. In de wereld van software wordt dit Programmaverificatie genoemd.

Om dit te doen, veranderen wiskundigen en informatici de code in een gigantische, complexe logische puzzel. Ze vragen: "Als ik deze machine deze inputs geef, zal hij zich dan altijd precies gedragen zoals beloofd?"

Het paper richt zich op een specifieke, pijnlijke stap in dit proces: het genereren van Verification Conditions (VC's). Zie een VC als een specifieke, hoogwaardige wiskundige puzzel die de computer moet oplossen om te bewijzen dat de code veilig is.

Het Probleem:
Momenteel zijn computers erg slecht in het zelfstandig oplossen van deze specifieke wiskundige problemen. Ze zijn als een briljante schaker die een puzzel in 10 seconden kan oplossen, maar als je ze een iets andere, real-world puzzel geeft, lopen ze vast.
Omdat computers vastlopen, moeten menselijke experts ingrijpen om handmatig de oplossing te schrijven. Dit is traag, duur en voorkomt dat bedrijven deze veiligheidscontroles op alles kunnen toepassen.

Het Nieuwe Idee: AI Leren Om de Puzzels Op te Lossen

De auteurs vragen zich af: "Kunnen we Kunstmatige Intelligentie (specifiek Large Language Models of LLM's) leren om deze logische puzzels automatisch op te lossen?"

Dit vakgebied wordt Neural Theorem Proving (NTP) genoemd. Het is alsoals het trainen van een robot om een wiskundige te worden. Hoewel deze robots erg goed zijn geworden in het oplossen van abstracte wiskundige wedstrijdproblemen (zoals de Putnam-competitie), wist niemand of ze ook de rommelige, real-world logische puzzels konden aanpakken die voortkomen uit echte softwarecode.

De Oplossing: Een "Gym" Bouwen voor AI (De Benchmark)

Om te testen of AI dit kan, hebben de onderzoekers een nieuwe "gym" (een benchmark-dataset) gebouwd genaamd NTP4VC.

1. Waar kwamen de puzzels vandaan?
In plaats van nep-puzzels te verzinnen, gingen ze naar echte, industriële projecten. Ze bekeken de broncode van beroemde systemen zoals de Linux Kernel (het brein van je computer), Contiki-OS (gebruikt in kleine internetapparaten) en diverse C-libraries.

2. Hoe kwamen ze aan de puzzels?
Ze gebruikten een "vertaler"-pipeline.

  • Stap 1: Ze namen de echte code en haalden deze door industriële tools (zoals Frama-C en Why3) die automatisch de logische puzzels (VC's) genereren.
  • Stap 2: Omdat de AI-modellen verschillende "talen" spreken (Isabelle, Lean, Rocq), bouwden ze een enorme bibliotheek van 800+ door experts geschreven regels om deze puzzels vanuit de industriële tools te vertalen naar de talen die de AI begrijpt.
  • Cruciaal detail: Ze hebben de puzzels niet simpelweg gekopieerd. De originele puzzels waren te makkelijk omdat menselijke ingenieurs al "hints" (annotaties) hadden toegevoegd om de computers te helpen. De onderzoekers verwijderden deze hints om de puzzels moeilijker te maken, wat een echte test vormt voor het vermogen van de AI.

3. De Dataset:
Ze creëerden een set van 600 uitdagende puzzels, verdeeld in twee groepen:

  • "Pearls of Programs": Klassieke, moeilijke algoritmische puzzels (zoals het sorteren van data of het beheren van geheugenbomen).
  • "Real C Verification": Puzzels geëxtraheerd uit werkelijke, rommelige industriële code (zoals een geheugenallocator of een gelinkte lijst).

Het Experiment: Wie Won de Race?

De onderzoekers lieten de beste AI-modellen strijden tegen de beste traditionele computeralgoritmen (genaamd "Hammer" provers) in deze nieuwe gym.

De Resultaten:

  • De AI-modellen (LLM's): Ze worstelden zwaar. Zelfs de slimste modellen losten slechts ongeveer 2% tot 5% van de puzzels op hun eerste poging op.
  • De Traditionele Solvers (Hammer): Deze ouderwetse, gespecialiseerde tools deden het veel beter en losten ongeveer 18% tot 27% van de puzzels op.
  • De Kloof: De AI-modellen waren aanzienlijk slechter dan de traditionele tools.

Waarom Faalde de AI? (De Autopsie)

De onderzoekers keken naar waarom de AI faalde en vonden drie hoofdoorzaken, gebruikmakend van enkele sterke metaforen:

  1. Syntactische Fouten (Het "Typo"-probleem):
    De logische puzzels zijn extreem lang en genest, zoals een zin met 50 haakjes. De AI vergat steeds een haakje te sluiten of voegde er een teveel toe. Het was alsof een student de wiskunde wel kent, maar steeds fouten maakt in het handschrift, waardoor de docent het antwoord niet kan lezen.
  • Statistiek: Meer dan 24% van de AI-pogingen faalden enkel door deze syntactische fouten.
  1. Semantische Verwarring (Het "Imposter"-probleem):
    De AI schreef code die weliswaar op een bewijs leek, maar eigenlijk niets deed. Het herhaalde dezelfde stap keer op keer ("Ik heb een feit, dus ik heb een feit...") of gebruikte de verkeerde logica (zoals een hamer gebruiken om een schroef aan te draaien). Het hallucineerde een oplossing zonder de regels van het spel te begrijpen.
  • Statistiek: Meer dan 64% van de pogingen door een van de topmodellen verviel in dit repetitieve onzinverhaal.
  1. Hallucinaties (Het "Fake Fact"-probleem):
    De AI verzon gereedschappen of feiten die niet bestonden. Het zei bijvoorbeeld: "Ik zal de why3 tactiek gebruiken om dit op te lossen," terwijl die tactiek niet bestaat in de taal die het sprak. Het was alsocht een student die zegt: "Ik heb de toverstaf van de calculus gebruikt," terwijl dat helemaal niet bestaat.
  • Statistiek: Ongeveer 9% van de fouten was te wijten aan het verzinnen van niet-bestaande tools.

De Conclusie

Het paper concludeert dat hoewel AI enorme stappen heeft gezet in wiskundige wedstrijden, het nog niet klaar is om menselijke experts te vervangen bij het verifiëren van real-world software.

De "gym" die zij hebben gebouwd (NTP4VC) laat zien dat er een enorme kloof is tussen wat AI vandaag de dag kan en wat nodig is om softwareverificatie volledig automatisch te maken. De AI moet veel beter worden in:

  1. Het volgen van strikte syntactische regels (geen typofouten).
  2. Het begrijpen van de diepe logica van industriële code (niet alleen abstracte wiskunde).
  3. Het geworteld blijven in de realiteit (geen feiten verzinnen).

Tot die tijd blijft de "human-in-the-loop" (de expert die de hints schrijft) essentieel om onze software veilig te houden.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →