A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Randomized algorithms
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
The Generalised Substitution Language Extended to Probabilistic Programs
B '98 Proceedings of the Second International B Conference on Recent Advances in the Development and Use of the B Method
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
Abstraction, Refinement And Proof For Probabilistic Systems (Monographs in Computer Science)
Probabilistic termination in B
ZB'03 Proceedings of the 3rd international conference on Formal specification and development in Z and B
Probabilistic invariants for probabilistic machines
ZB'03 Proceedings of the 3rd international conference on Formal specification and development in Z and B
Proof rules for probabilistic loops
FAC-RW'96 Proceedings of the BCS-FACS 7th conference on Refinement
Security, Probability and Nearly Fair Coins in the Cryptographers' Café
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Automating refinement checking in probabilistic system design
ICFEM'07 Proceedings of the formal engineering methods 9th international conference on Formal methods and software engineering
Refinement-based verification of local synchronization algorithms
FM'11 Proceedings of the 17th international conference on Formal methods
Programming-logic analysis of fault tolerance: expected performance of self-stabilisation
Rigorous Development of Complex Fault-Tolerant Systems
Hi-index | 0.00 |
In earlier work, we introduced probability to the B by providing a probabilistic choice substitution and by extending B's semantics to incorporate its meaning [8]. This, a first step, allowed probabilistic programs to be written and reasoned about within B. This paper extends the previous work into refinement within B. To allow probabilistic specification and development within B, we must add a probabilistic specification substitution; and we must determine the rules and techniques for its rigorous refinement into probabilistic code. Implementation in B frequently contains loops. We generalise the standard proof obligation rules for loops giving a set of rules for reasoning about the correctness of probabilistic loops. We present a small case-study that uses those rules, the randomised Min-Cut algorithm.