Partial correctness: the term-wise approach
Science of Computer Programming
Theoretical Computer Science
Mechanizing programming logics in higher order logic
Current trends in hardware verification and automated theorem proving
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Assignment and Procedure Call Proof Rules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic Construction of Verification Condition Generators From Hoare Logics
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Mechanical Verification of Total Correctness through Diversion Verification Conditions
Proceedings of the 11th International Conference on Theorem Proving in Higher Order Logics
A Verified Program Verifier
Hi-index | 0.00 |
The verification of programs that contain mutually recursive procedures is a difficult task, and one which has not been satisfactorily addressed in the literature. Published proof rules have been later discovered to be unsound. Verification condition generator (VCG) tools have been effective in partially automating the verification of programs, but in the past these VCG tools have in general not themselves been proven, so any proof using and depending on these VCGs might not be sound. In this paper, we present a set of proof rules for proving the partial correctness of programs with mutually recursive procedures, together with a VCG that automates the use of the proof rules in program correctness proofs. The soundness of the proof rules and the VCG itself have been mechanically proven within the Higher Order Logic theorem prover, with respect to the underlying structural operational semantics of the programming language. This proof of soundness then forms the core of an implementation of the VCG that significantly eases the verification of individual programs with complete security.