6. A computer-implemented method for validating a program, comprising: translating a program to correspond to an intermediate language representation, wherein the intermediate language is expressed as a control-flow graph comprising a plurality of program blocks each corresponding to a specific section of the program; and generating a verification condition corresponding to the control-flow graph, the verification condition comprising a plurality of hierarchically structured block equations each assigned to one of the plurality of program blocks, wherein each block equation comprises a first term associated with an assigned program block and a term associated with each of a plurality of dominating program blocks, wherein the hierarchically structured block equations of the verification condition causes a theorem prover to: evaluate a first level of the hierarchically structured block equations prior to evaluating a subordinate level of hierarchical structured block equations, evaluate the subordinate level of hierarchical structured block equations when the first level of hierarchically structured block equations is valid; and ignore the subordinate level of hierarchically structured block equations when the first level of hierarchically structure block equations is not valid.
6. A computer-implemented method for validating a program, comprising: translating a program to correspond to an intermediate language representation, wherein the intermediate language is expressed as a control-flow graph comprising a plurality of program blocks each corresponding to a specific section of the program; and generating a verification condition corresponding to the control-flow graph, the verification condition comprising a plurality of hierarchically structured block equations each assigned to one of the plurality of program blocks, wherein each block equation comprises a first term associated with an assigned program block and a term associated with each of a plurality of dominating program blocks, wherein the hierarchically structured block equations of the verification condition causes a theorem prover to: evaluate a first level of the hierarchically structured block equations prior to evaluating a subordinate level of hierarchical structured block equations, evaluate the subordinate level of hierarchical structured block equations when the first level of hierarchically structured block equations is valid; and ignore the subordinate level of hierarchically structured block equations when the first level of hierarchically structure block equations is not valid. 7. The computer-implemented method of claim 6 , further comprising eliminating loops of the program prior to generating the verification condition, wherein elimination of the loops corresponds to removing back edges from the control-flow graph of the program.