Alex Simpson: Programming with Streams of Correlated Random Variables

Date of publication: 17. 12. 2018
Mathematics and theoretical computing seminar
Četrtek, 20. 12. 2018, od 11h do 13h, učilnica 3.07, Jadranska 21
Abstract: Probabilistic programming languages manipulate variables representing probability distributions. Typically, however, there is no mechanism for introducing direct dependencies between distinct such variables.

In this talk, I shall discuss how one might directly incorporate, into a programming language, a notion of random variable that does permit such dependencies (distinct random variables may be correlated, uncorrelated, independent, etc.). I shall do this in the context of a typed functional programming language with infinite streams.
Regarding the types, the distribution types of typed probabilistic programming languages are replaced with new random variable types. The functional paradigm provides a natural style for manipulating functions operating on random variables. And the infinite streams provide, for example, a vehicle for modelling discrete-time stochastic processes.

In the language, random variables are manipulated in three main ways. One can create a new random random variable with a given distribution, which may be conditional on other random variables and on previously sampled data. One can sample a random variable. And one can create abstract sample points, which allow correlations between random variables to impinge on program execution in a non-local way.

The talk will mainly present the language features in a high-level way. If there is time, I may also discuss operational and denotational semantics.