Formal Methods in System Design

, Volume 51, Issue 3, pp 545–574 | Cite as

Cardinality constraints for arrays (decidability results and applications)

  • F. Alberti
  • S. Ghilardi
  • E. Pagani


Enriching logic formalisms with counting capabilities is an important task in view of the needs of many application areas, ranging from database theory to formal verification. In this paper, we consider a very expressive language obtained by enriching linear integer arithmetic with free function symbols and cardinality constraints for interpreted sets. We obtain positive results for a flat fragment via a reduction to decidability of Presburger arithmetic with unary counting quantifiers (Schweikhart in Arithmetic, first-order logic, and counting quantifiers, ACM TOCL, New York, 2004). We isolate also an easier simple flat subfragment, whose satisfiability is in NP, and we show that this subfragment is adequate to formalize problems arising in the area of the verification of fault-tolerant distributed algorithms. We finally discuss our first implementation, the related experimental results, as well as further algorithmic problems suggested by model-checking applications.


Arrays Cardinality constraints Fault-tolerant systems 


  1. 1.
    Abdulla PA, Cerans K, Jonsson B, Tsay YK (1996) General decidability theorems for infinite-state systems. In: Proc. of LICS, pp 313–321Google Scholar
  2. 2.
    Abdulla PA, Delzanno G, Henda NB, Rezine A (2007) Regular model checking without transducers. TACAS, LNCS vol 4424, pp 721–736Google Scholar
  3. 3.
    Abdulla PA, Delzanno G, Rezine A (2007) Parameterized verification of infinite-state processes with global conditions. CAV, LNCS, vol 4590, pp 145–157Google Scholar
  4. 4.
    Abdulla PA, Jonsson B (1996) Verifying programs with unreliable channels. Inf Comput 127(2):91–101MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Abdulla PA, Jonsson B (2003) Model checking of systems with many identical timed processes. Theor Comput Sci 290:241–264MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Alberti F, Ghilardi S, Pagani E (2016) Counting constraints in flat array fragments. In: Automated reasoning—8th international joint conference, IJCAR 2016, Coimbra, Portugal, June 27–July 2, 2016, Proceedings, pp 65–81Google Scholar
  7. 7.
    Alberti F, Ghilardi S, Sharygina N (2015) Decision procedures for flat array properties. J Autom Reason 54(4):327–352. doi: 10.1007/s10817-015-9323-7
  8. 8.
    Bansal K, Reynolds A, Barrett CW, Tinelli C (2016) A new decision procedure for finite sets and cardinality constraints in SMT. In: Automated reasoning—8th international joint conference, IJCAR 2016, Coimbra, Portugal, June 27—July 2, 2016, Proceedings, pp 82–98Google Scholar
  9. 9.
    Biely M, Charron-Bost B, Gaillard A, Hutle M, Schiper A (2007) Widder, J.: Tolerating corrupted communication. In: Proc. PODC, pp 244–253Google Scholar
  10. 10.
    Bjørner N, von Gleissenthall K, Rybalchenko A (2016) Cardinalities and universal quantifiers for verifying parameterized systems. In: Proc. of the 37th ACM SIGPLAN conference on programming language design and implementation (PLDI)Google Scholar
  11. 11.
    Charron-Bost B, Schiper A (2009) The heard-of model: computing in distributed systems with benign faults. Distrib Comput 22:49–71CrossRefzbMATHGoogle Scholar
  12. 12.
    Delzanno G, Esparza J, Podelski A (1999) Constraint-based analysis of broadcast protocols. In: Proc. of CSL, LNCS, vol 1683, pp 50–66Google Scholar
  13. 13.
    de Moura L, Bjørner N (2008) Z3: An efficient SMT solver. In: TACAS, pp 337–340Google Scholar
  14. 14.
    Dragoi C, Henzinger T, Veith H, Widder J, Zufferey D (2014) A logic-based framework for verifying consensus algorithms. In: Proc. of VMCAIGoogle Scholar
  15. 15.
    Dragoi C, Henzinger T, Zufferey D (2015) The need for language support for fault-tolerant distributed systems. In: Proc. of SNAPLGoogle Scholar
  16. 16.
    Eisenbrand F, Shmonin G (2006) Carathéodory bounds for integer cones. Oper Res Lett 34(5):564–568MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Esparza J, Finkel A, Mayr R (1999) On the verification of broadcast protocols. In: Proc. of LICS. IEEE Computer Society, pp 352–359Google Scholar
  18. 18.
    Ge Y, de Moura LM (2009) Complete instantiation for quantified formulas in satisfiabiliby modulo theories. In: Computer aided verification, 21st international conference, CAV 2009, Grenoble, France, June 26–July 2, 2009. Proceedings, pp 306–320. doi: 10.1007/978-3-642-02658-4_25
  19. 19.
    Ghilardi S, Pagani E (2017) Counter systems simulations: a higher-order logic approach, manuscriptGoogle Scholar
  20. 20.
    Halpern J (1991) Presburger arithmetic with unary predicates is \(\varPi ^1_1\) complete. J Symbo Log 56(2):637–642MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Herlihy M, Shavit N (2008) The art of multiprocessor programming. Morgan Kaufmann, BurlingtonGoogle Scholar
  22. 22.
    John A, Konnov I, Schmid U, Veith H, Widder J (2013) Parameterized model checking of fault-tolerant distributed algorithms by abstraction. In: Proc. of FMCAD, pp 201–209Google Scholar
  23. 23.
    Konnov I, Veith H, Widder J (2015) SMT and POR beat counter abstraction: parameterized model checking of threshold-based distributed algorithms. In: Computer aided verification, 27th international conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I, pp 85–102. doi: 10.1007/978-3-319-21690-4_6
  24. 24.
    Konnov IV, Veith H, Widder J (2017) On the completeness of bounded model checking for threshold-based distributed algorithms: Reachability. Inf Comput 252:95–109. doi: 10.1016/j.ic.2016.03.006
  25. 25.
    Konnov IV, Veith H, Widder J (2015) What you always wanted to know about model checking of fault-tolerant distributed algorithms. In: Perspectives of system informatics—10th international Andrei Ershov informatics conference, PSI 2015, in Memory of Helmut Veith, Kazan and Innopolis, Russia, August 24–27, 2015, Revised Selected Papers, pp 6–21Google Scholar
  26. 26.
    Kuncak V, Nguyen H, Rinard M (2005) An algorithm for deciding BAPA: Boolean Algebra with Presburger Arithmetic. In: Proc. of CADE-20, LNCS, vol 3632Google Scholar
  27. 27.
    Kuncak V, Nguyen HH, Rinard M (2006) Deciding Boolean algebra with Presburger arithmetic. J Autom Reason 36(3):213–239MathSciNetCrossRefzbMATHGoogle Scholar
  28. 28.
    Kunkak V, Rinard M (2007) Towards efficient satisfiability checking for Boolean Algebras with Presburger arithmetic. In: CADE, vol 21, pp 215–230Google Scholar
  29. 29.
    Nieuwenhuis R, Oliveras A, Tinelli C (2006) Solving SAT and SAT modulo theories: from an abstract davis-putnam-logemann-loveland procedure to DPLL(T). J ACM 53(6):937–977MathSciNetCrossRefzbMATHGoogle Scholar
  30. 30.
    Papamarcos M, Patel J (1984) A low-overhead coherence solution for multiprocessors with private cache memories. In: Proc. ISCA, p 348Google Scholar
  31. 31.
    Piskac R, Kuncak V (2008) Decision procedures for multisets with cardinality constraints. In: Proc. of VMCAI, LNCSGoogle Scholar
  32. 32.
    Presburger M (1929) Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchem die Addition als einzige Operation hervortritt. WarszawaGoogle Scholar
  33. 33.
    Schweikhart N (2004) Arithmetic, first-order logic, and counting quantifiers. ACM TOCL pp 1–35Google Scholar
  34. 34.
    Solihin Y (2008) Fundamentals of parallel computer architecture multichip and multicore systems. Solihin Publishing & Consulting LLC, RaleighGoogle Scholar
  35. 35.
    Srikanth T, Toueg S (1987) Optimal clock synchronization. J ACM 34(3):626–645MathSciNetCrossRefGoogle Scholar
  36. 36.
    Srikanth T, Toueg S (1987) Simulating authenticated broadcasts to derive simple fault-tolerant algorithms. Distrib Comput 2(2):80–94. doi: 10.1007/BF01667080 CrossRefGoogle Scholar
  37. 37.
    Yessenov K, Piskac R, Kuncak V (2010) Collections, cardinalities, and relations. In: Proc. of VMCAIGoogle Scholar
  38. 38.
    Zarba C (2002) Combining sets with integers. In: Frontiers of combining systems, 4th international workshop, FroCoS 2002, Santa Margherita Ligure, Italy, April 8–10, Proceedings, pp 103–116Google Scholar

Copyright information

© Springer Science+Business Media New York 2017

Authors and Affiliations

  1. 1.Network Support System UnitEOLO SpABusto ArsizioItaly
  2. 2.Dipartimento di MatematicaUniversità degli StudiMilanoItaly
  3. 3.Dipartimento di InformaticaUniversità degli StudiMilanoItaly

Personalised recommendations