• DocumentCode
    1397924
  • Title

    Theorem proving and software engineering

  • Author

    Jones, C.B.

  • Author_Institution
    Manchester Univ., UK
  • Volume
    3
  • Issue
    1
  • fYear
    1988
  • fDate
    1/1/1988 12:00:00 AM
  • Firstpage
    2
  • Abstract
    The author discusses the potential role of computer support for theorem proving in software engineering. There are three major approaches into which most formal methods can be divided. That which fits the normal development route most closely is to fix a specification notation but to record design by bringing in features of the implementation language. Such design steps give rise to `proof obligations´ which are sentences in a logical language; their discharge justifies the design. An alternative approach is to make the initial description a very clear, but probably hopelessly inefficient algorithm. This is transformed in a series of steps to a workable program. Each transformation step is an instance of one of a number of general rules. A few of these are universal; most have applicability conditions which again result in proof obligations. A third, newer, approach extracts algorithms from constructive proofs of the existence of a result satisfying a specification. Putting aside the difference between approaches, it is clear that each needs proofs. Software engineers of the future will use these tools (on critical applications) in the same way that engineers in other disciplines use mathematics thought too complex by the first `pragmatic´ practitioners
  • Keywords
    program verification; software engineering; specification languages; theorem proving; computer support; constructive proofs; formal methods; implementation language; logical language; software engineering; specification notation; theorem proving;
  • fLanguage
    English
  • Journal_Title
    Software Engineering Journal
  • Publisher
    iet
  • ISSN
    0268-6961
  • Type

    jour

  • Filename
    6883