In Pyro there is a new experimental container class: Random Variables.

Using Random Variables you can write something like this:

```
from pyro.distributions.torch import Normal
X = Normal(5, 1).rv
Y = Normal(20, 3).rv
Z = 3*X + Y
```

where X,Y,Z are distributions.

What is the mathematical foundation behind the ‘+’ operation between Random Variables? I can imagine that multiplying with a constant number is pretty trivial, but what about performing operations with an RV? For example, in Probability Theory we have the Circular Convolution.

Although I searched the documentation, I didn’t find anything useful. I am new to Pyro, and Python, but I got lost in the Pyro-pyTorch connection.