Automating termination analysis of probabilistic programs

Marcel Moosbrugger, Laura Kovacs
2020
Die Terminierung von Computerprogrammen zu entscheiden ist eines der ersten und berüchtigtsten Probleme der Informatik. In dieser Arbeit automatisieren wir die Terminierungsanalyse einer Klasse von probabilistischen Programmen, der Klasse sogenannter Prob-solvable loops, mithilfe von Beweisregeln basierend auf Supermartingalen. Wir konstruieren Algorithmen für almost-sure-termination, positive-almost-sure-termination, sowie für die Negationen der Konzepte. Für diesen Zweck nutzen wir
more » ... e Eigenschaften von Prob-solvable loops. Die Eigenschaften ermöglichen uns asymptotische Schranken für polynomielle Ausdrücke über Programmvariablen automatisch zu berechnen. Diese Schranken werden dann benutzt, um die Bedingungen der probabilistischen Beweisregeln, wie zum Beispiel die Bedingung für Supermartingale, zu überprüfen. Um die Negation von almost-sure-termination festzustellen, verallgemeinern wir existierende Beweisregeln, die auf repulsiven Supermartingalen basieren. Dies ermöglicht uns unbeschränkte, polynomielle Updates von Programmvariablen zu unterstützen. Die verallgemeinerte Beweisregel ist für allgemeine probabilistische Programme verwendbar und nicht nur für Prob-solvable loops. Weiters, identifizieren wir eine Subklasse von probabilistischen Programmen, für die wir einen vollständigen und korrekten Algorithmus entwickeln, welcher almost-sure-termination für Programme der Subklasse entscheidet. Unsere identifizierte Subklasse ist strikt größer als die Klasse sogenannter constant-probability-programs, welches die größte derzeit bekannte Klasse ist, für die almost-sure-termination entscheidbar ist. Wir kombinieren die entwickelten Algorithmen für die probabilistische Terminierungsanalyse in unserem neuen Softwaretool Amber. Experimentelle Ergebnisse zeigen, dass Amber probabilistische Programme handhaben kann, die unerreichbar für andere state-of-the-art Tools sind.
doi:10.34726/hss.2020.77501 fatcat:adop6b7kvbfyve3wbkg5bx57da