Is 'Sometime' Sometimes Better than 'Always'. Intermittent Assertions in Proving Program Correctness.

Abstract

This paper explores a technique for proving the correctness and termination of programs simultaneously. This approach, which we call the intermittent-assertion method, involves documenting the program with assertions that must be true at some time when control is passing through the corresponding point, but that need not be true every time. The method, introduced by Burstall, promises to provide a valuable complement to the more conventional methods. The intermittent-assertion method is introduced with a number of examples of correctness and termination proofs. Some of these proofs are markedly simpler than their conventional counterparts. On the other hand, we show that a proof of correctness or termination by any of the conventional techniques can be rephrased directly as a proof using intermittent assertions. Finally, we show how the intermittent-assertion method can be applied to prove the validity of program transformations and the correctness of continuously operating programs.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 01, 1977
Accession Number
ADA042507

Entities

People

  • Richard Waldinger
  • Zohar Manna

Organizations

  • Stanford University

Tags

Communities of Interest

  • C4I
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Contracts
  • Information Processing
  • Information Systems
  • Language
  • Military Research
  • Operating Systems
  • Programming Languages
  • Sequences
  • Specifications
  • Structured Programming
  • United States
  • Universities

Fields of Study

  • Computer science

Readers

  • Mathematical Modeling and Probability Theory.
  • Systems Analysis and Design