A Proof Assistant for Alloy Specifications

  • Mattias Ulbrich
  • Ulrich Geilmann
  • Aboubakr Achraf El Ghazi
  • Mana Taghdiri
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7214)


Alloy is a specification language based on a relational first-order logic with built-in operators for transitive closure, set cardinality, and integer arithmetic. The Alloy Analyzer checks Alloy specifications automatically with respect to bounded domains. Thus, while suitable for finding counterexamples, it cannot, in general, provide correctness proofs. This paper presents Kelloy, a tool for verifying Alloy specifications with respect to potentially infinite domains. It describes an automatic translation of the full Alloy language to the first-order logic of the KeY theorem prover, and an Alloy-specific extension to KeY’s calculus. It discusses correctness and completeness conditions of the translation, and reports on our automatic and interactive experiments.


Function Symbol Transitive Closure Sequent Calculus Proof Obligation Proof Assistant 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abrial, J.-R., Hallerstede, S.: Refinement, decomposition, and instantiation of discrete models: Application to Event-B. Fundamenta Informaticae (2007)Google Scholar
  2. 2.
    Arkoudas, K., Khurshid, S., Marinov, D., Rinard, M.: Integrating model checking and theorem proving for relational reasoning. In: RMICS (2003)Google Scholar
  3. 3.
  4. 4.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software. LNCS (LNAI), vol. 4334. Springer, Heidelberg (2007)Google Scholar
  5. 5.
    Buss, S.R.: First-order proof theory of arithmetic. In: Handbook of Proof Theory, pp. 79–147. Elsevier (1998)Google Scholar
  6. 6.
    van Eijck, J.: Defining (reflexive) transitive closure on finite models,
  7. 7.
    El Ghazi, A.A., Geilmann, U., Ulbrich, M., Taghdiri, M.: A Dual-Engine for Early Analysis of Critical Systems. In: DSCI (2011)Google Scholar
  8. 8.
    El Ghazi, A.A., Taghdiri, M.: Analyzing Alloy Constraints using an SMT Solver: A Case Study. In: AFM (2010)Google Scholar
  9. 9.
    El Ghazi, A.A., Taghdiri, M.: Relational Reasoning via SMT Solving. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 133–148. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  10. 10.
    Fortune, S., Leivant, D., O’Donnell, M.: The expressiveness of simple and second-order type structures. J. ACM (1983)Google Scholar
  11. 11.
    Frias, M., Pombo, C.G.L.: Interpretability of first-order linear temporal logics in fork algebras. In: Journal of logic and algebraic programming (2006)Google Scholar
  12. 12.
    Frias, M.F., Pombo, C.G.L., Aguirre, N.M.: An Equational Calculus for Alloy. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 162–175. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. 13.
    Frias, M., Pombo, C.G.L., Baum, G., Aguirre, N.M., Maibaum, T.: Taking Alloy to the movies. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 678–697. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    Gentzen, G.: Untersuchungen über das logische Schließen. Mathematische Zeitschrift (1935)Google Scholar
  16. 16.
    Jackson, D.: Software Abstractions: Logic, Language and Analysis. MIT Press (2006)Google Scholar
  17. 17.
    Jackson, D., Wing, J.: Lightweight formal methods. IEEE Computer (1996)Google Scholar
  18. 18.
    Köker, C.: Discharging Event-B proof obligations. Studienarbeit, Universität Karlsruhe, TH (2008)Google Scholar
  19. 19.
    Lev-Ami, T., Immerman, N., Reps, T.W., Sagiv, M., Srivastava, S., Yorsh, G.: Simulating reachability using first-order logic with applications to verification of linked data structures. Logical Methods in Computer Science 5(2) (2009)Google Scholar
  20. 20.
    Shankar, N., Owre, S., Rushby, J., Stringer-Calvert, D.: PVS Prover Guide. Computer Science Laboratory, SRI International (1999)Google Scholar
  21. 21.
    Ulbrich, M., Geilmann, U., Ghazi, A.A.E., Taghdiri, M.: On proving alloy specifications using KeY. Tech. Rep. 2011-37, Karlsruhe Institute of Technology (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Mattias Ulbrich
    • 1
  • Ulrich Geilmann
    • 1
  • Aboubakr Achraf El Ghazi
    • 1
  • Mana Taghdiri
    • 1
  1. 1.Karlsruhe Institute of TechnologyGermany

Personalised recommendations