Computability and Completeness in Logics of Programs
Author(s)
Harel, David; Meyer, Albert R.; Pratt, Vaughan R.
DownloadMIT-LCS-TM-097.pdf (3.861Mb)
Metadata
Show full item recordAbstract
Dynamic logic is a generalization of first order logic in which quantifiers of the form "for all X…" are replaced by phrases of the form "after executing program α…". This logic subsumes most existing first-order logic of programs that manipulate their environment, including Floyd's and Hoare's logics of partial correctness and Manna and Waldinger's logic of total correctness, yet is more closely related to classical first-order logic than any other proposed logic of programs. We consider two issues: how hard is the validity problem for the formulae of dynamic logic, and how might one axiomatize dynamic logic? We give bounds on the validity problem for some special cases, include a π0/2-completeness result for the partial correctness theories of uninterpreted flowchart programs and a π1/1-completeness result for unrestricted dynamic logic. We also demonstrate the completeness of an axiomatization of dynamic logic relative to arithmetic.
Date issued
1978-02Series/Report no.
MIT-LCS-TM-097