## EfProb: an embedded language of Python for probability calculations

By Bart Jacobs and
Kenta Cho.

**Downloads:**

The EfProb library has been used in the following articles.
The first one is an introduction that gives a quick overview.
- K. Cho, B. Jacobs,
The EfProb Library for Probabilistic Calculations. In: F. Bonchi
and B. König
(eds), CALCO 2017.
LIPIcs 72, 25:1-7, 2017 (Calco Tools session).

[CALCO version]
[local copy]

[Classical probability EfProb file]
[Quantum EfProb file]
- B. Jacobs. Quantum
effect logic in cognition. Journ. Math. Psychology 81, 2017,
p. 1-10.

[online copy]

[EfProb file]
- B. Jacobs, A Channel-based Exact Inference Algorithm for
Bayesian Networks

[Arxiv preprint]

[Asia example: EfProb file, bnlearn source]

[Child example: EfProb file, bnlearn source]

[Insurance example: EfProb file, bnlearn source]
- B. Jacobs
and F. Zanasi,
The Logical Essentials of Bayesian Reasoning

[Arxiv preprint]
- K. Cho, B. Jacobs,
Disintegration and Bayesian Inversion, Both Abstractly and Concretely,
manuscript, 2017.

[Arxiv preprint][local copy]

*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
here.

Feedback is most welcome.