System and method for modeling, abstraction, and analysis of software
First Claim
Patent Images
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 andgenerating 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;
2 Assignments
0 Petitions
Accused Products
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.
282 Citations
2 Claims
-
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;
-
-
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;
-
Specification