A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Acta Informatica
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical theory of programming
A practical theory of programming
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
A discipline of multiprogramming: programming theory for distributed applications
A discipline of multiprogramming: programming theory for distributed applications
Introducing Dynamic Constraints in B
B '98 Proceedings of the Second International B Conference on Recent Advances in the Development and Use of the B Method
Specification and Proof of Liveness Properties under Fairness Assumptions in B Event Systems
IFM '02 Proceedings of the Third International Conference on Integrated Formal Methods
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
A Deductive Proof System for CTL
CONCUR '02 Proceedings of the 13th International Conference on Concurrency Theory
A Proof Environment for Concurrent Programs
FME '93 Proceedings of the First International Symposium of Formal Methods Europe on Industrial-Strength Formal Methods
A compositional approach to CTL* verification
Theoretical Computer Science - Formal methods for components and objects
The temporal logic of programs
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
A proof-based approach to verifying reachability properties
Proceedings of the 2011 ACM Symposium on Applied Computing
A tool for developing correct programs by refinement
FAC-RW'96 Proceedings of the BCS-FACS 7th conference on Refinement
Combining UML, ASTD and B for the formal specification of an access control filter
Innovations in Systems and Software Engineering
Hi-index | 0.01 |
This paper proposes an approach to prove reachability properties of the form AG(@j@?EF@f) using substitution refinement in classical B. Such properties denote that there exists an execution path for each state satisfying @j to a state satisfying @f. These properties frequently occur in security policies and information systems. We show how to use Morgan@?s specification statement to represent a property and refinement laws to prove it. The idea is to construct by stepwise refinement a program whose elementary statements are operation calls. Thus, the execution of such a program provides an execution satisfying AG(@j@?EF@f). Proof obligations are represented using assertions (ASSERTIONS clause of B) and can be discharged using Atelier B.