Towards Correct-by-Construction Probabilistic Inference

Researchers have recently proposed several systems that ease the process of Bayesian probabilistic inference. In this process, a developer must first devise a probabilistic model, and then build a program to perform inference over the model. However, existing systems have only limited support for reasoning about the correctness of the resulting inference program. In this paper, we present Shuffle, a programming language for probabilistic inference with correctness guarantees. We show how building an efficient inference program can be accomplished by applying proof rules that compose Shuffle programs.