Mechanical Verification of Mutually Recur - sive Procedures for Parsing Expressions us - ing Separation Logic TUCS
نویسنده
چکیده
This paper adds support for mutually recursive procedures on top of a predicate transformer semantics of imperative programs with pointers implemented in PVS theorem prover. We define and prove correct a collection of mutually recursive procedures which constructs the parsing tree of an expression generated by a context free grammar. We use separation logic to specify and verify these procedures; the parsing tree is represented in memory using pointers and the specification predicates are defined using separation logic. TUCS Laboratory Software Construction
منابع مشابه
Program Variables – The Core of Mechanical Reasoning about Imperative Programs
Imperative programming languages are widely used in practice in most of the software development projects. Examples of such languages include C, C++, C#, Java, Pascal, and many more. This thesis is concerned with reasoning about imperative programs. We study both refinement (the construction of correct programs starting from specifications) and correctness (an already written program is proved ...
متن کاملVerification of sequential imperative programs in Isabelle-HOL
Thepurpose of this thesis is to create a verification environment for sequential imperative programs. First a general language model is proposed, which is independent of a concrete programming language but expressive enough to cover all common language features: mutually recursive procedures, abrupt termination and exceptions, runtime faults, local and global variables, pointers and heap, expre...
متن کاملTrustworthy Tools for Trustworthy Programs: Automatic Verification of Mutually Recursive Procedures
Verification Condition Generator (VCG) tools have been effective in simplifying the task of proving programs correct. However, in the past these VCG tools have in general not themselves been mechanically proven, so any proof using and depending on these VCGs might have contained errors. In our work, we define and rigorously prove correct a VCG tool within the HOL theorem proving system, for a s...
متن کاملAmortised Resource Analysis with Separation Logic
Type-based amortised resource analysis following Hofmann and Jost—where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline—have been successful in providing concrete resource bounds for functional programs, with good support for inference. In this work we translate the idea of amortised resource analysis to imper...
متن کاملImplicit Dynamic Frames ( draft )
An important, challenging problem in the verification of imperative programs with shared, mutable state is the frame problem in the presence of data abstraction. That is, one must be able to specify and verify upper bounds on the set of memory locations a method can read and write without exposing that method’s implementation. Separation logic is now widely considered the most promising solutio...
متن کامل