Diese Arbeit untersucht die Integration von zwei etablierten Spezifikationsmustern in den Rust-Verifizierer Creusot: Typinvarianten und Ghostcode.
Typinvarianten ermöglichen es dem Benutzer, Datentypen mit logischen Prädikaten zu versehen, die Creusot für alle Werte eines Typs durchsetzt.
Ghostcode ermöglicht Hilfskonstrukte, die die Verifikation unterstützen, ohne das Laufzeitverhalten des Programms zu beeinflussen.
Insbesondere in Kombination erhöhen diese Muster die Ausdruckskraft von Spezifikationen und gewährleisten die Skalierbarkeit der Rust-Verifikation.
Wir stellen ein innovatives Framework für Typinvarianten vor, einschließlich dessen Implementierung in Creusot.
Darüber hinaus analysieren wir die derzeitige Implementierung von Ghost Code in Creusot, identifizieren Soundness-Mängel und stellen Verfeinerungen vor, um diese zu beheben.
Unsere Evaluierung zeigt, dass diese Erweiterungen nicht nur präzisere Programmspezifikationen ermöglichen, sondern auch eine robuste Verifizierbarkeit gewährleisten.
«
Diese Arbeit untersucht die Integration von zwei etablierten Spezifikationsmustern in den Rust-Verifizierer Creusot: Typinvarianten und Ghostcode.
Typinvarianten ermöglichen es dem Benutzer, Datentypen mit logischen Prädikaten zu versehen, die Creusot für alle Werte eines Typs durchsetzt.
Ghostcode ermöglicht Hilfskonstrukte, die die Verifikation unterstützen, ohne das Laufzeitverhalten des Programms zu beeinflussen.
Insbesondere in Kombination erhöhen diese Muster die Ausdruckskraft von Spez...
»