Abstract. The requirement synthesis tool RESY automatically computes environment assumptions for compositional model checking. Given a process M in a multi-process PROMELA program, an abstraction refinement loop computes a coarse equivalence relation on the states of the environment, collapsing two states if the environment of M can either force the occurrence of an error from both states or from neither state. RESY supports three different operation modes: assumption generation, compositional model checking, and front-end to the model checker SPIN. In assumption generation mode, RESY minimizes the size of the assumption; small assumptions are useful for program documentation and as certificates for re-verification. In compositional model checking mode, RESY terminates as soon as the property is proven or disproven, independently of the size of the assumption. In front-end mode, RESY terminates when the size of the assumption falls below a specified threshold, and calls SPIN with the simplified verification problem.
Requirement SynthesisRESY is a tool for the automatic synthesis of requirement automata for safety properties. Requirement automata represent the assumptions an environment makes on the behavior of a component. Typical applications include program documentation [1], where the synthesized requirements help the user to understand the interaction of the program components; program certification [2], where the synthesized requirements simplify the re-verification of the system (possibly by a different user and a different tool); and compositional model checking [3], where the requirement is synthesized and used during the same model checking run, in order to avoid the construction of the full product state space.RESY implements the requirement synthesis algorithm presented in [4]. Given a system M E, which consists of a process M and its environment E, RESY computes an equivalence relation on the states of M , collapsing two states if E can either force the occurrence of an error from both states or from nei-⋆