Skip to content


We have introduced the building blocks of probabilistic modeling in Birch, with fundamental representations and computations including:

  • Distribution, Random, Expression and Model objects,

  • the simulate (<~), observe (~>) and assume (~) probabilistic operators,

  • the fundamental computations of automatic differentiation, automatic marginalization, and automatic conditioning, as well as the delayed sampling heuristic used to implement the latter two,

  • the concept of stochastic branching, where random variables affect the control flow of a program, and

  • the concept of a programmatic model, as defining a distribution over graphical models.