Correct code containing containers

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

For critical software development, containers such as lists, vectors, sets or maps are an attractive alternative to ad-hoc data structures based on pointers. As standards like DO-178C put formal verification and testing on an equal footing, it is important to give users the ability to apply both to the verification of code using containers. In this paper, we present a definition of containers whose aim is to facilitate their use in certified software, using modern proof technology and novel specification languages. Correct usage of containers and user-provided correctness properties can be checked either by execution during testing or by formal proof with an automatic prover. We present a formal semantics for containers and an axiomatization of this semantics targeted at automatic provers. We have proved in Coq that the formal semantics is consistent and that the axiomatization thereof is correct.

Original languageEnglish
Title of host publicationTests and Proofs - 5th International Conference, TAP 2011, Proceedings
Pages102-118
Number of pages17
DOIs
Publication statusPublished - 18 Jul 2011
Event5th International Conference on Tests and Proofs, TAP 2011 - Zurich, Switzerland
Duration: 30 Jun 20111 Jul 2011

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6706 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference5th International Conference on Tests and Proofs, TAP 2011
Country/TerritorySwitzerland
CityZurich
Period30/06/111/07/11

Keywords

  • API usage verification
  • Containers
  • SMT
  • annotations
  • automatic provers
  • axiomatization
  • iterators
  • verification by contracts

Fingerprint

Dive into the research topics of 'Correct code containing containers'. Together they form a unique fingerprint.

Cite this