Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3368089.3417938acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

AlloyMC: Alloy meets model counting

Published: 08 November 2020 Publication History

Abstract

Specifying and analyzing desired properties of software systems can play an important role in the development of more dependable systems. Alloy is a mature tool-set that provides a first-order, rela- tional logic with transitive closure for writing the specifications, and a fully automatic backend based on propositional satisfiability (SAT) solvers for analyzing them. Alloy’s intuitive notation and sup- port for modern solvers make it a particularly effective specification and analysis tool, which has been applied in several domains, including verification, security, and synthesis. This paper introduces a new backend for Alloy, which complements SAT solvers, and provides a new method to assist Alloy users to more effectively use the tool-set, specifically in scenarios where multiple solutions to the same formula are desired. We add to the Alloy backend support for model counting, i.e., computing the number of solutions to the given formula. We extend the Alloy grammar to add a new com- mand for model counting, and extend the Alloy GUI to customize it. Our implementation, called AlloyMC, supports two state-of-the-art model counters: the approximate model counter ApproxMC and the exact model counter ProjMC. AlloyMC runs on Linux, Mac, and Windows. To use AlloyMC, users just download and run its integrated JAR file with no need to install dependencies (e.g., model counters and their dependent libraries). The AlloyMC source code, the JAR file, and the data set are available publicly.

Supplementary Material

Auxiliary Teaser Video (fse20demo-p34-p-teaser.mp4)
This is a 10-minute presentation video of my talk at ESEC/FSE 2020. Our paper name is AlloyMC: Alloy Meets Model Counting. This paper introduces a new backend for Alloy, which complements SAT solvers, and provides a new method to assist Alloy users to more effectively use the tool-set, specifically in scenarios where multiple solutions to the same formula are desired. We add to the Alloy backend support for model counting, i.e., computing the number of solutions to the given formula. Besides this, many other new functions are also integrated.
Auxiliary Presentation Video (fse20demo-p34-p-video.mp4)
This is a 10-minute presentation video of my talk at ESEC/FSE 2020. Our paper name is AlloyMC: Alloy Meets Model Counting. This paper introduces a new backend for Alloy, which complements SAT solvers, and provides a new method to assist Alloy users to more effectively use the tool-set, specifically in scenarios where multiple solutions to the same formula are desired. We add to the Alloy backend support for model counting, i.e., computing the number of solutions to the given formula. Besides this, many other new functions are also integrated.

References

