Abstract
This paper proposes a new approach for deriving invariants that are systems of congruence equations where the modulo is a power of 2. The technique is an amalgam of SAT-solving, where a propositional formula is used to encode the semantics of a basic block, and abstraction, where the solutions to the formula are systematically combined and summarised as a system of congruence equations. The resulting technique is more precise than existing congruence analyses since a single optimal transfer function is derived for a basic block as a whole.
Chapter PDF
References
Bagnara, R., Dobson, K., Hill, P.M., Mundell, M., Zaffanella, E.: Grids: A Domain for Analyzing the Distribution of Numerical Values. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 219–235. Springer, Heidelberg (2007)
Bryant, R.E.: On the complexity of VLSI implementations and graph representations of Boolean functions with application to integer multiplication. IEEE Transactions on Computers 40(2), 205–213 (1991)
Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)
Cousot, P., Halbwachs, N.: Automatic discovery of linear constraints among variables of a program. In: Symposium on Principles of Programming Languages, pp. 84–97. ACM, New York (1978)
Granger, P.: Static analysis of arithmetical congruences. International Journal of Computer Mathematics 30, 165–190 (1989)
Granger, P.: Static analyses of linear congruence equalities among variables of a program. In: Abramsky, S. (ed.) CAAP 1991 and TAPSOFT 1991. LNCS, vol. 493, pp. 167–192. Springer, Heidelberg (1991)
Gulwani, S., Necula, G.C.: Discovering affine equalities using random interpretation. In: Principles of Programming Languages, pp. 74–84. ACM, New York (2003)
Jackson, D., Vaziri, M.: Finding bugs with a constraint solver. In: International Symposium on Software Testing and Analysis, pp. 14–25. ACM, New York (2000)
Karr, M.: Affine relationships among variables of a program. Acta Informatica 6, 133–151 (1976)
Kettle, N., King, A., Strzemecki, T.: Widening ROBDDs with prime implicants. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, pp. 105–119. Springer, Heidelberg (2006)
King, A., Søndergaard, H.: Inferring congruence equations using SAT. Technical Report 1-08, Computing Laboratory, University of Kent, CT2 7NF (2008)
Le Berre, D.: A satisfiability library for Java, http://www.sat4j.org
Leroux, J.: Disjunctive invariants for numerical systems. In: Wang, F. (ed.) ATVA 2004. LNCS, vol. 3299, pp. 93–107. Springer, Heidelberg (2004)
Müller-Olm, M., Seidl, H.: A Note on Karr’s Algorithm. In: Díaz, J., Karhumäki, J., Lepistö, A., Sannella, D. (eds.) ICALP 2004. LNCS, vol. 3142, pp. 1016–1028. Springer, Heidelberg (2004)
Müller-Olm, M., Seidl, H.: Analysis of modular arithmetic. ACM Transactions on Programming Languages and Systems 29(5) (August 2007) (Article 29)
Plaisted, D.A., Greenbaum, S.: A structure-preserving clause form translation. Journal of Symbolic Compututation 2(3), 293–304 (1986)
Ravi, K., McMillan, K.L., Shiple, T.R., Somenzi, F.: Approximation and decomposition of binary decision diagrams. In: Design Automation Conference, pp. 445–450. IEEE Press, Los Alamitos (1998)
Warren Jr., H.S.: Hacker’s Delight. Addison Wesley, Reading (2003)
Wegner, P.: A technique for counting ones in a binary computer. Communications of the ACM 3(5), 322–322 (1960)
Xie, Y., Aiken, A.: SATURN: A scalable framework for error detection using Boolean satisfiability. ACM Transactions on Programming Languages and Systems 29(3) (2007) (Article 16)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
King, A., Søndergaard, H. (2008). Inferring Congruence Equations Using SAT. In: Gupta, A., Malik, S. (eds) Computer Aided Verification. CAV 2008. Lecture Notes in Computer Science, vol 5123. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70545-1_26
Download citation
DOI: https://doi.org/10.1007/978-3-540-70545-1_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70543-7
Online ISBN: 978-3-540-70545-1
eBook Packages: Computer ScienceComputer Science (R0)