Claims
- 1. A method of generating a verification condition for a computer program that comprises a collection of program statements and that contains a pair of conditional program execution paths preceding a control join point and an expression following the control join point, the method comprising:
applying at least one precondition operator to the computer program to produce a verification condition which includes a single instance of a subexpression derived from the expression following the control join point, wherein, while applying the at least one precondition operator to the computer program, a label is given to a value, at the control join point, of a variable that is modified on at least one of the conditional program execution paths.
- 2. The method of claim 1, wherein said at least one precondition operator is a weakest precondition operator computed by at least one strongest postcondition operator.
- 3. The method of claim 2, wherein said weakest precondition operator is expressed as a combination of strongest postcondition operators, snp and sxp.
- 4. The method of claim 2 wherein said weakest precondition operator for a subexpression S is expressed as:
- 5. The method of claim 4 wherein said weakest precondition operator is applied to program statements that include a choice operator and wherein a traditional weakest precondition operator is applied to other program statements.
- 6. The method of claim 5 wherein at least one program statement raises an exception.
- 7. The method of claim 2 wherein said weakest precondition operator for a subexpression S is expressed as:
- 8. The method of claim 7 wherein said weakest precondition operator is applied to program statements that include a choice operator and wherein a traditional weakest precondition operator is applied to other program statements.
- 9. The method of claim 2 additionally comprising, prior to applying said at least one precondition operator,
converting said computer program to an intermediate form.
- 10. The method of claim 9 wherein said intermediate form is a guarded command form.
- 11. The method of claim 1 additionally comprising:
passing the verification condition to a theorem prover and determining whether or not the verification condition is valid.
- 12. The method of claim 11 wherein said theorem prover generates at least one counter-example, if the truth of the verification condition cannot be proved.
- 13. The method of claim 12 additionally comprising:
analyzing said at least one counter-example and producing an error message.
- 14. A computer readable medium for use in conjunction with a computer system, the computer readable medium comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
instructions for generating a verification condition for a computer program that comprises a collection of program statements and that contains a pair of conditional program execution paths preceding a control join point and an expression following the control join point; instructions for applying at least one precondition operator to the computer program to produce a verification condition which includes a single instance of a subexpression derived from the expression following the control join point, wherein, while applying the at least one precondition operator to the computer program, a label is given to a value, at the control join point, of a variable that is modified on at least one of the conditional program execution paths.
- 15. The computer readable medium of claim 14, further comprising instructions for computing said at least one precondition operator in terms of a weakest precondition operator expressed as at least one strongest postcondition operator.
- 16. The computer readable medium of claim 14 additionally comprising instructions for converting said computer program into an intermediate form.
- 17. The computer readable medium of claim 16 additionally comprising instructions for converting said computer program into a guarded command form.
- 18. The computer readable medium of claim 14 additionally comprising instructions for passing the verification condition to a theorem prover and determining whether or not the verification condition is valid.
- 19. An apparatus for generating a verification condition for a computer program that comprises a collection of program statements and that contains a pair of conditional program execution paths preceding a control join point and an expression following the control join point, the apparatus comprising:
a memory containing the computer program, an operating system and at least one processor configured to execute mathematical operations on the computer program, wherein said computer processor:
applies at least one precondition operator to the computer program to produce a verification condition which includes a single instance of a subexpression derived from the expression following the control join point, wherein, while applying the at least one precondition operator to the computer program, a label is given to a value, at the control join point, of a variable that is modified on at least one of the conditional program execution paths.
- 20. The apparatus of claim 19, wherein said computer processor additionally computes said at least one precondition operator in terms of a weakest precondition operator expressed as at least one strongest postcondition operator.
- 21. The apparatus of claim 19, wherein said computer processor additionally converts said computer program into an intermediate form.
- 22. The apparatus of claim 19, wherein said computer processor additionally converts said computer program into a guarded command form.
- 23. The apparatus of claim 19, wherein said computer processor additionally passes the verification condition to a theorem prover and determining whether or not the verification condition is valid.
Parent Case Info
[0001] This application claims priority to U.S. provisional patent application No. 60/218,305, filed Jul. 14, 2000, entitled “Case-reduced Verification Condition Generation System And Method,” which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60218305 |
Jul 2000 |
US |