Abstract
This paper explores the idea of using a SAT Modulo Theories (SMT) solver for proving properties of relational specifications. The goal is to automatically establish or refute consistency of a set of constraints expressed in a first-order relational logic, namely Alloy, without limiting the analysis to a bounded scope. Existing analysis of relational constraints – as performed by the Alloy Analyzer – is based on SAT solving and thus requires finitizing the set of values that each relation can take. Our technique complements this approach by axiomatizing all relational operators in a first-order SMT logic, and taking advantage of the background theories supported by SMT solvers. Consequently, it can potentially prove that a formula is a tautology – a capability completely missing from the Alloy Analyzer – and generate a counterexample when the proof fails. We also report on our experiments of applying this technique to various systems specified in Alloy.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
The Alloy community, http://alloy.mit.edu/community/
Abadi, A., Rabinovich, A., Sagiv, M.: Decidable fragments of many-sorted logic. Preprint submitted to Elsevier (2009)
Arkoudas, K., Khurshid, S., Marinov, D., Rinard, M.: Integrating model checking and theorem proving for relational reasoning. In: RELMICS, pp. 21–33 (2003)
The satisfiability modulo theories library, http://goedel.cs.uiowa.edu/smtib
Bonacina, M.P., Lynch, C., de Moura, L.: On deciding satisfiability by dPLL(\(\Gamma+{\mathcal T}\)) and unsound theorem proving. In: Schmidt, R.A. (ed.) CADE-22. LNCS, vol. 5663, pp. 35–50. Springer, Heidelberg (2009)
de Moura, L., Bjorner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)
Dennis, G., Chang, F., Jackson, D.: Modular verification of code with SAT. In: ISSTA, pp. 109–120 (2006)
Dutertre, B., de Moura, L.: The Yices SMT Solver. Tool Document (2006)
Erkök, L., Matthews, J.: Using Yices as an automated solver in Isabelle/HOL. In: AFM (2008)
Frias, M.F., Pombo, C.G.L., Moscato, M.M.: Alloy analyzer+PVS in the analysis and verification of alloy specifications. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 587–601. Springer, Heidelberg (2007)
Ge, Y., Barrett, C., Tinelli, C.: Solving quantified verification conditions using satisfiability modulo theories. AMAI 55(1), 101–122 (2009)
Ge, Y., Moura, L.: Complete instantiation for quantified formulas in satisfiabiliby modulo theories. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 306–320. Springer, Heidelberg (2009)
EI Ghazi, A.A., Taghdiri, M.: Analyzing Alloy constraints using an SMT solver: A case study. In: AFM, Edinburgh, United Kingdom (2010)
Jackson, D.: Software Abstractions: Logic, Lang. and Analysis. MIT Press, Cambridge (2006)
Kang, E., Jackson, D.: Formal modeling and analysis of a flash filesystem in Alloy. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 294–308. Springer, Heidelberg (2008)
Khurshid, S.: Generating Structurally Complex Tests from Declarative Constraints. PhD thesis, MIT (2003)
Khurshid, S., Jackson, D.: Exploring the design of an intentional naming scheme with an automatic constraint analyzer. In: ASE (2000)
Leino, R., Monahan, R.: Reasoning about comprehensions with first-order SMT solvers. In: SAC, pp. 615–622 (2009)
Lev-ami, T., Immerman, N., Reps, T., Sagiv, M., et al.: Simulating reachability using first-order logic. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 99–115. Springer, Heidelberg (2005)
Nolte, T.: Exploring filesystem synchronization with lightweight modeling and analysis. Master’s thesis, MIT (2002)
Owre, S., Shankar, N., Rushby, J.: PVS: A prototype verification system. In: CADE-11 (1992)
Spass: Automated prover for FOL with equality, http://www.spass-prover.org/
Suter, P., Steiger, R., Kuncak, V.: Sets with cardinality constraints in satisfiability modulo theories. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 403–418. Springer, Heidelberg (2011)
Taghdiri, M., Jackson, D.: A lightweight formal analysis of a multicast key management scheme. In: König, H., Heiner, M., Wolisz, A. (eds.) FORTE 2003. LNCS, vol. 2767, pp. 240–256. Springer, Heidelberg (2003)
Taghdiri, M., Jackson, D.: Inferring specifications to detect errors in code. JASE 14(1), 87–121 (2007)
Torlak, E.: A Constraint Solver for Software Engineering. PhD thesis, MIT (2009)
Vaziri, M.: Finding Bugs in Software with Constraint Solver. PhD thesis (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
El Ghazi, A.A., Taghdiri, M. (2011). Relational Reasoning via SMT Solving. In: Butler, M., Schulte, W. (eds) FM 2011: Formal Methods. FM 2011. Lecture Notes in Computer Science, vol 6664. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21437-0_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-21437-0_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21436-3
Online ISBN: 978-3-642-21437-0
eBook Packages: Computer ScienceComputer Science (R0)