Skinny and fleshy failures of relative completeness

  • Authors:
  • D. Leivant;T. Fernando

  • Affiliations:
  • Carnegie-Mellon;Stanford

  • Venue:
  • POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

The notion of relative completeness of logics of programs was delineated almost ten years ago, in particular by Wand, Cook and Clarke. More recently, it has been felt that Cook's notion hinges on a fragile balance between the semantics of a programming language and first-order expressiveness in structures. This fragility underlies the negative results about relative completeness.The main negative result in this area, Clarke's Theorem, states that for a programming language with a sufficiently rich control structure there is no effective formalism for partial-correctness that is both sound and relatively complete (in the sense of Cook). A conclusion often drawn from this result is that the non-existence of an adequate Cook-complete formalization of the partial-correctness theory of a programming language is an indicator of the complexity of that language. Our most novel result is that this is not always the case. We exhibit a programming language whose control structure is trivial, and yet for which no Cook-complete Hoare logic exists. The poverty of the language is precisely what permits certain structures to be expressive, structures which would not be expressive had the program constructs been used more freely.We also discuss the failure of relative completeness for “fleshy” programming languages, of the kind of Clarke's. We point out the relevance of the Lambda Calculus here, from which we derive the failure of Cook-completeness for a programming language orthogonal (i.e. incomparable) to Clarke's, whose control-structure complexity resides to a great extent in a modest use of generic procedures. A variant of the same idea also provides an alternative proof of non-relative-completeness for (a variant of) Clarke's language.Finally, we note in passing a simple proof of Wand's Theorem, which states the failure of local completeness (without Cook's expressiveness condition) for while programs. Our proof uses rudimentary facts from Mathematical Logic. Its interest, compared with previous proofs [Wan78, BT82, Apt81] is that it refers to a structure whose first-order theory is not decidable. Moreover, our proof shows that the failure of local completeness for while programs is not necessarily due to a tension between first-order definability and definability by program looping, as one might have been tempted to conclude from previous proofs.