Abstract

LCF consists of a logic for cpo’s and continuous functions, and of a corresponding calculus allowing in particular the formal verification of programs. It differs from the Hoare logic and calculus in the following points. First, the Hoare calculus was developed for a particular programming language, namely the while-programming language. LCF was developed for cpo’s and is applicable to any programming language whose semantics is denotationally described. Second, it is possible to formulate and prove total correctness in LCF as well as partial correctness. Properties like those in Examples 9.4 and 9.5 are also provable. Third, LCF does not build on the predicate logic, but instead starts from scratch. The reason is that it is necessary to consider the ω-extensions of predicates, that is, those predicates with range Bool ω , and not the ‘usual’ predicates with range Bool. For a similar reason it was not possible in Section 3.3 to build the (operational) semantics of recursive programs on the predicate logic.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call