Abstract
Constraint programming techniques are successfully used in various areas of software engineering for industry, commerce, transport, finance etc. Constraint solvers for different data types are applied in validation and verification of programs containing data elements of these types. A general constraint solver for sequences is necessary to take into account this data type in the existing validation and verification tools. In this work, we present an original constraint solver for sequences implemented in CHR and based on T. Frühwirth’s solver for lists with the propagation of two constraints: generalized concatenation and size. Experimental results show its better efficiency compared to the intuitive propagation algorithm based on subsequences. The applications of the solver (with the validation and verification tool BZTT) to different software engineering problems are illustrated by the example of a waiting room model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)
Lothaire, M.: Algebraic Combinatorics on Words. Cambridge University Press, Cambridge (2002)
Berkaoui, L., Legeard, B.: Représentation de séquences définies sur des ensembles non instanciés par arbre PQR partiel. In: Actes de JFPLC 1998, Nantes, France, pp. 251–266. Hermès (May 1998)
Bouquet, F., Legeard, B., Peureux, F.: CLPS-B – Constraint solver to animate a B specification. International Journal on Software Tools for Technology Transfer 6(2), 143–157 (2004)
The BZ-Testing-Tools, web site: http://lifc.univ-fcomte.fr/~bztt University of Franche-Comté, Besançon
Colmerauer, A.: An introduction to Prolog III. Communications of the ACM 33(7), 69–90 (1990)
Durnev, V.G.: Studying algorithmic problems for free semi-groups and groups. In: Adian, S., Nerode, A. (eds.) LFCS 1997. LNCS, vol. 1234, pp. 88–101. Springer, Heidelberg (1997)
Frühwirth, T.: Theory and Practice of Constraint Handling Rules. In: Stuckey, P., Marriot, K. (eds.) Special Issue on Constraint Logic Programming. Journal of Logic Programming 37(1-3), 95–138 (1998)
Frühwirth, T.: The CHR, web site: http://www.informatik.uni-ulm.de/pm/fileadmin/pm/home/fruehwirth/chr.html Universität Ulm
Karhumäki, J., Mignosi, F., Plandowski, W.: The expressibility of languages and relations by word equations. Journal of the ACM 47(3), 483–505 (2000)
Koscielski, A., Pacholski, L.: Complexity of Makanin’s Algorithm. Journal of the ACM 43(4), 670–684 (1996)
Kosmatov, N.: Constraint solving for sequences, web site: http://lifc.univ-fcomte.fr/~kosmatov/sequences University of Franche-Comté, Besançon
Kosmatov, N., Legeard, B., Peureux, F., Utting, M.: Boundary Coverage Criteria for Test Generation from Formal Models. In: Proc. of the 15th Int. Symp. on Software Reliability Engineering (ISSRE 2004), Saint-Malo, France, pp. 139–150. IEEE Computer Society Press, Los Alamitos (2004)
Makanin, G.S.: The problem of solvability of equations in a free semigroup. Mat. Sbornik (N.S.) 103(2), 147–236 (1977) (in Russian); English translation in: Math. URSS Sbornik 32, 129–198 (1977)
Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice-Hall, Englewood Cliffs (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kosmatov, N. (2006). Constraint Solving for Sequences in Software Validation and Verification. In: Umeda, M., Wolf, A., Bartenstein, O., Geske, U., Seipel, D., Takata, O. (eds) Declarative Programming for Knowledge Management. INAP 2005. Lecture Notes in Computer Science(), vol 4369. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11963578_3
Download citation
DOI: https://doi.org/10.1007/11963578_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69233-1
Online ISBN: 978-3-540-69234-8
eBook Packages: Computer ScienceComputer Science (R0)