IP Library Granted Patent US 8,365,152
Granted Patent B2
US 8,365,152 · App. 12/183,416 · Granted Jan 29, 2013

Path-sensitive analysis through infeasible-path detection and syntactic language refinement

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,365,152
App. No.
12/183,416
Granted
Jan 29, 2013
Kind
B2
Abstract

A system and method for infeasible path detection includes performing a static analysis on a program to prove a property of the program. If the property is not proved, infeasible paths in the program are determined by performing a path-insensitive abstract interpretation. Information about such infeasible paths is used to achieve the effects of path-sensitivity in path-insensitive program analysis.

Claims (18)

1. A method for detecting infeasible paths in a program, comprising:

performing a path-insensitive abstract interpretation to generate invariants that hold true in program locations;

projecting said invariants along all paths to other program locations;

enumerating a set of combinations of the projected invariants by generating subsets of the projected invariants that correspond to locations in continuous path segments in the program and checking the enumerated combinations to determine whether their conjunctions are logically false using a Boolean satisfiability solver and a theory-satisfiability solver in combination; and

if an enumerated combination is checked and found to having a logically false conjunction, determining that an associated set of paths is infeasible.

2. The method as recited in claim 1 , further comprising performing a syntactic language refinement to remove the infeasible paths from the program, resulting in a refined program for subsequent analysis.

3. The method as recited in claim 2 , further comprising using a path-insensitive analysis on the refined program, after removal of infeasible paths, to obtain path sensitivity on the program.

4. The method as recited in claim 1 , wherein proof of unsatisfiability from the theory-satisfiability solver is used to learn smaller subsets of assertions whose conjunction is logically false.

5. The method as recited in claim 1 , further comprising storing the infeasible paths in a database.

6. The method as recited in claim 1 , wherein infeasible path detection is performed during static analysis for proving program correctness.

7. A system for infeasible path detection, comprising:

an abstract interpretation engine comprising a processor configured to perform a static analysis on a program for proving correctness, the abstract interpretation engine configured to perform a path-insensitive abstract interpretation to determine invariants corresponding to reachable program states at program locations and to project said invariants along program paths to other program locations; and

a satisfiability solver and theory satisfiability solver configured to, in combination, enumerate and check satisfiability of combinations of projected invariants by generating conjunctions of subsets of projected invariants, wherein subsets of projected invariants that correspond to locations in continuous path segments in the program are checked to determine whether their conjunction is logically false, and where a conjunction being logically false determines that a corresponding set of program paths is infeasible.

8. The system as recited in claim 7 , further comprising a database for storing the infeasible paths.

9. The system as recited in claim 7 , wherein the satisfiability solver and theory satisfiability solver detects infeasible paths concurrently with the static analysis.

10. The system as recited in claim 7 , wherein the satisfiability solver and theory satisfiability solver is further configured to perform a syntactic language refinement to remove the infeasible paths from the program, resulting in a refined program for subsequent analysis.

11. The system as recited in claim 10 , wherein the satisfiability solver and theory satisfiability solver is further configured to use a path-insensitive analysis on the refined program, after removal of infeasible paths, to obtain path sensitivity on the program.

12. The system as recited in claim 7 , wherein the satisfiability solver and theory satisfiability solver is further configured to use a proof of unsatisfiability to learn smaller subsets of projected invariants whose conjunction is logically false.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 8538896 AND ADD 8583896 PREVIOUSLY RECORDED ON REEL 031998 FRAME 0667. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 30, 2017
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 042754/0703 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 031998/0667 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2008
From: BALAKRISHNAN, GOGUL; SANKARANARYANAN, SRIRAM; IVANCIC, FRANJO; GUPTA, AARTI
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 021482/0296 →