TY - JOUR
T1 - Verified Density Compilation for a Probabilistic Programming Language
AU - Tassarotti, Joseph
AU - Tristan, Jean Baptiste
N1 - Publisher Copyright:
© 2023 Owner/Author.
PY - 2023/6/6
Y1 - 2023/6/6
N2 - This paper presents ProbCompCert, a compiler for a subset of the Stan probabilistic programming language (PPL), in which several key compiler passes have been formally verified using the Coq proof assistant. Because of the probabilistic nature of PPLs, bugs in their compilers can be difficult to detect and fix, making verification an interesting possibility. However, proving correctness of PPL compilation requires new techniques because certain transformations performed by compilers for PPLs are quite different from other kinds of languages. This paper describes techniques for verifying such transformations and their application in ProbCompCert. In the course of verifying ProbCompCert, we found an error in the Stan language reference manual related to the semantics and implementation of a key language construct.
AB - This paper presents ProbCompCert, a compiler for a subset of the Stan probabilistic programming language (PPL), in which several key compiler passes have been formally verified using the Coq proof assistant. Because of the probabilistic nature of PPLs, bugs in their compilers can be difficult to detect and fix, making verification an interesting possibility. However, proving correctness of PPL compilation requires new techniques because certain transformations performed by compilers for PPLs are quite different from other kinds of languages. This paper describes techniques for verifying such transformations and their application in ProbCompCert. In the course of verifying ProbCompCert, we found an error in the Stan language reference manual related to the semantics and implementation of a key language construct.
KW - compilers. probabilistic programming
KW - formal verification
UR - http://www.scopus.com/inward/record.url?scp=85161983127&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85161983127&partnerID=8YFLogxK
U2 - 10.1145/3591245
DO - 10.1145/3591245
M3 - Article
AN - SCOPUS:85161983127
SN - 2475-1421
VL - 7
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
M1 - 131
ER -