Abstract
Decision procedures underlie many program analysis problems. Traditional program analysis algorithms attempt to prove some property about a single, statically-defined program by generating a single constraint. Accordingly, traditional decision procedures take single constraints as input. Extending these traditional program analysis algorithms to reason about potentially infinite languages of programs (as generated by a given metaprogram) requires a new class of decision procedures that reason about languages of constraints. This paper introduces the parameterized class of validity checking problems that take as input a language generator \(\mathcal{A}\). The parameters are: (1) the language formalism for \(\mathcal{A}\), (2) the theory under which each string in the language of \(\mathcal{A}\) is interpretted, and (3) the quantification (existential/universal) of the constraints in the language to which the validity property applies. We introduce such decision problems by presenting an algorithm that decides whether a given finite state automaton \(\mathcal{A}\) generates any valid linear arithmetic constraints.
This research was supported in part by NSF CAREER Grant No. 0546844 and a generous gift from Intel. The information presented here does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Borland, M.: Advanced SQL Command Injection: Applying defense-in-depth practices in web-enabled database applications (2002)
Christensen, A.S., Møller, A., Schwartzbach, M.I.: Precise analysis of string expressions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 1–18. Springer, Heidelberg (2003), URL: http://www.brics.dk/JSA/
Matiyasevich, Y.: Solution of the tenth problem of Hilbert. Mat. Lapok 21, 83–87 (1970)
Tarski, A.: A Decision Method for Elementary Algebra and Geometry. University of California Press (1951)
Gould, C., Su, Z., Devanbu, P.: Static checking of dynamically generated queries in database applications. In: Proc. ICSE 2004 (2004)
Wassermann, G., Su, Z.: Validity Checking for Finite Automata over Linear Arithmetic. Technical report, University of California, Davis, Computer Science Dept. (2006)
Danzer, L., Grünbaum, B., Klee, V.: Helly’s theorem and its relatives. In: Proceedings of the Symposium on Pure Mathematics. Convexity, vol. 7, pp. 101–180. AMS (1963)
Collins, G.E.: Hauptvortrag: Quantifier elimination for real closed fields by cylindrical algebraic decomposition. A Theory and Formal Languages (1975)
Wolper, P., Boigelot, B.: An automata-theoretic approach to Presburger arithmetic constraints (extended abstract). In: SAS, pp. 21–32. Springer, Heidelberg (1995)
Pugh, W.: The omega test: a fast and practical integer programming algorithm for dependence analysis. In: Proc. Supercomputing, pp. 4–13 (1991)
Bledsoe, W.: The Sup-Inf method in Presburger arithmetic. Technical report, University of Texas Math. Department (1974)
Nelson, G.: Techniques for program verification. Technical report, Xerox PARC (1981)
Pratt, V.: Two easy theories whose combination is hard. Technical report, MIT (1977)
Shostak, R.: Deciding linear inequalities by computing loop residues. J. ACM 28 (1981)
Aspvall, B., Shiloach, Y.: A polynomial time algorithm for solving systems of linear inequalities with two variables per inequality. SIAM Computing 9, 827–845 (1980)
Su, Z., Wagner, D.: A class of polynomially solvable range constraints for interval analysis without widenings and narrowings. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 280–295. Springer, Heidelberg (2004)
Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Symposium on Programming, pp. 106–130 (1976)
Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, pp. 234–252 (1977)
Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. TOPLAS 1, 245–257 (1979)
Necula, G.C., Lee, P.: The design and implementation of a certifying compiler. In: Proc. PLDI (1998)
Shostak, R.E.: Deciding combinations of theories. J. ACM 31, 1–12 (1984)
Owre, S., Shankar, N., Rushby, J.: PVS: A Prototype Verification System. In: Proc. CADE 11 (1992)
Bjørner, N., Browne, A., Chang, E., Colón, M., Kapur, A., Manna, Z., Sipma, H., Uribe, T.E.: STeP: Deductive-algorithmic verification of reactive and real-time systems. In: Proc. CAV (1996)
Barrett, C.W., Dill, D.L., Levitt, J.R.: Validity Checking for Combinations of Theories with Equality. In: Proc. FMCAD, pp. 187–201 (1996)
Barrett, C.W., Berezin, S.: CVC lite: A new implementation of the cooperating validity checker category B. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 515–518. Springer, Heidelberg (2004)
Avis, D., Houle, M.E.: Computational aspects of Helly’s theorem and its relatives. International Journal of Computational Geometry Applications 5, 357–367 (1995)
Amenta, N.: Helly-type theorems and generalized linear programming. Discrete & Computational Geometry 12, 241–261 (1994)
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
Wassermann, G., Su, Z. (2006). Validity Checking for Finite Automata over Linear Arithmetic Constraints. In: Arun-Kumar, S., Garg, N. (eds) FSTTCS 2006: Foundations of Software Technology and Theoretical Computer Science. FSTTCS 2006. Lecture Notes in Computer Science, vol 4337. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11944836_37
Download citation
DOI: https://doi.org/10.1007/11944836_37
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-49994-7
Online ISBN: 978-3-540-49995-4
eBook Packages: Computer ScienceComputer Science (R0)