Proving total correctness of recursive procedures (Q913478)

From MaRDI portal
scientific article
Language Label Description Also known as
English
Proving total correctness of recursive procedures
scientific article

    Statements

    Proving total correctness of recursive procedures (English)
    0 references
    0 references
    0 references
    1990
    0 references
    Research in formalisation of program correctness has come up with various programming logics, e.g. Hoare logic, dynamic logic and temporal logic. These logics have been conceived to prove partial/total correctness of programs. To achieve this goal a proof system, i.e. a set of axioms along with some deduction rules, is to set up to reason about total correctness. A proof system being a formal logic system is considered feasible, if it is both sound and complete. Soundness guarantees that the proof system really describes the program in question; completeness entails that only valid correctness formulas can be derived. There are several proof systems that fail to observe either soundness of completeness when applied to prove total correctness of recursive procedures. The authors point out that the rules for this proof interact with rules set up to formalise invariance properties of ordinary procedure calls. They develop a proof system to separate the interpretations of these two program constructs and show that both sound- and completeness emerge quite naturally. The methods are first applied to a Hoare-style proof system, but are in turn used to modify a proof system based on dynamic logic to yield the same results. Their proof systems give way to simpler rules for recursive procedures without artificial extension to the programming language examined.
    0 references
    0 references
    program correctness
    0 references
    Hoare logic
    0 references
    proof system
    0 references
    recursive procedures
    0 references