Inferring specifications to detect errors in code

作者:Mana Taghdiri, Daniel Jackson

摘要

A new technique is presented to statically check a given procedure against a user-provided property. The method requires no annotations; it automatically infers a context-dependent specification for each procedure call, so that only as much information about a procedure is used as is needed to analyze its caller. Specifications are inferred iteratively. Empty specifications are initially used to over-approximate the effects of all procedure calls; these are later refined in response to spurious counterexamples. When the analysis terminates, any remaining counterexample is guaranteed to be valid. However, since the heap is finitized, the absence of a counterexample does not guarantee the validity of the given property in general.

论文关键词:Specification inference, Modular abstraction, Counterexample-guided abstraction refinement, Bounded program verification, Alloy, SAT

论文评审过程:

论文官网地址:https://doi.org/10.1007/s10515-006-0005-x