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 lead to a violation in the program by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that lead to an error, the UCG being a unified happens-before model for the concurrent program and a property being analyzed; symbolically checking the interleavings to determine errors in the program; and decomposing lengths of computations of the UCG into smaller segments, which are lock-free and there does not exist a wait/notify seed edge, a fork join seed edge or a property seed edge with endpoints along the segments, wherein the UCG is configured to capture, as happens-before constraints, a set of all interleavings that are possible under scheduling constraints imposed by synchronization primitives that lead to violations of the property, and wherein the Universal Causality Graph incorporates happens-before constraints arising from the concurrent program and a correctness property.