Improving the usability of specification languages and methods for annotation-based verification

  • Authors:
  • Bernhard Beckert;Thorsten Bormer;Vladimir Klebanov

  • Affiliations:
  • Institute for Theoretical Computer Science, Karlsruhe Institute of Technology, Germany;Institute for Theoretical Computer Science, Karlsruhe Institute of Technology, Germany;Institute for Theoretical Computer Science, Karlsruhe Institute of Technology, Germany

  • Venue:
  • FMCO'10 Proceedings of the 9th international conference on Formal Methods for Components and Objects
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is widely recognized that human input is indispensable in deductive verification of real-world code. Verification engineers have to guide the proof search and provide information reflecting their insight into the workings of the program. Lately we have seen a shift towards an annotation-based paradigm --- sometimes called "verifying compiler" ---, where this information is provided in the form of program annotations instead of interactively during proof construction. Suspicions have been growing recently that expressing verification knowledge as annotations in their current form suffers from serious scalability and maintainability issues. In this paper, we pinpoint some of the biggest neuralgic spots and provide recommendations to the designers of annotation-based verification systems aimed to improve usability of specification languages and methods and, thus, the tool's productivity. We clarify the different purposes that annotations can serve and show why a certain class of annotations that are not program requirements is currently indispensable for proof construction. Moreover, we discuss how the use of data abstractions can be improved in annotation-based specifications.