15. One or more computer-readable storage media for specifying and evaluating probabilistic assertions, comprising a plurality of instructions that, when executed by a processor, cause the processor to: verify a probabilistic assertion in a program based on an intermediate representation comprising a Bayesian network of nodes, wherein the probabilistic assertion comprises a probabilistic logical statement based on random variables, a probability, and a confidence value; maintain a concrete heap and a stack instead of constructing the nodes in the Bayesian network in response to receiving non-probabilistic values; and change the program to meet a desired specification or correctly express a probabilistic property of the program if the probabilistic assertion is verified as false.
15. One or more computer-readable storage media for specifying and evaluating probabilistic assertions, comprising a plurality of instructions that, when executed by a processor, cause the processor to: verify a probabilistic assertion in a program based on an intermediate representation comprising a Bayesian network of nodes, wherein the probabilistic assertion comprises a probabilistic logical statement based on random variables, a probability, and a confidence value; maintain a concrete heap and a stack instead of constructing the nodes in the Bayesian network in response to receiving non-probabilistic values; and change the program to meet a desired specification or correctly express a probabilistic property of the program if the probabilistic assertion is verified as false. 17. The one or more computer-readable storage media of claim 15 , further comprising instructions to simplify the intermediate representation into a simplified intermediate representation using one or more statistical rules.