A sharp proof rule for procedures in WP semantics (Q1104730)

From MaRDI portal





scientific article; zbMATH DE number 4056976
Language Label Description Also known as
default for all languages
No label defined
    English
    A sharp proof rule for procedures in WP semantics
    scientific article; zbMATH DE number 4056976

      Statements

      A sharp proof rule for procedures in WP semantics (English)
      0 references
      0 references
      0 references
      0 references
      1989
      0 references
      We present a proof rule for the procedure call that is sharp; that is, the precondition it defines is the weakest precondition that can be inferred solely from the procedure's specification. Thus the rule enforces exactly the abstraction introduced by the specification. If the procedure has formal parameters (`value' x, `value result' y, `result' z), and is called with corresponding actuals (a,b,c), then our rule gives a precondition for the call of \[ (\exists m\cdot U^{x,y}_{a,b}) \wedge (\forall y,z\cdot (\forall m\cdot U^{x,y}_{a,b\quad} \Rightarrow V\quad x_ a) \Rightarrow E^{b,c}_{y,z}) \] where U and V are the pre- and postcondition of the procedure, and E is the postcondition of the call. We give a simple proof of the soundness and sharpness of our rule, and present an example illustrating the non-sharpness of Gries' proof rule.
      0 references
      WP semantics
      0 references
      proof rule
      0 references
      procedure call
      0 references
      weakest precondition
      0 references
      specification
      0 references
      postcondition
      0 references
      sharpness
      0 references

      Identifiers