Tytu艂 pozycji:
Abstract Contract Synthesis and Verification in the Symbolic 饾晜 Framework
In this article, we propose a symbolic technique that can be used for automatically inferring software contracts from programs that are written in a non-trivial fragment of C, called KERNEL C, that supports pointer-based structures and heap manipulation. Starting from the semantic definition of KERNEL C in the 饾晜 semantic framework, we enrich the symbolic execution facilities recently provided by 饾晜 with novel capabilities for contract synthesis that are based on abstract subsumption. Roughly speaking, we define an abstract symbolic technique that axiomatically explains the execution of any (modifier) C function by using other (observer) routines in the same program. We implemented our technique in the automated tool KIND SPEC 2.1, which generates logical axioms that express pre- and post-condition assertions which define the precise input/output behavior of the C routines. Thanks to the integrated support for symbolic execution and deductive verification provided by 饾晜, some synthesized axioms that cannot be guaranteed to be correct by construction due to abstraction can finally be verified in our setting with little effort.
Opracowanie rekordu ze 艣rodk贸w MNiSW, umowa Nr 461252 w ramach programu "Spo艂eczna odpowiedzialno艣膰 nauki" - modu艂: Popularyzacja nauki i promocja sportu (2021).