verification

5 posts

Hat tatsächlich jemand 10.000 Zeilen mit null Defekten verifiziert? IBM hat es getan, und die Methodik ist seltsamer als das Ergebnis.

Cleanroom software engineering versprach inkrementelle Zero-Defect-Releases durch mathematical verification statt Debugging. Wir betrachten die tatsächlichen IBM-Projektdaten, um zu sehen, ob die Behauptung standhielt.

Der Branchendurchschnitt der Softwareindustrie in den 1980er Jahren lag bei 30 bis 60 Defekten pro tausend Codezeilen. Das IBM Cleanroom-Team lieferte einen…

AutoVerus verwandelt 40 Stunden Proof-Writing in 3 LLM-Calls. Der Trick ist, zu wissen, wann man aufgibt.

AutoVerus nutzt ein Netzwerk von LLM-Agents, um Verus-Correctness-Proofs für Rust-Code zu generieren und über 90% der Proof-Obligations durch eine Generate-Repair-Discharge-Schleife zu automatisieren, die vom Feedback des SMT-Solvers getrieben wird.

Der schwierigste Teil der formalen Verifikation war nie der Verifier. Es ist das Schreiben des Proofs. Gib einem erfahrenen Rust-Engineer Verus, den…

Sie können Code mit einem Model Checker verifizieren, ohne Temporal Logic zu lernen

Bounded Model Checker wie Kani und relationale Model Finder wie Alloy ermöglichen die Verifikation von Eigenschaften mit gewöhnlichen Assertions und Constraints. Sie geben Liveness-Beweise auf, dafür ist die Lernkurve auf Stunden statt Wochen gemessen.

Sie müssen keine lineare temporale Logik lernen, um einen Model Checker zu verwenden. Tools wie Kani, CBMC und Alloy ermöglichen die Verifikation von…

Man kann Rust-Code korrekt beweisen, ohne einen einzigen Beweis zu schreiben – aber der Zustandsraum ist die Rechnung

Model-Checking-Tools wie Kani erlauben es, Rust-Eigenschaften mit Assertions statt formaler Beweise zu verifizieren. Das Problem ist, was passiert, wenn deine Schleifen keine kleinen Grenzen haben.

Man kann Rust-Code korrekt beweisen, ohne einen einzigen Beweis zu schreiben. Das Tool, das das macht, heißt Model Checker, und für Rust ist der praktischste…

Tests beweisen nicht, dass zwei Funktionen �quivalent sind. Das hier schon.

N-version programming setzt voraus, dass deine Implementierungen �bereinstimmen. Wir zeigen, warum Tests nicht ausreichen, wie SMT solver tats�chlich �quivalenz beweisen k�nnen, und wo man die Grenze zwischen gut genug und formal verifiziert zieht.

Du hast ein n-version-System gebaut. Drei unabh�ngige Implementierungen derselben kritischen Funktion, ein Voter, der das Mehrheitsergebnis w�hlt, und ein…