# Does mathematica allow abstract probability manipulation

Does Mathematica allow testing abstract algebraic relationships with probabilities? For example, checking a relationship between probabilities without expressing the form (e.g. binomial etc.) of these probabilities but under generic assumptions?

Like assuming a generic discrete distribution or a Markov chain relationship and then test/simplify/modify relationships between them. Simple example, multivariate discrete distribution in which part of the variables are related via Markov chain and one want to know the expression of the Kullback Leiber divergence with a product of marginals.

Example, thest that the following relationships are correct \begin{align*} & I \big(A_1 {:} \dots {:} A_K ; \mathcal{Y} \big) \\ &\triangleq \sum_{\ell=1}^L \ \sum_{y^\ell \in \mathbb{Y}^\ell} p \big(y^\ell\big) \cdot \min_{k=1,\dots, K} \left \{ I\big(A_k;Y^{\ell-1} \mid y^\ell\big) \right \} \\ &= \sum_{\ell=1}^L \ \sum_{y^\ell} p \big( y^\ell \big) \ I \big(A_{k(y^\ell)} ;Y^{\ell-1} \mid y^\ell \big) \\ &= \sum_{\ell=1}^L \ \sum_{y^\ell} \ \sum_{a_{k(y^\ell)}, y^{\ell-1}} p\big(a_{k(y^\ell)}, y^{\ell-1}, y^\ell \big) \ \log \frac{p \big(a_{k(y^\ell)}, y^{\ell-1} \mid y^\ell \big)}{p \big(a_{k(y^\ell)} \mid y^\ell \big) \ p(y^{\ell-1} \mid y^\ell)} \\ &= \sum_{\ell=1}^L \ \sum_{\substack{a_1, \dots, a_K \\ y^0, \dots, y^L}} p\big(a_1, \dots, a_K, y^0, \dots, y^L \big) \ \log \frac{p \big(a_{k(y^\ell)}, y^{\ell-1} \mid y^\ell \big)}{p \big(a_{k(y^\ell)} \mid y^\ell \big) \ p(y^{\ell-1} \mid y^\ell)} \\ &= \sum_{\substack{a_1, \dots, a_K \\ y^0, \dots, y^L}} p\big(a_1, \dots, a_K, y^0, \dots, y^L \big) \ \sum_{\ell=1}^L \log \frac{p \big(a_{k(y^\ell)}, y^{\ell-1} \mid y^\ell \big)}{p \big(a_{k(y^\ell)} \mid y^\ell \big) \ p(y^{\ell-1} \mid y^\ell)} \\ \end{align*} where $$k(y^\ell) \triangleq \arg \min_{k=1,\dots, K} \left \{ I\big(A_k;Y^{\ell-1} \mid y^\ell\big) \right \}$$ and the $$Y^\ell$$ are linked by deterministic functions. All variables descrete.

Can Mathematica handle this kind of symbolic problems?

• Please be more concrete. Please edit your question and make an example of the kind of thing you would want to check. Also include what you have tried so far (code). Nov 26, 2022 at 7:23
• I have not tried anything. I want to know if I should try mathematica for this or not. Nov 26, 2022 at 7:26
• If you know another program or language that can do the manipulations you want, please include that information. If you know relevant algorithms, please include that information also. Generally speaking, Mathematica has many built-in functions, but many more things are possible with a bit of programming effort. If you include a concrete example or question that you would like to answer, your chances of getting a useful and authoritative answer will go up significantly. Nov 26, 2022 at 7:59