This thesis is concerned with the development of mathematical tools for reasoning about computer programs. The approach is to design and investigate the properties of various dynamic logics with an emphasis on useful expressive power and adequate proof theory. First, rigorous definitions of the propositional and first-order dynamic logics are given, with an emphasis on the flexibility obtained by leaving unspecified the class of programs which these logics can discuss. A large portion of the result obtained to date in the investigation of dynamic logic is included and put in proper perspective. Then, a proof theory is developed based upon the idea of axiomatizing the first order dynamic logics relative to arithmetical universes. Such axiomatizations are supplied and proved arithmetically complete for the regular (flowcharts) and context-free (recursive programs) cases. The notions of diverging and failing are then introduced, with the aid of which the concept of the total correctness of a nondeterministic program is defined and the concept of a weakest precondition clarified. A detailed investigation of the properties of diverging and failing is then carried out, including the construction of arithmetically complete axiomatizations of both the regular and context-free logics obtained by supply dynamic logic with the ability to discuss diverging directly. If a termination condition, a list of zero or more objects, and a new environment; the termination condition is used to govern control flow. This uniform treatment of expressions and statements allows a simple definition of the run-time exception handling mechanism provided in CLU. The meaning of a procedure generator or iterator generator is a function that takes a list of actual parameters, a list of arguments, and an environment, and produces a result as for statement and expression evaluation. The meaning of parameters is given in terms of textual substitution. A non-parameterized routine is viewed as being a generator with an empty parameter list. The meaning of a cluster is a function that takes a list of actual cluster parameters and an operation name, and produces the meaning of that operation.
Cited By
- Paletti A How to plan an organisational strategy to manage ICTs mediated co-production Proceedings of the 19th Annual International Conference on Digital Government Research: Governance in the Data Age, (1-6)
- de Vries E and Koutavas V Reverse hoare logic Proceedings of the 9th international conference on Software engineering and formal methods, (155-171)
- Meyer A and Halpern J Axiomatic definitions of programming languages Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (203-212)
- Pratt V Dynamic algebras and the nature of induction Proceedings of the twelfth annual ACM symposium on Theory of computing, (22-28)
- Harel D Recursion in logics of programs Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (81-92)
- Greif I and Meyer A Specifying programming language semantics Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, (180-189)
Recommendations
Inductive Completeness of Logics of Programs
We propose a new approach to delineating logics of programs, based directly on inductive definition of program semantics. The ingredients are elementary and well-known, but their fusion yields a simple yet powerful approach, surprisingly overlooked for ...
Intuitionistic Trilattice Logics
We take up a suggestion by Odintsov (2009, Studia Logica, 91, 407–428) and define intuitionistic variants of certain logics arising from the trilattice SIXTEEN3 introduced in Shramko and Wansing (2005, Journal of Philosophical Logic, 34, 121–153 and ...
Nondeterminism in logics of programs
POPL '78: Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languagesWe investigate the principles underlying reasoning about nondeterministic programs, and present a logic to support this kind of reasoning. Our logic, an extension of dynamic logic ([22] and [12]), subsumes most existing first-order logics of ...