English

Deductive Verification of Programs with Underspecified Semantics by Model Extraction

Programming Languages 2022-02-14 v2 Logic in Computer Science

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.

Keywords

Cite

@article{arxiv.2110.01964,
  title  = {Deductive Verification of Programs with Underspecified Semantics by Model Extraction},
  author = {Eduard Kamburjan and Nathan Wasser},
  journal= {arXiv preprint arXiv:2110.01964},
  year   = {2022}
}
R2 v1 2026-06-24T06:37:55.632Z