Before we combine actions and probabilities two very obvious questions should
be asked. Firstly, what does "the probability of an action" mean? Secondly, how
does probability interact with nondeterminism? Neither question has a single
universally agreed upon answer but by considering these questions at the outset
we build a novel and hopefully intuitive probabilistic event-based formalism.
Refinement is one of the cornerstones of a formal approach to software
engineering: the process of developing a more detailed design or implementation
from an abstract specification through a sequence of mathematically-based steps
that maintain correctness with respect to the original specification.