A Probabilistic Call-by-Need Lambda-Calculus – Extended Version

05/30/2022
by   David Sabel, et al.
0

To support the understanding of declarative probabilistic programming languages, we introduce a lambda-calculus with a fair binary probabilistic choice that chooses between its arguments with equal probability. The reduction strategy of the calculus is a call-by-need strategy that performs lazy evaluation and implements sharing by recursive let-expressions. Expected convergence of expressions is the limit of the sum of all successful reduction outputs weighted by their probability. We use contextual equivalence as program semantics: two expressions are contextually equivalent if and only if the expected convergence of the expressions plugged into any program context is always the same. We develop and illustrate techniques to prove equivalences including a context lemma, two derived criteria to show equivalences and a syntactic diagram-based method. This finally enables us to show correctness of a large set of program transformations with respect to the contextual equivalence.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/27/2020

The Benefit of Being Non-Lazy in Probabilistic λ-calculus

We consider the probabilistic applicative bisimilarity (PAB), a coinduct...
research
07/08/2018

Contextual Equivalence for a Probabilistic Language with Continuous Random Variables and Recursion

We present a complete reasoning principle for contextual equivalence in ...
research
02/19/2018

Space Improvements and Equivalences in a Functional Core Language

We explore space improvements in LRP, a polymorphically typed call-by-ne...
research
05/10/2018

On Randomised Strategies in the λ-Calculus (Long Version)

In this work we introduce randomised reduction strategies, a notion alre...
research
02/02/2023

A Typed Lambda-Calculus for Establishing Trust in Probabilistic Programs

The extensive deployment of probabilistic algorithms has radically chang...
research
12/05/2022

Equivalence of eval-readback and eval-apply big-step evaluators by regimentation of the lambda-calculus's strategy space

We study the equivalence of eval-readback and eval-apply big-step evalua...
research
08/31/2020

Correctly Implementing Synchronous Message Passing in the Pi-Calculus By Concurrent Haskell's MVars

Comparison of concurrent programming languages and correctness of progra...

Please sign up or login with your details

Forgot password? Click here to reset