Derivation of Invariant Assertions During Program Development by Transformation

Manfred Broy, Bernd Krieg-Bruckner

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

Abstract

Two approaches to the development of efficient and correct iterative programs are contrasted: the construction of an iterative program and a proof of its correctness using invariant assertions of loops, and the construction and proof of a recursive program with a subsequent transformation into an iterative version by schematically applying suitable recursion removal rules. The connection between the approaches is demonstrated by augmenting such transformation rules by inductive assertions. It is argued that the latter approach to program development is superior since the correctness proof of a recursive program is easier in most cases. Considerable verification overhead can be avoided this way, in particular, some difficulties with the interaction of successive loops and their associated invariants.

Original languageEnglish
Pages (from-to)321-337
Number of pages17
JournalACM Transactions on Programming Languages and Systems (TOPLAS)
Volume2
Issue number3
DOIs
StatePublished - 1 Jul 1980

Keywords

  • assertions
  • invariants
  • iteration
  • program development
  • program transformations
  • recursion
  • recursion removal
  • specification
  • verification

Fingerprint

Dive into the research topics of 'Derivation of Invariant Assertions During Program Development by Transformation'. Together they form a unique fingerprint.

Cite this