The HASCASL prologue: categorical syntax and semantics of the partial λ-calculus
Theoretical Computer Science
Building Verification Condition Generators by Compositional Extension
Electronic Notes in Theoretical Computer Science (ENTCS)
HasCasl: Integrated higher-order specification and program development
Theoretical Computer Science
CALCO'07 Proceedings of the 2nd international conference on Algebra and coalgebra in computer science
Bootstrapping types and cotypes in HASCASL
CALCO'07 Proceedings of the 2nd international conference on Algebra and coalgebra in computer science
A generic complete dynamic logic for reasoning about purity and effects
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Kleene monads: handling iteration in a framework of generic effects
CALCO'09 Proceedings of the 3rd international conference on Algebra and coalgebra in computer science
A coinductive calculus for asynchronous side-effecting processes
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Completeness of global evaluation logic
MFCS'06 Proceedings of the 31st international conference on Mathematical Foundations of Computer Science
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
Monad-Based logics for computational effects
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
A coinductive calculus for asynchronous side-effecting processes
Information and Computation
A Relatively Complete Generic Hoare Logic for Order-Enriched Effects
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Monads have been recognized by Moggi as an elegant device for dealing with stateful computation in functional programming languages. In previous work, we have introduced a Hoare calculus for partial correctness of monadic programs. All this has been done in an entirely monad-independent way. Here, we extend this to a monad-independent dynamic logic (assuming amoderate amount of additional infrastructure for the monad). Dynamic logic is more expressive than the Hoare calculus; in particular, it allows reasoning about termination and total correctness. The background formalism for these concepts is the logic of HasCasl, a higher-order language for functional specification and programming. As an example application, we develop a monad-independent Hoare calculus for total correctness based on our dynamic logic, and illustrate this calculus by a termination proof for Dijkstra's nondeterministic implementation of Euclid's algorithm.