[1]
Devdatta Akhawe, Adam Barth, Peifung E Lam, John Mitchell, and Dawn Song. 2010. Towards a formal foundation of web security. In 2010 23rd IEEE Computer Security Foundations Symposium. IEEE, 290-304.
[2]
Fadi A Aloul, Karem A Sakallah, and Igor L Markov. 2006. Eficient symmetry breaking for boolean satisfiability. IEEE Trans. Comput. 55, 5 ( 2006 ), 549-558.
[3]
Sven Apel, Wolfgang Scholz, Christian Lengauer, and Christian Kastner. 2010. Detecting dependences and interactions in feature-oriented design. In 2010 IEEE 21st International Symposium on Software Reliability Engineering. IEEE, 161-170.
[4]
Abdulbaki Aydin, Lucas Bang, and Tevfik Bultan. 2015. Automata-based model counting for string constraints. In International Conference on Computer Aided Verification. Springer, 255-272.
[5]
Fahiem Bacchus, Shannon Dalmao, and Toniann Pitassi. 2003. Algorithms and complexity results for# SAT and Bayesian inference. In 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings. IEEE, 340-351.
[6]
Biljana Bajić-Bizumić, Claude Petitpierre, Hieu Chi Huynh, and Alain Wegmann. 2013. A model-driven environment for service design, simulation and prototyping. In International Conference on Exploring Services Science. Springer, 200-214.
[7]
Kacper Bąk, Krzysztof Czarnecki, and Andrzej Wąsowski. 2010. Feature and metamodels in Clafer: mixed, specialized, and coupled. In International Conference on Software Language Engineering. Springer, 102-122.
[8]
Vaishak Belle, Andrea Passerini, and Guy Van Den Broeck. 2015. Probabilistic Inference in Hybrid Domains by Weighted Model Integration. In Proceedings of the 24th International Conference on Artificial Intelligence (Buenos Aires, Argentina) (IJCAI'15). AAAI Press, 2770-2776.
[9]
Armin Biere, Marijn Heule, and Hans van Maaren. 2009. Handbook of satisfiability. Vol. 185. IOS press.
[10]
Armin Biere, Marijn Heule, Hans van Maaren, and Toby Walsch. [n.d.]. Model Counting. 11.12. 1. Autarkies and qualitative matrix analysis ([n. d.]), 633.
[11]
Mateus Borges, Quoc-Sang Phan, Antonio Filieri, and Corina S Păsăreanu. 2017. Model-counting approaches for nonlinear numerical constraints. In NASA Formal Methods Symposium. Springer, 131-138.
[12]
Fabian Büttner, Marina Egea, Jordi Cabot, and Martin Gogolla. 2012. Verification of ATL transformations using transformation models and model finders. In International Conference on Formal Engineering Methods. Springer, 198-213.
[13]
Supratik Chakraborty, Kuldeep S. Meel, and Moshe Y. Vardi. 2013. A Scalable Approximate Model Counter. In Proc. of CP. 200-216.
[14]
Carmel Domshlak and Jörg Hofmann. 2007. Probabilistic planning via heuristic forward search and weighted model counting. Journal of Artificial Intelligence Research 30 ( 2007 ), 565-620.
[15]
William Eiers, Seemanta Saha, Tegan Brennan, and Tevfik Bultan. 2019. Subformula caching for model counting and quantitative program analysis. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 453-464.
[16]
Antonio Filieri, Corina S Păsăreanu, and Willem Visser. 2013. Reliability analysis in symbolic pathfinder. In 2013 35th International Conference on Software Engineering (ICSE). IEEE, 622-631.
[17]
Carla P Gomes, Ashish Sabharwal, and Bart Selman. 2008. Model counting. ( 2008 ).
[18]
Daniel Jackson. 2002. Alloy: A Lightweight Object Modelling Notation. TOSEM ( 2002 ).
[19]
Eunsuk Kang and Daniel Jackson. 2008. Formal modeling and analysis of a flash iflesystem in Alloy. In International Conference on Abstract State Machines, B and Z. Springer, 294-308.
[20]
Vladimir Klebanov. 2012. Precise quantitative information flow analysis using symbolic model counting. QASA ( 2012 ).
[21]
Jean-Marie Lagniez and Pierre Marquis. 2019. A Recursive Algorithm for Projected Model Counting. AAAI 33 ( 2019 ), 1536-1543.
[22]
Michael L Littman, Stephen M Majercik, and Toniann Pitassi. 2001. Stochastic boolean satisfiability. Journal of Automated Reasoning 27, 3 ( 2001 ), 251-296.
[23]
Suhas Pai, Yash Sharma, Sunil Kumar, Radhika M Pai, and Sanjay Singh. 2011. Formal verification of OAuth 2.0 using Alloy framework. In 2011 International Conference on Communication Systems and Network Technologies. IEEE, 655-659.
[24]
James D. Park. 2002. MAP Complexity Results and Approximation Methods. In Proceedings of the Eighteenth Conference on Uncertainty in Artificial Intelligence (Alberta, Canada) ( UAI'02). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 388-396.
[25]
Quoc-Sang Phan and Pasquale Malacaria. 2014. Abstract model counting: a novel approach for quantification of information leaks. In 9th ACM Symposium on Information, Computer and Communications Security. 283-292.
[26]
Dan Roth. 1996. On the hardness of approximate reasoning. Artificial Intelligence 82, 1-2 ( 1996 ), 273-302.
[27]
Tian Sang, Paul Beame, and Henry A Kautz. 2005. Performing Bayesian inference by weighted model counting. In AAAI, Vol. 5. 475-481.
[28]
Danhua Shao, Sarfraz Khurshid, and Dewayne E Perry. 2007. Whispec: White-box testing of libraries using declarative specifications. In Proceedings of the 2007 Symposium on Library-Centric Software Design. 11-20.
[29]
Mate Soos and Kuldeep S. Meel. 2019. BIRD: Engineering an Eficient CNF-XOR SAT Solver and its Applications to Approximate Model Counting. In Proceedings of AAAI Conference on Artificial Intelligence (AAAI).
[30]
Mate Soos, Karsten Nohl, and Claude Castelluccia. 2009. Extending SAT Solvers to Cryptographic Problems. In Theory and Applications of Satisfiability Testing (SAT). 244-257.
[31]
Emina Torlak and Daniel Jackson. 2007. Kodkod: A Relational Model Finder. In TACAS.
[32]
Caroline Trippel, Daniel Lustig, and Margaret Martonosi. 2018. Checkmate: Automated synthesis of hardware exploits and security litmus tests. In 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 947-960.
[33]
Caroline June Trippel. 2019. Concurrency and Security Verification in Heterogeneous Parallel Systems. Ph.D. Dissertation. Princeton University.
[34]
E. Uzuncaova, S. Khurshid, and D. Batory. 2010. Incremental Test Generation for Software Product Lines. IEEE Transactions on Software Engineering 36, 3 ( 2010 ), 309-322.
[35]
Wenxi Wang, Muhammad Usman, Alyas Almaawi, Kaiyuan Wang, Kuldeep S Meel, and Sarfraz Khurshid. 2020. A Study of Symmetry Breaking Predicates and Model Counting. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 115-134.

Cited By

View all
  • (2022)Initial Results on Counting Test Orders for Order-Dependent Flaky Tests Using AlloyTesting Software and Systems10.1007/978-3-031-04673-5_9(123-130)Online publication date: 10-May-2022

Index Terms

  1. AlloyMC: Alloy meets model counting

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    November 2020
    1703 pages
    ISBN:9781450370431
    DOI:10.1145/3368089
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 November 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Alloy
    2. model counting

    Qualifiers

    • Research-article

    Conference

    ESEC/FSE '20
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)18
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 22 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Initial Results on Counting Test Orders for Order-Dependent Flaky Tests Using AlloyTesting Software and Systems10.1007/978-3-031-04673-5_9(123-130)Online publication date: 10-May-2022

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media