  Hamiltonian Monte Carlo (HMC) is arguably the dominant statistical inference
algorithm used in most popular "first-order differentiable" Probabilistic
Programming Languages (PPLs). However, the fact that HMC uses derivative
information causes complications when the target distribution is
non-differentiable with respect to one or more of the latent variables. In this
paper, we show how to use extensions to HMC to perform inference in
probabilistic programs that contain discontinuities. To do this, we design a
Simple first-order Probabilistic Programming Language (SPPL) that contains a
sufficient set of language restrictions together with a compilation scheme.
This enables us to preserve both the statistical and syntactic interpretation
of if-else statements in the probabilistic program, within the scope of
first-order PPLs. We also provide a corresponding mathematical formalism that
ensures any joint density denoted in such a language has a suitably low measure
of discontinuities.
