  Probabilistic programming languages aid developers performing Bayesian
inference. These languages provide programming constructs and tools for
probabilistic modeling and automated inference. Prior work introduced a
probabilistic programming language, ProbZelus, to extend probabilistic
programming functionality to unbounded streams of data. This work demonstrated
that the delayed sampling inference algorithm could be extended to work in a
streaming context. ProbZelus showed that while delayed sampling could be
effectively deployed on some programs, depending on the probabilistic model
under consideration, delayed sampling is not guaranteed to use a bounded amount
of memory over the course of the execution of the program.
  In this paper, we present conditions on a probabilistic program's execution
under which delayed sampling will execute in bounded memory. The two conditions
are dataflow properties of the core operations of delayed sampling: the
$m$-consumed property and the unseparated paths property. A program executes in
bounded memory under delayed sampling if, and only if, it satisfies the
$m$-consumed and unseparated paths properties. We propose a static analysis
that abstracts over these properties to soundly ensure that any program that
passes the analysis satisfies these properties, and thus executes in bounded
memory under delayed sampling.
