paperbot · PL 论文追踪

RSS

LOUD: Synthesizing Strongest and Weakest Specifications

OOPSLA 9(OOPSLA1)2025
Kanghee Park, Xuanyu Peng, Loris D'Antoni

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

This paper tackles the problem of synthesizing specifications for nondeterministic programs. For such programs, useful specifications can capture demonic properties, which hold for every nondeterministic execution, but also angelic properties, which hold for some nondeterministic execution. We build on top of a recently proposed spyro framework in which given ( i ) a quantifier-free query Ψ posed about a set of function definitions (i.e., the behavior for which we want to generate a specification), and ( ii ) a language ℒ in which each extracted property is to be expressed (we call properties in the language ℒ-properties), the goal is to synthesize a conjunction ∧ 𝑖 𝜑 𝑖 of ℒ-properties such that each of the 𝜑 𝑖 is a strongest ℒ -consequence for Ψ: 𝜑 𝑖 is an overapproximation of Ψ and there is no other ℒ-property that over-approximates Ψ and is strictly more precise than 𝜑 𝑖 . This framework does not apply to nondeterministic programs for two reasons: it does not support existential quantifiers in queries (which are necessary to expressing nondeterminism) and it can only compute ℒ-consequences, i.e., it is unsuitable for capturing both angelic and demonic properties. This paper addresses these two limitations and presents a framework, loud , for synthesizing both strongest ℒ -consequences and weakest ℒ -implicants (i.e., under-approximations of the query Ψ) for queries that can involve existential quantifiers . We devise algorithms for handling the quantifiers appearing in loud queries and implement them in a solver, aspire , for problems expressed in loud which can be used to describe and identify sources of bugs in both deterministic and nondeterministic programs, extract properties from concurrent programs, and synthesize winning strategies in two-player games.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot3214,
  title = {LOUD: Synthesizing Strongest and Weakest Specifications},
  author = {Kanghee Park and Xuanyu Peng and Loris D'Antoni},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA1},
  year = {2025},
  doi = {10.1145/3720470}
}