Affiliation:
1. University of Wisconsin-Madison, USA
2. University of Texas at Austin, USA
3. Carnegie Mellon University, USA
Abstract
Many problems in program analysis, verification, and synthesis require inferring specifications of unknown procedures. Motivated by a broad range of applications, we formulate the problem of maximal specification inference: Given a postcondition Phi and a program P calling a set of unknown procedures F_1,…,F_n, what are the most permissive specifications of procedures F_i that ensure correctness of P? In other words, we are looking for the smallest number of assumptions we need to make about the behaviours of F_i in order to prove that $P$ satisfies its postcondition. To solve this problem, we present a novel approach that utilizes a counterexample-guided inductive synthesis loop and reduces the maximal specification inference problem to multi-abduction. We formulate the novel notion of multi-abduction as a generalization of classical logical abduction and present an algorithm for solving multi-abduction problems. On the practical side, we evaluate our specification inference technique on a range of benchmarks and demonstrate its ability to synthesize specifications of kernel routines invoked by device drivers.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference52 articles.
1. Infer. http://fbinfer.com/. Infer. http://fbinfer.com/.
2. The LLVM compiler infrastructure. http://llvm.org. The LLVM compiler infrastructure. http://llvm.org.
3. Windows driver kit (WDK). https://msdn.microsoft.com/en-us/ library/windows/hardware/ff557573(v=vs.85).aspx. Windows driver kit (WDK). https://msdn.microsoft.com/en-us/ library/windows/hardware/ff557573(v=vs.85).aspx.
4. Craig Interpretation
Cited by
31 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. From Batch to Stream: Automatic Generation of Online Algorithms;Proceedings of the ACM on Programming Languages;2024-06-20
2. Quiver: Guided Abductive Inference of Separation Logic Specifications in Coq;Proceedings of the ACM on Programming Languages;2024-06-20
3. Partial program analysis for staged compilation systems;Formal Methods in System Design;2024-06-13
4. Inference of Robust Reachability Constraints;Proceedings of the ACM on Programming Languages;2024-01-05
5. Semantic Code Refactoring for Abstract Data Types;Proceedings of the ACM on Programming Languages;2024-01-05