Combining Mechanical and Agentic Specification Inference for Move
Dit artikel presenteert een tool voor het afleiden van specificaties voor de Move Prover die een geluidse zwakste-voorwaarde-analyse combineert met een agentische coderings-CLI om automatisch verificatiespecificaties te genereren en te verfijnen, waardoor handmatige boilerplate-code effectief wordt gereduceerd terwijl complexe eigenschappen zoals lusseninvarianten en structurele invarianten worden verwerkt.
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
Stel je voor dat je een complex huis bouwt (een stuk software genaamd een "Move smart contract"). Je wilt ervoor zorgen dat het huis veilig is: de deuren openen alleen met de juiste sleutel, het dak stort nooit in, en de bankkluis binnenin houdt het geld veilig.
Om te bewijzen dat het huis veilig is, moet je een gedetailleerd "reglement" (een specificatie genoemd) schrijven dat precies uitlegt hoe elk deel van het huis zich moet gedragen. Het handmatig schrijven van dit reglement is ontzettend tijdrovend, saai en vatbaar voor menselijke fouten. Het is alsof je probeert een juridisch contract te schrijven voor elke enkele baksteen in het huis.
Dit artikel beschrijft een nieuw hulpmiddel dat fungeert als een super-slimme bouwassistent om dit reglement automatisch te helpen schrijven. Het combineert twee zeer verschillende soorten helpers: een Stijve Robot en een Creatieve Mens.
De Twee Helpers
De Stijve Robot (Mechanische Analyse):
Denk hierbij aan een superprecieze rekenmachine. Het kijkt naar de blauwdrukken (de code) en berekent mechanisch de absolute minimumregels die nodig zijn om het huis overeind te houden. Het is uitstekend in het vinden van voor de hand liggende dingen, zoals "als je deze hendel trekt, gaat de deur open." Echter, het loopt vast bij complexe, herhalende taken (zoals een bewaker die een patrouilroute loopt). Het weet niet waarom de bewaker in cirkels loopt of wat het patroon is; het ziet alleen de beweging en raakt in de war.De Creatieve Mens (De AI-Agent):
Dit is de "Claude Code" AI. Het is goed in het begrijpen van patronen, uitdrukkingen en hoog-niveau concepten. Het kan naar die bewaker kijken en zeggen: "Ah, ik zie het! De bewaker controleert elke deur in volgorde, en het aantal gecontroleerde deuren neemt altijd toe." Het is uitstekend in het schrijven van de "loop invarianten" (de regels voor de herhalende acties) die de Robot niet kan bedenken. Maar, de AI kan soms te creatief worden op de verkeerde manier en regels verzinnen die niet echt overeenkomen met de blauwdrukken.
Hoe Ze Samenwerken
Het hulpmiddel plaatst deze twee in een lus, met gebruik van een "Model Context Protocol" (MCP) dat fungeert als een walkie-talkie-systeem dat hen verbindt met de bouwplaats.
- De Robot begint: Het scant de code en schrijft de basisfeiten op (de "Zwakste Voorwaarden"). Het zegt: "Oké, we weten dat de deur opent als je een sleutel hebt."
- De Mens vult de gaten op: De AI kijkt naar het werk van de Robot en zegt: "Ik zie hier een lus. Laat me het patroon raden: de teller gaat elke keer met één omhoog." Het voegt deze hoog-niveau regels toe.
- De Scheidsrechter controleert: De "Move Prover" fungeert als de strenge bouwinspecteur. Het neemt het gecombineerde reglement en probeert te bewijzen dat het waar is.
- Als de regels werken, prima!
- Als de regels falen (bijvoorbeeld, de AI heeft het verkeerde patroon geraden), stuurt de inspecteur een "tegenvoorbeeld" terug naar de AI.
- De Oplossing: De AI leest de opmerking van de inspecteur, beseft zijn fout en herschrijft de regel. Dit gebeurt keer op keer totdat de inspecteur tevreden is.
Wereldwijde Voorbeelden uit het Artikel
De auteurs hebben dit getest op drie soorten "huizen":
- De Zoekmachine: Een functie die zoekt naar een specifiek item in een lijst. De Robot bedacht de basislogica, maar de AI moest raden dat "het aantal tot nu toe gecontroleerde items altijd minder is dan het totale aantal items."
- Het Wiskundeprobleem: Een functie die machten berekent (zoals ). De Robot hanteerde de wiskunde, maar de lus was lastig. De AI moest een "hulpfunctie" verzinnen om het patroon van vermenigvuldiging uit te leggen, en vervolgens moest het team een speciale "bewijshint" toevoegen (zoals een cheat sheet voor de inspecteur) om te bewijzen dat de wiskunde niet zou exploderen.
- De Bankoverschrijving: Een functie die geld verdeelt tussen twee personen. Dit hield het wijzigen van de "globale staat" (de grootboek van de bank) in. De AI moest precies bijhouden hoe het geld van de ene rekening naar de andere bewoog, zodat er geen geld werd gecreëerd of vernietigd in het midden.
Waarom Dit Belangrijk Is
Voorheen was het schrijven van deze reglementen een enorme knelpunt. Het was alsof je een advocaat inhuurt om een contract te schrijven voor elke enkele spijker in een huis.
- De Robot doet de saaie, mechanische wiskunde die mensen haten te doen.
- De AI doet de patroonherkenning waar robots slecht in zijn.
- De Inspecteur zorgt ervoor dat geen van beiden liegt.
Het resultaat is een systeem waarbij een ontwikkelaar de AI kan vragen: "Schrijf de veiligheidsregels voor deze code," en de AI, geleid door de Robot en gecontroleerd door de Inspecteur, een geverifieerd, veilig reglement produceert dat veel sneller is dan een mens alleen zou kunnen.
De Conclusie
Dit is nog geen magische toverstaf die alles perfect oplost. De AI moet nog steeds worden begeleid door specifieke "vaardigheden" (instructies over hoe zich te gedragen) om kortere wegen te vermijden. Maar het vertegenwoordigt een grote stap voorwaarts: een partnerschap waarbij een machine de logica behandelt, een AI de intuïtie behandelt, en een formeel verificateur de waarheid garandeert, allemaal samenwerkend binnen de eigen programmeeromgeving van de ontwikkelaar.
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.