Das Problem: Halluzinationen im generierten Code
Large Language Models versprechen viel bei der automatisierten Softwareentwicklung, scheitern aber häufig bei der Code-Korrektheit. Besonders problematisch sind Halluzinationen — erfundene oder fehlerhafte Implementierungen, die zunächst plausibel wirken, aber nicht funktionieren.
Formal Verification bietet einen Ausweg: Statt nur Code zu generieren, sollen LLMs gleichzeitig formale Spezifikationen erstellen, die ein mathematischer Verifier überprüft. Das Problem dabei liegt in der Lücke zwischen natürlicher Sprache und präziser formaler Notation.
Der Datensatz und die Methode
Forschende präsentieren NL2VC-60, einen Datensatz mit 60 komplexen algorithmischen Problemen. Sie testen sieben Open-Weight-Modelle mit einer gestuften Prompting-Strategie:
- Kontextlose Prompts: Direkter Ansatz — führt zu systematischem Versagen
- Signature Prompts: Strukturelle Ankerpunkte, die der Verifikation Halt geben
- Self-Healing Prompts: Iteratives Feedback vom Dafny-Verifier, das Modelle zur Korrektur führt
Ein zusätzlicher Schritt: Das uDebug-Framework stellt sicher, dass Modelle nicht "vacuous verification" betreiben — also bloß triviale Spezifikationen erfinden, die technisch korrekt, aber funktional nutzlos sind.
Überraschende Ergebnisse
Die Resultate zeigen dramatische Unterschiede je nach Prompting-Methode:
- Gemma 4-31B erreicht 90,91% Verifizierungsquote
- GPT-OSS 120B springt von 0% auf 81,82% mit signature-geführtem Feedback
Das Muster ist klar: Strukturelle Hinweise und iteratives Feedback transformieren das Ergebnis vollständig. Kontextlose Prompts sind praktisch wertlos, aber sobald Modelle "Ankerpunkte" und Verifier-Rückmeldungen erhalten, werden sie zu brauchbaren Werkzeugen.
Praktische Bedeutung
Diese Arbeit zeigt, dass formale Verifikation nicht länger auf proprietäre Modelle beschränkt sein muss. Open-Weight-LLMs können mit der richtigen Struktur zuverlässigen, verifiziertem Code erzeugen — eine Voraussetzung für High-Assurance-Software in kritischen Bereichen.
Die zentrale Erkenntnis: Es geht weniger um das Modell selbst, sondern um die Architektur der Interaktion. Der iterative Dialog mit Dafny-Feedback schafft das Korrektiv, das rohe LLM-Generierung braucht.

