EfProb: an embedded language of Python for probability calculations
By Bart Jacobs and
EfProb is an abbreviation of Effectus
Probability. It is the name of a rich library for probability
calculations in Python. Some unique features of EfProb are:
- it offers a uniform language
for discrete, continuous and quantum
probability; the discrete and continuous languages are integrated, but
the quantum language is separate.
- it includes quantitative logic, via a distinction between states
and predicates. The validity of a predicate in a state is given as a
probability. States can be updated (conditioned) with predicates.
- it also includes channels, which can be used for state
transformation and for predicate transformation. They form the basis
for an elemenatary programming language with sequential and parallel
composition that can be used for instance for Bayesian networks,
Markov chains, or quantum protocols.
The EfProb library is still actively developed. This page makes a
version publicly available, together with an (incomplete) user manual
that contains further information. New versions will regularly appear
Feedback is most welcome.