In [ ]:
using Sigma
sigma.loadvis()
In Sigma, random variables are functions; to answer inference queries we compute preimages of sets under these functions. Computing preimages directly, i.e. running the function backwards is difficult; we instead compute images of sets. That is, given a function $f:A \to B$, we compute $f^\rightarrow(A') = \{f(a) : a \in A'\}$.
Unfortunately even this image function is difficult to find, and the best we can do is over-approximate it. That is, we define an $f^\sharp$ which approximates $f^\rightarrow$. Imprecision occurs when $f^\sharp$ deviates from $f^\rightarrow$.
There are numerous causes of imprecision currently in Sigma.
Merging in Discontinuous Functions: Currently in Sigma
Treating Dependent Variables Independently:
In [ ]: