A Domain-Theoretic Approach to Statistical Programming Languages

06/30/2021
by   Jean Goubault-Larrecq, et al.
0

We give a domain-theoretic semantics to a statistical programming language, using the plain old category of dcpos, in contrast to some more sophisticated recent proposals. Remarkably, our monad of minimal valuations is commutative, which allows for program transformations that permute the order of independent random draws, as one would expect. A similar property is not known for Jones and Plotkin' s monad of continuous valuations. Instead of working with true real numbers, we work with exact real arithmetic, providing a bridge towards possible implementations. (Implementations by themselves are not addressed here.) Rather remarkably, we show that restricting ourselves to minimal valuations does not restrict us much: all measures on the real line can be modeled by minimal valuations on the domain 𝐈ℝ_ of exact real arithmetic. We give three operational semantics for our language, and we show that they are all adequate with respect to the denotational semantics. We also explore quite a few examples in order to demonstrate that our semantics computes exactly as one would expect, and in order to debunk the myth that a semantics based on continuous maps would not be expressive enough to encode measures with non-compact support using only measures with compact support, or to encode measures via non-continuous density functions, for instance. Our examples also include some useful, non-trivial cases of distributions on higher-order objects.

READ FULL TEXT

page 1

page 2

page 3

page 4

11/10/2018

A Domain Theory for Statistical Probabilistic Programming

We give an adequate denotational semantics for languages with recursive ...
11/21/2021

The Central Valuations Monad

We give a commutative valuations monad Z on the category DCPO of dcpo's ...
01/19/2016

Semantics for probabilistic programming: higher-order functions, continuous distributions, and soft constraints

We study the semantic foundation of expressive probabilistic programming...
12/30/2018

A Probabilistic and Non-Deterministic Call-by-Push-Value Language

There is no known way of giving a domain-theoretic semantics to higher-o...
07/20/2019

Towards meta-interpretive learning of programming language semantics

We introduce a new application for inductive logic programming: learning...
07/15/2017

Abstracting Definitional Interpreters

In this functional pearl, we examine the use of definitional interpreter...
08/09/2022

Branching Pomsets for Choreographies

Choreographic languages describe possible sequences of interactions amon...