Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
A Discipline of Programming
A complete axiomatic system for proving deductions about recursive programs
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Computability and completeness in logics of programs (Preliminary Report)
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Propositional modal logic of programs
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Second-order mathematical theory of computation
STOC '70 Proceedings of the second annual ACM symposium on Theory of computing
ICSE '76 Proceedings of the 2nd international conference on Software engineering
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algebraic approaches to nondeterminism—an overview
ACM Computing Surveys (CSUR)
Specifying the Semantics of while Programs: A Tutorial and Critique of a Paper by Hoare and Lauer
ACM Transactions on Programming Languages and Systems (TOPLAS)
"Sometime" is sometimes "not never": on the temporal logic of programs
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A dynamic logic of multiprocessing with incomplete information
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Recursion in logics of programs
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Process logic: preliminary report
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Specifying programming language semantics: a tutorial and critique of a paper by Hoare and Lauer
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A practical decision method for propositional dynamic logic (Preliminary Report)
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
On the expressive power of Dynamic Logic (Preliminary Report)
STOC '79 Proceedings of the eleventh annual ACM symposium on Theory of computing
STOC '80 Proceedings of the twelfth annual ACM symposium on Theory of computing
Logics for probabilistic programming (Extended Abstract)
STOC '80 Proceedings of the twelfth annual ACM symposium on Theory of computing
The concept of nondeterminism: its development and implications for teaching
ACM SIGCSE Bulletin
Information Processing Letters
Hi-index | 0.01 |
We 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 nondeterministic programs, including that developed by Dijkstra based on the concept of weakest precondition. A significant feature is the strict separation between the two kinds of nonterminating computations: infinite computations and failures. The logic has a Tarskian truth-value semantics, an essential prerequisite to establishing completeness of axiomatizations of the logic. We give an axiomatization for flowchart (regular) programs that is complete relative to arithmetic in the sense of Cook. Having a satisfactory tool at hand, we turn to the clarification of the concept of the total correctness of nondeterministic programs, providing in passing, a critical evaluation of the widely used "predicate transformer" approach to the definition of programming constructs, initiated by Dijkstra [5]. Our axiom system supplies a complete axiomatization of wp.