Rust und Z3: Programme ohne Schleifen automatisch synthetisieren
Synthesizing Loop-Free Programs with Rust and Z3 (2020)
Programmsynthese sucht automatisch einen Code, der eine gegebene Spezifikation erfüllt. Der Blogbeitrag erklärt die komponentenbasierte Synthese schleifenfreier Programme nach Gulwani et al. und setzt sie in Rust mit dem Z3-Solver um. Als Beispiel dient das Isolieren des rechtesten Null-Bits mit nur drei Bitoperationen. Der Autor zeigt die Formalisierung als Exists-Forall-Problem und den CEGIS-Ansatz, kämpft aber mit Performance-Problemen bei schwierigen Benchmarks.
Für einige der schwierigeren Benchmark-Probleme findet der Synthesizer nicht einmal eine Lösung, bevor meine Geduld aufgebraucht ist.