Preskoči na glavno vsebino

Alex Simpson: Programming with streams of interdependent random variables: Language definition

Datum objave: 8. 11. 2019
Seminar za temelje matematike in teoretično računalništvo
Četrtek, 14. 11. 2019, od 11h do 13h, učilnica 3.07, Jadranska 21
Abstract: Probabilistic programming languages manipulate variables representing probability distributions. However, it is not possible for distinct such variables to have dependencies, because only individual distributions are specified, not joint distributions.

In this talk, I shall present programming language primitives for programming with random variables that can possess 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 types, distribution types are replaced with new random variable types. The functional paradigm provides a natural style for manipulating functions operating on random variables. And 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 be exploited.

The material will be presented in separate talks in three instalments.

Part 1: Language definition
Part 2: Operational semantics
Part 3: Denotational semantics