IP Library Granted Patent US 7,346,486
Granted Patent B2
US 7,346,486 · App. 11/040,409 · Granted Mar 18, 2008

System and method for modeling, abstraction, and analysis of software

Assignee: NEC Laboratories America, Inc.
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 7,346,486
App. No.
11/040,409
Granted
Mar 18, 2008
Kind
B2
Abstract

A system and method is disclosed for formal verification of software programs that advantageously translates the software, which can have bounded recursion, into a Boolean representation comprised of basic blocks and which applies SAT-based model checking to the Boolean representation.

Claims (129)

1. A computer-implemented method of verifying a software program comprising:

determining one or more properties of the software program to be verified;

generating a model of the software program wherein said model comprises a Boolean representation having a plurialty of basic blocks, each basic block representing a sequence of one or more instructions in the software program as a set of parallel assignments and a set of transitions to other basic blocks;

applying a SAT-based model checker to the Boolean representation of the software program; and

determining whether the properities are correct and

generating an output indicative of that correctness determination for the software program;

wherein said model of the software program is one of a type selected from the group consisting of: bounded-recursive and non-recursive;

wherein transition relations in the Boolean representation of the software program are enumerated and represented by:

𝒯

(

b

,

b

,

χ

)

:=

b

i

B

R

b

i

p

i

b

i

B

v

b

i

p

i

[

V

e

1

,

,

e

n

]

b

i

B

v

b

i

=

b

i

where b,b′ i are boolean variables in an abstract model; X is the set of all variables in the program; b i denotes an element of a Boolean predicate vector; B R is a set of Boolean variables computed on the basis of all predicates; p i is a single predicate being considered p j is an expression in terms of variables used in a concrete model; V is set to values of concrete variables and e are expressions of assignments made to those variables in a basic block.

2. A computer-implemented method of verifying a software program comprising:

determining one or more propoerties of the software to be verified;

generating a model of the software program wherein said model comprises a Boolean representation having a plurality of basic blocks, each basic block representing a sequence of one or more instructions in the software program as a set of parallel assignments and a set of transitions to other basic blocks;

applying a SAT-based model checker to the Boolean representation of the software program; and

determining whether the properties to be verified are correct; and

generating an output indicative of that correctness determination for the software program;

wherein said model of the software program is one of a type selected from the group consisting of: bounded-recursive and non-recursive;

wherein transition relations in the Boolean representation of the software program are enumerated using SAT-based enumeration; and

wherein transition relations in the Boolean representation of the software program are enumerated and represented by:

𝒯

(

b

,

b

j

,

χ

)

:=

b

i

B

R

b

i

p

i

b

j

p

j

[

V

e

1

,

,

e

n

]

where b,b′ j are boolean variables in an abstract model; X is the set of all variables in the program; b i denotes the Boolean predicate vector; B R is a set of Boolean variables computed on the basis of all predicates; p i is a single predicate being considered; p j is an expression in terms of variables used in a concrete model; V is set to values of concrete variables and e are expressions of assignments made to those variables in a basic block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2009
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 022177/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2005
From: IVANCIC, FRANJO; ASHAR, PRANAV N; GANAI, MALAY; GUPTA, AARTI; YANG, ZIJIANG
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 015768/0930 →
Continuity (2)
Provisional Application 6053852400 · Jan 22, 2004
Related Publication 20050166167A1 · Jul 28, 2005