Abstract

Probabilistic techniques in computer programs are becoming more and more widely used. Therefore, there is a big interest in methods for formal specification, verification, and development of probabilistic programs. In this paper, we introduce a Z-based formalism that assists us to specify probabilistic programs simply. This formalism is mainly based on a new notion of Z operation schemas, called probabilistic schemas, and a new set of schema calculus operations that can be applied on probabilistic schemas as well as ordinary operation schemas. To demonstrate the applicability of this formalism, we show that any probabilistic system modelled with Markov chains can be formally specified using the new formalism. More precisely, we show the resulting formalism can be used to specify any discrete-time and continues-time Markov chain. Since our formalism is obtained from enriching Z with probabilistic notions, unlike notations such as Markov chains, it is appropriate for modelling both probabilistic and functional requirements simultaneously. In addition, since we provide an interpretation of our formalism in the Z notation itself, we can still use Z tools, such as Z-eves to check the type and con- sistency of the written specifications formally. For the same reason, we can still use various methods and tools which are targeted for formal validation, verification and program development based on the Z specification language.

Highlights

  • Probabilistic techniques in computer programs are becoming more and more widely used; examples are in random algorithms to increase efficiency, in concurrent systems for symmetry breaking, and in hybrid systems when the low-level hardware might be represented by probabilistic programs that model quantitative unreliability[1]

  • We have presented a Z-based formalism by which one can specify probabilistic programs formally

  • To demonstrate the applicability of this formalism, we have shown that any probabilistic system that can be modelled with Markov chains can be formally specified using this formalism

Read more

Summary

Introduction

Probabilistic techniques in computer programs are becoming more and more widely used; examples are in random algorithms to increase efficiency, in concurrent systems for symmetry breaking, and in hybrid systems when the low-level hardware might be represented by probabilistic programs that model quantitative unreliability[1]. Notations such as Markov chains are suitable for modelling stochastic aspects of probabilistic systems while these systems are planned to implement various functional requirements (besides stochastic or probabilistic requirements) which can be specified formally using well known model based languages like Z. In this way, our formalism that is obtained from enriching Z specifications with probabilistic notions is appropriate for modelling both probabilistic and functional requirements simultaneously. 4. For the same reason as what was stated in the above case, we can still use various methods and tools which are targeted for formal validation, verification and program development based on the Z specification language.

Specifying Probabilistic Operations
A Calculus for Probabilistic Schemas
Specification of Markov-Chains
Conclusions and Future Work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call