Each language version is independently generated for its own context, not a direct translation.
Stel je voor dat je een meester-bakker bent, maar in plaats van zelf de cake te bakken, geef je een zeer slimme, maar soms wat slordige robot de instructies om een compleet bakkerijbedrijf op te zetten. En het gekke is: jij schrijft geen enkel recept. De robot doet het allemaal.
Dat is precies wat deze wetenschappelijke paper doet. De auteurs hebben een AI (een "Large Language Model" of LLM) gevraagd om een SMT-oplosser te bouwen. Dat klinkt als een ingewikkeld woord, maar laten we het zo uitleggen:
Wat is een SMT-oplosser? (De "Logische Detective")
Stel je voor dat je een enorme puzzel hebt met duizenden stukjes, waar sommige stukjes zeggen: "Als deze deur open is, moet die raam dicht zijn" en andere zeggen: "Deze sleutel past alleen in dit slot als het donker is." Een SMT-oplosser is een super-snel logisch detective die kijkt of er überhaupt een manier is om alle stukjes zo te leggen dat er geen tegenstrijdigheden ontstaan. Als het niet kan, zegt hij: "Onmogelijk!" en bewijst hij waarom.
Het Experiment: De Robot Bouwt de Detective
De onderzoekers (Mikoláš Janota en Mirek Olšák) wilden weten: Kan een AI software schrijven die zelf weer logische problemen oplost?
Ze gaven de AI een simpele opdracht: "Bouw een detective die logische puzzels oplost, maar schrijf zelf geen code."
- De AI: Gebruikte een model genaamd Claude.
- De Mensen: Schreven geen enkele regel code. Ze gaven alleen aanwijzingen, zoals "Gebruik deze grammatica" of "Kijk naar dit algoritme".
- Het Resultaat: De AI schreef een volledig werkend computerprogramma in C++.
De Strijd in de Keuken: Fouten en Oplossingen
Het ging niet allemaal van een leien dakje. De AI was slim, maar ook menselijk in zijn fouten:
- De Vergeten Basis: De AI begon met een detective die alleen keek naar de inhoud, maar vergat hoe "en" en "of" werken. De onderzoekers moesten zeggen: "Hé, vergeet niet dat 'A en B' anders is dan 'A of B'."
- De Eigen Uitvinding: De AI wilde een eigen, simpele "detective" bouwen in plaats van een bestaande, krachtige motor (CaDiCaL) te gebruiken. De onderzoekers moesten zeggen: "Gebruik die bestaande motor, die is sterker."
- De Oneindige Loop: Soms bleef de AI hangen in een puzzel die te moeilijk was. De onderzoekers moesten een "stopknop" (time-out) toevoegen, zodat de AI niet urenlang bleef rekenen aan een onmogelijke taak.
De slimme truc: Toen de AI een fout maakte, lieten de onderzoekers hem niet zelf zoeken naar de fout. Ze gaven hem een "fuzzing"-tool (een robot die duizenden willekeurige, rare puzzels gooide) en een "delta-debugging"-tool (een robot die precies zocht waar het misging). Dit hielp de AI om zijn eigen fouten veel sneller te vinden dan als hij het "met de hand" had moeten doen.
De "Diamant"-Puzzel (De Preprocessing)
Er was een specifieke soort puzzel (de "equational diamond") waar de AI eerst vastliep. Het was als een doolhof waar je alle paden moet uitproberen.
De onderzoekers gaven de AI een hint: "Kijk naar de gemeenschappelijke delen in de paden."
De AI bedacht toen een slimme truc: Preprocessing.
Stel je voor dat je een doolhof hebt. In plaats van erin te rennen, kijkt de AI eerst naar de kaart en zegt: "Ah, als je links gaat, kom je hier uit. Als je rechts gaat, kom je ook hier uit. Laten we dat als een vast punt nemen." Hierdoor werd de puzzel in een flits opgelost.
Het Bewijs: De "Lean" Certificaat
Als de detective zegt "Dit is onmogelijk", moet hij dat kunnen bewijzen. De AI moest niet alleen de oplossing vinden, maar ook een wiskundig bewijs schrijven in een taal genaamd Lean (een taal voor wiskundigen om hun werk te verifiëren).
Dit was het moeilijkste deel. De AI dacht soms dat het bewijs klaar was, terwijl het nog gaten had. De onderzoekers moesten een voorbeeld geven van een perfect bewijs. Uiteindelijk lukte het: de AI schreef een bewijs dat door een onafhankelijke controleur (Lean) als correct werd goedgekeurd.
Het Eindresultaat
Hoe goed was deze door een AI gebouwde detective?
- Hij loste 7.468 van de bekende puzzels op.
- De beroemde, door mensen gemaakte detectives (zoals Z3 en CVC5) losten er iets meer op (rond de 7.500), maar de AI-detective deed het bijna net zo goed.
- En dat allemaal zonder dat een mens ook maar één regel code had geschreven!
De Les voor de Toekomst
De conclusie is: Ja, AI kan software schrijven die zelf redeneert. Maar het is geen magische toverstaf.
- Je moet de AI sturen (met duidelijke regels).
- Je moet hem laten testen (met tools die fouten opsporen).
- Je moet waken (want kleine foutjes kunnen grote problemen veroorzaken).
Het is alsof je een zeer getalenteerde leerling hebt die alles kan leren, maar die nog steeds een strenge meester nodig heeft om te voorkomen dat hij de verkeerde deur open doet. Maar als je die begeleiding geeft, kan die leerling een meesterwerk neerzetten waar zelfs de oude meesters trots op zouden zijn.