• Media type: E-Article
  • Title: Abstract Contract Synthesis and Verification in the Symbolic š¯•‚ Framework
  • Contributor: Alpuente, MarĆ­a; Pardo, Daniel; Villanueva, Alicia
  • Published: IOS Press, 2020
  • Published in: Fundamenta Informaticae, 177 (2020) 3-4, Seite 235-273
  • Language: Not determined
  • DOI: 10.3233/fi-2020-1989
  • ISSN: 0169-2968; 1875-8681
  • Keywords: Computational Theory and Mathematics ; Information Systems ; Algebra and Number Theory ; Theoretical Computer Science
  • Origination:
  • Footnote:
  • Description: 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 KERNELC, that supports pointer-based structures and heap manipulation. Starting from the semantic definition of KERNELC 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 KINDSPEC 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.