ATVA 2006: Automated Technology for Verification and Analysis pp 352-368 | Cite as
Predicate Abstraction of Programs with Non-linear Computation
Abstract
Verification of programs relies on reasoning about the computations they perform. In engineering programs, many of these computations are non-linear. Although predicate abstraction enables model checking of programs with large state spaces, the decision procedures that currently support predicate abstraction are not able to handle such non-linear computations. In this paper, we propose an approach to model checking a class of data-flow properties for engineering programs that contain non-linear products and transcendental functions. The novelty of our approach is the integration of interval constraint solving techniques into the automated predicate discovery/predicate abstraction process, which extends the expressive power of predicate abstraction-based model checking. Using this approach, we construct a prototype model checker for C programs called VISA (Verification of Industrial-Strength Applications). VISA is built on top of Berkeley’s BLAST and University of Nantes’ Realpaver. We successfully apply VISA to scientific computation libraries and avionics applications to verify the absence of certain runtime arithmetic errors.
Preview
Unable to display preview. Download preview PDF.
References
- 1.Neumaier, A.: Interval Methods for System of Equations. Cambridge University Press, Cambridge (1990)Google Scholar
- 2.Alefeld, G., Herzberger, J.: Introduction to Interval Computations. Academic Press, London (1983)MATHGoogle Scholar
- 3.Asarin, E., Dang, T., Maler, O.: The d/dt tool for verification of hybrid systems. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 365–370. Springer, Heidelberg (2002)CrossRefGoogle Scholar
- 4.Ball, T.: Formalizing counter-example driven predicate refinement with weakest preconditions. Technical Report MSR-TR-2004-134, Microsoft Research (2004)Google Scholar
- 5.Ball, T., Cook, B., Lahiri, S.K., Zhang, L.: Zapato: Automatic theorem proving for predicate abstraction refinement. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 457–461. Springer, Heidelberg (2004)CrossRefGoogle Scholar
- 6.Ball, T., Majumdar, R., Millstein, T., Rajamani, S.: Automatic Predicate Abstraction of C Programs. In: Proceedings of Programming Languages Design and Implementation (PLDI) 2001, pp. 268–283. ACM Press, New York (2001)Google Scholar
- 7.Ball, T., Rajamani, S.: Automatically Validating Temporal Safety Properties of Interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 103–122. Springer, Heidelberg (2001)CrossRefGoogle Scholar
- 8.Barret, C., Tinelli, C.: Theory and practice of decision procedures for combinations of theories. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, Springer, Heidelberg (2005)Google Scholar
- 9.Barrett, C., Berezin, S.: CVC Lite: A new implementation of the cooperating validity checker. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, Springer, Heidelberg (2004)CrossRefGoogle Scholar
- 10.Bensalem, S., Lakhnech, Y., Owre, S.: Computing Abstractions of Infinite State Systems Compositionally and Automatically. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 319–331. Springer, Heidelberg (1998)CrossRefGoogle Scholar
- 11.Beyer, D., Chlipala, A.J., Henzinger, T.A., Jhala, R., Majumdar, R.: The BLAST query language for software verification. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 2–18. Springer, Heidelberg (2004)CrossRefGoogle Scholar
- 12.Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)CrossRefGoogle Scholar
- 13.Collins, G.: Quantifier elimination for real closed fields by cylindrical algebraic decomposition. In: Brakhage, H. (ed.) GI-Fachtagung 1975. LNCS, vol. 33, pp. 134–183. Springer, Heidelberg (1975)Google Scholar
- 14.Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The ASTREE analyser. In: Proceedings of The European Symposium on Programming, pp. 21–30 (2005)Google Scholar
- 15.Das, S., Dill, D., Park, S.J.: Experience with Predicate Abstraction. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 160–171. Springer, Heidelberg (1999)CrossRefGoogle Scholar
- 16.Das, S., Dill, D.L.: Counter-example based predicate discovery in predicate abstraction. In: Proceedings of Conference on Formal Methods in Computer-Aided Design, Portland, Oregon (November 2002)Google Scholar
- 17.Detlefs, D., Nelson, G., Saxe, J.: Simplify: A theorem prover for program checking (2003)Google Scholar
- 18.Dowek, G., Geser, A., Muñoz, C.: Tactical conflict detection and resolution in a 3-D airspace. In: Proceedings of the 4th USA/Europe Air Traffic Management R&DSeminar, ATM 2001, Santa Fe, New Mexico, 2001. A long version appears as report NASA/CR-2001-210853 ICASE Report No 2001-7Google Scholar
- 19.Dwyer, M., Hatcliff, J., Joehanes, R., Laubach, S., Pasareanu, C., Visser, R., Zheng, H.: Tool-supported Program Abstraction for Finite-state VerificationGoogle Scholar
- 20.Filliâtre, J.-C., Owre, S., Rueß, H., Shankar, N.: ICS: Integrated Canonizer and Solver. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 246–249. Springer, Heidelberg (2001)CrossRefGoogle Scholar
- 21.Graf, S., Saidi, H.: Construction of Abstract State Graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)Google Scholar
- 22.Granvilliers, L.: On the combination of interval constraint solvers. Reliable Computing 7(6), 467–483 (2001)MATHCrossRefMathSciNetGoogle Scholar
- 23.Harvey, W., Stuckey, P.J.: Constraint representation for propagation. In: Maher, M.J., Puget, J.-F. (eds.) CP 1998. LNCS, vol. 1520, pp. 235–245. Springer, Heidelberg (1998)CrossRefGoogle Scholar
- 24.Hentenryck, P.V., Michel, L., Deville, Y.: Numerica, A Modeling Language for Global Optimization. MIT Press, Cambridge (1997)Google Scholar
- 25.Henzinger, T., Jhala, R., Majumdar, R., McMillan, K.: Abstraction from Proofs. In: Proceedings of ACM SIGPLAN-SIGACT Conference on Principles of Programming Languages (POPL), pp. 232–244 (2004)Google Scholar
- 26.Henzinger, T., Jhala, R., Majumdar, R., Necula, G., Sutre, G., Weimer, W.: Temporal-Safety Proofs for Systems Code. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 526–538. Springer, Heidelberg (2002)CrossRefGoogle Scholar
- 27.Yamamura, K., Kawata, H., Tokue, A.: Interval analysis using linear programming. In: Proceedings of BIT 38, pp. 188–201 (1998)Google Scholar
- 28.Granvilliers, L., Benhamou, F.: Realpaver: An interval solver using constraint satisfaction techniques. ACM Transactions on Mathematical Software (accepted for publication)Google Scholar
- 29.McMillan, K.L.: Craig interpolation and reachability analysis. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, p. 336. Springer, Heidelberg (2003)CrossRefGoogle Scholar
- 30.McPeak, S., Necula, G.C., Rahul, S.P., Weimer, W.: CIL: Intermediate Languages and Tools for C Program Analysis and Transformation. In: Horspool, R.N. (ed.) CC 2002 and ETAPS 2002. LNCS, vol. 2304, Springer, Heidelberg (2002)Google Scholar
- 31.Moore, R.: Interval Analysis. Prentice-Hall, Englewood Cliffs (1966)MATHGoogle Scholar
- 32.Owre, S., Rushby, J., Shankar, N.: Pvs: A prototype verification system (1992)Google Scholar
- 33.Ratschan, S.: Slides, available at http://www.mpi-sb.mpg.de/~ratschan/decproc1.pdf
- 34.Ratschan, S.: Continuous first-order constraint satisfaction. In: Proceedings of Artificial Intelligence and Symbolic Computation. LNCS, Springer, Heidelberg (2002)Google Scholar
- 35.Rudin, W.: Principles of Mathematical Analysis, 3rd edn., ch. 10. McGraw-Hill, New York (1976)MATHGoogle Scholar
- 36.Saidi, H., Shankar, N.: Abstract and Model-check While You Prove. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 443–454. Springer, Heidelberg (1999)CrossRefGoogle Scholar
- 37.Schmidt, D.: Data Flow Analysis is Model Checking of Abstract Interpretation. In: Proceedings of SIGPLAN Symposium on Principles of Programming Languages (POPL 1998) (1998)Google Scholar
- 38.Tarski, A.: Logic, Semantics, Metamathematics, papers from 1923 to 1938. Hackett Publishing Company (1983) English Version, original in PolishGoogle Scholar
- 39.Tiwari, A.: An algebraic approach for the unsatisfiability of nonlinear constraints. In: Ong, L. (ed.) CSL 2005. LNCS, vol. 3634, pp. 248–262. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- 40.Visser, W., Park, S., Penix, J.: Applying Predicate Abstraction to Model Check Object-oriented Programs. In: Proceedings of the 33rd ACM SIGSOFT Workshop on Formal Methods in Software Practice,Google Scholar
- 41.Adams, W., Loustaunau, P.: An Introduction to Gröbner Bases. American Mathematical Society (1994)Google Scholar
- 42.Wallace, M., Novello, S., Schimpf, J.: ECLiPSe: A platform for constraint logic programming (1997)Google Scholar
- 43.Xia, S., Vito, B.D., Muñoz, C.: Automated test case generations for non-linear engineering programs. In: Proceedings of the Nineenth International Conference on Automated Software Engineering (2005)Google Scholar