Abstract
In this paper, we present the design and implementation of the Composite Symbolic Library, a symbolic manipulator for model checking systems with heterogeneous data types. Our tool provides a common interface for different symbolic representations, such as BDDs, for representing Boolean logic formulas and polyhedral representations for linear arithmetic formulas. Based on this common interface, these data structures are combined using a disjunctive composite representation. We propose several heuristics for efficient manipulation of this composite representation and present experimental results that demonstrate their performance. We used an object-oriented design to implement the Composite Symbolic Library. We imported the CUDD library (a BDD library) and the Omega Library (a linear arithmetic constraint manipulator that uses polyhedral representations) to our tool by writing wrappers around them which conform to our symbolic representation interface. Our tool supports polymorphic verification procedures which dynamically select symbolic representations based on the input specification. Our symbolic representation library can be used as an interface between different symbolic libraries, model checkers, and specification languages. We expect our tool to be useful in integrating different tools and techniques for symbolic model checking, and in comparing their performance.
Similar content being viewed by others
References
Alur, R., Henzinger, T.A., Ho, P.: Automatic symbolic verification of embedded systems. IEEE Trans Software Eng 22(3): 181–201, 1996
Andrews, G.R.: Concurrent programming: principles and practice. Benjamin/Cummings, Redwood City, Calif., USA, 1991
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.H.: Symbolic model checking: 1020 states and beyond. In: Proc. 5th Annual IEEE Symposium on Logic in Computer Science, pp. 428–439, January 1990
Bultan, T., Gerber, R., League, C.: Verifying systems with integer constraints and Boolean predicates: a composite approach. In: Proc. 1998 ACM SIGSOFT International Symposium on Software Testing and Analysis, pp. 113–123, March 1998
Bensalem, S., Ganesh, V., Lakhnech, Y., Munoz, C., Owre, S., Rueb, H., Rushby, J., Rusu, V., Saidi, H., Shankar, N., Singerman, E., Tiwari, A.: An overview of SAL. In: Proc. 5th Langley Formal Methods Workshop, June 2000
Bultan, T., Gerber, R., League, C.: Composite model checking: verification with type-specific symbolic representations. ACM Trans Software Eng Methodol 9(1): 3–50, 2000
Bultan, T., Gerber, R., Pugh, W.: Symbolic model checking of infinite state systems using Presburger arithmetic. In: Grumberg, O., (ed.), Proc. 9th International Conference on Computer Aided Verification, Lecture Notes in Computer Science, vol. 1254. Springer, Berlin Heidelberg New York, 1997, pp. 400–411
Bultan, T., Gerber, R., Pugh, W.: Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results. ACM Trans Program Lang Syst 21(4): 747–789, 1999
Bensalem, S., Lakhnech, Y., Owre, S.: Computing abstractions of infinite state systems compositionally and automatically. In: Proc. 10th International Conference for Computer-Aided Verification (CAV’98), 1998
Ball, T., Podelski, A., Rajamani, S.K.: Boolean and Cartesian abstraction for model checking C programs. J Softw Tools Technol Transfer 5(1): 49–58, 2003
Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans Comput 35(8): 677–691, 1986
Bharadwaj, R., Sims, S.: Salsa: combining constraint solvers with BDDs for automatic invariant checking. In: Graf, S., Schwartzbach, M., (eds.), Proc. 6th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science, vol. 1254. Springer, Berlin Heidelberg New York, 2000, pp. 378–394
Bultan, T., Yavuz-Kahveci, T.: Action Language Verifier. In: Proc. 6th IEEE International Conference on Automated Software Engineering (ASE 2001), 2001
Chan, W., Anderson, R.J., Beame, P., Burns, S., Modugno, F., Notkin, D., Reese, J.D.: Model checking large software specifications. IEEE Trans Software Eng 24(7): 498–520, 1998
Chan, W., Anderson, R.J., Beame, P., Notkin, D.: Combining constraint solving and symbolic model checking for a class of systems with non-linear constraints. In: Grumberg, O., (ed.), Proc. 9th International Conference on Computer Aided Verification, Lecture Notes in Computer Science, vol. 1254. Springer, Berlin Heidelberg New York, 1997, pp. 316–327
Courtois, P.J., Parnas, D.L.: Documentation for safety critical software. In: Proc. 15th International Conference on Software Engineering, pp. 315–323, May 1993
CUDD : CU decision diagram package, http://vlsi.colorado.edu/∼fabio/cudd/
Delzanno, G., Bultan, T.: Constraint-based verification of client server protocols. In: Proc. 7th International Conference on Principles and Practice of Constraint Programming (CP 2001), 2001
Delzanno, G., Podelski, A.: Constraint-based deductive model checking. J Softw Tools Technol Transfer 3(3): 250–270, 2001
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, Mass., USA, 1994
Halbwachs, N.: Delay analysis in synchronous programs. In: C. Courcoubetis, (ed.), Proc. Computer Aided Verification, Lecture Notes in Computer Science, vol. 697. Springer, Berlin Heidelberg New York, 1993, pp. 333–346
Halbwachs, N., Raymond, P., Proy, Y.: Verification of linear hybrid systems by means of convex approximations. In: LeCharlier, B., (ed.), Proc. International Symposium on Static Analysis, Lecture Notes in Computer Science, vol. 864. Springer, Berlin Heidelberg New York, 1994
Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The Omega Library interface guide. Technical Report CS-TR-3445, Department of Computer Science, University of Maryland, College Park, March 1995
McMillan, K.L.: Symbolic model checking. Kluwer Academic, Boston, Mass., USA, 1993
The Omega project, http://www.cs.umd.edu/projects/omega/
Saidi, H.: Model checking guided abstraction and analysis. In: Proc. Statica Analysis Symposium, Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York, 2000
Srivastava, D.: Subsumption and indexing in constraint query languages with linear arithmetic constraints. Ann Math Artif Intel 8: 315–343, 1993
Yavuz-Kahveci, T., Bultan, T.: Heuristics for efficient manipulation of composite constraints. In: Proc. 4th International Workshop on Frontiers of Combining Systems (FroCoS 2002), 2002
Yavuz-Kahveci, T., Tuncer, M., Bultan, T.: Composite symbolic library. In: Proc. 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science, vol. 2031. Springer, Berlin Heidelberg New York, 2001
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
About this article
Cite this article
Yavuz-Kahveci, T., Bultan, T. A symbolic manipulator for automated verification of reactive systems with heterogeneous data types. Int J Softw Tools Technol Transfer 5, 15–33 (2003). https://doi.org/10.1007/s10009-002-0091-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-002-0091-4