A Demonic Outcome Logic for Randomized Nondeterminism

Noam Zilberstein, Dexter Kozen, Alexandra Silva, Joseph Tassarotti

Research output: Contribution to journalArticlepeer-review

Abstract

Programs increasingly rely on randomization in applications such as cryptography and machine learning. Analyzing randomized programs has been a fruitful research direction, but there is a gap when programs also exploit nondeterminism (for concurrency, efficiency, or algorithmic design). In this paper, we introduce Demonic Outcome Logic for reasoning about programs that exploit both randomization and nondeterminism. The logic includes several novel features, such as reasoning about multiple executions in tandem and manipulating pre- and postconditions using familiar equational laws - including the distributive law of probabilistic choices over nondeterministic ones. We also give rules for loops that both establish termination and quantify the distribution of final outcomes from a single premise. We illustrate the reasoning capabilities of Demonic Outcome Logic through several case studies, including the Monty Hall problem, an adversarial protocol for simulating fair coins, and a heuristic based probabilistic SAT solver.

Original languageEnglish (US)
Article number19
JournalProceedings of the ACM on Programming Languages
Volume9
DOIs
StatePublished - Jan 7 2025

Keywords

  • Demonic Nondeterminism
  • Probabilistic Programming
  • Program Logics

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'A Demonic Outcome Logic for Randomized Nondeterminism'. Together they form a unique fingerprint.

Cite this