A generalization of Owicki-Gries's Hoare logic for a concurrent while language
Theoretical Computer Science - Thirteenth International Colloquim on Automata, Languages and Programming, Renne
Methods and logics for proving programs
Handbook of theoretical computer science (vol. B)
Verification of sequential and concurrent programs (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Formal verification in hardware design: a survey
ACM Transactions on Design Automation of Electronic Systems (TODAES)
The Expression of Algorithms by Charts
Journal of the ACM (JACM)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The ``Hoare Logic'' of CSP, and All That
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel programs: proofs, principles, and practice
Communications of the ACM
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
The new math of computer programming
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
The Science of Programming
The HOL-Voss System: Model-Checking inside a General-Purpose Theorem-Prover
HUG '93 Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications
Relative Completeness of Abstraction Refinement for Software Model Checking
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
On the Axiomatic Treatment of Concurrency
Seminar on Concurrency, Carnegie-Mellon University
Hoare-Style Compositional Proof Systems for Reactive Shared Variable Concurency
Proceedings of the 17th Conference on Foundations of Software Technology and Theoretical Computer Science
Towards a Unified Development Methodology for Shared-Variable Parallel and Distributed Programs
IFM '00 Proceedings of the Second International Conference on Integrated Formal Methods
The translation of ''go to'' programs to ''while'' programs
The translation of ''go to'' programs to ''while'' programs
A Survey of Parallel Algorithms for Shared-Memory Machines
A Survey of Parallel Algorithms for Shared-Memory Machines
Efficient Verification of Sequential and Concurrent C Programs
Formal Methods in System Design
ACSD '05 Proceedings of the Fifth International Conference on Application of Concurrency to System Design
Software Model Checking: The VeriSoft Approach
Formal Methods in System Design
Structured Programming With and Without go to Statements
IEEE Transactions on Software Engineering
Larrabee: a many-core x86 architecture for visual computing
ACM SIGGRAPH 2008 papers
Formal Reasoning About Causality Analysis
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Compiling Esterel
A Verified Compiler for Synchronous Programs with Local Declarations
Electronic Notes in Theoretical Computer Science (ENTCS)
Parallel Assignments in Software Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Universal causality graphs: a precise happens-before model for detecting bugs in concurrent programs
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Hi-index | 0.00 |
The synchronous model of computation divides the execution of a program into macro steps that consist of finitely many atomic micro steps (like assignments). The micro steps of a macro step are executed within the same variable environment (i.e. in parallel) but all updates to the variables are synchronously performed at the level of macro steps. The availability of a formally defined semantics allows one to use formal methods for the verification of synchronous programs. To this end, model checking is already widely used for synchronous programs, but the use of interactive verification e.g. by using a Hoare calculus, is only in its infancies. One reason for this situation is that the assignment rule of the classic Hoare calculus implicitly defines a sequential programming model which is only a special case of the synchronous model of computation. In this paper, we therefore suggest a generalization of the classic Hoare calculus to deal with synchronous programs. The main idea is thereby that the assignment rule refers to all assignments made in a macro step so that the synchronous model of computation is axiomatized. It is possible to rewrite all synchronous programs so that the assignments of every macro step are collected in a single tuple assignment. This way, our generalization of the assignment rule is applicable to arbitrary synchronous programs. We present non-trivial case studies that show the feasibility of our approach.