Abstract
Formal verification of real time programs, where variables can change values at every time step, is difficult due to the analyses of loops with time lags. In this paper, we propose a constraint programming model together with a global constraint and a filtering algorithm, for computing over-approximation of real-time streams. The global constraint handles the loop analyses by providing an interval over-approximation of the loop invariant. We apply our method to the FAUST language, a language for processing real-time audio streams. Experiments show that our approach provides accurate results in short times.
Similar content being viewed by others
Notes
FAUST is open source and available at http://faust.grame.fr
For reading facilities, we simply write cycle instead of directed cycle while working with directed structures such as block-diagrams.
See http://faust.grame.fr/index.php/documentation/references for listing and description.
In music, a numeric audio stream is a sequence of values between − 1 and 1
References
Apt, K.R. (1999). The essence of constraint propagation. Theoretical Computer Science, 221(1-2), 179–210.
Araya, I., Trombettoni, G., Neveu, B., & Chabert, G. Upper Bounding in Inner Regions for Global Optimization under Inequality Constraints. Journal of Global Optimization (2), 145–164 (2014).
Bart, A., Truchet, C., & Monfroy, E. (2015). Verifying a real-time language with constraints, 27th IEEE international conference on tools with artificial intelligence, ICTAI 2015, Vietri sul Mare, Italy, November 9-11, 2015 (pp. 844–851), IEEE.
Benhamou, F., & Granvilliers, L. (2006). Continuous and interval constraints, Handbook of constraint programming (pp. 571–603).
Benhamou, F., & J. Older, W. (1997). Applying interval arithmetic to real, integer and Boolean constraints. Journal of Logic Programming, 32(1), 1–24.
Blanc, B., Junke, C., Marre, B., Gall, P.L., & Andrieu, O. (2010). Handling state-machines specifications with gatel. Electronic Notes in Theoretical Computer Science, 264(3), 3–17.
Bygde, S., Ermedahl, A., & Lisper, B. (2009). An efficient algorithm for parametric WCET calculation, 15th IEEE international conference on embedded and real-time computing systems and applications, TCSA 2009, Beijing, China, 24-26 August 2009 (pp. 13–21).
Chabert, G., & Jaulin, L. (2009). Contractor programming. Artificial Intelligence, 173(11), 1079–1100.
Collavizza, H., Delobel, F., & Rueher, M. (1998). A note on partial consistencies over continuous domains (pp. 147–161). Berlin: Springer.
Collavizza, H., Michel, C., Ponsini, O., & Rueher, M. (2014). Generating test cases inside suspicious intervals for floating-point number programs, Proceedings of the 6th international workshop on constraints in software testing, verification, and analysis, CSTVA 2014 (pp. 7–11). New York: ACM.
Cousot, P., & Cousot, R. (1976). Static determination of dynamic properties of programs, Proceedings of the 2nd international symposium on programming (pp. 106–130). Paris: Dunod.
Cousot, P., & Cousot, R. (1977). Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, Conference record of the 4th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages (pp. 238–252). New York, Los Angeles: ACM.
Cousot, P., & Cousot, R. (1992). Abstract interpretation frameworks. Journal of Logic and Computation, 2(4), 511–547.
Denmat, T., Gotlieb, A., & Ducassé, M. (2007). An abstract interpretation based combinator for modeling while loops in constraint programming, Proceedings of the principles and practice of constraint programming CP 2007, Providence, RI USA, September 23-27, 2007 (pp. 241–255).
Di Alesio, S., Nejati, S., Briand, L.C., & Gotlieb, A. (2014). Worst-case scheduling of software tasks - a constraint optimization model to support performance testing, Proceedings of the principles and practice of constraint programming CP 2014, Lyon, France, September 8-12, 2014.
Edgar Moore, R. (1966). Interval analysis. Englewood Cliffs: Prentice-Hall.
Gotlieb, A. (2015). Constraint-based testing: An emerging trend in software testing. Advances in Computers, 99, 67–101.
Halbwachs, N., Caspi, P., Raymond, P., & Pilaud, D. (1991). The synchronous dataflow programming language lustre. Proceedings of the IEEE, 79(9), 1305–1320.
Lallouet, A., Law, Y.C., Lee, J.H., & Siu, C.F. (2011). Constraint programming on infinite data streams, Proceedings of the 22nd international joint conference on artificial intelligence-volume volume one. AAAI Press.
Lee, B., Resnick, K., Bond, M.D., & McKinley, K.S. (2007). Compiler construction: 16th international conference, CC 2007, held as part of the joint European conferences on theory and practice of software, ETAPS 2007, Braga, Portugal, March 26-30, 2007, Proceedings, chap. correcting the dynamic call graph using control-flow constraints (pp. 80–95). Berlin: Springer.
Lee, J., & Lee, J. In: Principles and Practice of Constraint Programming.
Lhomme, O. (1993). Consistency techniques for numeric csps (pp. 232–238).
(2013). moForte: audio modeling for mobile. http://www.moforte.com.
Montanari, U. (1974). Networks of constraints: fundamental properties and applications to picture processing. Information Science, 7(2), 95–132.
Oppenheim, A.V., Willsky, A.S., & Nawab, S.H. (1996). Signals & systems, 2nd Edn. Upper Saddle River: Prentice-Hall.
Orlarey, Y., Fober, D., & Letz, S. (2002). An algebra for block diagram languages, International computer music conference.
Orlarey, Y., Fober, D., & Letz, S. (2004). Syntactical and semantical aspects of Faust. Soft Computing, 8(9), 623–632.
Pelleau, M., Miné, A., Truchet, C., & Benhamou, F. (2013). A constraint solver based on abstract domains, Proceedings of the verification, model checking, and abstract interpretation, 14th international conference, VMCAI 2013, Rome, Italy, January 20-22, 2013 (pp. 434–454).
Podelski, A. (2000). chap. Model checking as constraint solving. In Proceedings of the static analysis: 7th international symposium, SAS 2000, Santa Barbara, CA, USA, June 29 - July 1, 2000 (pp. 22–37). Berlin: Springer.
Ponsini, O., Michel, C., & Rueher, M. (2011). Refining Abstract Interpretation-based Approximations with Constraint Solvers. Tech. rep.
Ponsini, O., Michel, C., & Rueher, M. (2016). Verifying floating-point programs with constraint programming and abstract interpretation techniques. Automated Software Engineering, 23(2), 191–217.
Schrammel, P. (2013). Logico-numerical verification methods for discrete and hybrid systems. Ph.D. thesis, University of Grenoble.
Smith, J.O. (2011). Spectral Audio Signal Processing. http://ccrma.stanford.edu/~jos/sasp/. Online book, 2011 edition.
Acknowledgments
We would like to thank the reviewers for their insightful comments which were numerous, detailed, and clear.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bart, A., Truchet, C. & Monfroy, E. A global constraint for over-approximation of real-time streams. Constraints 22, 463–490 (2017). https://doi.org/10.1007/s10601-017-9268-z
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10601-017-9268-z