arXiv · 2110.01964
Deductive Verification of Programs with Underspecified Semantics by Model Extraction
Abstract
We present a novel and well automatable approach to formal verification of programs with underspecified semantics, i.e., a language semantics that leaves open the order of certain evaluations. First, we reduce this problem to non-determinism of distributed systems, automatically extracting a distributed Active Object model from underspecified, sequential C code. This translation process provides a fully formal semantics for the considered C subset. In the extracted model every non-deterministic choice corresponds to one possible evaluation order. This step also automatically translates specifications in the ANSI/ISO C Specification Language (ACSL) into method contracts and object invariants for Active Objects. We then perform verification on the specified Active Objects model. For this we have implemented a theorem prover Crowbar based on the Behavioral Program Logic (BPL), which verifies the extracted model with respect to the translated specification and ensures the original property of the C code for all possible evaluation orders. By using model extraction, we can use standard tools, without designing a new complex program logic to deal with underspecification. The case study used is highly underspecified and cannot be verified with existing tools for C.
Explore related subjects
Keep this discovery
Eduard Kamburjan, Nathan Wasser. 2021-10-05. Deductive Verification of Programs with Underspecified Semantics by Model Extraction. https://arxiv.org/abs/2110.01964
Cite the original work for its findings. Save a collection to share your selection of sources.