The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Auxiliary Variables and Recursive Procedures
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Mechanical Verification of Mutually Recursive Procedures
CADE-13 Proceedings of the 13th International Conference on Automated Deduction: Automated Deduction
A Hoare Calculus for Verifying Java Realizations of OCL-Constrained Design Models
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
Class-Based versus Object-Based: A Denotational Comparison
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Theorem Prover Support for Precondition and Correctness Calculation
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods Revisited
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Hoare Logics for Recursive Procedures and Unbounded Nondeterminism
CSL '02 Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
Propositional Dynamic Logic for Recursive Procedures
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Hoare logic for higher order store using simple semantics
WoLLIC'11 Proceedings of the 18th international conference on Logic, language, information and computation
Descriptive and relative completeness of logics for higher-order functions
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
A typed, compositional logic for a stack-based abstract machine
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Verification conditions for source-level imperative programs
Computer Science Review
Separation logic for non-local control flow and block scope variables
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
We present a (the first?) sound and relatively complete Hoare logic for a simple imperative programming language including mutually recursive procedures with call-by-value parameters as well as global and local variables. For such a language we formalize an operational and an axiomatic semantics of partial correctness and prove their equivalence. Global and local variables, including parameters, are handled in a rather straightforward way allowing for both dynamic and simple static scoping. For the completeness proof we employ the powerful MGF (Most General Formula)a pproach, introducing and comparing three variants for dealing with complications arising from mutual recursion. All this work is done using the theorem prover Isabelle/HOL, which ensures a rigorous treatment of the subject and thus reliable results. The paper gives some new insights in the nature of Hoare logic, in particular motivates a stronger rule of consequence and a new flexible Call rule.