1. A method for predictive analysis, comprising: generating an execution trace on an instrumented version of source code for a multithreaded computer program stored on computer readable storage media; statically generating interleavings which potentially lead to a violation in the program by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that might lead to an error, the UCG being a unified happens-before model for the concurrent program and a property being analyzed; and symbolically checking the interleavings to determine errors in the program.