Program analysis through predicate abstraction and refinement
AssigneeMicrosoft Corporation
InventorsThomas J. Ball, Eleonora O. Bounimova, Vladimir A. Levin, Rahul Kumar
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsThomas J. Ball, Eleonora O. Bounimova, Vladimir A. Levin, Rahul Kumar
Estimating the term…
An analysis engine is described for performing static analysis using CEGAR loop functionality, using a combination of forward and backward validation-phase trace analyses. The analysis engine includes a number of features. For example: (1) the analysis engine can operate on blocks of program statements of different adjustable sizes; (2) the analysis engine can identify a subtrace of the trace and perform analysis on that subtrace (rather than the full trace); (3) the analysis engine can form a pyramid of state conditions and extract predicates based on the pyramid and/or from auxiliary source(s); (4) the analysis engine can generate predicates using an increasingly-aggressive series of available discovery techniques; (5) the analysis engine can selectively concretize procedure calls associated with the trace on an as-needed basis and perform other refinements; and (6) the analysis engine can add additional verification targets in the course of its analysis, etc.
A method, implemented by a computer device, for validating a candidate trace produced by a Counter-Example Guided Abstraction Refinement (CEGAR) loop, the candidate trace associated with a potential error within a program, the method comprising:
An analysis engine, implemented by a computer device, for performing static analysis, comprising:
A computer readable medium for storing computer readable instructions, the computer readable instructions providing a validation module of an analysis engine when executed by one or more processing devices, the computer readable instructions comprising:
Dependencies are inferred from the claim text.