Skip to main content

Relational Reasoning via SMT Solving

  • Conference paper
FM 2011: Formal Methods (FM 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6664))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Alloy community, http://alloy.mit.edu/community/

  2. Abadi, A., Rabinovich, A., Sagiv, M.: Decidable fragments of many-sorted logic. Preprint submitted to Elsevier (2009)

    Google Scholar 

  3. Arkoudas, K., Khurshid, S., Marinov, D., Rinard, M.: Integrating model checking and theorem proving for relational reasoning. In: RELMICS, pp. 21–33 (2003)

    Google Scholar 

  4. The satisfiability modulo theories library, http://goedel.cs.uiowa.edu/smtib

  5. 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)

    Chapter  Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. Dennis, G., Chang, F., Jackson, D.: Modular verification of code with SAT. In: ISSTA, pp. 109–120 (2006)

    Google Scholar 

  8. Dutertre, B., de Moura, L.: The Yices SMT Solver. Tool Document (2006)

    Google Scholar 

  9. Erkök, L., Matthews, J.: Using Yices as an automated solver in Isabelle/HOL. In: AFM (2008)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. Ge, Y., Barrett, C., Tinelli, C.: Solving quantified verification conditions using satisfiability modulo theories. AMAI 55(1), 101–122 (2009)

    MathSciNet  MATH  Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. EI Ghazi, A.A., Taghdiri, M.: Analyzing Alloy constraints using an SMT solver: A case study. In: AFM, Edinburgh, United Kingdom (2010)

    Google Scholar 

  14. Jackson, D.: Software Abstractions: Logic, Lang. and Analysis. MIT Press, Cambridge (2006)

    Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. Khurshid, S.: Generating Structurally Complex Tests from Declarative Constraints. PhD thesis, MIT (2003)

    Google Scholar 

  17. Khurshid, S., Jackson, D.: Exploring the design of an intentional naming scheme with an automatic constraint analyzer. In: ASE (2000)

    Google Scholar 

  18. Leino, R., Monahan, R.: Reasoning about comprehensions with first-order SMT solvers. In: SAC, pp. 615–622 (2009)

    Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. Nolte, T.: Exploring filesystem synchronization with lightweight modeling and analysis. Master’s thesis, MIT (2002)

    Google Scholar 

  21. Owre, S., Shankar, N., Rushby, J.: PVS: A prototype verification system. In: CADE-11 (1992)

    Google Scholar 

  22. Spass: Automated prover for FOL with equality, http://www.spass-prover.org/

  23. 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)

    Chapter  Google Scholar 

  24. 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)

    Chapter  Google Scholar 

  25. Taghdiri, M., Jackson, D.: Inferring specifications to detect errors in code. JASE 14(1), 87–121 (2007)

    Google Scholar 

  26. Torlak, E.: A Constraint Solver for Software Engineering. PhD thesis, MIT (2009)

    Google Scholar 

  27. Vaziri, M.: Finding Bugs in Software with Constraint Solver. PhD thesis (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics