Core Concepts
Outcome Separation Logic (OSL) ist eine Programm-Logik, die lokales Schließen sowohl für Korrektheit als auch für Inkorrektheit in Programmen mit verschiedenen Effekten ermöglicht. OSL erweitert die Prinzipien der Separation Logic um eine neue Semantik, die mit einer Vielzahl von Ausführungsmodellen wie Nichtdeterminismus und Wahrscheinlichkeit kompatibel ist.
Abstract
Die Arbeit präsentiert Outcome Separation Logic (OSL), eine Erweiterung der kürzlich eingeführten Outcome Logic (OL), um lokales Schließen in Programmen mit Zeigern zu ermöglichen. Während OL bereits Korrektheit und Inkorrektheit in Programmen mit verschiedenen Effekten unterstützt, ist die Neuheit von OSL, dass es auf Separation-Logic-artigen Heap-Zusicherungen basiert, was die Entwicklung einer Frame-Regel für lokales Schließen und kompositionelle symbolische Ausführung ermöglicht.
Die Autoren zeigen, dass die Soundness der Frame-Regel komplex und nuanciert ist, selbst in der partiellen Korrektheit der Hoare-Logik. Der Übergang zu einer Logik, die eine Vielzahl von Zusicherungen über Terminierung, Erreichbarkeit und probabilistische Schlüsse unterstützt, verkompliziert die Situation erheblich. OSL ist die erste Programm-Logik, die lokales Schließen sowohl für Korrektheit als auch für Inkorrektheit unterstützt und gleichzeitig Unter-Approximation von Programmpfaden ermöglicht.
Als Machbarkeitsbeweis für die Konsolidierung von Korrektheit und Inkorrektheit in der Analyse präsentieren die Autoren symbolische Ausführungsalgorithmen, die auf Bi-Abduktion basieren. Der Kernalgorithmus findet alle erreichbaren Ergebnisse und ist daher auf Korrektheit ausgerichtet. Es wird auch eine Single-Path-Variante definiert, die dem Incorrectness Logic-basierten Bug-Finding-Ansatz ähnelt und Spezifikationen ableitet, in denen die Nachbedingung nur eines der (möglicherweise vielen) Ergebnisse ist. Um mit Verzweigungen umzugehen, die durch Effekte wie Nichtdeterminismus oder Wahrscheinlichkeit entstehen, führen die Autoren auch Tri-Abduktion ein, eine neue Form der Inferenz zum Komponieren von Verzweigungen in einem effektbehafteten Programm.
Stats
Es gibt keine spezifischen Metriken oder Zahlen in diesem Artikel, die extrahiert werden müssen.
Quotes
Es gibt keine bemerkenswerten Zitate in diesem Artikel, die extrahiert werden müssen.