Proceedings of the ACM on Programming Languages · 2018 · 30 citations · 13 references
ComputingComputer ScienceMathematicsFormal MethodsProbability TheoryProgramming LanguagesEquivalence CheckingProbabilistic CombinatoricsRandom VariablesRecursion TheoryType SystemsContextual EquivalenceContinuous Random VariablesFixed-point SemanticsLambda CalculusLambda Calculus SemanticsProbabilistic ComputationProbabilistic ProgrammingProbabilistic Semantics
We present a complete reasoning principle for contextual equivalence in an untyped probabilistic language. The language includes continuous (real-valued) random variables, conditionals, and scoring. It also includes recursion, since the standard call-by-value fixpoint combinator is expressible. We demonstrate the usability of our characterization by proving several equivalence schemas, including familiar facts from lambda calculus as well as results specific to probabilistic programming. In particular, we use it to prove that reordering the random draws in a probabilistic program preserves contextual equivalence. This allows us to show, for example, that (let x = e 1 in let y = e 2 in e 0 ) = ctx (let y = e 2 in let x = e 1 in e 0 ) (provided x does not occur free in e 2 and y does not occur free in e 1 ) despite the fact that e 1 and e 2 may have sampling and scoring effects.
13
A new approach to probabilistic programming inference
Frank Wood · Open Collections · 2014 · 219 citations · Full text
Equivalence in functional languages with effects
Ian Mason, Carolyn Talcott · Journal of Functional Programming · 1991 · 169 citations · Full text
Semantics for probabilistic programming
Sam Staton, Hongseok Yang, Frank Wood et al. · 2016 · 112 citations · Full text